Dear friends,
I want to know a way to configure/restrict no of
JDBC connections that are available in a connectionpool which has been created programmatically thru my web application.Can we control this functionality through
Tomcat in which my application is hosted.
My program for Connection Pooling is:
package com.agcl.bluedart.dao;
import java.io.*;
import java.sql.*;
import java.util.*;
import org.apache.commons.dbcp.PoolingDataSource;
import org.apache.commons.pool.impl.GenericObjectPool;
import org.apache.commons.dbcp.ConnectionFactory;
import org.apache.commons.dbcp.DriverManagerConnectionFactory;
import org.apache.commons.dbcp.PoolableConnectionFactory;
import com.agcl.bluedart.util.*;
public class SQLDBConPool {
public static Connection con;
public static ConnectionFactory connectionFactory;
public static PoolingDataSource dataSource;
public static
String JdbcDriver=null;
public static String JdbcUrl=null;
public static String JdbcUserId=null;
public static String JdbcPassword=null;
AgentLogger lh = new AgentLogger();
DateTimeCapture gd = new DateTimeCapture();
PropertyReader pr = new PropertyReader();
StringBuffer sbLog = null;
public SQLDBConPool(){
sbLog = null;
sbLog = new StringBuffer();
try{
JdbcDriver = pr.getSQLServerJdbcDriver();
JdbcUrl = "jdbc:microsoft:sqlserver://"+pr.getSQLServerIpAddress()+":"+pr.getSQLServerPort()+";DatabaseName="+pr.getSQLServerDBName()+"";
JdbcUserId = pr.getSQLServerDBUserName();
JdbcPassword = pr.getSQLServerDBPassword();
Class.forName(JdbcDriver);
}catch(Exception e){
sbLog.append("["+gd.getCurrentDate()+"] || [com.agcl.cti.DAO.DBConnPool ] || [DBConnPool] || [ERROR] || DB Connection"+e.getMessage()+".\n");
lh.doAgentLogging(sbLog.toString());
}
GenericObjectPool connectionPool = new GenericObjectPool ( null );
ConnectionFactory connectionFactory = new DriverManagerConnectionFactory ( JdbcUrl,JdbcUserId,JdbcPassword );
PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory ( connectionFactory,connectionPool,null,null,false,true );
dataSource = new PoolingDataSource ( connectionPool );
}
public static Connection getConnection() throws SQLException
{
SQLDBConPool db = new SQLDBConPool ();
con = dataSource.getConnection ();
return con;
}
/*public static void main(String[] args)
{
try {
Connection con=SQLDBConPool.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}*/
}