jpa - Transaction fails with IJ000457, IJ000461 and IJ000356 on first time, but works thereafter -
i trying run jsf application jpa on wildly server, have following code, there exception when trying add employee @ first time, when trying time, works fine, did not find reason, please help.
session bean:
import javax.ejb.stateless; import javax.ejb.transactionattribute; import javax.ejb.transactionattributetype; import javax.persistence.entitymanager; import javax.persistence.persistencecontext; import javax.persistence.persistencecontexttype; import javax.transaction.transactional; import model.employee; @stateless @transactional(rollbackon=exception.class) public class employeebean { @persistencecontext(unitname="employee") private entitymanager em; public void create(employee... gs) { if(em==null) { system.out.println("entitymanager null"); return; } try { for(employee g : gs) { em.persist(g); } } catch (exception e) { system.out.println("error"); e.printstacktrace(); } } }
persistence.xml
<?xml version="1.0" encoding="utf-8"?> <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> <persistence-unit name="employee" transaction-type="jta"> <jta-data-source>java:jboss/datasources/employee</jta-data-source> <class>model.emp_proj</class> <class>model.emp_projpk</class> <class>model.project</class> <class>model.employee</class> </persistence-unit> </persistence>
standalone.xml
<datasources> <datasource jta="true" jndi-name="java:jboss/datasources/employee" pool-name="mysqlds2" enabled="true" use-java-context="true"> <connection-url>jdbc:mysql://localhost:3306/employee</connection-url> <driver>mysqld</driver> <pool> <min-pool-size>10</min-pool-size> <max-pool-size>20</max-pool-size> <prefill>true</prefill> </pool> <security> <user-name>root</user-name> <password>123456</password> </security> <timeout> <idle-timeout-minutes>1000</idle-timeout-minutes> </timeout> </datasource> <drivers> <driver name="mysqld" module="com.mysql"> <driver-class>com.mysql.jdbc.driver</driver-class> </driver> </drivers> </datasources>
error:
caused by: javax.transaction.rollbackexception: arjuna016053: not commit transaction. @ com.arjuna.ats.internal.jta.transaction.arjunacore.transactionimple.commitanddisassociate(transactionimple.java:1178) [narayana-jts-jacorb-5.0.0.final.jar:5.0.0.final (revision: 9aa71)] @ com.arjuna.ats.internal.jta.transaction.arjunacore.basetransaction.commit(basetransaction.java:126) [narayana-jts-jacorb-5.0.0.final.jar:5.0.0.final (revision: 9aa71)] @ com.arjuna.ats.jbossatx.basetransactionmanagerdelegate.commit(basetransactionmanagerdelegate.java:75) @ org.jboss.as.ejb3.tx.cmttxinterceptor.endtransaction(cmttxinterceptor.java:93) [wildfly-ejb3-8.1.0.final.jar:8.1.0.final] ... 77 more caused by: javax.persistence.persistenceexception: org.hibernate.exception.genericjdbcexception: not open connection @ org.hibernate.jpa.spi.abstractentitymanagerimpl.convert(abstractentitymanagerimpl.java:1763) [hibernate-entitymanager-4.3.5.final.jar:4.3.5.final] @ org.hibernate.jpa.spi.abstractentitymanagerimpl.convert(abstractentitymanagerimpl.java:1677) [hibernate-entitymanager-4.3.5.final.jar:4.3.5.final] @ org.hibernate.jpa.spi.abstractentitymanagerimpl.convert(abstractentitymanagerimpl.java:1683) [hibernate-entitymanager-4.3.5.final.jar:4.3.5.final] @ org.hibernate.jpa.spi.abstractentitymanagerimpl$callbackexceptionmapperimpl.mapmanagedflushfailure(abstractentitymanagerimpl.java:1882) [hibernate-entitymanager-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.transaction.synchronization.internal.synchronizationcallbackcoordinatornontrackingimpl.beforecompletion(synchronizationcallbackcoordinatornontrackingimpl.java:115) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.transaction.synchronization.internal.registeredsynchronization.beforecompletion(registeredsynchronization.java:50) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ com.arjuna.ats.internal.jta.resources.arjunacore.synchronizationimple.beforecompletion(synchronizationimple.java:76) [narayana-jts-jacorb-5.0.0.final.jar:5.0.0.final (revision: 9aa71)] @ com.arjuna.ats.arjuna.coordinator.twophasecoordinator.beforecompletion(twophasecoordinator.java:358) [narayana-jts-jacorb-5.0.0.final.jar:5.0.0.final (revision: 9aa71)] @ com.arjuna.ats.arjuna.coordinator.twophasecoordinator.end(twophasecoordinator.java:91) [narayana-jts-jacorb-5.0.0.final.jar:5.0.0.final (revision: 9aa71)] @ com.arjuna.ats.arjuna.atomicaction.commit(atomicaction.java:162) [narayana-jts-jacorb-5.0.0.final.jar:5.0.0.final (revision: 9aa71)] @ com.arjuna.ats.internal.jta.transaction.arjunacore.transactionimple.commitanddisassociate(transactionimple.java:1166) [narayana-jts-jacorb-5.0.0.final.jar:5.0.0.final (revision: 9aa71)] ... 80 more caused by: org.hibernate.exception.genericjdbcexception: not open connection @ org.hibernate.exception.internal.standardsqlexceptionconverter.convert(standardsqlexceptionconverter.java:54) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.jdbc.spi.sqlexceptionhelper.convert(sqlexceptionhelper.java:126) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.jdbc.spi.sqlexceptionhelper.convert(sqlexceptionhelper.java:112) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.jdbc.internal.logicalconnectionimpl.obtainconnection(logicalconnectionimpl.java:235) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.jdbc.internal.logicalconnectionimpl.getconnection(logicalconnectionimpl.java:171) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.jdbc.internal.statementpreparerimpl.connection(statementpreparerimpl.java:63) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.jdbc.internal.statementpreparerimpl$1.doprepare(statementpreparerimpl.java:103) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.jdbc.internal.statementpreparerimpl$statementpreparationtemplate.preparestatement(statementpreparerimpl.java:186) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.jdbc.internal.statementpreparerimpl.preparestatement(statementpreparerimpl.java:96) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.jdbc.batch.internal.abstractbatchimpl.buildbatchstatement(abstractbatchimpl.java:152) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.jdbc.batch.internal.abstractbatchimpl.getbatchstatement(abstractbatchimpl.java:141) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.persister.entity.abstractentitypersister.insert(abstractentitypersister.java:3102) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.persister.entity.abstractentitypersister.insert(abstractentitypersister.java:3581) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.action.internal.entityinsertaction.execute(entityinsertaction.java:104) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.spi.actionqueue.executeactions(actionqueue.java:463) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.spi.actionqueue.executeactions(actionqueue.java:349) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.event.internal.abstractflushingeventlistener.performexecutions(abstractflushingeventlistener.java:350) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.event.internal.defaultflusheventlistener.onflush(defaultflusheventlistener.java:56) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.internal.sessionimpl.flush(sessionimpl.java:1222) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.internal.sessionimpl.managedflush(sessionimpl.java:425) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.transaction.synchronization.internal.synchronizationcallbackcoordinatornontrackingimpl.beforecompletion(synchronizationcallbackcoordinatornontrackingimpl.java:110) [hibernate-core-4.3.5.final.jar:4.3.5.final] ... 86 more caused by: java.sql.sqlexception: javax.resource.resourceexception: ij000457: unchecked throwable in managedconnectionreconnected() cl=org.jboss.jca.core.connectionmanager.listener.txconnectionlistener@68650790[state=normal managed connection=org.jboss.jca.adapters.jdbc.local.localmanagedconnection@3f714c71 connection handles=0 lastuse=1434318003661 trackbytx=false pool=org.jboss.jca.core.connectionmanager.pool.strategy.onepool@2751af41 mcp=semaphorearraylistmanagedconnectionpool@2337c020[pool=mysqlds2] xaresource=localxaresourceimpl@5a682437[connectionlistener=68650790 connectionmanager=63c8e891 warned=false currentxid=null productname=mysql productversion=5.6.16 jndiname=java:jboss/datasources/employee] txsync=null] @ org.jboss.jca.adapters.jdbc.wrapperdatasource.getconnection(wrapperdatasource.java:154) @ org.hibernate.engine.jdbc.connections.internal.datasourceconnectionproviderimpl.getconnection(datasourceconnectionproviderimpl.java:139) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.internal.abstractsessionimpl$noncontextualjdbcconnectionaccess.obtainconnection(abstractsessionimpl.java:380) [hibernate-core-4.3.5.final.jar:4.3.5.final] @ org.hibernate.engine.jdbc.internal.logicalconnectionimpl.obtainconnection(logicalconnectionimpl.java:228) [hibernate-core-4.3.5.final.jar:4.3.5.final] ... 103 more caused by: javax.resource.resourceexception: ij000457: unchecked throwable in managedconnectionreconnected() cl=org.jboss.jca.core.connectionmanager.listener.txconnectionlistener@68650790[state=normal managed connection=org.jboss.jca.adapters.jdbc.local.localmanagedconnection@3f714c71 connection handles=0 lastuse=1434318003661 trackbytx=false pool=org.jboss.jca.core.connectionmanager.pool.strategy.onepool@2751af41 mcp=semaphorearraylistmanagedconnectionpool@2337c020[pool=mysqlds2] xaresource=localxaresourceimpl@5a682437[connectionlistener=68650790 connectionmanager=63c8e891 warned=false currentxid=null productname=mysql productversion=5.6.16 jndiname=java:jboss/datasources/employee] txsync=null] @ org.jboss.jca.core.connectionmanager.abstractconnectionmanager.reconnectmanagedconnection(abstractconnectionmanager.java:773) @ org.jboss.jca.core.connectionmanager.abstractconnectionmanager.allocateconnection(abstractconnectionmanager.java:516) @ org.jboss.jca.adapters.jdbc.wrapperdatasource.getconnection(wrapperdatasource.java:146) ... 106 more caused by: javax.resource.resourceexception: ij000461: not enlist in transaction on entering meta-aware object @ org.jboss.jca.core.connectionmanager.tx.txconnectionmanagerimpl.managedconnectionreconnected(txconnectionmanagerimpl.java:546) @ org.jboss.jca.core.connectionmanager.abstractconnectionmanager.reconnectmanagedconnection(abstractconnectionmanager.java:768) ... 108 more caused by: javax.transaction.systemexception: ij000356: failed enlist: java.lang.throwable: unabled enlist resource, see previous warnings. tx=transactionimple < ac, basicaction: 0:ffffc0a80105:-52c4393b:557df43a:9 status: actionstatus.abort_only > @ org.jboss.jca.core.connectionmanager.listener.txconnectionlistener$transactionsynchronization.checkenlisted(txconnectionlistener.java:812) @ org.jboss.jca.core.connectionmanager.listener.txconnectionlistener.enlist(txconnectionlistener.java:362) @ org.jboss.jca.core.connectionmanager.tx.txconnectionmanagerimpl.managedconnectionreconnected(txconnectionmanagerimpl.java:539) ... 109 more
it's strange error, , happened me, please try disable jta in datasource jta="false"
or upgrade wildfly 8.2.0 final version.
Comments
Post a Comment