2

weblogic XA 事务配置问题

 6 months ago
source link: https://www.jdon.com/18477.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

weblogic XA 事务配置问题

环境: weblogic 8.1
DB: oralce 9.02
使用hibernate 配合jndi
当在控制台中选择
oracle.jdbc.xa.client.OracleXADataSource 驱动程序以支持XA
结果启动应用 出现错误

51964 [ExecuteThread: '13' for queue: 'weblogic.kernel.Default'] ERROR net.sf.hibernate.util.JDBCExc
eptionReporter(38) - SQLException occurred
java.sql.SQLException: SQL operations are not allowed with no global transaction by default for XA d
rivers. If the XA driver supports performing SQL operations with no global transaction, explicitly a
llow it by setting "SupportsLocalTransaction" JDBC connection pool property to true. In this case, a
lso remember to complete the local transaction before using the connection again for global transact
ion, else a XAER_OUTSIDE XAException may result. To complete a local transaction, you can either set
auto commit to true or call Connection.commit() or Connection.rollback().
at weblogic.jdbc.wrapper.JTAConnection.checkIfLocalTxSupported(JTAConnection.java:85)
at weblogic.jdbc.wrapper.JTAConnection.checkConnection(JTAConnection.java:74)
at weblogic.jdbc.wrapper.Connection.prepareStatement(Connection.java:316)
at net.sf.hibernate.impl.BatcherImpl.getPreparedStatement(BatcherImpl.java:257)
at net.sf.hibernate.impl.BatcherImpl.getPreparedStatement(BatcherImpl.java:232)
at net.sf.hibernate.impl.BatcherImpl.prepareQueryStatement(BatcherImpl.java:65)
at net.sf.hibernate.loader.Loader.prepareQueryStatement(Loader.java:779)
at net.sf.hibernate.loader.Loader.doQuery(Loader.java:265)
at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
at net.sf.hibernate.loader.Loader.doList(Loader.java:1033)
at net.sf.hibernate.loader.Loader.list(Loader.java:1024)
at net.sf.hibernate.loader.CriteriaLoader.list(CriteriaLoader.java:118)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:3613)
at net.sf.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:238)


如果配置 允许本地事务

ceptionReporter(46) - XA error: XAER_PROTO : Routine was invoked in an inproper context start() fail
ed on resource 'MyJDBC Connection Pool-1': XAER_PROTO : Routine was invoked in an inproper context
javax.transaction.xa.XAException
at oracle.jdbc.xa.OracleXAResource.disallowLocalTxnMode(OracleXAResource.java:1047)
at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:153)

139540 [ExecuteThread: '13' for queue: 'weblogic.kernel.Default'] ERROR net.sf.hibernate.util.JDBCEx
ceptionReporter(38) - Could not execute query
java.sql.SQLException: SQL operations are not allowed with no global transaction by default for XA d
rivers. If the XA driver supports performing SQL operations with no global transaction, explicitly a
llow it by setting "SupportsLocalTransaction" JDBC connection pool property to true. In this case, a
lso remember to complete the local transaction before using the connection again for global transact
ion, else a XAER_OUTSIDE XAException may result. To complete a local transaction, you can either set
auto commit to true or call Connection.commit() or Connection.rollback().


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK