You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Martin Panuska (JIRA)" <ji...@apache.org> on 2011/03/16 12:03:29 UTC
[jira] Created: (OPENJPA-1961) Batching problem
Batching problem
----------------
Key: OPENJPA-1961
URL: https://issues.apache.org/jira/browse/OPENJPA-1961
Project: OpenJPA
Issue Type: Bug
Components: jdbc
Affects Versions: 1.2.1
Environment: JPA version: JPA 1.2.1
App. server: Websphere 7
Database: Oracle DB
Reporter: Martin Panuska
Code fragment:
Entities configuration:
public class Parent {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PARENT_SEQ")
private long id;
@OneToMany(
mappedBy = "parent",
fetch = FetchType.EAGER,
cascade = {CascadeType.PERSIST}
)
private List<Child> children;
.......
public class Child {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CHILD_SEQ")
private long id;
@ManyToOne
@JoinColumn(name = "parent_id", referencedColumnName = "ID")
private Parent parent;
....
Bean code:
@Stateless
public class ParentBean implements ParentBeanLocal {
public ParentBean() {
}
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void createParent(Parent parent){
EntityManager em = null;
try{
em = Finder.getFactory().createEntityManager();
em.persist(parent);
}finally{
closeEm(em);
}
}
When I call this bean from servlet multiple times, following exception occurs:
[3/16/11 11:59:05:687 CET] 00000015 SystemOut O 0 TutorialEJB INFO [WebContainer : 0] openjpa.Runtime - Starting OpenJPA 1.2.1-SNAPSHOT
[3/16/11 11:59:05:859 CET] 00000015 SystemOut O 172 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 1764976947> executing prepstmnt 1796631318
SELECT sogar1.SGBASKET_SEQ.NEXTVAL
FROM DUAL
[3/16/11 11:59:05:875 CET] 00000015 SystemOut O 188 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 1764976947> [16 ms] spent
[3/16/11 11:59:05:875 CET] 00000015 SystemOut O 188 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 270143514> executing prepstmnt 301797885
SELECT sogar1.SGBASKET_SEQ.NEXTVAL
FROM DUAL
[3/16/11 11:59:05:890 CET] 00000015 SystemOut O 203 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 270143514> [15 ms] spent
[3/16/11 11:59:05:890 CET] 00000015 SystemOut O 203 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> executing prepstmnt 761736551
INSERT INTO sogar1.MP_CHILD (ID, parent_id)
VALUES (?, ?)
[params=(long) 906, (long) 905]
[3/16/11 11:59:05:921 CET] 00000015 SystemOut O 234 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> [31 ms] spent
[3/16/11 11:59:05:921 CET] 00000015 SystemOut O 234 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> executing prepstmnt 1679844384
INSERT INTO sogar1.MP_CHILD (ID, parent_id)
VALUES (?, ?)
[params=(long) 906, (long) 905]
[3/16/11 11:59:05:937 CET] 00000015 SystemOut O 250 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> [16 ms] spent
[3/16/11 11:59:05:937 CET] 00000015 RegisteredSyn E WTRN0074E: Exception caught from before_completion synchronization operation: <openjpa-1.2.1-SNAPSHOT-r422266:686069 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred.
at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2163)
at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
Caused by: <openjpa-1.2.1-SNAPSHOT-r422266:686069 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
{prepstmnt 761736551
INSERT INTO sogar1.MP_CHILD (ID, parent_id)
VALUES (?, ?)
[params=(long) 906, (long) 905]} [code=2291, state=23000]
FailedObject: com.martin.jpa.entity.cascade.Child@62e062e0
at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4231)
at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4196)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:72)
at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:131)
at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.batchOrExecuteRow(BatchingPreparedStatementManagerImpl.java:102)
at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:86)
at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
... 44 more
Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
{prepstmnt 761736551
INSERT INTO sogar1.MP_CHILD (ID, parent_id)
VALUES (?, ?)
[params=(long) 906, (long) 905]} [code=2291, state=23000]
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866)
at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
... 55 more
NestedThrowables:
<openjpa-1.2.1-SNAPSHOT-r422266:686069 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
FailedObject: prepstmnt 1679844384
INSERT INTO sogar1.MP_CHILD (ID, parent_id)
VALUES (?, ?)
[org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement]
at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4231)
at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4196)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:72)
at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(BatchingPreparedStatementManagerImpl.java:195)
at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:63)
at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
Caused by: java.sql.SQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
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:1169)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:1097)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:738)
at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:864)
at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushSingleRow(BatchingPreparedStatementManagerImpl.java:217)
at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(BatchingPreparedStatementManagerImpl.java:156)
... 49 more
---- Begin backtrace for Nested Throwables
java.sql.SQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
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:1169)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:1097)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:738)
at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:864)
at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.batchOrExecuteRow(BatchingPreparedStatementManagerImpl.java:102)
at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:86)
at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
[3/16/11 11:59:05:968 CET] 00000015 servlet E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: Uncaught exception created in one of the service methods of the servlet TestServlet in application TutorialEJBEAR. Exception created : javax.ejb.EJBTransactionRolledbackException:
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:942)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
[3/16/11 11:59:05:968 CET] 00000015 LocalTranCoor E WLTC0017E: Resources rolled back due to setRollbackOnly() being called.
[3/16/11 11:59:05:984 CET] 00000015 webapp E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[TestServlet]: javax.ejb.EJBTransactionRolledbackException:
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:942)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
Problem disappears when batching is disabled:
<property name="openjpa.jdbc.UpdateManager" value="com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager(batchLimit=0)"/>
I'm not 100% sure if this is problem in Open JPA or Webspehere extension of JPA.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (OPENJPA-1961) Batching problem
Posted by "Michael Dick (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OPENJPA-1961?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Dick resolved OPENJPA-1961.
-----------------------------------
Resolution: Won't Fix
Technically this should probably be addressed by WebSphere support, but I think you'll find that they'll tell you that the problem is in the OperationOrderUpdateManager class. You'll want to use the WebSphere equivalent of a ConstraintUpdateManager.
Alternatively you could use the OpenJPA batch support. If the problem persists the property from my previous update please reopen the JIRA.
> Batching problem
> ----------------
>
> Key: OPENJPA-1961
> URL: https://issues.apache.org/jira/browse/OPENJPA-1961
> Project: OpenJPA
> Issue Type: Bug
> Components: jdbc
> Affects Versions: 1.2.1
> Environment: JPA version: JPA 1.2.1
> App. server: Websphere 7
> Database: Oracle DB
> Reporter: Martin Panuska
> Assignee: Michael Dick
>
> Code fragment:
> Entities configuration:
> public class Parent {
> @Id
> @Column(name = "ID")
> @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PARENT_SEQ")
> private long id;
>
> @OneToMany(
> mappedBy = "parent",
> fetch = FetchType.EAGER,
> cascade = {CascadeType.PERSIST}
> )
> private List<Child> children;
> .......
> public class Child {
> @Id
> @Column(name = "ID")
> @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CHILD_SEQ")
> private long id;
>
> @ManyToOne
> @JoinColumn(name = "parent_id", referencedColumnName = "ID")
> private Parent parent;
> ....
> Bean code:
> @Stateless
> public class ParentBean implements ParentBeanLocal {
> public ParentBean() {
> }
> @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
> public void createParent(Parent parent){
> EntityManager em = null;
> try{
> em = Finder.getFactory().createEntityManager();
> em.persist(parent);
> }finally{
> closeEm(em);
> }
> }
> When I call this bean from servlet multiple times, following exception occurs:
> [3/16/11 11:59:05:687 CET] 00000015 SystemOut O 0 TutorialEJB INFO [WebContainer : 0] openjpa.Runtime - Starting OpenJPA 1.2.1-SNAPSHOT
> [3/16/11 11:59:05:859 CET] 00000015 SystemOut O 172 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 1764976947> executing prepstmnt 1796631318
> SELECT sogar1.SGBASKET_SEQ.NEXTVAL
> FROM DUAL
> [3/16/11 11:59:05:875 CET] 00000015 SystemOut O 188 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 1764976947> [16 ms] spent
> [3/16/11 11:59:05:875 CET] 00000015 SystemOut O 188 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 270143514> executing prepstmnt 301797885
> SELECT sogar1.SGBASKET_SEQ.NEXTVAL
> FROM DUAL
> [3/16/11 11:59:05:890 CET] 00000015 SystemOut O 203 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 270143514> [15 ms] spent
> [3/16/11 11:59:05:890 CET] 00000015 SystemOut O 203 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> executing prepstmnt 761736551
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]
> [3/16/11 11:59:05:921 CET] 00000015 SystemOut O 234 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> [31 ms] spent
> [3/16/11 11:59:05:921 CET] 00000015 SystemOut O 234 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> executing prepstmnt 1679844384
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]
> [3/16/11 11:59:05:937 CET] 00000015 SystemOut O 250 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> [16 ms] spent
> [3/16/11 11:59:05:937 CET] 00000015 RegisteredSyn E WTRN0074E: Exception caught from before_completion synchronization operation: <openjpa-1.2.1-SNAPSHOT-r422266:686069 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred.
> at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2163)
> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
> at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
> at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
> at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
> at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
> at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
> at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
> at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
> at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
> at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
> at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> Caused by: <openjpa-1.2.1-SNAPSHOT-r422266:686069 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> {prepstmnt 761736551
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]} [code=2291, state=23000]
> FailedObject: com.martin.jpa.entity.cascade.Child@62e062e0
> at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4231)
> at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4196)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:72)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:131)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.batchOrExecuteRow(BatchingPreparedStatementManagerImpl.java:102)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:86)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
> at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
> at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
> ... 44 more
> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> {prepstmnt 761736551
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]} [code=2291, state=23000]
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
> ... 55 more
> NestedThrowables:
> <openjpa-1.2.1-SNAPSHOT-r422266:686069 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> FailedObject: prepstmnt 1679844384
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement]
> at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4231)
> at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4196)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:72)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(BatchingPreparedStatementManagerImpl.java:195)
> at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:63)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
> at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
> at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
> at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
> at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
> at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
> at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
> at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
> at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
> at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
> at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
> at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> Caused by: java.sql.SQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> 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:1169)
> at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
> at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:1097)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:738)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:864)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushSingleRow(BatchingPreparedStatementManagerImpl.java:217)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(BatchingPreparedStatementManagerImpl.java:156)
> ... 49 more
> ---- Begin backtrace for Nested Throwables
> java.sql.SQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> 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:1169)
> at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
> at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:1097)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:738)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:864)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.batchOrExecuteRow(BatchingPreparedStatementManagerImpl.java:102)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:86)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
> at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
> at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
> at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
> at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
> at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
> at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
> at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
> at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
> at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
> at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
> at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
> at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> [3/16/11 11:59:05:968 CET] 00000015 servlet E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: Uncaught exception created in one of the service methods of the servlet TestServlet in application TutorialEJBEAR. Exception created : javax.ejb.EJBTransactionRolledbackException:
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:942)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> [3/16/11 11:59:05:968 CET] 00000015 LocalTranCoor E WLTC0017E: Resources rolled back due to setRollbackOnly() being called.
> [3/16/11 11:59:05:984 CET] 00000015 webapp E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[TestServlet]: javax.ejb.EJBTransactionRolledbackException:
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:942)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> Problem disappears when batching is disabled:
> <property name="openjpa.jdbc.UpdateManager" value="com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager(batchLimit=0)"/>
> I'm not 100% sure if this is problem in Open JPA or Webspehere extension of JPA.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (OPENJPA-1961) Batching problem
Posted by "Martin Panuska (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OPENJPA-1961?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13007946#comment-13007946 ]
Martin Panuska commented on OPENJPA-1961:
-----------------------------------------
Hello,
pls find my properties bellow.
<properties>
<property name="openjpa.Log" value="File=stdout, DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=TRACE, DataCache=INFO, Enhance=TRACE, Query=TRACE"/>
<property name="openjpa.ConnectionFactoryProperties" value="PrettyPrint=true, PrettyPrintLineLength=72"/>
<property name="openjpa.jdbc.Schema" value="sogar1"/>
<!-- <property name="openjpa.jdbc.DBDictionary" value="NextSequenceQuery="SELECT NEXT VALUE FOR {0} FROM sysibm.sysdummy1""/>-->
<property name="openjpa.jdbc.UpdateManager" value="com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager(batchLimit=0)"/>
<!-- <property name="openjpa.jdbc.DBDictionary" value="oracle(defaultBatchLimit=0)"/>-->
</properties>
> Batching problem
> ----------------
>
> Key: OPENJPA-1961
> URL: https://issues.apache.org/jira/browse/OPENJPA-1961
> Project: OpenJPA
> Issue Type: Bug
> Components: jdbc
> Affects Versions: 1.2.1
> Environment: JPA version: JPA 1.2.1
> App. server: Websphere 7
> Database: Oracle DB
> Reporter: Martin Panuska
> Assignee: Michael Dick
>
> Code fragment:
> Entities configuration:
> public class Parent {
> @Id
> @Column(name = "ID")
> @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PARENT_SEQ")
> private long id;
>
> @OneToMany(
> mappedBy = "parent",
> fetch = FetchType.EAGER,
> cascade = {CascadeType.PERSIST}
> )
> private List<Child> children;
> .......
> public class Child {
> @Id
> @Column(name = "ID")
> @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CHILD_SEQ")
> private long id;
>
> @ManyToOne
> @JoinColumn(name = "parent_id", referencedColumnName = "ID")
> private Parent parent;
> ....
> Bean code:
> @Stateless
> public class ParentBean implements ParentBeanLocal {
> public ParentBean() {
> }
> @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
> public void createParent(Parent parent){
> EntityManager em = null;
> try{
> em = Finder.getFactory().createEntityManager();
> em.persist(parent);
> }finally{
> closeEm(em);
> }
> }
> When I call this bean from servlet multiple times, following exception occurs:
> [3/16/11 11:59:05:687 CET] 00000015 SystemOut O 0 TutorialEJB INFO [WebContainer : 0] openjpa.Runtime - Starting OpenJPA 1.2.1-SNAPSHOT
> [3/16/11 11:59:05:859 CET] 00000015 SystemOut O 172 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 1764976947> executing prepstmnt 1796631318
> SELECT sogar1.SGBASKET_SEQ.NEXTVAL
> FROM DUAL
> [3/16/11 11:59:05:875 CET] 00000015 SystemOut O 188 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 1764976947> [16 ms] spent
> [3/16/11 11:59:05:875 CET] 00000015 SystemOut O 188 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 270143514> executing prepstmnt 301797885
> SELECT sogar1.SGBASKET_SEQ.NEXTVAL
> FROM DUAL
> [3/16/11 11:59:05:890 CET] 00000015 SystemOut O 203 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 270143514> [15 ms] spent
> [3/16/11 11:59:05:890 CET] 00000015 SystemOut O 203 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> executing prepstmnt 761736551
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]
> [3/16/11 11:59:05:921 CET] 00000015 SystemOut O 234 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> [31 ms] spent
> [3/16/11 11:59:05:921 CET] 00000015 SystemOut O 234 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> executing prepstmnt 1679844384
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]
> [3/16/11 11:59:05:937 CET] 00000015 SystemOut O 250 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> [16 ms] spent
> [3/16/11 11:59:05:937 CET] 00000015 RegisteredSyn E WTRN0074E: Exception caught from before_completion synchronization operation: <openjpa-1.2.1-SNAPSHOT-r422266:686069 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred.
> at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2163)
> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
> at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
> at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
> at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
> at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
> at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
> at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
> at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
> at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
> at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
> at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> Caused by: <openjpa-1.2.1-SNAPSHOT-r422266:686069 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> {prepstmnt 761736551
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]} [code=2291, state=23000]
> FailedObject: com.martin.jpa.entity.cascade.Child@62e062e0
> at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4231)
> at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4196)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:72)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:131)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.batchOrExecuteRow(BatchingPreparedStatementManagerImpl.java:102)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:86)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
> at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
> at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
> ... 44 more
> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> {prepstmnt 761736551
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]} [code=2291, state=23000]
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
> ... 55 more
> NestedThrowables:
> <openjpa-1.2.1-SNAPSHOT-r422266:686069 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> FailedObject: prepstmnt 1679844384
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement]
> at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4231)
> at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4196)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:72)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(BatchingPreparedStatementManagerImpl.java:195)
> at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:63)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
> at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
> at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
> at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
> at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
> at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
> at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
> at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
> at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
> at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
> at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
> at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> Caused by: java.sql.SQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> 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:1169)
> at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
> at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:1097)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:738)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:864)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushSingleRow(BatchingPreparedStatementManagerImpl.java:217)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(BatchingPreparedStatementManagerImpl.java:156)
> ... 49 more
> ---- Begin backtrace for Nested Throwables
> java.sql.SQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> 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:1169)
> at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
> at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:1097)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:738)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:864)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.batchOrExecuteRow(BatchingPreparedStatementManagerImpl.java:102)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:86)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
> at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
> at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
> at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
> at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
> at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
> at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
> at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
> at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
> at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
> at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
> at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
> at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> [3/16/11 11:59:05:968 CET] 00000015 servlet E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: Uncaught exception created in one of the service methods of the servlet TestServlet in application TutorialEJBEAR. Exception created : javax.ejb.EJBTransactionRolledbackException:
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:942)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> [3/16/11 11:59:05:968 CET] 00000015 LocalTranCoor E WLTC0017E: Resources rolled back due to setRollbackOnly() being called.
> [3/16/11 11:59:05:984 CET] 00000015 webapp E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[TestServlet]: javax.ejb.EJBTransactionRolledbackException:
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:942)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> Problem disappears when batching is disabled:
> <property name="openjpa.jdbc.UpdateManager" value="com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager(batchLimit=0)"/>
> I'm not 100% sure if this is problem in Open JPA or Webspehere extension of JPA.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Assigned: (OPENJPA-1961) Batching problem
Posted by "Michael Dick (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OPENJPA-1961?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Dick reassigned OPENJPA-1961:
-------------------------------------
Assignee: Michael Dick
> Batching problem
> ----------------
>
> Key: OPENJPA-1961
> URL: https://issues.apache.org/jira/browse/OPENJPA-1961
> Project: OpenJPA
> Issue Type: Bug
> Components: jdbc
> Affects Versions: 1.2.1
> Environment: JPA version: JPA 1.2.1
> App. server: Websphere 7
> Database: Oracle DB
> Reporter: Martin Panuska
> Assignee: Michael Dick
>
> Code fragment:
> Entities configuration:
> public class Parent {
> @Id
> @Column(name = "ID")
> @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PARENT_SEQ")
> private long id;
>
> @OneToMany(
> mappedBy = "parent",
> fetch = FetchType.EAGER,
> cascade = {CascadeType.PERSIST}
> )
> private List<Child> children;
> .......
> public class Child {
> @Id
> @Column(name = "ID")
> @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CHILD_SEQ")
> private long id;
>
> @ManyToOne
> @JoinColumn(name = "parent_id", referencedColumnName = "ID")
> private Parent parent;
> ....
> Bean code:
> @Stateless
> public class ParentBean implements ParentBeanLocal {
> public ParentBean() {
> }
> @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
> public void createParent(Parent parent){
> EntityManager em = null;
> try{
> em = Finder.getFactory().createEntityManager();
> em.persist(parent);
> }finally{
> closeEm(em);
> }
> }
> When I call this bean from servlet multiple times, following exception occurs:
> [3/16/11 11:59:05:687 CET] 00000015 SystemOut O 0 TutorialEJB INFO [WebContainer : 0] openjpa.Runtime - Starting OpenJPA 1.2.1-SNAPSHOT
> [3/16/11 11:59:05:859 CET] 00000015 SystemOut O 172 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 1764976947> executing prepstmnt 1796631318
> SELECT sogar1.SGBASKET_SEQ.NEXTVAL
> FROM DUAL
> [3/16/11 11:59:05:875 CET] 00000015 SystemOut O 188 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 1764976947> [16 ms] spent
> [3/16/11 11:59:05:875 CET] 00000015 SystemOut O 188 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 270143514> executing prepstmnt 301797885
> SELECT sogar1.SGBASKET_SEQ.NEXTVAL
> FROM DUAL
> [3/16/11 11:59:05:890 CET] 00000015 SystemOut O 203 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 270143514> [15 ms] spent
> [3/16/11 11:59:05:890 CET] 00000015 SystemOut O 203 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> executing prepstmnt 761736551
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]
> [3/16/11 11:59:05:921 CET] 00000015 SystemOut O 234 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> [31 ms] spent
> [3/16/11 11:59:05:921 CET] 00000015 SystemOut O 234 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> executing prepstmnt 1679844384
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]
> [3/16/11 11:59:05:937 CET] 00000015 SystemOut O 250 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> [16 ms] spent
> [3/16/11 11:59:05:937 CET] 00000015 RegisteredSyn E WTRN0074E: Exception caught from before_completion synchronization operation: <openjpa-1.2.1-SNAPSHOT-r422266:686069 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred.
> at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2163)
> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
> at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
> at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
> at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
> at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
> at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
> at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
> at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
> at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
> at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
> at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> Caused by: <openjpa-1.2.1-SNAPSHOT-r422266:686069 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> {prepstmnt 761736551
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]} [code=2291, state=23000]
> FailedObject: com.martin.jpa.entity.cascade.Child@62e062e0
> at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4231)
> at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4196)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:72)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:131)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.batchOrExecuteRow(BatchingPreparedStatementManagerImpl.java:102)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:86)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
> at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
> at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
> ... 44 more
> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> {prepstmnt 761736551
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]} [code=2291, state=23000]
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
> ... 55 more
> NestedThrowables:
> <openjpa-1.2.1-SNAPSHOT-r422266:686069 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> FailedObject: prepstmnt 1679844384
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement]
> at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4231)
> at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4196)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:72)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(BatchingPreparedStatementManagerImpl.java:195)
> at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:63)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
> at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
> at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
> at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
> at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
> at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
> at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
> at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
> at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
> at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
> at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
> at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> Caused by: java.sql.SQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> 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:1169)
> at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
> at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:1097)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:738)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:864)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushSingleRow(BatchingPreparedStatementManagerImpl.java:217)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(BatchingPreparedStatementManagerImpl.java:156)
> ... 49 more
> ---- Begin backtrace for Nested Throwables
> java.sql.SQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> 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:1169)
> at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
> at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:1097)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:738)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:864)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.batchOrExecuteRow(BatchingPreparedStatementManagerImpl.java:102)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:86)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
> at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
> at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
> at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
> at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
> at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
> at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
> at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
> at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
> at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
> at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
> at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
> at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> [3/16/11 11:59:05:968 CET] 00000015 servlet E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: Uncaught exception created in one of the service methods of the servlet TestServlet in application TutorialEJBEAR. Exception created : javax.ejb.EJBTransactionRolledbackException:
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:942)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> [3/16/11 11:59:05:968 CET] 00000015 LocalTranCoor E WLTC0017E: Resources rolled back due to setRollbackOnly() being called.
> [3/16/11 11:59:05:984 CET] 00000015 webapp E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[TestServlet]: javax.ejb.EJBTransactionRolledbackException:
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:942)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> Problem disappears when batching is disabled:
> <property name="openjpa.jdbc.UpdateManager" value="com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager(batchLimit=0)"/>
> I'm not 100% sure if this is problem in Open JPA or Webspehere extension of JPA.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (OPENJPA-1961) Batching problem
Posted by "Michael Dick (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OPENJPA-1961?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13007500#comment-13007500 ]
Michael Dick commented on OPENJPA-1961:
---------------------------------------
When the problem occurs have you specified the openjpa.jdbc.UpdateManager property? Attaching your persistence.xml (really just interested in the properties section) might also help.
The OperationOrderUpdateManager will not attempt to reorder SQL statements to handle FK constraints. You'll probably want to use the ConstraintUpdateManager instead.
Something like this might work :
<property name="openjpa.jdbc.UpdateManager" value="batching-constraint(batchLimit=100)"/> <!-- put in your own limit -->
> Batching problem
> ----------------
>
> Key: OPENJPA-1961
> URL: https://issues.apache.org/jira/browse/OPENJPA-1961
> Project: OpenJPA
> Issue Type: Bug
> Components: jdbc
> Affects Versions: 1.2.1
> Environment: JPA version: JPA 1.2.1
> App. server: Websphere 7
> Database: Oracle DB
> Reporter: Martin Panuska
>
> Code fragment:
> Entities configuration:
> public class Parent {
> @Id
> @Column(name = "ID")
> @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PARENT_SEQ")
> private long id;
>
> @OneToMany(
> mappedBy = "parent",
> fetch = FetchType.EAGER,
> cascade = {CascadeType.PERSIST}
> )
> private List<Child> children;
> .......
> public class Child {
> @Id
> @Column(name = "ID")
> @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CHILD_SEQ")
> private long id;
>
> @ManyToOne
> @JoinColumn(name = "parent_id", referencedColumnName = "ID")
> private Parent parent;
> ....
> Bean code:
> @Stateless
> public class ParentBean implements ParentBeanLocal {
> public ParentBean() {
> }
> @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
> public void createParent(Parent parent){
> EntityManager em = null;
> try{
> em = Finder.getFactory().createEntityManager();
> em.persist(parent);
> }finally{
> closeEm(em);
> }
> }
> When I call this bean from servlet multiple times, following exception occurs:
> [3/16/11 11:59:05:687 CET] 00000015 SystemOut O 0 TutorialEJB INFO [WebContainer : 0] openjpa.Runtime - Starting OpenJPA 1.2.1-SNAPSHOT
> [3/16/11 11:59:05:859 CET] 00000015 SystemOut O 172 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 1764976947> executing prepstmnt 1796631318
> SELECT sogar1.SGBASKET_SEQ.NEXTVAL
> FROM DUAL
> [3/16/11 11:59:05:875 CET] 00000015 SystemOut O 188 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 1764976947> [16 ms] spent
> [3/16/11 11:59:05:875 CET] 00000015 SystemOut O 188 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 270143514> executing prepstmnt 301797885
> SELECT sogar1.SGBASKET_SEQ.NEXTVAL
> FROM DUAL
> [3/16/11 11:59:05:890 CET] 00000015 SystemOut O 203 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 270143514> [15 ms] spent
> [3/16/11 11:59:05:890 CET] 00000015 SystemOut O 203 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> executing prepstmnt 761736551
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]
> [3/16/11 11:59:05:921 CET] 00000015 SystemOut O 234 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> [31 ms] spent
> [3/16/11 11:59:05:921 CET] 00000015 SystemOut O 234 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> executing prepstmnt 1679844384
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]
> [3/16/11 11:59:05:937 CET] 00000015 SystemOut O 250 TutorialEJB TRACE [WebContainer : 0] openjpa.jdbc.SQL - <t 2077064141, conn 702425566> [16 ms] spent
> [3/16/11 11:59:05:937 CET] 00000015 RegisteredSyn E WTRN0074E: Exception caught from before_completion synchronization operation: <openjpa-1.2.1-SNAPSHOT-r422266:686069 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred.
> at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2163)
> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
> at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
> at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
> at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
> at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
> at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
> at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
> at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
> at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
> at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
> at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> Caused by: <openjpa-1.2.1-SNAPSHOT-r422266:686069 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> {prepstmnt 761736551
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]} [code=2291, state=23000]
> FailedObject: com.martin.jpa.entity.cascade.Child@62e062e0
> at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4231)
> at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4196)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:72)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:131)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.batchOrExecuteRow(BatchingPreparedStatementManagerImpl.java:102)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:86)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
> at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
> at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
> ... 44 more
> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> {prepstmnt 761736551
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [params=(long) 906, (long) 905]} [code=2291, state=23000]
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
> ... 55 more
> NestedThrowables:
> <openjpa-1.2.1-SNAPSHOT-r422266:686069 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> FailedObject: prepstmnt 1679844384
> INSERT INTO sogar1.MP_CHILD (ID, parent_id)
> VALUES (?, ?)
> [org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement]
> at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4231)
> at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4196)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
> at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:72)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(BatchingPreparedStatementManagerImpl.java:195)
> at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:63)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
> at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
> at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
> at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
> at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
> at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
> at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
> at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
> at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
> at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
> at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
> at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> Caused by: java.sql.SQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> 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:1169)
> at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
> at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:1097)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:738)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:864)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushSingleRow(BatchingPreparedStatementManagerImpl.java:217)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(BatchingPreparedStatementManagerImpl.java:156)
> ... 49 more
> ---- Begin backtrace for Nested Throwables
> java.sql.SQLException: ORA-02291: integrity constraint (SOGAR1.SYS_C0032645) violated - parent key not found
> 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:1169)
> at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
> at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:1097)
> at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:738)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:864)
> at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.batchOrExecuteRow(BatchingPreparedStatementManagerImpl.java:102)
> at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:86)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
> at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
> at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
> at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:78)
> at com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:60)
> at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
> at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
> at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826)
> at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
> at com.ibm.tx.jta.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:289)
> at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:150)
> at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2222)
> at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:486)
> at com.ibm.tx.jta.TransactionImpl.processCommit(TransactionImpl.java:978)
> at com.ibm.tx.jta.TransactionImpl.commit(TransactionImpl.java:913)
> at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:369)
> at com.ibm.tx.jta.TranManagerSet.commit(TranManagerSet.java:161)
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:915)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> [3/16/11 11:59:05:968 CET] 00000015 servlet E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: Uncaught exception created in one of the service methods of the servlet TestServlet in application TutorialEJBEAR. Exception created : javax.ejb.EJBTransactionRolledbackException:
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:942)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> [3/16/11 11:59:05:968 CET] 00000015 LocalTranCoor E WLTC0017E: Resources rolled back due to setRollbackOnly() being called.
> [3/16/11 11:59:05:984 CET] 00000015 webapp E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[TestServlet]: javax.ejb.EJBTransactionRolledbackException:
> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:942)
> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:228)
> at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:137)
> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561)
> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512)
> at com.martin.jpa.entity.cascade.EJSLocal0SLParentBean_2b23906b.createParent(EJSLocal0SLParentBean_2b23906b.java)
> at com.martin.servlet.TestServlet.doPost(TestServlet.java:57)
> at com.martin.servlet.TestServlet.doGet(TestServlet.java:35)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790)
> at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
> at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
> at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3610)
> at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:274)
> at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:926)
> at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
> at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
> at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
> at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
> at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
> at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
> at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
> at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
> Problem disappears when batching is disabled:
> <property name="openjpa.jdbc.UpdateManager" value="com.ibm.ws.persistence.jdbc.kernel.OperationOrderUpdateManager(batchLimit=0)"/>
> I'm not 100% sure if this is problem in Open JPA or Webspehere extension of JPA.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira