I've had the same problems with the PB api too. What DB Are you using?
The best way for me to get around it was to make wrapper methods that
get and close broker connections, and to check the transaction state
before trying to begin, commit, and abort a transaction. I'm using SQL
Server 2k and the Inet Opta driver.

-----Original Message-----
From: Dave Hodson [mailto:[EMAIL PROTECTED] 
Sent: Monday, July 14, 2003 7:47 PM
To: [EMAIL PROTECTED]
Subject: ConnectionManager is already in transaction 


I'm using 1.0RC3 and running into the following error:
"ConnectionManager is already in transaction" 
when trying to commit a new transaction to the DB.

Any queries by criteria or identity work properly. 
The method is a member of a class that is extended by others -- items to
be written to the DB are passed as generic objects.

Suggestions? What am I doing incorrectly?

Dave


Code is as follows:
---------------------
  protected void Put (Object o, Class c)  {
    Transaction tx = odmg.newTransaction();
    tx.begin();
    try {
      // lock the product for write access
      tx.lock(o, tx.WRITE);
      tx.commit();
    } catch (Throwable t) {
      tx.abort();
      log.error("Put failed for " + c.getName() + " : " + t);
    }
  }

Stack is as follows:
------------------------
[org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR:
PersistenceBrokerException during the execution of the insert:
ConnectionManager is already in transaction ConnectionManager is already
in transaction org.apache.ojb.broker.TransactionInProgressException:
ConnectionManager is already in transaction     
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.beginTransaction(Persis
tenceBrokerImpl.java:361)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(
DelegatingPersistenceBroker.java:114)
        at
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getSequen
ce(SequenceManagerHighLowImpl.java:260)
        at
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getUnique
Long(SequenceManagerHighLowImpl.java:201)
        at
org.apache.ojb.broker.util.sequence.AbstractSequenceManager.getUniqueId(
AbstractSequenceManager.java:252)
        at
org.apache.ojb.broker.util.sequence.AbstractSequenceManager.getUniqueVal
ue(AbstractSequenceManager.java:167)
        at
org.apache.ojb.broker.util.BrokerHelper.getAutoIncrementValue(BrokerHelp
er.java:303)
        at
org.apache.ojb.broker.util.BrokerHelper.getValuesForObject(BrokerHelper.
java:349)
        at
org.apache.ojb.broker.util.BrokerHelper.getAllRwValues(BrokerHelper.java
:380)
        at
org.apache.ojb.broker.accesslayer.StatementManager.getAllValues(Statemen
tManager.java:725)
        at
org.apache.ojb.broker.accesslayer.StatementManager.bindInsert(StatementM
anager.java:487)
        at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeInsert(JdbcAcces
sImpl.java:198)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(PersistenceBr
okerImpl.java:1919)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBroker
Impl.java:1834)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBroker
Impl.java:1792)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingP
ersistenceBroker.java:161)
        at
org.apache.ojb.odmg.states.StateNewDirty.commit(StateNewDirty.java:148)
        at
org.apache.ojb.odmg.ObjectEnvelopeTable.commitAllEnvelopes(ObjectEnvelop
eTable.java:234)
        at
org.apache.ojb.odmg.ObjectEnvelopeTable.commit(ObjectEnvelopeTable.java:
189)
        at
org.apache.ojb.odmg.TransactionImpl.doCommitOnObjects(TransactionImpl.ja
va:342)
        at
org.apache.ojb.odmg.TransactionImpl.prepare(TransactionImpl.java:595)
        at
org.apache.ojb.odmg.TransactionImpl.commit(TransactionImpl.java:545)
        at net.messagecast.rec.RecOJBMgr.Put(RecOJBMgr.java:83)




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