How do you obtain your QueueSession?
This will create a queue session that is not transacted. (It shouldn't matter if you use java:/JmsXA for this.)
(replace Queue with Topic for publishing.)
Yes that's how we do it (but for Topics).
In fact inside our ejb method we make multiple calls to a convenience method that gets the connection, creates a session, publisher etc, then publishes the message and closes eveything down.
The session is definitely non-transacted in the JMS sense - but that's not the problem. It's the pre-existing JTA transaction that is holding up the messages in the JMS server so they don't get sent until the JTA transaction commits.
I'm at home now so don't have the code - will post tomorrow morning.
If you use java:/JmsXA it will be part of the transaction.
If you use java:/ConnectionFactory it ill not.
Yes that's what I thought.
Turns out that we had a threading issue on the client, which is a Delphi-JIntegra program and couldn't handle the callbacks properly so bunched them all up.
Thanks for the help.