Hi Leon, > java.sql.SQLException: Cannot call Connection.commit in distributed > transaction. Transaction Manager will commit the resource manager when the > distributed transaction is committed. > at weblogic.jdbc.jts.Connection.commit(Connection.java:302) > at
- it seems you are running OJB in a managed environment with an extern TransactionManager, thus it's not allowed to use the OJB-tx demarcation (pb.beginTransaction, ...). This is done by the TxManager (or when using JTA-UserTransaction). I don't know exactly what's your environment, maybe you should use ConnectionFactoryClass= org.apache.ojb.broker.accesslayer.ConnectionFactoryManagedImpl - when using DataSource it's recommended to use autoCommit=0, because most implementations don't let you change the autoCommit mode of the connection (but isn't the problem in your case) - Using SequenceManagerHighLowImpl is not recommended in managed environment, have a look at http://db.apache.org/ojb/sequencemanager.html for alternatives. HTH regards, Armin ----- Original Message ----- From: "Leon" <[EMAIL PROTECTED]> To: "OJB Users List" <[EMAIL PROTECTED]> Sent: Saturday, May 31, 2003 6:47 AM Subject: transaction exception with OJB > Hi, > > I has code > tx.begin(); > broker.store(registryvo); > tx.commit(); > in my DAO class. When running broker.store(registryvo), I get following > exception. My VO object has 15 fields and only 10 fields are mapped to db > table in repository_user.xml. Is it ok to do that? In addition, I am using > datasource setting and set useAutoCommit="2" in the > jdbc-connection-descriptor. > Could anybody give me some suggestion? > Thanks. > > Leon > > > > *********************** > [org.apache.ojb.broker.accesslayer.ConnectionManagerImpl] ERROR: Commit on > underlying connection failed, try to rollback > Cannot call Connection.commit in distributed transaction. Transaction > Manager will commit the resource manager when the distributed transaction is > committed. > java.sql.SQLException: Cannot call Connection.commit in distributed > transaction. Transaction Manager will commit the resource manager when the > distributed transaction is committed. > at weblogic.jdbc.jts.Connection.commit(Connection.java:302) > at > weblogic.jdbc.rmi.internal.ConnectionImpl.commit(ConnectionImpl.java:181 ) > at weblogic.jdbc.rmi.SerialConnection.commit(SerialConnection.java:179) > at > org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.localCommit(Conn ecti > onManagerImpl.java:204) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.commitTransaction(Persi sten > ceBrokerImpl.java:385) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.commitTransaction (Del > egatingPersistenceBroker.java:120) > at > org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getSequen ce(S > equenceManagerHighLowImpl.java:313) > at > org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getUnique Long > (SequenceManagerHighLowImpl.java:201) > at > org.apache.ojb.broker.util.sequence.AbstractSequenceManager.getUniqueVal ue(A > bstractSequenceManager.java:132) > at > org.apache.ojb.broker.util.BrokerHelper.getAutoIncrementValue(BrokerHelp er.j > ava:303) > at > org.apache.ojb.broker.util.BrokerHelper.getValuesForObject(BrokerHelper. java > :349) > at > org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:2 15) > at org.apache.ojb.broker.Identity.init(Identity.java:198) > at org.apache.ojb.broker.Identity.<init>(Identity.java:163) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBroker Impl > .java:640) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingP ersi > stenceBroker.java:155) > at com.xegle.systems.registry.dao.RegistryDAO.insert(RegistryDAO.java:62) > at > com.xegle.systems.registry.RegistryManagerBD.addRegistryInfo(RegistryMan ager > BD.java:29) > at > com.xegle.systems.struts.registry.RegistryAction.execute(RegistryAction. java > :48) > at > org.apache.struts.action.RequestProcessor.processActionPerform(RequestPr oces > sor.java:480) > at > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java: 274) > at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1420) > at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:520) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Se rvle > tStubImpl.java:1058) > at > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl. java > :401) > at > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl. java > :306) > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.r un(W > ebAppServletContext.java:5445) > at > weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceMa nage > r.java:780) > at > weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServl etCo > ntext.java:3105) > at > weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl. java > :2588) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189) > [org.apache.ojb.broker.accesslayer.ConnectionManagerImpl] INFO: Rollback was > called, do rollback on current connection > [EMAIL PROTECTED] > [org.apache.ojb.broker.accesslayer.ConnectionManagerImpl] ERROR: Rollback on > the underlying connection failed > Cannot call Connection.rollback in distributed transaction. Transaction > Manager will commit the resource manager when the distributed transaction is > committed. > java.sql.SQLException: Cannot call Connection.rollback in distributed > transaction. Transaction Manager will commit the resource manager when the > distributed transaction is committed. > at weblogic.jdbc.jts.Connection.rollback(Connection.java:309) > at > weblogic.jdbc.rmi.internal.ConnectionImpl.rollback(ConnectionImpl.java:1 89) > at weblogic.jdbc.rmi.SerialConnection.rollback(SerialConnection.java:194) > at > org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.localRollback(Co nnec > tionManagerImpl.java:245) > at > org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.localCommit(Conn ecti > onManagerImpl.java:210) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.commitTransaction(Persi sten > ceBrokerImpl.java:385) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.commitTransaction (Del > egatingPersistenceBroker.java:120) > at > org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getSequen ce(S > equenceManagerHighLowImpl.java:313) > at > org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getUnique Long > (SequenceManagerHighLowImpl.java:201) > at > org.apache.ojb.broker.util.sequence.AbstractSequenceManager.getUniqueVal ue(A > bstractSequenceManager.java:132) > at > org.apache.ojb.broker.util.BrokerHelper.getAutoIncrementValue(BrokerHelp er.j > ava:303) > at > org.apache.ojb.broker.util.BrokerHelper.getValuesForObject(BrokerHelper. java > :349) > at > org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:2 15) > at org.apache.ojb.broker.Identity.init(Identity.java:198) > at org.apache.ojb.broker.Identity.<init>(Identity.java:163) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBroker Impl > .java:640) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingP ersi > stenceBroker.java:155) > at com.xegle.systems.registry.dao.RegistryDAO.insert(RegistryDAO.java:62) > at > com.xegle.systems.registry.RegistryManagerBD.addRegistryInfo(RegistryMan ager > BD.java:29) > at > com.xegle.systems.struts.registry.RegistryAction.execute(RegistryAction. java > :48) > at > org.apache.struts.action.RequestProcessor.processActionPerform(RequestPr oces > sor.java:480) > at > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java: 274) > at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1420) > at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:520) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Se rvle > tStubImpl.java:1058) > at > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl. java > :401) > at > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl. java > :306) > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.r un(W > ebAppServletContext.java:5445) > at > weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceMa nage > r.java:780) > at > weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServl etCo > ntext.java:3105) > at > weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl. java > :2588) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189) > org.apache.ojb.broker.TransactionAbortedException > at > org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.localCommit(Conn ecti > onManagerImpl.java:211) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.commitTransaction(Persi sten > ceBrokerImpl.java:385) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.commitTransaction (Del > egatingPersistenceBroker.java:120) > at > org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getSequen ce(S > equenceManagerHighLowImpl.java:313) > at > org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getUnique Long > (SequenceManagerHighLowImpl.java:201) > at > org.apache.ojb.broker.util.sequence.AbstractSequenceManager.getUniqueVal ue(A > bstractSequenceManager.java:132) > at > org.apache.ojb.broker.util.BrokerHelper.getAutoIncrementValue(BrokerHelp er.j > ava:303) > at > org.apache.ojb.broker.util.BrokerHelper.getValuesForObject(BrokerHelper. java > :349) > at > org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:2 15) > at org.apache.ojb.broker.Identity.init(Identity.java:198) > at org.apache.ojb.broker.Identity.<init>(Identity.java:163) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBroker Impl > .java:640) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingP ersi > stenceBroker.java:155) > at com.xegle.systems.registry.dao.RegistryDAO.insert(RegistryDAO.java:62) > at > com.xegle.systems.registry.RegistryManagerBD.addRegistryInfo(RegistryMan ager > BD.java:29) > at > com.xegle.systems.struts.registry.RegistryAction.execute(RegistryAction. java > :48) > at > org.apache.struts.action.RequestProcessor.processActionPerform(RequestPr oces > sor.java:480) > at > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java: 274) > at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1420) > at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:520) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Se rvle > tStubImpl.java:1058) > at > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl. java > :401) > at > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl. java > :306) > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.r un(W > ebAppServletContext.java:5445) > at > weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceMa nage > r.java:780) > at > weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServl etCo > ntext.java:3105) > at > weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImp l.java > :2588) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189) > rethrown as > org.apache.ojb.broker.metadata.ClassNotPersistenceCapableException: Could > not init Identity for given object class > com.xegle.systems.registry.RegistryVOBean > at org.apache.ojb.broker.Identity.init(Identity.java:205) > at org.apache.ojb.broker.Identity.<init>(Identity.java:163) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBroker Impl > .java:640) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingP ersi > stenceBroker.java:155) > at com.xegle.systems.registry.dao.RegistryDAO.insert(RegistryDAO.java:62) > at > com.xegle.systems.registry.RegistryManagerBD.addRegistryInfo(RegistryMan ager > BD.java:29) > at > com.xegle.systems.struts.registry.RegistryAction.execute(RegistryAction. java > :48) > at > org.apache.struts.action.RequestProcessor.processActionPerform(RequestPr oces > sor.java:480) > at > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java: 274) > at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1420) > at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:520) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Se rvle > tStubImpl.java:1058) > at > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl. java > :401) > at > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl. java > :306) > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.r un(W > ebAppServletContext.java:5445) > at > weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceMa nage > r.java:780) > at > weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServl etCo > ntext.java:3105) > at > weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl. java > :2588) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189) > Caused by: org.apache.ojb.broker.TransactionAbortedException > at > org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.localCommit(Conn ecti > onManagerImpl.java:211) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.commitTransaction(Persi sten > ceBrokerImpl.java:385) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.commitTransaction (Del > egatingPersistenceBroker.java:120) > at > org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getSequen ce(S > equenceManagerHighLowImpl.java:313) > at > org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getUnique Long > (SequenceManagerHighLowImpl.java:201) > at > org.apache.ojb.broker.util.sequence.AbstractSequenceManager.getUniqueVal ue(A > bstractSequenceManager.java:132) > at > org.apache.ojb.broker.util.BrokerHelper.getAutoIncrementValue(BrokerHelp er.j > ava:303) > at > org.apache.ojb.broker.util.BrokerHelper.getValuesForObject(BrokerHelper. java > :349) > at > org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:2 15) > at org.apache.ojb.broker.Identity.init(Identity.java:198) > ... 21 more > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
