[ https://issues.apache.org/jira/browse/OPENJPA-941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12676660#action_12676660 ] Joachim Stein commented on OPENJPA-941: --------------------------------------- In a tutorial i've seen something about generating a primary key: ID generation strategies and the Feature Pack for EJB 3.0 To generate a database primary key while a transaction is currently active, there are fundamentally two main mechanisms: - Suspend the current transaction - Use a different connection (and thus a separate transaction) Because WebSphere Application Server does not allow the suspension of a transaction, you must specify a separate data source (specifically for key generation) by specifying a in the persistence.xml file. In this way, the generation of the primary key is obtained through a separate JDBC connection (and therefore a local transaction). Furthermore, you must explicitly specify in the administrative console that this data source must not participate in JTA transactions, by specifying a custom property nonTransactionalDataSource=true (Figure 2-17). 50 WebSphere Application Server Version 6.1 Feature Pack for EJB 3.0 Furthermore, you must explicitly specify in the administrative console that this data source must not participate in JTA transactions, by specifying a custom property nonTransactionalDataSource=true (Figure 2-17). After doing that i get the message: Trace: 2009/02/25 13:59:47.933 01 t=8C0768 c=UNK key=P8 (0000000A) Description: Log Java Message Message: BBOO0221W: J2CA0144W: No mappingConfigAlias found for connection factory or datasource ejb/SstDbManagerImpl. Trace: 2009/02/25 13:59:47.965 01 t=8C0768 c=UNK key=P8 (13007002) ThreadId: 00000050 FunctionName: com.ibm.ejs.j2c.J2CXAResourceFactory SourceId: com.ibm.ejs.j2c.J2CXAResourceFactory Category: WARNING ExtendedMessage: BBOO0221W: J2CA0061W: Error creating XA Connection and Resource com.ibm.ws.exception.WsException: DSRA8100E: Unable to get a XAConnection from the DataSource. with SQL State : 42815 SQL Code : -4461 at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.setLinkedException(DataStoreAdapterException.java:464) at com.ibm.ws.rsadapter.AdapterUtil.mapException(AdapterUtil.java:2196) at com.ibm.ws.rsadapter.spi.WSRdbDataSource.getPooledConnection(WSRdbDataSource.java:1461) at com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.createManagedConnection(WSManagedConnectionFactoryImpl.java:1092) at com.ibm.ejs.j2c.J2CXAResourceFactory$1.run(J2CXAResourceFactory.java:280) at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118) at com.ibm.ejs.j2c.J2CXAResourceFactory.getXAResource(J2CXAResourceFactory.java:129) at com.ibm.ws.Transaction.JTA.XARecoveryData.getXARminst(XARecoveryData.java:529) at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:644) at com.ibm.ws390.tx.XARecoveryAgentImpl.rollbackUnknownTransactions(XARecoveryAgentImpl.java:716) at com.ibm.ws390.tx.XARecoveryAgentImpl$XARecoveryAgentThread.run(XARecoveryAgentImpl.java:351) Caused by: java.sql.SQLException: [jcc][t4][10205][11234][3.53.81] Null userid is not supported. ERRORCODE=-4461, SQLSTATE=42815DSRA 0010E: SQL State = 42815, Error Code = -4,461 at com.ibm.db2.jcc.a.bd.a(bd.java:676) at com.ibm.db2.jcc.a.bd.a(bd.java:60) at com.ibm.db2.jcc.a.bd.a(bd.java:103) at com.ibm.db2.jcc.t4.b.y(b.java:1905) at com.ibm.db2.jcc.t4.b.g(b.java:1912) at com.ibm.db2.jcc.t4.b.c(b.java:704) at com.ibm.db2.jcc.t4.b.b(b.java:691) at com.ibm.db2.jcc.t4.b.a(b.java:374) at com.ibm.db2.jcc.t4.b.(b.java:310) at com.ibm.db2.jcc.t4.c.(c.java:32) at com.ibm.db2.jcc.DB2PooledConnection.(DB2PooledConnection.java:193) at com.ibm.db2.jcc.DB2XAConnection.(DB2XAConnection.java:56) at com.ibm.db2.jcc.DB2XADataSource.getXAConnection(DB2XADataSource.java:166) at com.ibm.db2.jcc.DB2XADataSource.getXAConnection(DB2XADataSource.java:135) at com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper$1.run(InternalGenericDataStoreHelper.java:918) at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118) at com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper.getPooledConnection(InternalGenericDataStoreHelper.java:955) at com.ibm.ws.rsadapter.spi.InternalDB2UniversalDataStoreHelper.getPooledConnection(InternalDB2UniversalDataStoreHelper.java:1408) at com.ibm.ws.rsadapter.spi.WSRdbDataSource.getPooledConnection(WSRdbDataSource.java:1457) ... 8 more How can i forgive a correct mappingConfigAlias? > Unable to write data into table > ------------------------------- > > Key: OPENJPA-941 > URL: https://issues.apache.org/jira/browse/OPENJPA-941 > Project: OpenJPA > Issue Type: Bug > Environment: z/OS > Reporter: Joachim Stein > > My Application is running on WAS 6.1.0.18 which runs on a z/OS system. I'm working with EJB 3.0. I can read data from database but everytime i call persist() to insert a row into the table i get the following error message: > ExtendedMessage: BBOO0220E: WTRN0074E: Exception caught from before_completion synchronization operation: org.apache.openjpa.persistence.PersistenceException: null > at org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.getConnection(AbstractJDBCSeq.java:162) > at org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:366) > at org.apache.openjpa.jdbc.kernel.TableJDBCSeq.nextInternal(TableJDBCSeq.java:266) > at org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:60) > at org.apache.openjpa.util.ImplHelper.generateValue(ImplHelper.java:160) > at org.apache.openjpa.util.ImplHelper.generateFieldValue(ImplHelper.java:144) > at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignField(JDBCStoreManager.java:557) > at org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:450) > at org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:426) > at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignObjectId(JDBCStoreManager.java:541) > at org.apache.openjpa.kernel.DelegatingStoreManager.assignObjectId(DelegatingStoreManager.java:134) > at org.apache.openjpa.kernel.StateManagerImpl.assignObjectId(StateManagerImpl.java:501) > at org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:2770) > at org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:39) > at org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:940) > at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1892) > at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1852) > at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1770) > at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:66) > at com.ibm.ws.Transaction.JTA.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:242) > at com.ibm.ws.Transaction.JTA.TransactionImpl.prePrepare(TransactionImpl.java:2404) > at com.ibm.ws.Transaction.JTA.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:1637) > at com.ibm.ws.Transaction.JTA.TransactionImpl.processCommit(TransactionImpl.java:1608) > at com.ibm.ws.Transaction.JTA.TransactionImpl.commit(TransactionImpl.java:1543) > at com.ibm.ws.Transaction.JTA.TranManagerImpl.commit(TranManagerImpl.java:240) > at com.ibm.ws.Transaction.JTA.TranManagerSet.commit(TranManagerSet.java:164) > at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:782) > at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:206) > at com.ibm.ejs.csi.RequiresNew.postInvoke(RequiresNew.java:93) > at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:581) > at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4311) > at interfaces.EJSLocal0SLOmegamonMasterManagerImpl_22398363.createOmegamonMaster(EJSLocal0SLOmegamonMasterManagerImpl_22398363.java > ) > at management.SstDbManagerImpl.createServer(SstDbManagerImpl.java:109) > at interfaces.EJSRemote0SLSstDbManagerImpl_9a8f969a.createServer(EJSRemote0SLSstDbManagerImpl_9a8f969a.java) > at interfaces._SstDbManager_Stub.createServer(_SstDbManager_Stub.java) > at com.ibm.db2pm.sst.SstController.doGet(SstController.java:435) > at com.ibm.db2pm.sst.SstController.doPost(SstController.java:653) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1076) > at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:550) > at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:486) > at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90) > at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744) > at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1455) > at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:115) > at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458) > at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInf > furthermore: > Message: BBOO0220E: SRVE0068E: Uncaught exception thrown in one of the service methods of the servlet: SstController. Exception thrown : javax.ejb.EJBTransactionRolledbackException: > at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:795) > at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:206) > at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:581) > at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4311) > at interfaces.EJSRemote0SLSstDbManagerImpl_9a8f969a.createServer(EJSRemote0SLSstDbManagerImpl_9a8f969a.java) > at interfaces._SstDbManager_Stub.createServer(_SstDbManager_Stub.java) > at com.ibm.db2pm.sst.SstController.doGet(SstController.java:436) > at com.ibm.db2pm.sst.SstController.doPost(SstController.java:654) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1076) > at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:550) > at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:486) > at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90) > at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744) > at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1455) > at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:115) > at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458) > at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387) > at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:267) > at com.ibm.ws390.channel.xmem.XMemConnLink.ready(XMemConnLink.java:762) > at com.ibm.ws390.xmem.XMemSRBridgeImpl.httpinvoke(XMemSRBridgeImpl.java:230) > at com.ibm.ws390.xmem.XMemSRCppUtilities.httpinvoke(XMemSRCppUtilities.java:74) > at com.ibm.ws390.orb.ServerRegionBridge.httpinvoke(Unknown Source) > at com.ibm.ws390.orb.ORBEJSBridge.httpinvoke(Unknown Source) > at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:618) > at com.ibm.ws390.orb.parameters.HTTPInvoke.HTTPInvokeParmSetter(HTTPInvoke.java:105) > at com.ibm.ws390.orb.CommonBridge.nativeRunApplicationThread(Native Method) > at com.ibm.ws390.orb.CommonBridge.runApplicationThread(Unknown Source) > at com.ibm.ws.util.ThreadPool$ZOSWorker.run(ThreadPool.java:1670) > com.ibm.ws.webcontainer.servlet.ServletWrapper com.ibm.ws.webcontainer.servlet.ServletWrapper > What do you think does this exactly means? I've tried to fix the problem after looking similarly problems in the internet but nothing helps. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.