Thx to all for your answer But it's still only workaround Because the problem is not when the broker is not closed and the connection release for other broker But only when the broker is close by the gc .... I need to investigate .
In fact after a few test of debug , when I apply the test case , I see the used connection to be finalize .... But when I do a close , the connection is only returned to the pool. B.R Thierry -----Original Message----- From: Andy Malakov [mailto:[EMAIL PROTECTED] Sent: Monday, January 12, 2004 9:18 PM To: OJB Users List Subject: Re: Connection: Socket Close Exception It is also a good idea to use validation query in <jdbc-connection-descriptor>. This validation query ensures that pooled connection is still alive. For example: <connection-pool maxActive="21" whenExhaustedAction="2" validationQuery="SELECT 12345 FROM DUAL" testOnBorrow="true" /> ----- Original Message ----- From: "Reda Benzair" <[EMAIL PROTECTED]> To: "OJB Users List" <[EMAIL PROTECTED]> Sent: Monday, January 12, 2004 11:54 AM Subject: Re: Connection: Socket Close Exception > Hi Thierry > I already had this problem in my Application > it there possibility of forgetting to it closed problem of > configuration of Oracle forget the brocker close for your application > problem of configuration of Oracle number off statement open default is > very limited but you can change this ! > Thierry Hanot wrote: > > >Hello All > >There is very Weird problem on the PersistenceBroker : > > - Allocate a new Broker > > - Get something on it ( iterator by query or identity ... ) > > - Let the GC free the broker > > - Request a new broker with the same PBKey > > - Make the same request > > ** an Exception is throw Socket Close exception > > > > > >Using latest Oracle 9i driver for 1.4 and thin driver > >OJB RC05 > >org.apache.ojb.broker.accesslayer.ConnectionFactoryPooledImpl > >JRE 1.4.2.02 > > > > > >Is Somebody can help me . > > > >THX > > > >Thierry > > > > > > > >Here is my test case > > > > > >WeakReference ref = null; > >PBKey key = > >PersistenceBrokerFactory.defaultPersistenceBroker().getPBKey(); > >PersistenceBroker broker = > >PersistenceBrokerFactory.createPersistenceBroker(key); > >// GET SOMETHING > >Query q = > >QueryFactory.newQuery( > >DbObjectFactory.instance().getTwtzonesetsClass(), > >(Criteria) null); > >broker.getObjectByQuery(q); > >// GET IS DONE > >// ENABLE GC FOR RELEASING PB > >// if a broker.close() is done , the test is working fine . > > > >// KEEP A REF FOR BEING SUR OF PB RELEASE BY GC > >ref = new WeakReference(broker); > > > >broker = null; > >System.gc(); > >System.gc(); > >System.gc(); > >Thread.sleep(1000); > >System.gc(); > >System.gc(); > >System.gc(); > >Thread.sleep(1000); > >Object o = ref.get(); > >// NORMALLY THE BROKER IS RELEASE REF IS NULL > >assertTrue(o == null); > >// RETRIEVE A NEW BROKER > >broker = PersistenceBrokerFactory.createPersistenceBroker(key); > >q = > >QueryFactory.newQuery( > >DbObjectFactory.instance().getTwtzonesetsClass(), > >(Criteria) null); > > > >// HERE AN EXCEPTION IS THROW : Socket Close exception > >broker.getObjectByQuery(q); > > > > > > > > > > > -- > *Reda BENZAIR** > *Software Analyst > > *** > *Phone: +33 (0)1 4996 6324 > Fax: +33 (0)1 4996 6405 > Mobile: +33 (0)6 6240 6192 > [EMAIL PROTECTED] <mailto:[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] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]