cancel
Showing results for 
Search instead for 
Did you mean: 

Transaction warning in JBoss

drams
Champ in-the-making
Champ in-the-making
We are preparing to go in to production for a important public-facing platform and we are doing some last cleans up checks.
While doing this we are noticing that there are some warnings being logged by/during Activiti actions in our log files, which we would like to investigate. All functionalitity seems to be working though.
We are currently running Activiti 5.13 on a JBoss SOA-P 5 platform in combination with an Oracle database using a XA datasource.

If I understand correctly the following warnings won't be shown anymore in the logs as soon as we upgrade to version 5.14? (https://jira.codehaus.org/browse/ACT-1625)


[org.activiti.engine.impl.bpmn.parser.BpmnParse] (http-0.0.0.0-8843-3) Invalid reference in diagram interchange definition: could not find ApprovalWorkflowContainer
2013-08-01 13:44:31,615 WARN  [org.activiti.engine.impl.bpmn.parser.BpmnParse] (http-0.0.0.0-8843-3) Invalid reference in diagram interchange definition: could not find rejectExecutionSubflowToMailService


Besides that we keep having the following transaction warning in our logs only for Activiti related actions. But like mentioned before the transactions seems to work fine.


2013-08-01 13:44:31,687 WARN  [org.jboss.tm.usertx.UserTransactionRegistry] (http-0.0.0.0-8843-3) Error notifying listener org.jboss.resource.connectionmanager.CachedConnectionManager@
bfdd46 of userTransactionStarted
java.lang.IllegalStateException: Trying to change transaction TransactionImple < ac, BasicAction: a122d0a:8ec5:51fa2e3a:2db2 status: ActionStatus.RUNNING > in enlist!
        at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:700)
        at org.jboss.resource.connectionmanager.TxConnectionManager.transactionStarted(TxConnectionManager.java:437)
        at org.jboss.resource.connectionmanager.CachedConnectionManager.userTransactionStarted(CachedConnectionManager.java:350)
        at org.jboss.tm.usertx.UserTransactionRegistry.userTransactionStarted(UserTransactionRegistry.java:119)
        at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.begin(ServerVMClientUserTransaction.java:141)
        at org.springframework.transaction.jta.JtaTransactionManager.doJtaBegin(JtaTransactionManager.java:864)
        at org.springframework.transaction.jta.JtaTransactionManager.doBegin(JtaTransactionManager.java:821)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.handleExistingTransaction(AbstractPlatformTransactionManager.java:423)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:347)
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:127)
        at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40)
        at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:37)
        at org.activiti.engine.impl.db.DbIdGenerator.getNewBlock(DbIdGenerator.java:41)
        at org.activiti.engine.impl.db.DbIdGenerator.getNextId(DbIdGenerator.java:34)
        at org.activiti.engine.impl.db.DbSqlSession.insert(DbSqlSession.java:112)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.insert(ExecutionEntity.java:1040)
        at org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.newProcessInstance(ProcessDefinitionEntity.java:113)
        at org.activiti.engine.impl.pvm.process.ProcessDefinitionImpl.createProcessInstanceForInitial(ProcessDefinitionImpl.java:63)
        at org.activiti.engine.impl.pvm.process.ProcessDefinitionImpl.createProcessInstance(ProcessDefinitionImpl.java:53)
        at org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.createProcessInstance(ProcessDefinitionEntity.java:71)
        at org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.createProcessInstance(ProcessDefinitionEntity.java:102)
        at org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:79)
        at org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:36)
        at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
        at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:61)
        at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42)
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
        at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40)
        at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:37)
        at org.activiti.engine.impl.RuntimeServiceImpl.startProcessInstanceByKey(RuntimeServiceImpl.java:63)
        at


Thanks in advance for your input!
7 REPLIES 7

frederikherema1
Star Contributor
Star Contributor
Yes, indeed. That warning won't be shown anymore (see https://github.com/Activiti/Activiti/commit/454d51765ba6a8cbd3806eae4f371ac4c6b003f5).

I'm affraid I can't help you with the second warning, never came across this issue. Any chance on revealing the name of this important public-facing project? Smiley Wink

jolacitrouille
Champ in-the-making
Champ in-the-making
Hi, I am using activiti 5.15.1 on a JBoss EAP 5.1.2 in combination with an Oracle database using a XA datasource and guess what.. I am having the exact same problem 🙂

<code>
18:01:53,552 WARN  [UserTransactionRegistry] Error notifying listener org.jboss.resource.connectionmanager.CachedConnectionManager@3d24d8 of userTransactionStarted
java.lang.IllegalStateException: Trying to change transaction TransactionImple < ac, BasicAction: a0a7047:cb8c:5370f051:212 status: ActionStatus.RUNNING > in enlist!
</code>

Did you figure the problem out ?

Thanks for your help!

Ok, after some investigations, I realized a command was executed in a transaction with the config REQUIRES_NEW… This happens in DbIdGenerator#getNewBlock… Climbing it up, I realized that idGenerator in ProcessEngineConfigurationImpl was init with <code>dbIdGenerator.setCommandConfig(getDefaultCommandConfig().transactionRequiresNew())</code>… (in ProcessEngineConfigurationImpl#initIdGenerator)
Why is it defaulted to REQUIRES_NEW ?
JBoss doesn't seem to like it very much…

nagyf
Champ in-the-making
Champ in-the-making
Hi!

I'm using the latest Activiti (5.15.1) release with JBoss 6.1 EAP, and experiencing the same problem, we get the same exception.
Activiti configured to use the transaction manager of JBoss, obtained via JNDI, the datasource also configured in JBoss.

Do you have any updates on it?
Is it safe to ignore this warning?
Anybody know how to fix this?

Thank you for any help!

jbarrez
Star Contributor
Star Contributor
If the comment above is correct about REQUIRES_NEW, it might be good to try the UUID id generator: http://activiti.org/userguide/index.html#advanced.uuid.generator

This way, the default db id generator shouldn't need to start a transaction with REQUIRES_NEW

nagyf
Champ in-the-making
Champ in-the-making
I've just tested it, and it works.

Thanks for your help!

jbarrez
Star Contributor
Star Contributor
Awesome. Thanks for posting back!