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 of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
