Results 1 to 3 of 3

Thread: JTA transaction rollback exception | help required.

Hybrid View

  1. #1

    Default JTA transaction rollback exception | help required.

    Hi,

    I am getting following exception where my transaction is rolled back as soon as i try to recieve from the Tibco queue. I use JMSTemplate.recieve() to recieve the messages from the queue.

    Can this exception come in case message is not written completely to the queue. I mean therotically this is not possible, but looks like JMStemplate is trying to read uncomplete message from queue and hence throws this exception. I might be wrong completely.

    Can somebody please help.

    Below AQAffirmationResponseManager.run() do a recieve from queue.

    2006-06-01 12:20:10,706 ERROR [pool-8-thread-1] - com.rbsfm.stp.framework.common.TaskService$DeadTas kManager::run::Exception while running task AQAffirmationResponseManager-1: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackException: null: Stack Trace: org.springframework.transaction.UnexpectedRollback Exception: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackException: null

    javax.transaction.RollbackException

    at org.objectweb.jotm.TransactionImpl.commit(Transact ionImpl.java:245)

    at org.objectweb.jotm.Current.commit(Current.java:488 )

    at org.springframework.transaction.jta.JtaTransaction Manager.doCommit(JtaTransactionManager.java:787)

    at org.springframework.transaction.support.AbstractPl atformTransactionManager.processCommit(AbstractPla tformTransactionManager.java:500)

    at org.springframework.transaction.support.AbstractPl atformTransactionManager.commit(AbstractPlatformTr ansactionManager.java:473)

    at org.springframework.transaction.interceptor.Transa ctionAspectSupport.doCommitTransactionAfterReturni ng(TransactionAspectSupport.java:266)

    at org.springframework.transaction.interceptor.Transa ctionInterceptor.invoke(TransactionInterceptor.jav a:106)

    at org.springframework.aop.framework.ReflectiveMethod Invocation.proceed(ReflectiveMethodInvocation.java :170)

    at com.rbsfm.stp.framework.common.TraceLogInterceptor .invoke(TraceLogInterceptor.java:65)

    at org.springframework.aop.framework.ReflectiveMethod Invocation.proceed(ReflectiveMethodInvocation.java :170)

    at org.springframework.aop.framework.JdkDynamicAopPro xy.invoke(JdkDynamicAopProxy.java:176)

    at $Proxy8.process(Unknown Source)

    at com.rbsfm.stp.services.affirmation.AQAffirmationRe sponseManager.run(AQAffirmationResponseManager.jav a:59)

    at java.util.concurrent.Executors$RunnableAdapter.cal l(Unknown Source)

    at java.util.concurrent.FutureTask$Sync.innerRunAndRe set(Unknown Source)

    at java.util.concurrent.FutureTask.runAndReset(Unknow n Source)

  2. #2
    Join Date
    Sep 2005
    Location
    St. Louis, MO USA
    Posts
    25

    Default

    I have the same problem when processing an incoming message from our homegrown message service.

    I pulling spring beans out of the factory after receiving the message and then calling a specific method within that spring bean to process its contents.

    This message processor is a Thread that receives messages.

    Does anyone have any clue why Spring would choke on this?

  3. #3

    Default

    Just wanted to share experience with the group on this one.

    Problem:
    - In some instances, multiple consumers were found to be picking up the same message from TIBCO EMS queues (dynamic queues)
    - In all such cases, JTATransactionRollbackException was thrown by the primary consumer


    For resolving the issue, we:
    - increased the transaction timeout period for the transaction manager
    - converted JMSTemplate.receive() call from blocking to non-blocking reads

    Thanks
    Darshan

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •