Process execution fails with transaction timeout in RHPAM with DB based timer setting
Issue
We have set up a RHPAM 7.0.2 instance using Oracle for jBPM as well as for the ejb timer configuration:
<xa-datasource jndi-name="java:jboss/datasources/ejb_timer" pool-name="ejb_timer-EJB_TIMER" use-java-context="true" enabled="true">
<xa-datasource-property name="URL">jdbc:oracle:thin:@oracle.server:1521:DB1</xa-datasource-property>
<driver>oracle</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<xa-pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>10</max-pool-size>
</xa-pool>
<security>
<user-name>RHPAM</user-name>
<password>RHPAM</password>
</security>
</xa-datasource>
<xa-datasource jndi-name="java:/jboss/datasources/rhpam" pool-name="rhpam-RHPAM" use-java-context="true" enabled="true">
<xa-datasource-property name="URL">jdbc:oracle:thin:@oracle.server:1521:DB1</xa-datasource-property>
<driver>oracle</driver>
<security>
<user-name>RHPAM</user-name>
<password>RHPAM</password>
</security>
</xa-datasource>
Once we start a new instance of our process definition, the kie-server executes all of the steps defined in the process definition but fails to respond to the caller. After 5mins, which is the default transaction timeout, the following exception occurs:
WARN [org.jboss.jca.core.connectionmanager.listener.TxConnectionListener] (default task-7) IJ000305: Connection error occured: org.jboss.jca.core.connectionmanager.listener.TxConnectionListener@2c9002eb[state=NORMAL managed connection=org.jboss.jca
.adapters.jdbc.xa.XAManagedConnection@2f318931 connection handles=0 lastReturned=1537182686997 lastValidated=1537178036483 lastCheckedOut=1537182688337 trackByTx=true pool=org.jboss.jca.core.connectionmanager.pool.strategy.OnePool@4439be43 mcp=SemaphoreConcurren
tLinkedQueueManagedConnectionPool@61b12a56[pool=ejb_timer-EJB_TIMER] xaResource=XAResourceWrapperImpl@6c390ba1[xaResource=org.jboss.jca.adapters.jdbc.xa.XAManagedConnection@2f318931 pad=false overrideRmValue=null productName=Oracle productVersion=Oracle Database
12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production jndiName=java:jboss/datasources/ejb_timer] txSync=TransactionSynchronization@336037344{tx=Local transaction (delegate=TransactionImple < ac, BasicAction: 0:ffff0a8300ee:-71e3a257:5b9f79b3:bbd status:
ActionStatus.RUNNING >, owner=Local transaction context for provider JBoss JTA transaction provider) wasTrackByTx=true enlisted=false cancel=false}]: oracle.jdbc.xa.OracleXAException
at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:1188)
at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:253)
at org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.start(XAManagedConnection.java:263)
at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.start(XAResourceWrapperImpl.java:215)
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:741)
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:423)
at org.wildfly.transaction.client.LocalTransaction.enlistResource(LocalTransaction.java:157)
at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener$TransactionSynchronization.enlist(TxConnectionListener.java:986)
at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.enlist(TxConnectionListener.java:379)
at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.managedConnectionReconnected(TxConnectionManagerImpl.java:554)
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.reconnectManagedConnection(AbstractConnectionManager.java:970)
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:792)
at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:138)
at org.jboss.as.connector.subsystems.datasources.WildFlyDataSource.getConnection(WildFlyDataSource.java:64)
at org.jboss.as.ejb3.timerservice.persistence.database.DatabaseTimerPersistence.addTimer(DatabaseTimerPersistence.java:329)
at org.jboss.as.ejb3.timerservice.TimerServiceImpl.persistTimer(TimerServiceImpl.java:608)
at org.jboss.as.ejb3.timerservice.TimerServiceImpl.createTimer(TimerServiceImpl.java:482)
at org.jboss.as.ejb3.timerservice.TimerServiceImpl.createSingleActionTimer(TimerServiceImpl.java:307)
at org.jbpm.services.ejb.timer.EJBTimerScheduler.internalSchedule(EJBTimerScheduler.java:103)
Environment
- Red Hat Process Automation Manager
- 7.0.2
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.