Re: Confusing conflicts between OpenJPA and Postgresql

2014-03-26 Thread Rick Curtis
Do you have the property openjpa.jdbc.TransactionIsolation specified in
your persistence.xml? It *looks* like we'll only try to set the
transactionIsolation level if that property is not left to the default.

Thanks,
Rick


On Mon, Mar 24, 2014 at 10:56 AM, Vito testfor...@163.com wrote:


 Hi all,
 I'm recently doing some research with Apache ODE engine. I use Postgresql
 as its external database, openjpa as its ORM solution and bitronix as its
 transaction manager. The ODE workflow engine starts without any problem.
 But when I deploy process definition files into the engine, the exception
 came out. I paste the error content at the end of this email.
 I looked through the source code of
 org.apache.openjpa.lib.jdbc.DecoratingDataSource, and found that openjpa is
 almost definitely to meant to invoke the function of reseting transaction
 isolation level, which would be catched by Postgresql and return with an
 exception.
 Does that mean openjpa works poorly with Postgresql? Or who can tell me
 how to solve this problem.
 The error content is below:
 17:32:05,155 ERROR [ProcessStoreImpl] Error persisting deployment record
 for {http://sample.bpel.org/bpel/sample}longFlow-1; process will not be
 available after restart!
 openjpa-1.2.1-r752877:753278 nonfatal general error
 org.apache.openjpa.persistence.PersistenceException: Cannot change
 transaction isolation level in the middle of a transaction
 at
 org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4232)
 at
 org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4197)
 at
 org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
 at
 org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:88)
 at
 org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:64)
 at
 org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connect(JDBCStoreManager.java:930)
 at
 org.apache.openjpa.jdbc.kernel.JDBCStoreManager.getConnection(JDBCStoreManager.java:230)
 at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:371)
 at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:339)
 at
 org.apache.openjpa.jdbc.sql.LogicalUnion$UnionSelect.execute(LogicalUnion.java:420)
 at
 org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:230)
 at
 org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:220)
 at
 org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:206)
 at
 org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.open(SelectResultObjectProvider.java:94)
 at
 org.apache.openjpa.lib.rop.WindowResultList.init(WindowResultList.java:57)
 at
 org.apache.openjpa.jdbc.kernel.JDBCFetchConfigurationImpl.newResultList(JDBCFetchConfigurationImpl.java:235)
 at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1228)
 at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:990)
 at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:805)
 at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:775)
 at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:771)
 at
 org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:517)
 at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:255)
 at
 org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:294)
 at
 org.apache.ode.store.jpa.ConfStoreConnectionJpa.setVersion(ConfStoreConnectionJpa.java:76)
 at
 org.apache.ode.store.ProcessStoreImpl$2.call(ProcessStoreImpl.java:294)
 at
 org.apache.ode.store.ProcessStoreImpl$2.call(ProcessStoreImpl.java:264)
 at
 org.apache.ode.store.ProcessStoreImpl$Callable.call(ProcessStoreImpl.java:793)
 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: org.postgresql.util.PSQLException: Cannot change transaction
 isolation level in the middle of a transaction
 at
 org.postgresql.jdbc2.AbstractJdbc2Connection.setTransactionIsolation(AbstractJdbc2Connection.java:944)
 at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)
 at
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at
 bitronix.tm.resource.jdbc.BaseProxyHandlerClass.invoke(BaseProxyHandlerClass.java:64)
 at $Proxy5.setTransactionIsolation(Unknown Source)
 at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)
 at
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at
 

Confusing conflicts between OpenJPA and Postgresql

2014-03-24 Thread Vito
 
Hi all,
I'm recently doing some research with Apache ODE engine. I use Postgresql as 
its external database, openjpa as its ORM solution and bitronix as its 
transaction manager. The ODE workflow engine starts without any problem. But 
when I deploy process definition files into the engine, the exception came out. 
I paste the error content at the end of this email.
I looked through the source code of 
org.apache.openjpa.lib.jdbc.DecoratingDataSource, and found that openjpa is 
almost definitely to meant to invoke the function of reseting transaction 
isolation level, which would be catched by Postgresql and return with an 
exception.
Does that mean openjpa works poorly with Postgresql? Or who can tell me how to 
solve this problem.
The error content is below:
17:32:05,155 ERROR [ProcessStoreImpl] Error persisting deployment record for 
{http://sample.bpel.org/bpel/sample}longFlow-1; process will not be available 
after restart!
openjpa-1.2.1-r752877:753278 nonfatal general error 
org.apache.openjpa.persistence.PersistenceException: Cannot change transaction 
isolation level in the middle of a transaction
at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4232)
at 
org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4197)
at 
org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:88)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:64)
at 
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connect(JDBCStoreManager.java:930)
at 
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.getConnection(JDBCStoreManager.java:230)
at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:371)
at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:339)
at 
org.apache.openjpa.jdbc.sql.LogicalUnion$UnionSelect.execute(LogicalUnion.java:420)
at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:230)
at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:220)
at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:206)
at 
org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.open(SelectResultObjectProvider.java:94)
at 
org.apache.openjpa.lib.rop.WindowResultList.init(WindowResultList.java:57)
at 
org.apache.openjpa.jdbc.kernel.JDBCFetchConfigurationImpl.newResultList(JDBCFetchConfigurationImpl.java:235)
at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1228)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:990)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:805)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:775)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:771)
at 
org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:517)
at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:255)
at 
org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:294)
at 
org.apache.ode.store.jpa.ConfStoreConnectionJpa.setVersion(ConfStoreConnectionJpa.java:76)
at org.apache.ode.store.ProcessStoreImpl$2.call(ProcessStoreImpl.java:294)
at org.apache.ode.store.ProcessStoreImpl$2.call(ProcessStoreImpl.java:264)
at 
org.apache.ode.store.ProcessStoreImpl$Callable.call(ProcessStoreImpl.java:793)
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: org.postgresql.util.PSQLException: Cannot change transaction 
isolation level in the middle of a transaction
at 
org.postgresql.jdbc2.AbstractJdbc2Connection.setTransactionIsolation(AbstractJdbc2Connection.java:944)
at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at 
bitronix.tm.resource.jdbc.BaseProxyHandlerClass.invoke(BaseProxyHandlerClass.java:64)
at $Proxy5.setTransactionIsolation(Unknown Source)
at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at 
bitronix.tm.resource.jdbc.BaseProxyHandlerClass.invoke(BaseProxyHandlerClass.java:64)
at $Proxy7.setTransactionIsolation(Unknown Source)
at 
org.apache.openjpa.lib.jdbc.DelegatingConnection.setTransactionIsolation(DelegatingConnection.java:257)
at