When you set AUTO_ACK you can not control the transaction your self. This is done automatically.
No, that wasn't the problem. The problem clearly exists in the JBossMQ code and the way it handles a client disconnecting. Same exact code functions exactly as you would expect under IBM's MQSeries. I sincerely hope that the JBossMQ development team focuses a lot on clients outside of the JVM as opposed to just MDBs inside the JVM.
Hey, are you using a transacted session OR ackmode. Using both is not relevant. From TopicConnection.createTopicSession:
transacted - if true, the session is transacted.
acknowledgeMode - indicates whether the consumer or the client will acknowledge any messages it receives. This parameter will be ignored if the session is transacted.
Have you created your session with transacted set to true?