You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Leon <le...@hotmail.com> on 2003/06/01 21:31:06 UTC

Re: transaction exception with OJB

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" <ar...@code-au-lait.de>
To: "OJB Users List" <oj...@db.apache.org>
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" <le...@hotmail.com>
> To: "OJB Users List" <oj...@db.apache.org>
> 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
> > weblogic.jdbc.rmi.SerialConnection@fde4e6
> > [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: ojb-user-unsubscribe@db.apache.org
> > For additional commands, e-mail: ojb-user-help@db.apache.org
> >
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>

Re: transaction exception with OJB

Posted by Armin Waibel <ar...@code-au-lait.de>.
Hi Leon,

----- Original Message -----
From: "Leon" <le...@hotmail.com>
To: "OJB Users List" <oj...@db.apache.org>; "Armin Waibel"
<ar...@code-au-lait.de>
Sent: Sunday, June 01, 2003 9:31 PM
Subject: Re: transaction exception with OJB


> 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?

As far as I know mySQL only supports Identity columns and
not a database based sequence generation using 'nextval' command.
Thus your choice is limited.
If you run OJB only in a single node (not clustered) and
other applications do not insert objects, you could use
SequenceManagerInMemoryImpl.
Also there is an SM implementation by Ryan Vanderwerf et al.
simulating database based sequences using stored procedure
(you only have to adapt the SP to mySQL) - see doc.
Both implementations need a PK autoincrement field in
persistent object / field descriptor.
e.g.

<field-descriptor
         name="objId"
         column="OBJ_ID"
         jdbc-type="INTEGER"
         primarykey="true"
         autoincrement="true"
      />

HTH

regards,
Armin

> Thanks a lot.
>
> Regards.
>
> Leon
>
>
> ----- Original Message -----
> From: "Armin Waibel" <ar...@code-au-lait.de>
> To: "OJB Users List" <oj...@db.apache.org>
> 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" <le...@hotmail.com>
> > To: "OJB Users List" <oj...@db.apache.org>
> > 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
> > > weblogic.jdbc.rmi.SerialConnection@fde4e6
> > > [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: ojb-user-unsubscribe@db.apache.org
> > > For additional commands, e-mail: ojb-user-help@db.apache.org
> > >
> > >
> >
> >
> >
>
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> > For additional commands, e-mail: ojb-user-help@db.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>
>