This is fixed  :)

Thanks. That has moved us forward again.

If we throw an error in the process and try to roll the transaction back onto the queue, we see a conflict where one component seems to be trying to heuristically commit instead of rolling back:

13:58:48,788 | DEBUG | Thread-7 | TransactionContext | ache.activemq.TransactionContext 384 | Rollback: [globalId=200000005555ffffffbf0a416ffffff9b000000000000000000000000000000000000000000000000,branchId=100000005555ffffffbf0a416ffffff9b000000000000000000000000000000000000000000000000] 13:58:48,792 | DEBUG | /127.0.0.1:36345 | XATransaction | tivemq.transaction.XATransaction 125 | XA Transaction rollback: XID:1197822575:02000000000000005555bf000a04169b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:01000000000000005555bf000a04169b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 13:58:48,793 | WARN | Thread-7 | ServerSessionImpl:3 | he.activemq.ra.ServerSessionImpl 222 | Local transaction had not been commited. Commiting now. 13:58:48,797 | DEBUG | Thread-2 | DeliveryChannelImpl | bi.messaging.DeliveryChannelImpl 578 | Processing inbound exchange: InOut[
  id: ID:workstation22155.36319-1157547512819-10:0
  status: Done
  role: provider
  service: {http://uk.x.com/ott/1.1}sgmbHttpOut
  endpoint: sgmbHttpOut
in: <?xml version="1.0" encoding="UTF-8"?><SUBMIT-REQUEST></SUBMIT-REQUEST> out: <?xml version="1.0" encoding="UTF-8"?><SUBMIT-RESPONSE status="FAIL"></SUBMIT-RESPONSE>
]
13:58:48,798 | DEBUG | Thread-2 | DeliveryChannelImpl | bi.messaging.DeliveryChannelImpl 720 | Notifying exchange ID:workstation22155.-36319-1157547512819-10:0(156d7c8) in DeliveryChannel{sgmbHttpOut} from processInboundSynchronousExchange 13:58:48,799 | DEBUG | Thread-8 | DeliveryChannelImpl | bi.messaging.DeliveryChannelImpl 714 | Notified: ID:workstation22155.36319-1157547512819-10:0(156d7c8) in DeliveryChannel{sgmbHttpOut} from sendSync 13:58:48,834 | DEBUG | Thread-7 | ServerSessionImpl:3 | he.activemq.ra.ServerSessionImpl 167 | Endpoint failed to process message.
java.lang.RuntimeException: Endpoint after delivery notification failure
at org.apache.activemq.ra.ServerSessionImpl.afterDelivery(ServerSessionImpl.java:216)
    at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:723)
at org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:163) at org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalStateException: There is no transaction in progress. at org.apache.geronimo.transaction.context.InheritableTransactionContext.delistResource(InheritableTransactionContext.java:97) at org.apache.geronimo.transaction.context.GeronimoTransactionDelegate.delistResource(GeronimoTransactionDelegate.java:55)
    at org.jencks.XAEndpoint.afterDelivery(XAEndpoint.java:97)
at org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.afterDelivery(MessageEndpointProxy.java:125) at org.apache.activemq.ra.MessageEndpointProxy.afterDelivery(MessageEndpointProxy.java:64) at org.apache.activemq.ra.ServerSessionImpl.afterDelivery(ServerSessionImpl.java:214)
    ... 5 more
13:58:48,835 | INFO | Thread-7 | ServerSessionImpl:3 | he.activemq.ra.ServerSessionImpl 168 | Endpoint failed to process message. Reason: java.lang.RuntimeException: Endpoint after delivery notification failure 13:58:48,836 | DEBUG | Thread-7 | ServerSessionImpl:3 | he.activemq.ra.ServerSessionImpl 172 | run loop end 13:58:48,836 | DEBUG | Thread-7 | ServerSessionImpl:3 | he.activemq.ra.ServerSessionImpl 252 | Endpoint did not release properly: java.lang.IllegalStateException: Cannot commit if the transaction is not bound to the current thread java.lang.IllegalStateException: Cannot commit if the transaction is not bound to the current thread at org.apache.geronimo.transaction.context.GeronimoTransactionDelegate.rollback(GeronimoTransactionDelegate.java:72)
    at org.jencks.XAEndpoint.release(XAEndpoint.java:133)
at org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointDead.enter(MessageEndpointProxy.java:140) at org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointState.transition(MessageEndpointProxy.java:98) at org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.release(MessageEndpointProxy.java:133) at org.apache.activemq.ra.MessageEndpointProxy.release(MessageEndpointProxy.java:68) at org.apache.activemq.ra.ServerSessionImpl.close(ServerSessionImpl.java:250) at org.apache.activemq.ra.ServerSessionPoolImpl.removeFromPool(ServerSessionPoolImpl.java:180) at org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:177) at org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:595)



Not sure if this is a bug, or just us not handling a message exchange completely.

Terry

Reply via email to