[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Transaction timeout not detected ?
davidbalazic
do-not-reply at jboss.com
Fri May 25 10:16:44 EDT 2007
Hi!
We use jboss 4.0.4GA and the included hibernate.
We have configured JTA transactions and a XA datasource (oracle).
I noticed that it can happen that the transaction times out during a bean business method, but the call end without any error.
I discovered this during debugging, when the program executes a bit slower ;)
(due to stepping over the code)
What happens is this :
- method is entered and has a breakpoint
- I step over some hibernate stuff, like saving and updating some persisted objects
- right before the end , when all hibernate call are already stepped over, I wait a bit
- in the log this appears :
2007-05-25 14:38:00,015 WARN [org.jboss.tm.TransactionImpl] Transaction TransactionImpl:XidImpl[FormatId=257, GlobalId=my_pcs_name/58, BranchQual=, localId=58] timed out. status=STATUS_ACTIVE
- then I let jboss to run the method to end
What happens is that the client gets the methid finished without any error, as if everything were OK, but the data was not saved to the DB !
I am not a guru, but this look like a missed error.
Can some shed some light on the issue ?
This is the hibernate cfg file :
| <hibernate-configuration>
| <session-factory>
| <!-- database connection settings -->
| <property name="connection.datasource">
| java:/jdbc/foo/DataSource
| </property>
| <property name="connection.autocommit">false</property>
| <property name="transaction.auto_close_session">true</property>
| <property name="transaction.flush_before_completion">
| true
| </property>
| <property name="dialect">
| org.hibernate.dialect.Oracle9Dialect
| </property>
| <property name="show_sql">false</property>
| <property name="show_type">true</property>
|
| <!-- J2EE config -->
| <property name="current_session_context_class">jta</property>
| <property name="transaction.factory_class">
| org.hibernate.transaction.JTATransactionFactory
| </property>
| <property name="transaction.manager_lookup_class">
| org.hibernate.transaction.JBossTransactionManagerLookup
| </property>
| <property name="session_factory_name">
| jdbc/foo/HibernateSessionFactory
| </property>
|
|
| <!-- disable second-level-cache -->
| <property name="cache.use_second_level_cache">false</property>
| <property name="cache.provider_class">
| org.hibernate.cache.NoCacheProvider
| </property>
|
| <!-- some mappings here ... cut out to save space in the forum post ... -->
| </session-factory>
|
The datasource definition :
| <xa-datasource>
| <jndi-name>jdbc/foo/DataSource</jndi-name>
| <track-connection-by-tx />
| <isSameRM-override-value>false</isSameRM-override-value>
| <xa-datasource-class>
| oracle.jdbc.xa.client.OracleXADataSource
| </xa-datasource-class>
| <xa-datasource-property name="URL">
| jdbc:oracle:thin:@10.1..0:1521:FOO1
| </xa-datasource-property>
| <xa-datasource-property name="User">
| X_FOO
| </xa-datasource-property>
| <xa-datasource-property name="Password">
| bar
| </xa-datasource-property>
| <exception-sorter-class-name>
| org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
| </exception-sorter-class-name>
| <no-tx-separate-pools />
| <metadata>
| <type-mapping>Oracle9i</type-mapping>
| </metadata>
| <min-pool-size>1</min-pool-size>
| <max-pool-size>3</max-pool-size>
| <idle-timeout-minutes>0</idle-timeout-minutes>
| <check-valid-connection-sql>
| select 1 from dual
| </check-valid-connection-sql>
| </xa-datasource>
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4048690#4048690
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4048690
More information about the jboss-user
mailing list