You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by Sonam Chauhan <so...@ce.com.au> on 2007/09/14 04:20:59 UTC

RE: JDBC NoAvailableConnectionException Problem + new Io exception

Thanks again Sebb: 

 

>How many threads have you got?

> 

>If you want your threads to act as independent users, then you should

>set the pool size to be at least as big. This should prevent the

>timeouts.

 

Thanks Sebb. I have a maximum of about 1500 concurrent threads. A JDBC
thread pool that large isn't feasible, right? :{ 

 

Generally speaking, how do thread pools interact with databases. I'll
ask my DBA about this too :) but do databases (in my case, Oracle)
specify connection limit that limit a practical JMeter the thread pool
sizes? In my case, I'm running 10-15 JMeter instances concurrently each
with a JDBC thread pool set to 10 threads (for now). So when they run, I
guess 150 connections open to the DB? I guess I cannot increase them all
to 60 without speaking to my DBA. :-) -- right? 

 

The Java application we are simulating has JDBC thread pool size set to
20. Since JMeter is testing at 3x normal load, should I set the JMeter
pool size to 60? Upping the JMeter thread pool from 10 to 25 still
resulted in the error. 

 

> 

>Otherwise threads may have to wait for up to the Pool timeout - which

>does seem to be what is happening here.

> 

 

What are your thoughts on increasing timeout as opposed to increasing
the pool size? I guess this affects performance testing as threads will
no longer strictly follow the ramp up time as they will queue up longer.


 

I also found a new exception: SQL 'Io exception' in a load test I
recently ran. 

----------

<sampleResult timeStamp="1189587196968" dataType="" threadName="Load
Test Thread Group 1-276" label="JDBC Request - check pick ticket header
made it to ..." time="79" responseMessage="java.sql.SQLException: Io
exception: The Network Adapter could not establish the connection"
responseCode="" success="false"><assertionResult
failureMessage="Response was null" error="false"
failure="true"/></sampleResult>

-----------

Any idea about this? This exception only occurs once or twice (in about
30000 requests). The NoAvailableConnectionException has thousands of
entries in the logs. 

 

Kind regards,

Sonam Chauhan

--

Corporate Express Australia Ltd. 

Phone: +61-2-93350725, Email: sonam.chauhan@ce.com.au

 

 

 

-----Original Message-----

From: sebb [mailto:sebbaz@gmail.com] 

Sent: Wednesday, 12 September 2007 8:05 PM

To: JMeter Users List

Subject: Re: JDBC NoAvailableConnectionException Problem

 

How many threads have you got?

 

If you want your threads to act as independent users, then you should

set the pool size to be at least as big. This should prevent the

timeouts.

 

Otherwise threads may have to wait for up to the Pool timeout - which

does seem to be what is happening here.

 

[I'm not sure that Pooling is appropriate for JMeter ... we probably

need to add an option to have per-thread connection handling, and

allow manual connect and disconnect].

 

As to idle cleanup interval, I assume that is how long a connection

can be idle before it is closed, and therefore affects how often the

connections have to be recycled.

 

If you are trying to simulate real clients, then arrange the interval

so that it corresponds with when they would reconnect.

 

If you are not interested in connection overhead, then set the

interval higher than the max likely idle period.

 

S.

On 12/09/2007, Sonam Chauhan <so...@ce.com.au> wrote:

> Hello JMeter Users:

> 

> 

> 

> I have a 'heavy' test that uses the 'JDBC Sampler' - it executes about

> 4000 JDBC requests in 600 seconds. However, it throws

> NoAvailableConnectionException errors. Here is a sample log entry:

> 

> -------------------

> 

> <sampleResult timeStamp="1189567551455" dataType="" threadName="Surge

> Test Thread Group 2-2041" label="Insert a pick ticket ..."
time="10001"

>
responseMessage="org.apache.avalon.excalibur.datasource.NoAvailableConne

