Is the connection factory in question XA capable? In the web console, if you edit the connection factory under Resources -> JMS Resources -> Connection Factories, there is a Transaction Support setting you can change to “XATransaction”. That is the first thing I would try. Also, where are you executing the sample code? In the container, in a managed component? If so, say in a Session bean, is it within the scope of a container managed transaction? That may also make a difference if you are trying to connect to a destination that is transactional from some code that is outside of the transaction managers reach or outside of even a manual transaction.