CannotAcquireResourceException in Junit

Started by Abhra Karover 8 years ago6 messagesgeneral
Jump to latest
#1Abhra Kar
abhra.kar@gmail.com

Hi,

I am getting the following error while running bunch of Junit test
cases through “ant test” command----

Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A
ResourcePool could not acquire a resource from its primary factory or
source.

PFA full stack trace.

After execution of 300 test cases I got this error. The setup() method code
snippet is ---

@Before

public void setUp() throws Exception {

entityManager =
entityManagerFactory.createEntityManager();//javax.persistence.EntityManager

entityManager.getTransaction().begin();

}

this method ran for all 300 test cases but didn’t get error .

Another 900 test cases are remaining. I tried running single test cases
from those test cases, getting same error for all.

What is root cause of this error.

Thanks and Regards,

Abhra

Attachments:

StackTrace.docapplication/msword; name=StackTrace.docDownload
#2Rob Sargent
robjsargent@gmail.com
In reply to: Abhra Kar (#1)
Re: CannotAcquireResourceException in Junit

On Jan 24, 2018, at 9:57 AM, Abhra Kar <abhra.kar@gmail.com> wrote:

Hi,
I am getting the following error while running bunch of Junit test cases through “ant test” command----
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
PFA full stack trace.

After execution of 300 test cases I got this error. The setup() method code snippet is ---

@Before
public void setUp() throws Exception {
entityManager = entityManagerFactory.createEntityManager();//javax.persistence.EntityManager
entityManager.getTransaction().begin();
}

this method ran for all 300 test cases but didn’t get error .

Another 900 test cases are remaining. I tried running single test cases from those test cases, getting same error for all.
What is root cause of this error.

Thanks and Regards,
Abhra
<StackTrace.doc>

Apparently Merlin is busy elsewhere. You need to name the OS, the postgres version, and the stack you’re using.

But my guess is you’re not closing those connections and have hit a configuration limit for maximum connection.

#3Abhra Kar
abhra.kar@gmail.com
In reply to: Rob Sargent (#2)
Re: CannotAcquireResourceException in Junit

Thanks Rob.

OS -- RHEL 6.7(Santiago)

Postgres Version -- 9.5

Location --*/usr/pgsql-9.5/bin/psql*

Can you please guide me , how to stop all those connection manually(From
psql prompt or linux shell or any .sh file with in postgres directory)

Regards,

Abhra

On Thu, Jan 25, 2018 at 9:36 AM, Rob Sargent <robjsargent@gmail.com> wrote:

Show quoted text

On Jan 24, 2018, at 9:57 AM, Abhra Kar <abhra.kar@gmail.com> wrote:

Hi,
I am getting the following error while running bunch of Junit

test cases through “ant test” command----

Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException:

A ResourcePool could not acquire a resource from its primary factory or
source.

PFA full stack trace.

After execution of 300 test cases I got this error. The setup() method

code snippet is ---

@Before
public void setUp() throws Exception {
entityManager = entityManagerFactory.

createEntityManager();//javax.persistence.EntityManager

entityManager.getTransaction().begin();
}

this method ran for all 300 test cases but didn’t get error .

Another 900 test cases are remaining. I tried running single test cases

from those test cases, getting same error for all.

What is root cause of this error.

Thanks and Regards,
Abhra
<StackTrace.doc>

Apparently Merlin is busy elsewhere. You need to name the OS, the
postgres version, and the stack you’re using.

But my guess is you’re not closing those connections and have hit a
configuration limit for maximum connection.

#4Rob Sargent
robjsargent@gmail.com
In reply to: Abhra Kar (#3)
Re: CannotAcquireResourceException in Junit

On Jan 24, 2018, at 9:32 PM, Abhra Kar <abhra.kar@gmail.com> wrote:

Thanks Rob.

OS -- RHEL 6.7(Santiago)
Postgres Version -- 9.5
Location --/usr/pgsql-9.5/bin/psql

Can you please guide me , how to stop all those connection manually(From psql prompt or linux shell or any .sh file with in postgres directory)

Regards,
Abhra

On Thu, Jan 25, 2018 at 9:36 AM, Rob Sargent <robjsargent@gmail.com> wrote:

On Jan 24, 2018, at 9:57 AM, Abhra Kar <abhra.kar@gmail.com> wrote:

Hi,
I am getting the following error while running bunch of Junit test cases through “ant test” command----
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
PFA full stack trace.

After execution of 300 test cases I got this error. The setup() method code snippet is ---

@Before
public void setUp() throws Exception {
entityManager = entityManagerFactory.createEntityManager();//javax.persistence.EntityManager
entityManager.getTransaction().begin();
}

this method ran for all 300 test cases but didn’t get error .

Another 900 test cases are remaining. I tried running single test cases from those test cases, getting same error for all.
What is root cause of this error.

Thanks and Regards,
Abhra
<StackTrace.doc>

Apparently Merlin is busy elsewhere. You need to name the OS, the postgres version, and the stack you’re using.

But my guess is you’re not closing those connections and have hit a configuration limit for maximum connection.

Please don’t top post in the forum.

Something like this from https://stackoverflow.com/questions/5408156/how-to-drop-a-postgresql-database-if-there-are-active-connections-to-it

You might want a bunch of
select pg_terminate_backend(<pick one pid you no is yours from ps output>);

WARNING: this kills all connections.
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM
pg_stat_activity
WHERE pg_stat_activity.datname = 'TARGET_DB'
AND pid <> pg_backend_pid();

#5Abhra Kar
abhra.kar@gmail.com
In reply to: Rob Sargent (#4)
Re: CannotAcquireResourceException in Junit

Hi,
Sorry for late reply. Below options I tried ---
1>pg_terminate_backend --> Successful execution.
2> Increase max_connection to 900 in
/var/lib/pgsql/9.5/data/postgresql.conf .After modify restart psql
service---

service postgresql-9.5 start

service postgresql-9.5 stop

Then execute select * from pg_stat_activity it shows 2 connections.

3>set cp3p0 options ----
com.mchange.v2.c3p0.ComboPooledDataSource cpds = new
ComboPooledDataSource();
cpds.setMaxPoolSize(1000);
cpds.setMaxStatements(0);
cpds.setInitialPoolSize(50);
cpds.setAcquireIncrement(5);
cpds.setAcquireRetryAttempts(5);

But the problem still persist.Please provide suggestion.

Regards,
Abhra

On Thu, Jan 25, 2018 at 10:28 AM, Rob Sargent <robjsargent@gmail.com> wrote:

Show quoted text

On Jan 24, 2018, at 9:32 PM, Abhra Kar <abhra.kar@gmail.com> wrote:

Thanks Rob.

OS -- RHEL 6.7(Santiago)
Postgres Version -- 9.5
Location --/usr/pgsql-9.5/bin/psql

Can you please guide me , how to stop all those connection manually(From

psql prompt or linux shell or any .sh file with in postgres directory)

Regards,
Abhra

On Thu, Jan 25, 2018 at 9:36 AM, Rob Sargent <robjsargent@gmail.com>

wrote:

On Jan 24, 2018, at 9:57 AM, Abhra Kar <abhra.kar@gmail.com> wrote:

Hi,
I am getting the following error while running bunch of Junit

test cases through “ant test” command----

Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException:

A ResourcePool could not acquire a resource from its primary factory or
source.

PFA full stack trace.

After execution of 300 test cases I got this error. The setup() method

code snippet is ---

@Before
public void setUp() throws Exception {
entityManager = entityManagerFactory.

createEntityManager();//javax.persistence.EntityManager

entityManager.getTransaction().begin();
}

this method ran for all 300 test cases but didn’t get error .

Another 900 test cases are remaining. I tried running single test

cases from those test cases, getting same error for all.

What is root cause of this error.

Thanks and Regards,
Abhra
<StackTrace.doc>

Apparently Merlin is busy elsewhere. You need to name the OS, the

postgres version, and the stack you’re using.

But my guess is you’re not closing those connections and have hit a

configuration limit for maximum connection.

Please don’t top post in the forum.

Something like this from https://stackoverflow.com/
questions/5408156/how-to-drop-a-postgresql-database-if-
there-are-active-connections-to-it

You might want a bunch of
select pg_terminate_backend(<pick one pid you no is yours from ps output>);

WARNING: this kills all connections.
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM
pg_stat_activity
WHERE pg_stat_activity.datname = 'TARGET_DB'
AND pid <> pg_backend_pid();

#6rob stone
floriparob@gmail.com
In reply to: Abhra Kar (#5)
Re: CannotAcquireResourceException in Junit

On Tue, 2018-01-30 at 15:41 +0530, Abhra Kar wrote:

Hi,
Sorry for late reply. Below options I tried ---
1>pg_terminate_backend --> Successful execution.
2> Increase max_connection to 900 in
/var/lib/pgsql/9.5/data/postgresql.conf .After modify restart psql
service---
service postgresql-9.5 start
service postgresql-9.5 stop

Then execute select * from pg_stat_activity it shows 2 connections.

3>set cp3p0 options ----
com.mchange.v2.c3p0.ComboPooledDataSource cpds = new
ComboPooledDataSource();
cpds.setMaxPoolSize(1000);
cpds.setMaxStatements(0);
cpds.setInitialPoolSize(50);
cpds.setAcquireIncrement(5);
cpds.setAcquireRetryAttempts(5);

But the problem still persist.Please provide suggestion.

Regards,
Abhra

The stack trace you sent with your original post shows hibernate
crashing as it has no connection string.
You are using hibernate as the go between the RDBMS and your app.
The problem is more than likely in your c3p0 package.
I haven't a clue what it is supposed to do, but my guess is that the
faulty code is there, not with your configuration parameters.

My 0.02 worth.
HTH,
Rob