Hi,

When we tried to use the Ndata source in BPS we encountered with following
error[2]. Already there has been an issue also logged in Jira sometime ago
[1].

This error occurs when the user tried to upload a bpel package ( or Human
Task ) for the first time. When I investigated the issue I made out
following findings.


The flow of the operations related to committing a package in OpenJPA can
be listed like this.


   1. Initially OpenJPA inserts a row with sequence_Id zero and
   sequence_value one in to the OpenJPA_SEQUENCE_TABLE index. ( This operation
   is done to build the index structure for the first time )
   2. There after OpenJPA closes the connection. Just before the connection
   getting added to connection pool, ConnectionRollbackOnReturnInterceptor
   invokes the rollback operation since defaultAutoCommit variable is not
   set in the bps-datasource.xml. Therefore the row inserted to the
   OpenJPA_SEQUENCE_TABLE got cleared out.
   3. Then OpenJPA tries to update the value of the sequence_value with a
   generated id. But since the cached row has been rolled back by the
   Interceptor, OpenJPA throws an error and aborts the commit operation.


How can this issue can be sorted? Are there Any possible workarounds for
this?

        [1] https://wso2.org/jira/browse/BPS-185

        [2]

              [2014-07-31 12:45:58,630] WARN {Transaction} - Unexpected
exception from beforeCompletion; transaction will roll back

<openjpa-2.2.0-wso2v1-r128166:129108 nonfatal user error>
org.apache.openjpa.persistence.InvalidStateException: Attempt to commit a
null javax.transaction.Transaction. Some application servers set the
transaction to null if a rollback occurs.

at
org.apache.openjpa.kernel.BrokerImpl.setRollbackOnlyInternal(BrokerImpl.java:1654)


at
org.apache.openjpa.kernel.BrokerImpl.setRollbackOnly(BrokerImpl.java:1640)

at
org.apache.openjpa.kernel.DelegatingBroker.setRollbackOnly(DelegatingBroker.java:981)


at
org.apache.openjpa.persistence.EntityManagerImpl.setRollbackOnly(EntityManagerImpl.java:631)


at
org.apache.openjpa.persistence.PersistenceExceptions$2.translate(PersistenceExceptions.java:77)


at
org.apache.openjpa.kernel.BrokerImpl.translateManagedCompletionException(BrokerImpl.java:2060)


at
org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1994)

at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:514)


at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:498)


at
org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400)


at
org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:257)


at
org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:238)


at
org.apache.ode.store.jpa.DbConfStoreConnectionFactory.commitTransaction(DbConfStoreConnectionFactory.java:86)


at
org.wso2.carbon.bpel.core.ode.integration.store.ProcessStoreImpl$Callable.call(ProcessStoreImpl.java:735)


at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

at java.util.concurrent.FutureTask.run(FutureTask.java:138)

at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)


at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)


at java.lang.Thread.run(Thread.java:662)

[2014-07-31 12:45:58,631] ERROR
{org.wso2.carbon.bpel.core.ode.integration.store.ProcessStoreImpl} -
DbError

java.lang.RuntimeException: java.lang.IllegalStateException: No transaction
associated with current thread

at
org.apache.ode.store.jpa.DbConfStoreConnectionFactory.rollbackTransaction(DbConfStoreConnectionFactory.java:97)


at
org.wso2.carbon.bpel.core.ode.integration.store.ProcessStoreImpl$Callable.call(ProcessStoreImpl.java:741)


at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

at java.util.concurrent.FutureTask.run(FutureTask.java:138)

at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)


at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)


at java.lang.Thread.run(Thread.java:662)

Caused by: java.lang.IllegalStateException: No transaction associated with
current thread

at
org.apache.geronimo.transaction.manager.TransactionManagerImpl.rollback(TransactionManagerImpl.java:247)


at
org.apache.ode.store.jpa.DbConfStoreConnectionFactory.rollbackTransaction(DbConfStoreConnectionFactory.java:95)


... 6 more

[2014-07-31 12:45:58,631] ERROR
{org.wso2.carbon.bpel.core.ode.integration.store.TenantProcessStoreImpl} -
BPEL Package deployment failed at ODE layer. Possible cause: DbError

org.apache.ode.bpel.iapi.ContextException: DbError

at
org.wso2.carbon.bpel.core.ode.integration.store.ProcessStoreImpl.exec(ProcessStoreImpl.java:771)


at
org.wso2.carbon.bpel.core.ode.integration.store.ProcessStoreImpl.onBPELPackageDeployment(ProcessStoreImpl.java:328)
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to