> ctionException: Could not create enough Components to service your

> request (Timed out)." responseCode="" success="false"><assertionResult

> failureMessage="Response was null" error="false"

> failure="true"/></sampleResult>

> 

> -------------------

> 

> 

> 

> The top of the test plan has a 'JDBC Connection Configuration' element

> with these settings.

> 

> Max. Number of connections = 10

> 

> Pool timeout = 10000 (I assume this caused the error abobe)

> 

> Idle Cleanup Interval (ms) = 60000

> 

> These and all the other settings for this config element are the
default

> values

> 

> 

> 

> Can anyone advise me how I can address this error?

> 

> Each of my test thread 'sleeps' for about 6 minutes to allow

> transactions to propagate from source to destination systems -would

> impact Idle Cleanup Interval?

> 

> Would I increase the max number of number of connections & timeout,
and

> decrease idle cleanup interval?

> 

> 

> 

> Kind regards,

> 

> Sonam Chauhan

> 

> --

> 

> Corporate Express Australia Ltd.

> 

> Phone: +61-2-93350725, Email: sonam.chauhan@ce.com.au

> 

> 

> 

> 

 

---------------------------------------------------------------------

To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org

For additional commands, e-mail: jmeter-user-help@jakarta.apache.org

 


Re: JDBC NoAvailableConnectionException Problem + new Io exception

Posted by sebb <se...@gmail.com>.
On 14/09/2007, Sonam Chauhan <so...@ce.com.au> wrote:
> Thanks again Sebb:
>
>
>
> >How many threads have you got?
>
> >
>
> >If you want your threads to act as independent users, then you should
>
> >set the pool size to be at least as big. This should prevent the
>
> >timeouts.
>
>
>
> Thanks Sebb. I have a maximum of about 1500 concurrent threads. A JDBC
> thread pool that large isn't feasible, right? :{
>

Dunno - try it and see. I doubt that the connection objects take up
lots of memory.

It may place a large strain on the server - but that is what you are
trying to test ...

> Generally speaking, how do thread pools interact with databases. I'll
> ask my DBA about this too :) but do databases (in my case, Oracle)
> specify connection limit that limit a practical JMeter the thread pool
> sizes? In my case, I'm running 10-15 JMeter instances concurrently each
> with a JDBC thread pool set to 10 threads (for now). So when they run, I
> guess 150 connections open to the DB? I guess I cannot increase them all
> to 60 without speaking to my DBA. :-) -- right?

Yes, you'll need one connection per pool entry.

If you are trying to test the database, you need to try and use as
many connections as the real-life scenario you are trying to emulate.

>
>
> The Java application we are simulating has JDBC thread pool size set to
> 20. Since JMeter is testing at 3x normal load, should I set the JMeter
> pool size to 60? Upping the JMeter thread pool from 10 to 25 still
> resulted in the error.

Depends on whether you are trying to test SQL traffic increasing 3
times, but still using 20 connections, or whether you also want to
test increasing the pool count.

>
>
> >
>
> >Otherwise threads may have to wait for up to the Pool timeout - which
>
> >does seem to be what is happening here.
>
> >
>
>
>
> What are your thoughts on increasing timeout as opposed to increasing
> the pool size? I guess this affects performance testing as threads will
> no longer strictly follow the ramp up time as they will queue up longer.
>
>
The ramp-up time applies before the threads perform any JDBC requests.

>
> I also found a new exception: SQL 'Io exception' in a load test I
> recently ran.
>
> ----------
>
> <sampleResult timeStamp="1189587196968" dataType="" threadName="Load
> Test Thread Group 1-276" label="JDBC Request - check pick ticket header
> made it to ..." time="79" responseMessage="java.sql.SQLException: Io
> exception: The Network Adapter could not establish the connection"
> responseCode="" success="false"><assertionResult
> failureMessage="Response was null" error="false"
> failure="true"/></sampleResult>
>
> -----------
>
> Any idea about this? This exception only occurs once or twice (in about
> 30000 requests). The NoAvailableConnectionException has thousands of
> entries in the logs.
>

