Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [messaging-dev] Impact of Read-only transactions on Messaging 3.1 applications?



On Thu, Nov 6, 2025 at 1:31 PM Scott Marlow <scott.marlow.opensource@xxxxxxxxx> wrote:
Dear Jakarta Messaging specification team,

The Jakarta EE 12 Platform will include Jakarta Transactions 2.1 which includes readOnly hint added to the `jakarta.transaction.Transactional` annotation [1][2] which users.

I'm going to paste some specification text from the [3] pull request that describes the expected action to be taken if read-only mode is enabled for a XAResource:
"
If the current transaction is in the read-only mode, the transaction manager tries to put the enlisted resource in the read-only mode by invoking the `ExtendedXAResource#setReadOnly` method if it implements the `ExtendedXAResource` interface. If the `ExtendedXAResource` cannot be put into read-only mode or the `XAResource` does not implement the `ExtendedXAResource` interface, the transaction manager must roll back the `XAResource` at transaction commit.
"

Could the Messaging specification team please respond with feedback on this new read-only feature and whether the EE 12 Platform specification text should mention any Messaging features that are not expected to support read-only transactions?  If yes, which Messaging features will not work with read-only transactions?  Also if yes, should we open a Messaging (4.0) issue to add changes to support read-only transactions?

For example, could QueueBrowser always work in an active transaction with a (read-only mode enabled) ExtendedXAResource?  More specifically could a Messaging implementation expect to update the database during the queue browse operation?  I find it unlikely that any implementation would update the (queue) database during a browse operation but want to hear your feedback on whether that would be allowed?  One possible reason for updating the application database is to save QueueBrowser statistics to the application database.

Perhaps we can come up with generic EE 12 Platform text to describe that any database update performed against a read-only Resource will not be saved or something like that to cover ^ and operations like that.  Still, I'we are looking to better understand the possible cases and what can be expected to work/not work.

Thanks,
Scott


Note that there is a Connectors issue [4] open as well.

Thanks,
Scott

[1] https://github.com/jakartaee/transactions/issues/220 - tracking issue for readOnly.
[2] https://github.com/jakartaee/transactions/pull/222  - adds read-only transactions to Transaction spec + spec api.
[4] https://github.com/jakartaee/connectors/issues/168 - Implications of read-only transactions on Jakarta Connectors specification.

Back to the top