Verify if the connection pooling calls directly, DriverManager.getConnection.
This call is synchronized in some jdk versions, and because of that
concurrent calls to that create deadlocks.
Good Luck.
Helder Alexandre
Siva wrote:
Hi,
I am facing typical problem with connection pooling, Whenever I use pooling
stuff , It creating deadlocks in database. If I use directly(like
DriverManager.getConnection(url, prop);) it is working fine . This
connection stuff called in BMP(App Server is WebSphere3.02 ). Please
throw some ideas. thxSiva.
Connection Pooling code
dataSourceName = "jdbc/PCIQ";
hostname = "DBServer";
port = 900;
username = "Admin001";
password = "Admin001";
// Setup the parameters to get the initial
context
Hashtable parms = new Hashtable();
parms.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.ejs.ns.jndi.CNInitialContextFactory");
parms.put(Context.PROVIDER_URL, "iiop://" + hostname
+ ":" + port);
//parms.put("user", username);
//parms.put("password", password);
// Get the initial context
Debug.println("Attempt to create initial context.");
InitialContext context = new InitialContext(parms);
// Now create a data source
Debug.println("Attempt to access data source:
" + dataSourceName);
DataSource ds = (DataSource) context.lookup(dataSourceName);
// Try and get a connection
Debug.println("Attempt to get database connection.");
conn = ds.getConnection(username, password);
System.out.println("Connection successful.");
}
catch (Exception e)
{
e.printStackTrace();
}
|