We use XA transactions and have Oracle and TIbco JMS datasource as part of XA.
It's very interesting that we saw that the transactions are performing very slow when consumers are not running and queue continuously keeps backing up. So I started to think about the complete JMS architecture and then as part of the plan I changed from XA transaction to local transaction. As soon as I changed to local transaction the issue got resolved and performance was back to normal. Now the problem is that we need to use XA as we have DB operations involved too.
So I turned on the logging (log_trace=TX) in XA transaction on tibco EMS server and saw that as queue grows time between prepare and commit also increases and from few ms it grows to4 secs per transaction. It appears there is some kind of bug in the XA implementation. I am not sure if that problem is with JbossTM or Tibco XA Manager.
Has somebody else seen the same problem or if someone could help in how to narrow down the problem.
Please note if all consumers are running then we don't see this performance problems.