Hi Armin : 
  Thanks for your reply. 
>first, it seems that you mix the JDO-api with the PB-api in your code
>PersistenceManager --> JDO
>PersistenceBroker (PB), PersistenceBrokerFactory (PBF)--> PB-api
>maybe a typo.
yes this is a Typo. I am  just playing PB api

> I get this "Brrow broker from pool is failing" exception after some
>success write.
>Think you forget to call the close method of the PB after use.
>PB.close() returns
>the broker to broker pool managed by PBF.


Here are the tries I have made :

  case 1* If I put PB.close() ... I get exception saying "OprimisticLockException: 
Some body using the object" 

 case 2* If I do not use PB.close() ....I ran out of Broker pool. 

here is the structure I am using 

  Loop :

   < condition> 

   new PersistentObject()

  set values;

 PB = PersistenceBrokerFactory.defaultPersistenceBroker();

 PB.beginTx();

 PB.store(myObj)

 PB.commitTx()

PB.close() // tried with and without this


I have also tried with a static var ...holding obj reference of PB during my 
application initialization. 

I am still getting Optimistic Lock Exception .... similar to case 2.

thanks 

~ajitesh





----- Original Message -----
From: "Ajitesh Das" <[EMAIL PROTECTED]>
To: "OJB Users List" <[EMAIL PROTECTED]>; "OJB Users List"
<[EMAIL PROTECTED]>; "OJB Users List" <[EMAIL PROTECTED]>;
"OJB Users List" <[EMAIL PROTECTED]>
Sent: Wednesday, February 26, 2003 10:45 AM
Subject: Brrow broker from pool is failing : OptimisticLockException in
PB Api


> * 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(Generic
KeyedObjectPool.java:758)
>  at
org.apache.ojb.broker.ta.PersistenceBrokerFactoryDefaultImpl.createPersi
stenceBroker(Unknown Source)
>  at
org.apache.ojb.broker.ta.PersistenceBrokerFactoryDefaultImpl.defaultPers
istenceBroker(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(Un
known 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(U
nknown Source)
>  at
org.apache.ojb.broker.metadata.ClassDescriptor.getAutoIncrementValue(Unk
nown Source)
>  at
org.apache.ojb.broker.metadata.ClassDescriptor.getKeyValuesForObject(Unk
nown 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) {
>              }
>          }
>
>
>
>
>
>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to