有没有人有一个很好的例子,说明如何使用hibernate 4.2设置Wepsphere 8。我们没有使用EJB。
在hibernate.properties
中使用以下配置时hibernate.transaction.jta.platform = org.hibernate.service.jta.platform.internal.WebSphereExtendedJtaPlatform
如果没有其他属性,我们在执行2阶段提交(数据库和MQ)时会收到以下消息
[11/27/13 17:30:20:330 EST] 00000024 LocalTranCoor W WLTC0032W:在清理LocalTransactionContainment期间回滚了一个或多个本地事务资源。
如果我们将hibernate.properties更改为以下
hibernate.transaction.factory_class = org.hibernate.engine.transaction.internal.jta.JtaTransactionFactory hibernate.transaction.jta.platform = org.hibernate.service.jta.platform.internal.WebSphereExtendedJtaPlatform
我们收到以下信息: org.hibernate.engine.transaction.internal.jta.JtaTransaction afterAfterCompletion HHH000426:你应该设置hiberna te.transaction.manager_lookup_class如果启用了缓存
这也会导致: [11/27/13 14:31:18:526 EST] 00000035 SystemErr R org.hibernate.exception.GenericJDBCException:无法使用next()前进 [11/27/13 14:31:18:527 EST] 00000035 SystemErr R at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54) [11/27/13 14:31:18:527 EST] 00000035 SystemErr R at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
答案 0 :(得分:1)
我们找到了答案。如果我们设置将factory_class设置为org.hibernate.engine.transaction.internal.jta.JtaTransactionFactory。然后我们受到webpshere中的JTA设置的约束,这将使交易超时。