[ 
https://issues.apache.org/jira/browse/OPENJPA-2212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13294566#comment-13294566
 ] 

Albert Lee commented on OPENJPA-2212:
-------------------------------------

>>> Very strange thing is the code exception catch block doesn't catch this 
>>> exception at all and this happens only in stage environment and not in any 
>>> lower environment. 

I assume the exception you mentioned is "java.sql.SQLException: ORA-00001: 
unique constraint (FIS.SYS_C008294) violated"

What catch block are you referring?  Some openjpa code try/catch ? Or 
application try/catch?

What do you mean by "lower environment"? Unit test environment?

>From the stack, it indicates you are running WebSphere, using EJB calling out 
>to JPA function.  The JPA appl uses "operation order" update manager access 
>data in Oracle DB. Based on this info, the operation order update manager will 
>honor the exact order of JPA requests from the business logics. If there is 
>any constraint violation imposed by the database, the applications needs to be 
>aware of the configuration. 

To diagnose the problem, you may want to enable SQL=TRACE to see the SQL 
statements being submitted to the database and examinate what is the cause of 
the constraint violation.

                
> Exception caught from before_completion synchronization operation
> -----------------------------------------------------------------
>
>                 Key: OPENJPA-2212
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2212
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jpa
>    Affects Versions: 1.0.3
>         Environment: Stage and Prod
>            Reporter: RAHEEM JIWANI
>            Priority: Critical
>
> Looks like this issue is an OpenJPA issue. Very strange thing is the code 
> exception catch block doesn't catch this exception at all and this happens 
> only in stage environment and not in any lower environment. Though QA and 
> Stage have exact same code base and they both get data from same source.
> FROM the exception it looks like a duplicate primary key and its trying to 
> insert the same record twice, is it something with flush operation in openjpa 
> ? multithreading ? or something else ? 
> its definately not data issue, coz it doesn't happen in QA with same data 
> 00000287 RegisteredSyn E   WTRN0074E: Exception caught from before_completion 
> synchronization operation: <openjpa-1.0.3-SNAPSHOT-r420667:646455 nonfatal 
> general error> org.apache.openjpa.persistence.PersistenceException: 
> ORA-00001: unique constraint (FIS.SYS_C008294) violated
> FailedObject: prepstmnt 454695706 INSERT INTO TABLENAME COLUMNS (X,Y,Z ? , ? 
> , ?) [org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement]
> [org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement]
>       at 
> org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3949)
>       at 
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:97)
>       at 
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:67)
>       at 
> com.ibm.ws.persistence.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:170)
>       at 
> org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:105)
>       at 
> com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:93)
>       at 
> com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:75)
>       at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:514)
>       at 
> org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
>       at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1955)
>       at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1853)
>       at 
> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1771)
>       at 
> com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:66)
>       at 
> com.ibm.ws.Transaction.JTA.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:242)
>       at 
> com.ibm.ws.Transaction.JTA.TransactionImpl.prePrepare(TransactionImpl.java:2404)
>       at 
> com.ibm.ws.Transaction.JTA.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:1637)
>       at 
> com.ibm.ws.Transaction.JTA.TransactionImpl.processCommit(TransactionImpl.java:1608)
>       at 
> com.ibm.ws.Transaction.JTA.TransactionImpl.commit(TransactionImpl.java:1543)
>       at 
> com.ibm.ws.Transaction.JTA.TranManagerImpl.commit(TranManagerImpl.java:240)
>       at 
> com.ibm.ws.Transaction.JTA.TranManagerSet.commit(TranManagerSet.java:164)
>       at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:782)
>       at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:206)
>       at 
> com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:581)
>       at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4311)
>       at 
> com.ibm.ejs.container.MessageEndpointHandler.afterDelivery(MessageEndpointHandler.java:1440)
>       at 
> com.ibm.ejs.container.MessageEndpointHandler.invokeMessageEndpointMethod(MessageEndpointHandler.java:801)
>       at 
> com.ibm.ejs.container.MessageEndpointHandler.invoke(MessageEndpointHandler.java:762)
>       at $Proxy54.afterDelivery(Unknown Source)
>       at 
> com.ibm.ws.sib.ra.inbound.impl.SibRaTransactionalDispatcher.afterDelivery(SibRaTransactionalDispatcher.java:469)
>       at 
> com.ibm.ws.sib.ra.inbound.impl.SibRaDispatcher.dispatch(SibRaDispatcher.java:780)
>       at 
> com.ibm.ws.sib.ra.inbound.impl.SibRaSingleProcessListener$SibRaWork.run(SibRaSingleProcessListener.java:584)
>       at com.ibm.ejs.j2c.work.WorkProxy.run(WorkProxy.java:419)
>       at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473)
> Caused by: com.ibm.websphere.ce.cm.DuplicateKeyException: ORA-00001: unique 
> constraint (FIS.SYS_C008294) violated
>       at sun.reflect.GeneratedConstructorAccessor39.newInstance(Unknown 
> Source)
>       at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>       at java.lang.reflect.Constructor.newInstance(Constructor.java:522)
>       at 
> com.ibm.websphere.rsadapter.GenericDataStoreHelper.mapExceptionHelper(GenericDataStoreHelper.java:523)
>       at 
> com.ibm.websphere.rsadapter.GenericDataStoreHelper.mapException(GenericDataStoreHelper.java:578)
>       at 
> com.ibm.ws.rsadapter.jdbc.WSJdbcUtil.mapException(WSJdbcUtil.java:909)
>       at 
> com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:626)
>       at 
> org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
>       at 
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:856)
>       at 
> org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
>       at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1363)
>       at 
> com.ibm.ws.persistence.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:112)
>       ... 29 more
> NestedThrowables:
> java.sql.SQLException: ORA-00001: unique constraint (FIS.SYS_C008294) violated
>       at 
> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
>       at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
>       at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
>       at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
>       at 
> oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
>       at 
> oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
>       at 
> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
>       at 
> oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3316)
>       at 
> oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3400)
>       at 
> com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:948)
>       at 
> com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:615)
>       at 
> org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
>       at 
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:856)
>       at 
> org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
>       at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1363)
>       at 
> com.ibm.ws.persistence.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:112)
>       at 
> org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:105)
>       at 
> com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:93)
>       at 
> com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:75)
>       at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:514)
>       at 
> org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
>       at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1955)
>       at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1853)
>       at 
> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1771)
>       at 
> com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:66)
>       at 
> com.ibm.ws.Transaction.JTA.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:242)
>       at 
> com.ibm.ws.Transaction.JTA.TransactionImpl.prePrepare(TransactionImpl.java:2404)
>       at 
> com.ibm.ws.Transaction.JTA.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:1637)
>       at 
> com.ibm.ws.Transaction.JTA.TransactionImpl.processCommit(TransactionImpl.java:1608)
>       at 
> com.ibm.ws.Transaction.JTA.TransactionImpl.commit(TransactionImpl.java:1543)
>       at 
> com.ibm.ws.Transaction.JTA.TranManagerImpl.commit(TranManagerImpl.java:240)
>       at 
> com.ibm.ws.Transaction.JTA.TranManagerSet.commit(TranManagerSet.java:164)
>       at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:782)
>       at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:206)
>       at 
> com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:581)
>       at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4311)
>       at 
> com.ibm.ejs.container.MessageEndpointHandler.afterDelivery(MessageEndpointHandler.java:1440)
>       at 
> com.ibm.ejs.container.MessageEndpointHandler.invokeMessageEndpointMethod(MessageEndpointHandler.java:801)
>       at 
> com.ibm.ejs.container.MessageEndpointHandler.invoke(MessageEndpointHandler.java:762)
>       at $Proxy54.afterDelivery(Unknown Source)
>       at 
> com.ibm.ws.sib.ra.inbound.impl.SibRaTransactionalDispatcher.afterDelivery(SibRaTransactionalDispatcher.java:469)
>       at 
> com.ibm.ws.sib.ra.inbound.impl.SibRaDispatcher.dispatch(SibRaDispatcher.java:780)
>       at 
> com.ibm.ws.sib.ra.inbound.impl.SibRaSingleProcessListener$SibRaWork.run(SibRaSingleProcessListener.java:584)
>       at com.ibm.ejs.j2c.work.WorkProxy.run(WorkProxy.java:419)
>       at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473)
> ---- Begin backtrace for Nested Throwables
> java.sql.SQLException: ORA-00001: unique constraint (FIS.SYS_C008294) violated
>       at 
> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
>       at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
>       at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
>       at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
>       at 
> oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
>       at 
> oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
>       at 
> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
>       at 
> oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3316)
>       at 
> oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3400)
>       at 
> com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:948)
>       at 
> com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:615)
>       at 
> org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
>       at 
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:856)
>       at 
> org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
>       at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1363)
>       at 
> com.ibm.ws.persistence.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:112)
>       at 
> org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:105)
>       at 
> com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:93)
>       at 
> com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:75)
>       at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:514)
>       at 
> org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
>       at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1955)
>       at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1853)
>       at 
> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1771)
>       at 
> com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:66)
>       at 
> com.ibm.ws.Transaction.JTA.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:242)
>       at 
> com.ibm.ws.Transaction.JTA.TransactionImpl.prePrepare(TransactionImpl.java:2404)
>       at 
> com.ibm.ws.Transaction.JTA.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:1637)
>       at 
> com.ibm.ws.Transaction.JTA.TransactionImpl.processCommit(TransactionImpl.java:1608)
>       at 
> com.ibm.ws.Transaction.JTA.TransactionImpl.commit(TransactionImpl.java:1543)
>       at 
> com.ibm.ws.Transaction.JTA.TranManagerImpl.commit(TranManagerImpl.java:240)
>       at 
> com.ibm.ws.Transaction.JTA.TranManagerSet.commit(TranManagerSet.java:164)
>       at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:782)
>       at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:206)
>       at 
> com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:581)
>       at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4311)
>       at 
> com.ibm.ejs.container.MessageEndpointHandler.afterDelivery(MessageEndpointHandler.java:1440)
>       at 
> com.ibm.ejs.container.MessageEndpointHandler.invokeMessageEndpointMethod(MessageEndpointHandler.java:801)
>       at 
> com.ibm.ejs.container.MessageEndpointHandler.invoke(MessageEndpointHandler.java:762)
>       at $Proxy54.afterDelivery(Unknown Source)
>       at 
> com.ibm.ws.sib.ra.inbound.impl.SibRaTransactionalDispatcher.afterDelivery(SibRaTransactionalDispatcher.java:469)
>       at 
> com.ibm.ws.sib.ra.inbound.impl.SibRaDispatcher.dispatch(SibRaDispatcher.java:780)
>       at 
> com.ibm.ws.sib.ra.inbound.impl.SibRaSingleProcessListener$SibRaWork.run(SibRaSingleProcessListener.java:584)
>       at com.ibm.ejs.j2c.work.WorkProxy.run(WorkProxy.java:419)
>       at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to