How can I split storage scheme JBPM and general?
slogger Jun 20, 2007 2:47 AMHow can I split storage scheme JBPM and general?
I tried to create different DataSource (two confiqs *-ds.xml with local-tx-datasource), but I got issues.
It is necessary for application to guarantee execution in single transaction (jbpm and general).
RDBMS Oracle10g, JDK 1.5.8, JBoss 4.2.0, Jbpm-3.2
What's the matter? Please, sorry my English.
Jbpm is deployed as EAR, with config:
... <service name="persistence"> <factory> <bean class="org.jbpm.persistence.jta.JtaDbPersistenceServiceFactory"/> <field name="isTransactionEnabled"><false/></field> </factory> </service> ...
FIRST
2007-06-20 10:01:35,625 WARN [org.hibernate.cfg.SettingsFactory] Could not obtain connection metadata org.jboss.util.NestedSQLException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f57218c:1154:4677a2d0:3c70 status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f57218c:1154:4677a2d0:3c70 status: ActionStatus.ABORT_ONLY >)) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94) at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69) at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292) at org.jbpm.persistence.db.DbPersistenceServiceFactory.getSessionFactory(DbPersistenceServiceFactory.java:91) at org.jbpm.persistence.jta.JtaDbPersistenceService.isCurrentJtaTransactionAvailable(JtaDbPersistenceService.java:37) at org.jbpm.persistence.jta.JtaDbPersistenceService.<init>(JtaDbPersistenceService.java:22) at org.jbpm.persistence.jta.JtaDbPersistenceServiceFactory.openService(JtaDbPersistenceServiceFactory.java:17) at org.jbpm.svc.Services.getService(Services.java:141) at org.jbpm.svc.Services.getPersistenceService(Services.java:180) at org.jbpm.JbpmContext.getPersistenceService(JbpmContext.java:628) at org.jbpm.JbpmContext.getGraphSession(JbpmContext.java:569) at org.jbpm.JbpmContext.newProcessInstance(JbpmContext.java:408) at com.rfc.security.scheme.actions.ActionCreateDoc.doSomething(ActionCreateDoc.java:26) at com.rfc.security.scheme.actions.PAction.execute(PAction.java:30) at com.rfc.ejb.security.SecurityMgrBean.executeAction(SecurityMgrBean.java:73) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) ... Caused by: org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f57218c:1154:4677a2d0:3c70 status: ActionStatus.ABORT_ONLY >) at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:343) at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:518) at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:399) at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88) ... 49 more Caused by: javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f57218c:1154:4677a2d0:3c70 status: ActionStatus.ABORT_ONLY > at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.checkEnlisted(TxConnectionManager.java:744) at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:577) at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:337) ... 53 more
-------------------------------------------------
SECOND
2007-06-20 10:01:38,843 ERROR [STDERR] org.hibernate.HibernateException: Unable to register cleanup Synchronization with TransactionManager at org.hibernate.context.JTASessionContext.currentSession(JTASessionContext.java:92) at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:544) at org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:103) at org.jbpm.persistence.db.DbPersistenceService.getGraphSession(DbPersistenceService.java:334) at org.jbpm.JbpmContext.getGraphSession(JbpmContext.java:571) at org.jbpm.JbpmContext.newProcessInstance(JbpmContext.java:408) at com.rfc.security.scheme.actions.ActionCreateDoc.doSomething(ActionCreateDoc.java:26) at com.rfc.security.scheme.actions.PAction.execute(PAction.java:30) at com.rfc.ejb.security.SecurityMgrBean.executeAction(SecurityMgrBean.java:73) ... 2007-06-20 10:01:38,921 ERROR [com.rfc.ejb.security.SecurityMgrBean] Unable to register cleanup Synchronization with TransactionManager org.hibernate.HibernateException: Unable to register cleanup Synchronization with TransactionManager at org.hibernate.context.JTASessionContext.currentSession(JTASessionContext.java:92) at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:544) at org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:103) at org.jbpm.persistence.db.DbPersistenceService.getGraphSession(DbPersistenceService.java:334) at org.jbpm.JbpmContext.getGraphSession(JbpmContext.java:571) at org.jbpm.JbpmContext.newProcessInstance(JbpmContext.java:408) at com.rfc.security.scheme.actions.ActionCreateDoc.doSomething(ActionCreateDoc.java:26) at com.rfc.security.scheme.actions.PAction.execute(PAction.java:30) at com.rfc.ejb.security.SecurityMgrBean.executeAction(SecurityMgrBean.java:73) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ...
1-th config:
...
<jndi-name>Oracle10jbpm</jndi-name>
<connection-url>jdbc:oracle:thin:@192.168.222.116:1521:ora10utf</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>jbpm</user-name>
...
2-th config:
...
<jndi-name>Oracle10db</jndi-name>
<connection-url>jdbc:oracle:thin:@192.168.222.116:1521:ora10utf</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>pilot</user-name>
...