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]

Reply via email to