Bikram B Kapoor wrote:
Hi Armin,
I checked the complete code and every time PB is retrieved it is closed.
I used the PersistenceBrokerFactoryFactory.instance().activePersistenceBroker() 
function for debugging

   System.out.println("\n\n Active Instances[BEFORE CLOSING]: " + 
PersistenceBrokerFactoryFactory.instance().activePersistenceBroker());
   if(broker != null) {
            broker.close();
   }
   System.out.println("\n\n Active Instances[AFTER CLOSING]: " + 
PersistenceBrokerFactoryFactory.instance().activePersistenceBroker());

The output I get is

 Active Instances[BEFORE CLOSING]: 1
[org.apache.ojb.broker.core.PersistenceBrokerImpl] DEBUG: PB.close was called: 
[EMAIL PROTECTED]
 Active Instances[AFTER CLOSING]: 0

It is releasing the instance to the pool, but my problem or question is that 
why are mysql instances increasing
I checked the server proccess they where 10 before PB was called
but after closing PB (PB.close())
The active instances are back to zero, but the mysql instances increase to 11

Why is this happening. The only thing I changed in OJB.properties file was 
whenExhaustedAction=0 to
whenExhaustedAction=2, this change I made so that when the connections exhaust 
it should not crash or give an error.


Do you run more than ten concurrent threads at the same time in your test? If all threads need a DB access then the grow of connections is normal behavior. To reduce the idle connections in pool you can use the attributes 'maxIdle' and 'timeBetweenEvictionRunsMillis'
More details see
http://db.apache.org/ojb/docu/guides/repository.html#connection-pool-N10230


Do you change other OJB.properties settings?

regards,
Armin






----- Original Message ----- From: "Armin Waibel" <[EMAIL PROTECTED]>
Newsgroups: gmane.comp.jakarta.ojb.user
Sent: Friday, December 17, 2004 5:06 PM
Subject: Re: Connection Problem : Connection not bieng closed




Hi Bikram,

Bikram B Kapoor wrote:

Hi All,
I am using PersistanceBroker in one of my code along with struts.


I use the following code try { PersistenceBroker broker = PersistenceBrokerFactory.defaultPersistenceBroker();

// ......
..... DATABASE CALLS
..... RECORD FETCHING

}
catch(Exception e) {
   //Logging functions
}
finally {
   if(broker != null) {
       broker.close();
   }

}


But what I notice in process that after some time the number of Mysql Instances increase, the more user try to access the site, the slow it gets and more mysql processes/instances are created.


hmm, assume you are using OJB default settings, when you call PB.close() the PB instance was returned to PB-pool and it's guaranteed that the used connection was released and returned to connection-pool.
Maybe you missed to close a used PB instance?
You can get the number of active PB instance with PersistenceBrokerFactoryFactory.instance().activePersistenceBroker()




I tried using
PersistenceBrokerFactory.releaseAllInstances();

this only clear the PB pool and does not cleanup abandoned PB instances. Assume you have a PB leak.

regards,
Armin



after broker.close();

but to no avail. Can any body tell me where the problem is or where do I
have to make changes in order to resolve this problem. Because if the number
of user reaches a higher number then I would face "To many connections open"
problem.


Please help.

Regards
Bikram B Kapoor




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