Hi,
I'm facing a problem with WebLogic 10.3.2. and openjpa1.1.1.
An entity manager call that should return a JPA bean by its primary key
fails with an underlying db2 error.
Stack:
javax.ejb.EJBException: EJB Exception: :
<openjpa-1.1.1-SNAPSHOT-r422266:807362 nonfatal general error>
org.apache.openjpa.persistence.PersistenceException: [OWLS][DB2 JDBC
Driver][DB2]CURSOR C03 NOT IN PREPARED STATE {prepstmnt 848 SELECT
t0.version, t0.FAILURE_COUNT, t0.RUNNING_SINCE, t0.state FROM DB.Task t0
WHERE t0.name = ? optimize for 1 row [params=(String) BuBaQuittung]}
[code=-514, state=26501]
at
org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4207)
at
org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4171)
at
org.apache.openjpa.jdbc.sql.DB2Dictionary.newStoreException(DB2Dictionary.java:506)
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.initialize(JDBCStoreManager.java:268)
at
org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
at
org.apache.openjpa.datacache.DataCacheStoreManager.initialize(DataCacheStoreManager.java:336)
at
org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
at
org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:901)
at kodo.kernel.KodoBroker.initialize(KodoBroker.java:65)
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:859)
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:776)
at kodo.kernel.KodoBroker.find(KodoBroker.java:232)
at
org.apache.openjpa.kernel.DelegatingBroker.find(DelegatingBroker.java:183)
at
org.apache.openjpa.persistence.EntityManagerImpl.find(EntityManagerImpl.java:452)
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:597)
at
weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:93)
at
weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:91)
at
weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:80)
at
weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:26)
at $Proxy65.find(Unknown Source)
at
com.ibm.lpm.task.ejb.TaskManager.findOrCreateTask(TaskManager.java:51)
at com.ibm.lpm.task.ejb.TaskManager.finishTask(TaskManager.java:42)
This problem regularly occurs at customer site, but not on my systems.
Scenario:
This particular call happens in a catch block of a session bean in order to
perform some database clean ups. The session bean is running in a problem
resulting in an exception that I catch explicitly within the bean. Once the
clean ups are performed, I throw a new EJBException.
Although I can't prove it, I have the impression that my problem relates to
the forthcoming rollback call of the container. In my understanding this
should happen when the session bean method is exited by an exception. I
looks like the rollback seems to happen earlier, resulting in some
invalidation of the underlying prepared statements. But maybe I am totally
wrong.
Kind regards
Matthias
--
View this message in context:
http://openjpa.208410.n2.nabble.com/cursor-prepared-statement-problem-with-WebLogic-10-3-2-tp5724027p5724027.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.