Marwane,

Growing the pool is not a good thing always.  Say you have 300 Oracle
licenses, depending on the license, that may include connection pooled
objects under the same user account.

So there is a section in your code that may not have a finally block so
the connection does not get closed.  If your DBA does not have orphan
settings enabled. When you hit your maxActive count and need another
connection, there wont be one available and thus, you will grow you
connection pool maxActive limit.  What will happen is you hit your
database max connection limit and will see some nasty error like "ORCL:
9000 No More Available Connections" < don't quote on that I cant
reproduce a more meanifull error at this point and time.

So even if you are going to grow make sure you have evictionThreads
running.

DBCP has an initialSize argument which I believe the OJB Community is
planning to support.  Once this is available, using a Database Profiler,
you should be able to start your application up and via the profiler see
new connections per your initialSize.  As you need additional resources,
say maxActive is 30, you will see the connection increase to handle the
load.
You should then be able to see eviction thread run to clean up
unused/idle connections.

I performed a similar test, and found over 45 object calls that did not
have a finally block to close connections and release them back to the
pool.

Last point, the more connections you have the more memory footprint for
your application will be.  Someone else chim in but I believe each
connection takes up to 2MB of memory or that is just what I can see from
the Database Profiler.

-Eric

-----Original Message-----
From: Marwane [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, November 08, 2006 3:56 AM
To: OJB Users List
Subject: Re: Borrow broker from pool failed. in production server

hi;
The problem is resolved using :
<connection-pool  maxActive="1000" whenExhaustedAction="2"/>

so it s strange the message gived by ojb tel us about the broker pool
problem
but  the solution was the growing the connection pool !!!!!

thx for all.


On 10/27/06, Armin Waibel <[EMAIL PROTECTED]> wrote:
>
> Marwane wrote:
> > thx.
> >
> > if i don't defin the connection-pool clause in the repository.xml
what
> is
> > the default behavor about the
> > connection managment in ojb ?
> >
>
> I think by default 30 connections (docs says 21) managed by the pool
(if
> you specify one of the "pooling" ConnectionFactory implementations in
> OJB.properties file). The other properties please see docs
> http://db.apache.org/ojb/docu/guides/repository.html#Attributes-N10284
> http://db.apache.org/ojb/docu/guides/connection.html
>
> regards,
> Armin
>
> >
> >
> > On 10/27/06, Armin Waibel <[EMAIL PROTECTED]> wrote:
> >>
> >> Hi,
> >>
> >> Marwane wrote:
> >> > thx for your reply.
> >> > so we use only the maxActive declared in OJB.properties. in the
> >> > repository.xml we dont use
> >> > the connection-pool elements.
> >> >
> >>
> >> Keep in mind that OJB use two different pools by default. An
PB-pool
> >> (settings in OJB.properties file) and a connection-pool (setting
within
> >> the connection-pool element in repository file).
> >>
> >> >> > we use maxActif in 1000 the problem persist.
> >> It seems that the error is caused by the broker-pool and not by the
> >> connection-pool. Normally the connection is associated with the PB
when
> >> PB-tx starts or a query is performed - thus always after the PB is
> >> requested from the PB-pool.
> >> If the suggestions from Eric and Dennis doesn't solve your problem
I
> >> suppose you have a PB leak in your code.
> >>
> >> regards,
> >> Armin
> >>
> >> > regards.
> >> >
> >> > On 10/26/06, Dennis Bekkering <[EMAIL PROTECTED]> wrote:
> >> >>
> >> >> when i have a quick look it seems to be about the broker pool
and
> not
> >> >> the connection pool. Check your OJB.properties and set maxActive
to
> >> >> the same value as maxActive of the connection pool settings in
> >> >> repository_database.xml. I am not sure about it but your problem
> >> >> happened to me once this way and it was solved by doing as i
> suggest.
> >> >>
> >> >> regards,
> >> >> Dennis
> >> >>
> >> >> 2006/10/26, Marwane <[EMAIL PROTECTED]>:
> >> >> > hi
> >> >> > we have a web application on production used about 500 users.
> >> >> > we use default value of ojb parameters (maxActif: 100 ....).
> >> >> > we are getting frequently the message indicating that we can't
> >> borrow
> >> >> > connection from pool. even if
> >> >> > we use maxActif in 1000 the problem persist.
> >> >> > we need your help and give us some leads.
> >> >> >
> >> >> > stack trace :
> >> >> >
> >> >> > org.apache.ojb.broker.PBFactoryException: Borrow broker from
pool
> >> >> failed,
> >> >> > using PBKey org.apache.ojb.broker.PBKey: jcdAlias=default,
> >> >> user=db2bmce,
> >> >> > password=*****
> >> >> >     at java.lang.Throwable.<init>(Throwable.java:195)
> >> >> >     at java.lang.Exception.<init>(Exception.java:41)
> >> >> >     at
java.lang.RuntimeException.<init>(RuntimeException.java:43)
> >> >> >     at
org.apache.commons.lang.exception.NestableRuntimeException
> >> >> .<init>(
> >> >> > NestableRuntimeException.java:86)
> >> >> >     at
org.apache.ojb.broker.OJBRuntimeException.<init>(Unknown
> >> Source)
> >> >> >     at org.apache.ojb.broker.PBFactoryException.<init>(Unknown
> >> Source)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl.createPer
sistenceBroker
> >>
> >> >>
> >> >> (Unknown
> >> >> > Source)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl.defaultPersi
stenceBroker
> >>
> >> >>
> >> >> (Unknown
> >> >> > Source)
> >> >> >     at
> >> >> >
> >>
org.apache.ojb.broker.PersistenceBrokerFactory.defaultPersistenceBroker
> >> >> (Unknown
> >> >> > Source)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
ma.co.omnidata.framework.services.dao.ojb.OJBPersistenceService.getBroke
r(
> >>
> >> >>
> >> >> > OJBPersistenceService.java:156)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
ma.co.omnidata.framework.services.dao.ojb.OJBPersistenceService.newSessi
on
> >>
> >> >>
> >> >> (
> >> >> > OJBPersistenceService.java:250)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
ma.co.omnidata.framework.services.transaction.impl.TransactionManagerImp
l.getTransaction
> >>
> >> >>
> >> >> > (TransactionManagerImpl.java:39)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
ma.co.omnidata.framework.services.businessInterface.OMNIFacade.invokeSer
vice
> >>
> >> >>
> >> >> > (OMNIFacade.java:55)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
ma.co.omnidata.framework.services.ihm.struts.core.OMNIBaseAction.invokeB
usiness
> >>
> >> >>
> >> >> > (OMNIBaseAction.java:120)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
com.rmawatanya.convergence.application.technique.habilitation.ihm.action
.HabLogonAction.doExecute
> >>
> >> >>
> >> >> > (HabLogonAction.java:47)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
com.rmawatanya.convergence.application.technique.habilitation.ihm.action
.HabLogonAction.execute
> >>
> >> >>
> >> >> > (HabLogonAction.java:35)
> >> >> >     at
> >> org.apache.struts.action.RequestProcessor.processActionPerform
> >> (
> >> >> > RequestProcessor.java:421)
> >> >> >     at org.apache.struts.action.RequestProcessor.process(
> >> >> > RequestProcessor.java:226)
> >> >> >     at
> >> >>
org.apache.struts.action.ActionServlet.process(ActionServlet.java
> >> >> > :1164)
> >> >> >     at org.apache.struts.action.ActionServlet.doPost(
> >> ActionServlet.java
> >> >> :415)
> >> >> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java
> :763)
> >> >> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java
> :851)
> >> >> >     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(
> >> >> > ServletWrapper.java:1246)
> >> >> >     at
> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(
> >> >> > ServletWrapper.java:380)
> >> >> >     at
> >> >>
com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest
> >> >> (
> >> >> > CacheServletWrapper.java:80)
> >> >> >     at com.ibm.ws.webcontainer.WebContainer.handleRequest(
> >> >> WebContainer.java
> >> >> > :1724)
> >> >> >     at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(
> >> >> > WCChannelLink.java:79)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscriminatio
n(
> >>
> >> >>
> >> >> > HttpInboundLink.java:422)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformatio
n(
> >>
> >> >>
> >> >> > HttpInboundLink.java:319)
> >> >> >     at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(
> >> >> > HttpInboundLink.java:288)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscr
iminaters
> >>
> >> >>
> >> >> > (NewConnectionInitialReadCallback.java:207)
> >> >> >     at
> >> >>
> com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete
> >> >> > (NewConnectionInitialReadCallback.java:109)
> >> >> >     at
> com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(
> >> >> > WorkQueueManager.java:537)
> >> >> >     at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(
> >> >> > WorkQueueManager.java:593)
> >> >> >     at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(
> >> >> > WorkQueueManager.java:946)
> >> >> >     at
com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(
> >> >> > WorkQueueManager.java:1038)
> >> >> >     at
com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1446)
> >> >> > Caused by: java.util.NoSuchElementException
> >> >> >     at java.lang.Throwable.<init>(Throwable.java:180)
> >> >> >     at java.lang.Exception.<init>(Exception.java:29)
> >> >> >     at
java.lang.RuntimeException.<init>(RuntimeException.java:32)
> >> >> >     at java.util.NoSuchElementException.<init>(
> >> >> NoSuchElementException.java
> >> >> > :28)
> >> >> >     at
> >> >>
org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(
> >> >> > GenericKeyedObjectPool.java:760)
> >> >> >     ... 31 more
> >> >> > [18/10/06 11:59:53:253 TUC] 00000379 SystemErr     R
> >> >> > org.apache.ojb.broker.PBFactoryException: Borrow broker from
pool
> >> >> failed,
> >> >> > using PBKey org.apache.ojb.broker.PBKey: jcdAlias=default,
> >> >> user=db2bmce,
> >> >> > password=*****
> >> >> >     at java.lang.Throwable.<init>(Throwable.java:195)
> >> >> >     at java.lang.Exception.<init>(Exception.java:41)
> >> >> >     at
java.lang.RuntimeException.<init>(RuntimeException.java:43)
> >> >> >     at
org.apache.commons.lang.exception.NestableRuntimeException
> >> >> .<init>(
> >> >> > NestableRuntimeException.java:86)
> >> >> >     at
org.apache.ojb.broker.OJBRuntimeException.<init>(Unknown
> >> Source)
> >> >> >     at org.apache.ojb.broker.PBFactoryException.<init>(Unknown
> >> Source)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl.createPer
sistenceBroker
> >>
> >> >>
> >> >> (Unknown
> >> >> > Source)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl.defaultPersi
stenceBroker
> >>
> >> >>
> >> >> (Unknown
> >> >> > Source)
> >> >> >     at
> >> >> >
> >>
org.apache.ojb.broker.PersistenceBrokerFactory.defaultPersistenceBroker
> >> >> (Unknown
> >> >> > Source)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
ma.co.omnidata.framework.services.dao.ojb.OJBPersistenceService.getBroke
r(
> >>
> >> >>
> >> >> > OJBPersistenceService.java:156)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
ma.co.omnidata.framework.services.dao.ojb.OJBPersistenceService.newSessi
on
> >>
> >> >>
> >> >> (
> >> >> > OJBPersistenceService.java:250)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
ma.co.omnidata.framework.services.transaction.impl.TransactionManagerImp
l.getTransaction
> >>
> >> >>
> >> >> > (TransactionManagerImpl.java:39)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
ma.co.omnidata.framework.services.businessInterface.OMNIFacade.invokeSer
vice
> >>
> >> >>
> >> >> > (OMNIFacade.java:55)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
ma.co.omnidata.framework.services.ihm.struts.core.OMNIBaseAction.invokeB
usiness
> >>
> >> >>
> >> >> > (OMNIBaseAction.java:120)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
com.rmawatanya.convergence.application.technique.habilitation.ihm.action
.HabLogonAction.doExecute
> >>
> >> >>
> >> >> > (HabLogonAction.java:47)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
com.rmawatanya.convergence.application.technique.habilitation.ihm.action
.HabLogonAction.execute
> >>
> >> >>
> >> >> > (HabLogonAction.java:35)
> >> >> >     at
> >> org.apache.struts.action.RequestProcessor.processActionPerform
> >> (
> >> >> > RequestProcessor.java:421)
> >> >> >     at org.apache.struts.action.RequestProcessor.process(
> >> >> > RequestProcessor.java:226)
> >> >> >     at
> >> >>
org.apache.struts.action.ActionServlet.process(ActionServlet.java
> >> >> > :1164)
> >> >> >     at org.apache.struts.action.ActionServlet.doPost(
> >> ActionServlet.java
> >> >> :415)
> >> >> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java
> :763)
> >> >> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java
> :851)
> >> >> >     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(
> >> >> > ServletWrapper.java:1246)
> >> >> >     at
> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(
> >> >> > ServletWrapper.java:380)
> >> >> >     at
> >> >>
com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest
> >> >> (
> >> >> > CacheServletWrapper.java:80)
> >> >> >     at com.ibm.ws.webcontainer.WebContainer.handleRequest(
> >> >> WebContainer.java
> >> >> > :1724)
> >> >> >     at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(
> >> >> > WCChannelLink.java:79)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscriminatio
n(
> >>
> >> >>
> >> >> > HttpInboundLink.java:422)
> >> >> >     at
> >> >> >
> >> >>
> >>
>
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformatio
n(
> >>
> >> >>
> >> >> > HttpInboundLink.java:319)
> >> >> >     at
> >> >>
com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete
> >> >> (
> >> >> > HttpICLReadCallback.java:84)
> >> >> >     at
> com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(
> >> >> > WorkQueueManager.java:537)
> >> >> >     at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(
> >> >> > WorkQueueManager.java:593)
> >> >> >     at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(
> >> >> > WorkQueueManager.java:946)
> >> >> >     at
com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(
> >> >> > WorkQueueManager.java:1038)
> >> >> >     at
com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1446)
> >> >> > Caused by: java.util.NoSuchElementException
> >> >> >     at java.lang.Throwable.<init>(Throwable.java:180)
> >> >> >     at java.lang.Exception.<init>(Exception.java:29)
> >> >> >     at
java.lang.RuntimeException.<init>(RuntimeException.java:32)
> >> >> >     at java.util.NoSuchElementException.<init>(
> >> >> NoSuchElementException.java
> >> >> > :28)
> >> >> >     at
> >> >>
org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(
> >> >> > GenericKeyedObjectPool.java:760)
> >> >> >     ... 29 more
> >> >> > [18/10/06 12:00:00:846 TUC] 00000379 SystemErr     R
> >> >> > org.apache.ojb.broker.PBFactoryException: Borrow broker from
pool
> >> >> failed,
> >> >> > using PBKey org.apache.ojb.broker.PBKey: jcdAlias=default,
> >> >> user=db2bmce,
> >> >> > password=*****
> >> >> >     at java.lang.Throwable.<init>(Throwable.java:195)
> >> >> >     at java.lang.Exception.<init>(Exception.java:41)
> >> >> >     at
java.lang.RuntimeException.<init>(RuntimeException.java:43)
> >> >> >     at
> >> >> >
> >> >> >
> >> >>
> >> >>
> >> >> --
> >> >> mvg,
> >> >> Dennis
> >> >>
> >> >>
> ---------------------------------------------------------------------
> >> >> 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]
>
>

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

Reply via email to