Do you actually rollback the transaction ?
If yes, you should try to flag the transaction as rollback only:
  transactionManager.setRollbackOnly()
or
  transaction.setRollbackOnly()

If you manually commit / rollback the transaction, you will have
weird behavior, as the jca container is responsible for that.

On 9/6/06, Terry Cox <[EMAIL PROTECTED]> wrote:

> 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




--
Cheers,
Guillaume Nodet

Reply via email to