Transaction times out before specified period
Hi,
I am currently facing an issue with transaction timeout. I am using Spring 1.2.8 with Hibernate as ORM. I am using WebLogicJtaTransactionManager. I have configured the transaction timeout as 10 minutes i.e. 600 seconds but the transaction timesout after 5 minutes i.e. 300 seconds giving the following error:
Caused by: java.sql.SQLException: Unexpected exception while enlisting XAConnection java.sql.SQLException: XA error: XAResourc e.XAER_RMERR start() failed on resource 'edcsDataSourceSYS2': XAER_RMERR : A resource manager error has occured in the transac tion branch
weblogic.transaction.internal.ResourceAccessExcept ion: Transaction has timed out when making request to XAResource 'edcsDataSo urceSYS2'.
at weblogic.transaction.internal.XAResourceDescriptor .startResourceUse(XAResourceDescriptor.java:712)
at weblogic.transaction.internal.XAServerResourceInfo .start(XAServerResourceInfo.java:1181)
at weblogic.transaction.internal.XAServerResourceInfo .xaStart(XAServerResourceInfo.java:1115)
at weblogic.transaction.internal.XAServerResourceInfo .enlist(XAServerResourceInfo.java:289)
at weblogic.transaction.internal.ServerTransactionImp l.enlistResource(ServerTransactionImpl.java:497)
at weblogic.transaction.internal.ServerTransactionImp l.enlistResource(ServerTransactionImpl.java:429)
at weblogic.jdbc.jta.DataSource.enlist(DataSource.jav a:1420)
at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlis t(DataSource.java:1344)
at weblogic.jdbc.wrapper.JTAConnection.getXAConn(JTAC onnection.java:193)
at weblogic.jdbc.wrapper.JTAConnection.checkConnectio n(JTAConnection.java:68)
at weblogic.jdbc.wrapper.Connection.preInvocationHand ler(Connection.java:87)
at weblogic.jdbc.wrapper.Connection.prepareStatement( Connection.java:495)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStat ement(AbstractBatcher.java:497)
at org.hibernate.jdbc.AbstractBatcher.prepareStatemen t(AbstractBatcher.java:94)
at org.hibernate.jdbc.AbstractBatcher.prepareStatemen t(AbstractBatcher.java:87)
at org.hibernate.persister.entity.AbstractEntityPersi ster.update(AbstractEntityPersister.java:2288)
at org.hibernate.persister.entity.AbstractEntityPersi ster.updateOrInsert(AbstractEntityPersister.java:2 233)
at org.hibernate.persister.entity.AbstractEntityPersi ster.update(AbstractEntityPersister.java:2518)
Below is the spring config file:
<bean id="transactionManager" class="org.springframework.transaction.jta.WebLogi cJtaTransactionManager">
<property name="transactionManagerName" value="javax.transaction.TransactionManager"/>
</bean>
<!-- Transaction Interceptor for Handling transactions -->
<bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor .TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager"/>
</bean>
<bean id="coreManager" parent="txProxyTemplate">
<property name="target">
<bean class="com.aoi.CoreManagerImpl" init-method="initializeReportEngine" destroy-method="shutdown">
<property name="coreDA" ref="coreDA"/>
</bean>
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-ConcurrentModificationException</prop>
<prop key="retrieveSchedule">PROPAGATION_REQUIRED,timeou t_600</prop>
</props>
</property>
</bean>
Please let me know if I am missing anything here.
Regards,
Prasad