[ 
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 <non-jta-data-source> 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.<init>(b.java:310)                                     
                                                    
 at com.ibm.db2.jcc.t4.c.<init>(c.java:32)                                      
                                                    
 at com.ibm.db2.jcc.DB2PooledConnection.<init>(DB2PooledConnection.java:193)    
                                                    
 at com.ibm.db2.jcc.DB2XAConnection.<init>(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: <openjpa-1.0.1-r420667:592145 
> nonfatal general error> 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.

Reply via email to