The session MUST be enlisted in the tx before delivery has occured - not after!
endpoint.beforeDelivery(JBMActivation.ONMESSAGE);
a couple of other things ive found. JBMManagedConnection:getCOnnection:
I'm guessing this line:
Object session = null; // TODO - get one from JBossConnection -- new JBMSession(this, (JBMConnectionRequestInfo)cxRequestInfo);
Object session = new JBMSession(this, cri);
Object session = new JBMSession(this, (JBMConnectionRequestInfo)cxRequestInfo);