STATUS_NO_TRANSACTION

View: New views
1 Messages — Rating Filter:   Alert me  

STATUS_NO_TRANSACTION

by ss2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I am using activeMQ4.1/jencks1.3 and spring 2.0 - I periodically see STATUS_NO_TRANSACTION failures in my log - I am not sure what is causing that - is there a way to figure out what runtime exception led to that? And as a result of this, I see that the message stays in the JMS Queue and isnt redelivered till I restart my process.

How can I get that message to be redelivered with out requiring a restart or moving it to the DLQ?

Here is the stack trace I see:

2007-03-16 13:02:49,211 DEBUG [org.springframework.transaction.interceptor.TransactionIn
terceptor] Completing transaction for [javax.jms.MessageListener.onMessage]
2007-03-16 13:02:49,212 DEBUG [org.springframework.transaction.jta.JtaTransactionManager
] Triggering beforeCommit synchronization
2007-03-16 13:02:49,212 DEBUG [org.springframework.transaction.jta.JtaTransactionManager
] Triggering beforeCompletion synchronization
2007-03-16 13:02:49,212 DEBUG [org.springframework.transaction.jta.JtaTransactionManager
] Triggering afterCommit synchronization
2007-03-16 13:02:49,212 DEBUG [org.springframework.transaction.jta.JtaTransactionManager
] Registering after-completion synchronization with existing JTA transaction
2007-03-16 13:02:49,212 DEBUG [org.springframework.transaction.support.TransactionSynchr
onizationManager] Clearing transaction synchronization
2007-03-16 13:02:49,215 ERROR [org.apache.geronimo.transaction.context.AbstractTransacti
onContext] Unable to roll back transaction
java.lang.IllegalStateException: Status is STATUS_NO_TRANSACTION
        at org.apache.geronimo.transaction.manager.TransactionImpl.rollback(TransactionI
mpl.java:438)
        at org.apache.geronimo.transaction.context.InheritableTransactionContext.rollbac
kAndThrow(InheritableTransactionContext.java:308)
        at org.apache.geronimo.transaction.context.InheritableTransactionContext.complet
e(InheritableTransactionContext.java:199)
        at org.apache.geronimo.transaction.context.InheritableTransactionContext.commit(
InheritableTransactionContext.java:146)
        at org.apache.geronimo.transaction.context.GeronimoTransactionManager.commit(Ger
onimoTransactionManager.java:81)
        at org.apache.geronimo.transaction.context.GeronimoTransactionDelegate.commit(Ge
ronimoTransactionDelegate.java:51)
        at org.jencks.XAEndpoint.afterDelivery(XAEndpoint.java:103)
        at org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.afterDeliver
y(MessageEndpointProxy.java:125)
        at org.apache.activemq.ra.MessageEndpointProxy.afterDelivery(MessageEndpointProx
y.java:64)
        at org.apache.activemq.ra.ServerSessionImpl.afterDelivery(ServerSessionImpl.java
:214)
        at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:749)
        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(PooledExecutor.jav
a:727)
        at java.lang.Thread.run(Thread.java:595)
2007-03-16 13:02:49,216 INFO  [org.apache.activemq.ra.ServerSessionImpl:0] Endpoint fail
ed to process message. Reason: java.lang.RuntimeException: Endpoint after delivery notif
ication failure

My spring configuration file is attached. spring.xml
My OnMessage handler is as follows:

onMessage(final Message message) {
 try {
    // process message
    // make HTTP Post with response
   // No transaction commit or rollbacks called from within here.
 catch (Throwable t) {
   log.error(t)
  }

I saw some posts referring to a bug in te geronimo transaction manager. Is that fixed in jencks-2.0?

Thanks! Any help appreciated!