Return-Path: Delivered-To: apmail-openjpa-users-archive@minotaur.apache.org Received: (qmail 13183 invoked from network); 10 Feb 2010 14:45:58 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 10 Feb 2010 14:45:58 -0000 Received: (qmail 44157 invoked by uid 500); 10 Feb 2010 14:45:57 -0000 Delivered-To: apmail-openjpa-users-archive@openjpa.apache.org Received: (qmail 44097 invoked by uid 500); 10 Feb 2010 14:45:57 -0000 Mailing-List: contact users-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@openjpa.apache.org Delivered-To: mailing list users@openjpa.apache.org Received: (qmail 44087 invoked by uid 99); 10 Feb 2010 14:45:57 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Feb 2010 14:45:57 +0000 X-ASF-Spam-Status: No, hits=2.2 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of michael.d.dick@gmail.com designates 209.85.218.223 as permitted sender) Received: from [209.85.218.223] (HELO mail-bw0-f223.google.com) (209.85.218.223) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Feb 2010 14:45:45 +0000 Received: by bwz23 with SMTP id 23so75759bwz.1 for ; Wed, 10 Feb 2010 06:45:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :from:date:message-id:subject:to:content-type; bh=ZC6hq8ae8xHsvZZCawAfCHwaVJePoHZ/BjpgorAen6M=; b=fLhZXyJD0DbeACXYD1Pj/sToAM3XsC4YcEuUM1dM/+qL9LR5QDfkdxp4Eqf7p5jTNS jEg1TRMWX+8MT+1AQTvj0MV8Zl03XL91OwvmnceX/05YOxFoz0Npxyx4XFMuqH1lLyxs Kxu7WXG/GA8ioI9JlPhL343oyg+nuZK/+wqXw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; b=vbAxUJpaW92pC6davoaNLswXdhkkdMUM5y5gcvs8jy8FnZySqmUVYzB4S3g6Z8TuF+ MdHOcajni7KaguWCCqYF0h10db3juaKfqepocbBAJIHY6duPrUEPmrYQIR3zlIjfgePh ng3lrxV+v8F5EmSfnAbeW1p5mB4Hi8HefLj9c= MIME-Version: 1.0 Received: by 10.204.23.207 with SMTP id s15mr220978bkb.106.1265813124273; Wed, 10 Feb 2010 06:45:24 -0800 (PST) In-Reply-To: <1265798910947-4547098.post@n2.nabble.com> References: <1265798910947-4547098.post@n2.nabble.com> From: Michael Dick Date: Wed, 10 Feb 2010 08:45:04 -0600 Message-ID: <72c1350f1002100645kcc59272i30a0cf41db0e8ca5@mail.gmail.com> Subject: Re: Deos DB2 support TABLE Id generation strategey To: users@openjpa.apache.org Content-Type: multipart/alternative; boundary=0003255560ee9fd793047f4015f7 X-Virus-Checked: Checked by ClamAV on apache.org --0003255560ee9fd793047f4015f7 Content-Type: text/plain; charset=ISO-8859-1 Hi, The error your seeing happens when OpenJPA tries to obtain and increment the sequence value in the table. This work needs to be done outside of the current business transaction. In order to do that OpenJPA will try to obtain a new connection using the non-jta-data-source (or openjpa.ConnectionFactory2 / openjpa.Connection2URL properties if you haven't defined a non-jta-data-source). If OpenJPA cannot obtain a new connection we will try to suspend the current transaction and get a new connection from the jta-data-source. The error is reporting that we cannot suspend the transaction in your environment (the TransactionSynchronizationRegistry doesn't support suspending transactions). GenerationType.IDENTITY doesn't need to suspend the transaction in this manner because it lets the database do the incrementing. So a quick fix would be to define a non-jta-data-source in persistence.xml. I'm not terribly familiar with Geronimo, and there might be some additional steps to indicate that the datasource is 'non-jta', but this should work. Hope this helps, -mike On Wed, Feb 10, 2010 at 4:48 AM, mlounnaci wrote: > > Hello friends, > > I have the following Entity: > @Entity > public class Workflow implements Serializable{ > > > @Id > @TableGenerator(name="WorkflowSeq", table="IDGENERATOR", > schema="PERSOLOGIC", pkColumnName="IDNAME", > pkColumnValue="WORKFLOW", valueColumnName="IDVALUE") > @GeneratedValue(strategy=GenerationType.TABLE, > generator="WorkflowSeq") > protected int id; > @Column(name = "NAME") > protected String name; > } > > When I try to persist it i get the following exception: > > > 2010-02-10 11:14:15,354 WARN [Transaction] Unexpected exception from > beforeCompletion; transaction will roll back > > org.apache.openjpa.persistence.PersistenceException: The Transaction > Synchronization Registry can not suspend the current transaction. > at > org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4232) > at > > org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4197) > at > > org.apache.openjpa.jdbc.sql.DB2Dictionary.newStoreException(DB2Dictionary.java:503) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:88) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:64) > at > > org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:65) > 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:760) > at > org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:487) > at > org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:463) > at > > org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignObjectId(JDBCStoreManager.java:744) > at > > org.apache.openjpa.kernel.DelegatingStoreManager.assignObjectId(DelegatingStoreManager.java:134) > at > > org.apache.openjpa.kernel.StateManagerImpl.assignObjectId(StateManagerImpl.java:520) > at > > org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:2824) > at > org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:39) > at > > org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:960) > at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1948) > at > org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908) > at > org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:522) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:507) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:260) > at > > org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:250) > at > > org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction(TransactionPolicy.java:138) > at > > org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:76) > at > > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:233) > at > > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188) > at > > org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165) > at > > org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:238) > at > > org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:129) > at > > org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:164) > at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:122) > at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:84) > at > org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:60) > at org.apache.openejb.server.ServicePool$2.run(ServicePool.java:78) > at org.apache.openejb.server.ServicePool$3.run(ServicePool.java:101) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.sql.SQLException: The Transaction Synchronization Registry > can not suspend the current transaction. > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:419) > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.nextInternal(TableJDBCSeq.java:290) > at > > org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:60) > ... 35 more > Caused by: javax.transaction.NotSupportedException: The Transaction > Synchronization Registry can not suspend the current transaction. > at > > org.apache.openjpa.ee.RegistryManagedRuntime.doNonTransactionalWork(RegistryManagedRuntime.java:203) > at > > org.apache.openjpa.ee.AutomaticManagedRuntime.doNonTransactionalWork(AutomaticManagedRuntime.java:312) > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:415) > ... 37 more > 2010-02-10 11:15:41,747 WARN [Transaction] Unexpected exception from > beforeCompletion; transaction will roll back > > org.apache.openjpa.persistence.PersistenceException: The Transaction > Synchronization Registry can not suspend the current transaction. > at > org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4232) > at > > org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4197) > at > > org.apache.openjpa.jdbc.sql.DB2Dictionary.newStoreException(DB2Dictionary.java:503) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:88) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:64) > at > > org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:65) > 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:760) > at > org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:487) > at > org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:463) > at > > org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignObjectId(JDBCStoreManager.java:744) > at > > org.apache.openjpa.kernel.DelegatingStoreManager.assignObjectId(DelegatingStoreManager.java:134) > at > > org.apache.openjpa.kernel.StateManagerImpl.assignObjectId(StateManagerImpl.java:520) > at > > org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:2824) > at > org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:39) > at > > org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:960) > at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1948) > at > org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908) > at > org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:522) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:507) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:260) > at > > org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:250) > at > > org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction(TransactionPolicy.java:138) > at > > org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:76) > at > > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:233) > at > > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188) > at > > org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165) > at > > org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:238) > at > > org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:129) > at > > org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:164) > at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:122) > at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:84) > at > org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:60) > at org.apache.openejb.server.ServicePool$2.run(ServicePool.java:78) > at org.apache.openejb.server.ServicePool$3.run(ServicePool.java:101) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.sql.SQLException: The Transaction Synchronization Registry > can not suspend the current transaction. > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:419) > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.nextInternal(TableJDBCSeq.java:290) > at > > org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:60) > ... 35 more > Caused by: javax.transaction.NotSupportedException: The Transaction > Synchronization Registry can not suspend the current transaction. > at > > org.apache.openjpa.ee.RegistryManagedRuntime.doNonTransactionalWork(RegistryManagedRuntime.java:203) > at > > org.apache.openjpa.ee.AutomaticManagedRuntime.doNonTransactionalWork(AutomaticManagedRuntime.java:312) > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:415) > ... 37 more > 2010-02-10 11:18:06,432 WARN [Transaction] Unexpected exception from > beforeCompletion; transaction will roll back > > org.apache.openjpa.persistence.PersistenceException: The Transaction > Synchronization Registry can not suspend the current transaction. > at > org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4232) > at > > org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4197) > at > > org.apache.openjpa.jdbc.sql.DB2Dictionary.newStoreException(DB2Dictionary.java:503) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:88) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:64) > at > > org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:65) > 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:760) > at > org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:487) > at > org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:463) > at > > org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignObjectId(JDBCStoreManager.java:744) > at > > org.apache.openjpa.kernel.DelegatingStoreManager.assignObjectId(DelegatingStoreManager.java:134) > at > > org.apache.openjpa.kernel.StateManagerImpl.assignObjectId(StateManagerImpl.java:520) > at > > org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:2824) > at > org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:39) > at > > org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:960) > at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1948) > at > org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908) > at > org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:522) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:507) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:260) > at > > org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:250) > at > > org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction(TransactionPolicy.java:138) > at > > org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:76) > at > > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:233) > at > > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188) > at > > org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165) > at > > org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:238) > at > > org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:129) > at > > org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:164) > at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:122) > at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:84) > at > org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:60) > at org.apache.openejb.server.ServicePool$2.run(ServicePool.java:78) > at org.apache.openejb.server.ServicePool$3.run(ServicePool.java:101) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.sql.SQLException: The Transaction Synchronization Registry > can not suspend the current transaction. > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:419) > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.nextInternal(TableJDBCSeq.java:290) > at > > org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:60) > ... 35 more > Caused by: javax.transaction.NotSupportedException: The Transaction > Synchronization Registry can not suspend the current transaction. > at > > org.apache.openjpa.ee.RegistryManagedRuntime.doNonTransactionalWork(RegistryManagedRuntime.java:203) > at > > org.apache.openjpa.ee.AutomaticManagedRuntime.doNonTransactionalWork(AutomaticManagedRuntime.java:312) > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:415) > ... 37 more > 2010-02-10 11:20:29,340 WARN [Transaction] Unexpected exception from > beforeCompletion; transaction will roll back > > org.apache.openjpa.persistence.PersistenceException: The Transaction > Synchronization Registry can not suspend the current transaction. > at > org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4232) > at > > org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4197) > at > > org.apache.openjpa.jdbc.sql.DB2Dictionary.newStoreException(DB2Dictionary.java:503) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:88) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:64) > at > > org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:65) > 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:760) > at > org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:487) > at > org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:463) > at > > org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignObjectId(JDBCStoreManager.java:744) > at > > org.apache.openjpa.kernel.DelegatingStoreManager.assignObjectId(DelegatingStoreManager.java:134) > at > > org.apache.openjpa.kernel.StateManagerImpl.assignObjectId(StateManagerImpl.java:520) > at > > org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:2824) > at > org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:39) > at > > org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:960) > at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1948) > at > org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908) > at > org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:522) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:507) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:260) > at > > org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:250) > at > > org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction(TransactionPolicy.java:138) > at > > org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:76) > at > > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:233) > at > > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188) > at > > org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165) > at > > org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:238) > at > > org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:129) > at > > org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:164) > at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:122) > at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:84) > at > org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:60) > at org.apache.openejb.server.ServicePool$2.run(ServicePool.java:78) > at org.apache.openejb.server.ServicePool$3.run(ServicePool.java:101) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.sql.SQLException: The Transaction Synchronization Registry > can not suspend the current transaction. > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:419) > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.nextInternal(TableJDBCSeq.java:290) > at > > org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:60) > ... 35 more > Caused by: javax.transaction.NotSupportedException: The Transaction > Synchronization Registry can not suspend the current transaction. > at > > org.apache.openjpa.ee.RegistryManagedRuntime.doNonTransactionalWork(RegistryManagedRuntime.java:203) > at > > org.apache.openjpa.ee.AutomaticManagedRuntime.doNonTransactionalWork(AutomaticManagedRuntime.java:312) > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:415) > ... 37 more > 2010-02-10 11:31:50,713 FATAL [ejb] Unknown error in container > java.lang.NullPointerException > at > > org.apache.geronimo.openejb.GeronimoSecurityService.isCallerAuthorized(GeronimoSecurityService.java:95) > at > > org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:142) > at > > org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:238) > at > > org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:129) > at > > org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:164) > at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:122) > at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:84) > at > org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:60) > at org.apache.openejb.server.ServicePool$2.run(ServicePool.java:78) > at org.apache.openejb.server.ServicePool$3.run(ServicePool.java:101) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) > 2010-02-10 11:34:52,352 WARN [Transaction] Unexpected exception from > beforeCompletion; transaction will roll back > > org.apache.openjpa.persistence.PersistenceException: The Transaction > Synchronization Registry can not suspend the current transaction. > at > org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4232) > at > > org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4197) > at > > org.apache.openjpa.jdbc.sql.DB2Dictionary.newStoreException(DB2Dictionary.java:503) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:88) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:64) > at > > org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:65) > 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:760) > at > org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:487) > at > org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:463) > at > > org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignObjectId(JDBCStoreManager.java:744) > at > > org.apache.openjpa.kernel.DelegatingStoreManager.assignObjectId(DelegatingStoreManager.java:134) > at > > org.apache.openjpa.kernel.StateManagerImpl.assignObjectId(StateManagerImpl.java:520) > at > > org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:2824) > at > org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:39) > at > > org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:960) > at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1948) > at > org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908) > at > org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1826) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:522) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:507) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400) > at > > org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:260) > at > > org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:250) > at > > org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction(TransactionPolicy.java:138) > at > > org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:76) > at > > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:233) > at > > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188) > at > > org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165) > at > > org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:238) > at > > org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:129) > at > > org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:164) > at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:122) > at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:84) > at > org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:60) > at org.apache.openejb.server.ServicePool$2.run(ServicePool.java:78) > at org.apache.openejb.server.ServicePool$3.run(ServicePool.java:101) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.sql.SQLException: The Transaction Synchronization Registry > can not suspend the current transaction. > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:419) > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.nextInternal(TableJDBCSeq.java:290) > at > > org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:60) > ... 35 more > Caused by: javax.transaction.NotSupportedException: The Transaction > Synchronization Registry can not suspend the current transaction. > at > > org.apache.openjpa.ee.RegistryManagedRuntime.doNonTransactionalWork(RegistryManagedRuntime.java:203) > at > > org.apache.openjpa.ee.AutomaticManagedRuntime.doNonTransactionalWork(AutomaticManagedRuntime.java:312) > at > > org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:415) > ... 37 more > > > Remark: The entity is getting persisted well using: > @GeneratedValue(strategy=GenerationType.IDENTITY) > > Thanks > -- > View this message in context: > http://n2.nabble.com/Deos-DB2-support-TABLE-Id-generation-strategey-tp4547098p4547098.html > Sent from the OpenJPA Users mailing list archive at Nabble.com. > --0003255560ee9fd793047f4015f7--