Support Article
JTAException during the start of a global transaction
SA-9940
Summary
Activity throws exceptions when performing a rollback of a transaction which is updating data in two different databases.
Error Messages
com.pega.pegarules.pub.database.JTAException: Exception while attempting to start global transaction: code: <none> SQLState: No Global Transaction exists to rollback. Message: <none>
From: (BD87D60DFEC34A72069041DA8C9C0EF69)
at com.pega.pegarules.data.internal.access.ThreadConnectionStoreImpl.endTransaction(ThreadConnectionStoreImpl.java:226)
at com.pega.pegarules.data.internal.access.ThreadConnectionStoreImpl.rollback(ThreadConnectionStoreImpl.java:368)
at com.pega.pegarules.data.internal.access.DatabaseImpl.attemptToProcessUpdates(DatabaseImpl.java:2379)
at com.pega.pegarules.data.internal.access.DatabaseImpl.processUpdates(DatabaseImpl.java:2165)
at com.pega.pegarules.data.internal.access.Saver.save(Saver.java:643)
at com.pega.pegarules.data.internal.access.DatabaseImpl.save(DatabaseImpl.java:4826)
at com.pegarules.generated.activity.ra_action_processlinkattachmentinstances_1ba0be43061c9bdf814d8d0f82176394.step2_16_circum0(ra_action_processlinkattachmentinstances_1ba0be43061c9bdf814d8d0f82176394.java:1954)
at com.pegarules.generated.activity.ra_action_processlinkattachmentinstances_1ba0be43061c
Caused by:
java.lang.IllegalStateException: No Global Transaction exists to rollback.
at com.ibm.ws.tx.jta.UserTransactionImpl.rollback(UserTransactionImpl.java:341)
at com.ibm.ejs.container.UserTransactionWrapper.rollback(UserTransactionWrapper.java:426)
at com.pega.pegarules.data.internal.access.ThreadConnectionStoreImpl.endTransaction(ThreadConnectionStoreImpl.java:224)
... 86 more
Steps to Reproduce
Not Applicable
Root Cause
If two different databases are required to be saved as a single transaction where both are committed successfully or rolled back, then use an XA (global) driver which allows transactions to span multiple databases.
Resolution
This issue is resolved by making the following change to the operating environment:
Change the JDBC datasource to use an XA driver.
Published June 12, 2015 - 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.