-
Jun 1st, 2006, 03:42 AM
#1
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)
-
Jun 12th, 2006, 01:58 PM
#2
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?
-
Jul 6th, 2006, 02:11 AM
#3
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
-
Forum Rules