* Here is my issue :
- When I save the "Broker" object reference in a static variable and use
that in multiple context
I get Optimistic Lock exception.
- If I do not save the Broker object reference :
// pm = PersistenceManager.getInstance(); // return
Broker.defaultPersistenceBroker()
pm = PersistenceBrokerFactory.defaultPersistenceBroker();
I get this "Brrow broker from pool is failing" exception after some success write. I
need to import a big data set into db table from a CSV file and I make this in a *big*
loop.
Please advise.
=========================================
java.util.NoSuchElementException
at
org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:758)
at
org.apache.ojb.broker.ta.PersistenceBrokerFactoryDefaultImpl.createPersistenceBroker(Unknown
Source)
at
org.apache.ojb.broker.ta.PersistenceBrokerFactoryDefaultImpl.defaultPersistenceBroker(Unknown
Source)
at org.apache.ojb.broker.PersistenceBrokerFactory.defaultPersistenceBroker(Unknown
Source)
at org.apache.ojb.broker.Identity.<init>(Unknown Source)
at org.apache.ojb.broker.cache.ObjectCacheDefaultImpl.cache(Unknown Source)
at org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeToDb(Unknown Source)
at org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
at org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
at org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
at org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.store(Unknown Source)
at org.apache.ojb.broker.util.sequence.SequenceGenerator.getNextSequence(Unknown
Source)
at org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUniqueId(Unknown
Source)
at org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(Unknown Source)
at org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueId(Unknown
Source)
at org.apache.ojb.broker.metadata.ClassDescriptor.getAutoIncrementValue(Unknown
Source)
at org.apache.ojb.broker.metadata.ClassDescriptor.getKeyValuesForObject(Unknown
Source)
at org.apache.ojb.broker.metadata.ClassDescriptor.getKeyValues(Unknown Source)
at org.apache.ojb.broker.metadata.ClassDescriptor.getKeyValues(Unknown Source)
at org.apache.ojb.broker.Identity.<init>(Unknown Source)
at org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
at org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
at org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.store(Unknown Source)
-----Original Message-----
From: Ajitesh Das
Sent: Wed 2/26/2003 1:20 AM
To: OJB Users List; OJB Users List; OJB Users List
Cc:
Subject: RE: OptimisticLockException in PB Api
I have checked org.apache.ojb.tutorial1.UCEnterNewProduct.apply() ... my
main2() method is also same in nature..how come urs is woking and mine is not :(
-----Original Message-----
From: Ajitesh Das
Sent: Wed 2/26/2003 1:14 AM
To: OJB Users List; OJB Users List
Cc:
Subject: OptimisticLockException in PB Api
I was trying a simple Test program. where I am setting a set of
objects and what to write them in a DB.I am using PB Api. The very first write is a
success but throwing exception from 2nd write onwards. What I am doing wrong ?
org.apache.ojb.broker.OptimisticLockException: Object has been
modified by someone else
at Test1.main2(Test1.java:64)
at Test1.<init>(Test1.java:23)
at Test1.main(Test1.java:27)
Caused by: org.apache.ojb.broker.OptimisticLockException: Object has
been modified by someone else
at org.apache.ojb.broker.accesslayer.JdbcAccess.executeUpdate(Unknown
Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeToDb(Unknown Source)
at org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown
Source)
at org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown
Source)
at org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown
Source)
at
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.store(Unknown Source)
Here is my caller method:
public Test1 ()
{
main2();
main2();
}
And here is the called method
public void main2 ( )
{
PersistenceManager pm = null;
Transaction tx = null;
Sample zs = new Sample();
zs.setAttr1((long)10);
zs.setAttr2(30);
zs.setAttr3((long)40);
try {
pm = PersistenceManager.getInstance(); // return
Broker.defaultPersistenceBroker()
pm.beginTransaction();
pm.Store(zs);
pm.commitTransaction();
}
catch (Exception ex) {
ex.printStackTrace();
System.out.println("Error in Test1 1 ");
try {
if ( tx != null )
pm.abortTransaction();
catch (Exception ex1) {
}
}