Could not enlist in transaction on entering meta-aware object

来源:互联网 发布:佛山市禅城区广电网络 编辑:程序博客网 时间:2024/06/01 13:53

不知道大家有没有遇到过类似的问题,hibernete没法open connection

Caused by: javax.ejb.EJBException: Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Could not open connection    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1387)    at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:838)    at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:781)    at org.jboss.as.jpa.container.AbstractEntityManager.find(AbstractEntityManager.java:193)

一般来说,造成could not open connection有如下原因:

  • 到database的链接当真有问题,这时,你可以往下追述log一般能看到和socket相关的exception
  • 在链接访问database之前抛出了其他异常

这里我的问题是:

Caused by: java.sql.SQLException: javax.resource.ResourceException: IJ000457: Unchecked throwable in managedConnectionReconnected() cl=org.jboss.jca.core.connectionmanager.listener.TxConnectionListener@3459752a[state=NORMAL managed connection=org.jboss.jca.adapters.jdbc.local.LocalManagedConnection@33c3112d connection handles=0 lastUse=1464930224060 trackByTx=false pool=org.jboss.jca.core.connectionmanager.pool.strategy.OnePool@13869fdc pool internal context=SemaphoreArrayListManagedConnectionPool@5a8c3626[pool=aswuDS] xaResource=LocalXAResourceImpl@1da914c[connectionListener=3459752a connectionManager=33ae043f warned=false currentXid=null productName=PostgreSQL productVersion=9.3.3 jndiName=java:/jdbc/aswuDS] txSync=null]    at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:151)    at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:70)    at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:301)    at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:214)    ... 210 moreCaused by: javax.resource.ResourceException: IJ000457: Unchecked throwable in managedConnectionReconnected() cl=org.jboss.jca.core.connectionmanager.listener.TxConnectionListener@3459752a[state=NORMAL managed connection=org.jboss.jca.adapters.jdbc.local.LocalManagedConnection@33c3112d connection handles=0 lastUse=1464930224060 trackByTx=false pool=org.jboss.jca.core.connectionmanager.pool.strategy.OnePool@13869fdc pool internal context=SemaphoreArrayListManagedConnectionPool@5a8c3626[pool=aswuDS] xaResource=LocalXAResourceImpl@1da914c[connectionListener=3459752a connectionManager=33ae043f warned=false currentXid=null productName=PostgreSQL productVersion=9.3.3 jndiName=java:/jdbc/aswuDS] txSync=null]    at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.reconnectManagedConnection(AbstractConnectionManager.java:650)    at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:513)    at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:143)    ... 213 moreCaused by: javax.resource.ResourceException: IJ000461: Could not enlist in transaction on entering meta-aware object    at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.managedConnectionReconnected(TxConnectionManagerImpl.java:490)    at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.reconnectManagedConnection(AbstractConnectionManager.java:645)    ... 215 moreCaused by: javax.transaction.SystemException: IJ000356: Failed to enlist: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: 0:ffff0a8d2f03:7ccc2cac:57510d3d:4ea status: ActionStatus.ABORT_ONLY >    at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener$TransactionSynchronization.checkEnlisted(TxConnectionListener.java:669)    at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.enlist(TxConnectionListener.java:368)    at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.managedConnectionReconnected(TxConnectionManagerImpl.java:483)    ... 216 more

解决方案是:
在JBoss的configure file里面(standalone.xml或host.xml)的system properties加入下面这条:

<property name="com.arjuna.ats.arjuna.allowMultipleLastResources" value="true"/>
0 0
原创粉丝点击