Skip site navigation (1) Skip section navigation (2)

Re: Exception in DriverManager.getConnection creates multiple connections in SYN_SEND state

From: "Sumit Pandya" <sumit(dot)pandya(at)elitecore(dot)com>
To: "'Emanuel Freitas'" <ejsfreitas(at)gmail(dot)com>,<pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: Exception in DriverManager.getConnection creates multiple connections in SYN_SEND state
Date: 2010-11-01 09:11:51
Message-ID: 000301cb79a4$d1e7fbf0$3902a8c0@elitecore.com (view raw or flat)
Thread:
Lists: pgsql-jdbc
Dear Emanuel,

            You should try with JDBC Connection Pooling. There are great
tutorials are available. Using Connection Pool generally improves
performance by 3x.

 

  _____  

From: Emanuel Freitas [mailto:ejsfreitas(at)gmail(dot)com] 
Sent: Friday, October 29, 2010 7:52 PM
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Exception in DriverManager.getConnection creates multiple
connections in SYN_SEND state

 

Hello,

 

I'm running a server that receives approximately 300 requests per second.
For each request I need to do some operations in a database. So, when I
receive a request i check if there is any active connection to the database
and if not i create one. The code for create the connection is something
like this:

 

private Connection initConn() {

            try {

                        Class.forName("org.postgresql.Driver");

            } catch (ClassNotFoundException cnfe) {

                        System.err.println("Error on Driver");

                        return null;

    }

            

            try {

                        Connection db =
DriverManager.getConnection("jdbc:postgresql://192.168.1.2:5432/test?loginTi
meout=3", "test", "1234");

                        return db;

            

            } catch (SQLException sqle) {

                                    System.err.println("Error on
Connection");

                                    return null;

                        }

}

 

 

If the database host is accessible the getConnection method works and I
return the connection, on the other hand, if for some reason the host is not
accessible I get a SQLException after 3 seconds (loginTimeout). That's
exactly what i want to do. 

The problem is, for each time it executes the "getConnection" method one
connection to the database is created and if the host is not accessible the
connection stays in SYN_SENT state for alot of time... 

As I receive alot of requests per second these connections are created until
it reaches the max connections allowed by the SO (linux). 

 

Can you tell me what I'm doing wrong or what can I do to prevent this?

 

Thank You!

 

 

In response to

Responses

pgsql-jdbc by date

Next:From: LewDate: 2010-11-01 11:25:49
Subject: Re: Exception in DriverManager.getConnection creates multiple connections in SYN_SEND state
Previous:From: Emanuel FreitasDate: 2010-10-29 14:21:39
Subject: Exception in DriverManager.getConnection creates multiple connections in SYN_SEND state

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group