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
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev