Hi Armin, You are right. I should swich ConnectionFactoryClass to external resource settings when I used jndi-datasource-name. On the Sequence Manager, it seems I have multiple choice. I am using MySQL database now and if I use database sequences based implementation, should I set a field that needs sequence manager to auto-increment in the database? Thanks a lot.
Regards. Leon ----- Original Message ----- From: "Armin Waibel" <[EMAIL PROTECTED]> To: "OJB Users List" <[EMAIL PROTECTED]> Sent: Saturday, May 31, 2003 12:22 PM Subject: Re: transaction exception with OJB > 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] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]