Looks to be a lack of network or host resources.

>
> Kind regards,
>
> Sonam Chauhan
>
> --
>
> Corporate Express Australia Ltd.
>
> Phone: +61-2-93350725, Email: sonam.chauhan@ce.com.au
>
>
>
>
>
>
>
> -----Original Message-----
>
> From: sebb [mailto:sebbaz@gmail.com]
>
> Sent: Wednesday, 12 September 2007 8:05 PM
>
> To: JMeter Users List
>
> Subject: Re: JDBC NoAvailableConnectionException Problem
>
>
>
> How many threads have you got?
>
>
>
> If you want your threads to act as independent users, then you should
>
> set the pool size to be at least as big. This should prevent the
>
> timeouts.
>
>
>
> Otherwise threads may have to wait for up to the Pool timeout - which
>
> does seem to be what is happening here.
>
>
>
> [I'm not sure that Pooling is appropriate for JMeter ... we probably
>
> need to add an option to have per-thread connection handling, and
>
> allow manual connect and disconnect].
>
>
>
> As to idle cleanup interval, I assume that is how long a connection
>
> can be idle before it is closed, and therefore affects how often the
>
> connections have to be recycled.
>
>
>
> If you are trying to simulate real clients, then arrange the interval
>
> so that it corresponds with when they would reconnect.
>
>
>
> If you are not interested in connection overhead, then set the
>
> interval higher than the max likely idle period.
>
>
>
> S.
>
> On 12/09/2007, Sonam Chauhan <so...@ce.com.au> wrote:
>
> > Hello JMeter Users:
>
> >
>
> >
>
> >
>
> > I have a 'heavy' test that uses the 'JDBC Sampler' - it executes about
>
> > 4000 JDBC requests in 600 seconds. However, it throws
>
> > NoAvailableConnectionException errors. Here is a sample log entry:
>
> >
>
> > -------------------
>
> >
>
> > <sampleResult timeStamp="1189567551455" dataType="" threadName="Surge
>
> > Test Thread Group 2-2041" label="Insert a pick ticket ..."
> time="10001"
>
> >
> responseMessage="org.apache.avalon.excalibur.datasource.NoAvailableConne
>
> > ctionException: Could not create enough Components to service your
>
> > request (Timed out)." responseCode="" success="false"><assertionResult
>
> > failureMessage="Response was null" error="false"
>
> > failure="true"/></sampleResult>
>
> >
>
> > -------------------
>
> >
>
> >
>
> >
>
> > The top of the test plan has a 'JDBC Connection Configuration' element
>
> > with these settings.
>
> >
>
> > Max. Number of connections = 10
>
> >
>
> > Pool timeout = 10000 (I assume this caused the error abobe)
>
> >
>
> > Idle Cleanup Interval (ms) = 60000
>
> >
>
> > These and all the other settings for this config element are the
> default
>
> > values
>
> >
>
> >
>
> >
>
> > Can anyone advise me how I can address this error?
>
> >
>
> > Each of my test thread 'sleeps' for about 6 minutes to allow
>
> > transactions to propagate from source to destination systems -would
>
> > impact Idle Cleanup Interval?
>
> >
>
> > Would I increase the max number of number of connections & timeout,
> and
>
> > decrease idle cleanup interval?
>
> >
>
> >
>
> >
>
> > Kind regards,
>
> >
>
> > Sonam Chauhan
>
> >
>
> > --
>
> >
>
> > Corporate Express Australia Ltd.
>
> >
>
> > Phone: +61-2-93350725, Email: sonam.chauhan@ce.com.au
>
> >
>
> >
>
> >
>
> >
>
>
>
> ---------------------------------------------------------------------
>
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
>
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org