Si viste, puse otro tema para tratar especificamente lo del pool de conexiones... Mira el codigo que uso para el pool:
Código PHP:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.Vector;
public final class poolBaseDatos
{
String driver = "";
String url = "";
String login = "";
String password = "";
int codError = 0;
String mensajeError = "";
Statement st=null;
Connection connection = null;
public poolBaseDatos()
{
try
{
driver = ("sun.jdbc.odbc.JdbcOdbcDriver");
url = ("jdbc:odbc:xDb");
login = ("dbX");
password = ("sXl");
Class.forName(driver);
DriverManager.setLoginTimeout(30);
connection = DriverManager.getConnection(url, login, password);
connection.setAutoCommit(false);
System.out.println("Conectandose a la bd");
}
catch(Exception e)
{
System.out.println("Catch del conector a la bd");
mensajeError = e.toString();
codError = 1;
}
}
public boolean doCommit()
{
try
{
connection.commit();
st.close();
System.out.println("connection commit");
}
catch(Exception e)
{
System.out.println("Catch del docommit");
mensajeError = e.toString();
codError = 1;
return false;
}
return true;
}
public boolean doRollback()
{
try
{
st.close();
connection.rollback();
connection.close();
System.out.println("conecction roll back");
}
catch(Exception e)
{
System.out.println("Catch del dorollback");
System.out.println(e.getMessage());
codError = 1;
return false;
}
return true;
}
public ResultSet doSelect(String sql)
{
ResultSet rs=null;
try
{
st = connection.createStatement();
rs = st.executeQuery(sql);
System.out.println("Creando la conexion");
}
catch(Exception e)
{
System.out.println("Catch del doselect en el pool...");
System.out.println(e.getMessage());
codError = 1;
}
return rs;
}
}
Que te parece?, por lo menos con esto no se me cae la base de datos como antes, y me ahorro el metodo init en todos los servlets.
Que dices con respecto al manejo de conex?
Saludos!!