Support Article
Getting IllegalResourceIn2PCTransactionException after upgrade
SA-29813
Summary
User is upgrading their PRPC application from PRPC 6.2 SP2 to Pega 7.2.
After the migration and upgrade, while starting the JVM, user is getting the error listed below.
Error Messages
[10/11/16 11:49:26:168 EDT] 0000001e LocalTransact E J2CA0030E: Method enlist caught com.ibm.ws.Transaction.IllegalResourceIn2PCTransactionException: Illegal attempt to enlist multiple 1PC XAResources
at com.ibm.ws.tx.jta.RegisteredResources.enlistResource(RegisteredResources.java:871)
at com.ibm.ws.tx.jta.TransactionImpl.enlistResource(TransactionImpl.java:1849)
at com.ibm.tx.jta.impl.EmbeddableTranManagerSet.enlistOnePhase(EmbeddableTranManagerSet.java:195)
at com.ibm.ejs.j2c.LocalTransactionWrapper.enlist(LocalTransactionWrapper.java:607)
at com.ibm.ejs.j2c.ConnectionManager.lazyEnlist(ConnectionManager.java:2755)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.lazyEnlist(WSRdbManagedConnectionImpl.java:2596)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.beginTransactionIfNecessary(WSJdbcConnection.java:732)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java:2786)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java:2739)
at com.pega.pegarules.data.internal.access.DatabaseConnectionImpl.prepareStatement(DatabaseConnectionImpl.java:537)
at com.pega.pegarules.data.internal.access.ConnectionStatementStore.prepareStatement(ConnectionStatementStore.java:115)
at com.pega.pegarules.data.internal.access.Saver.getStatementWithPrepValues(Saver.java:1694)
at com.pega.pegarules.data.internal.access.Saver.addBatch(Saver.java:975)
at com.pega.pegarules.data.internal.access.Saver.saveInstance(Saver.java:837)
at com.pega.pegarules.data.internal.access.Saver.saveInstance(Saver.java:777)
at com.pega.pegarules.data.internal.access.Committer.performOps(Committer.java:373)
at com.pega.pegarules.data.internal.access.DatabaseImpl.attemptToProcessUpdates(DatabaseImpl.java:2751)
at com.pega.pegarules.data.internal.access.DatabaseImpl.processUpdates(DatabaseImpl.java:2400)
at com.pega.pegarules.data.internal.access.Saver.save(Saver.java:651)
at com.pega.pegarules.data.internal.access.DatabaseImpl.save(DatabaseImpl.java:5192)
at com.pega.pegarules.data.internal.access.DatabaseImpl.save(DatabaseImpl.java:5178)
at com.pega.pegarules.data.internal.access.DatabaseImpl.save(DatabaseImpl.java:5169)
at com.pega.pegarules.session.internal.async.AgentRuleUtils.saveDataInstance(AgentRuleUtils.java:225)
at com.pega.pegarules.session.internal.async.AgentRuleUtils.checkAndUseDataInstance(AgentRuleUtils.java:287)
at com.pega.pegarules.session.internal.async.MasterForNewAgents.manageSchedules(MasterForNewAgents.java:375)
at com.pega.pegarules.session.internal.async.MasterForNewAgents.run(MasterForNewAgents.java:287)
at com.pega.pegarules.session.internal.async.Agent.runAgentTask(Agent.java:913)
......
Steps to Reproduce
Not applicable
Root Cause
A defect or configuration issue in the operating environment.
User has a Data-Admin-DB-Name defined as jdbc/PegaRULES manually and Websphere considers that as another resource in addition to the default OOTB java:com/env/jdbc/PegaRULES and hence the exception because a non-XA jdbc driver is used.
Resolution
Make the following change to the operating environment:
Remove the Data-Admin-DB-Name with JNDI name of jdbc/PegaRULES and redeploy the application.
Published November 10, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.