Hola, soy nuevo en el tema de las Pool de conexiones y necesito ayuda. Tras leer este artículo:
 http://www.chuidiang.com/java/mysql/...Conexiones.php 
lo entiendo todo perfectamente, pero no tengo claro como integrarlo con mi programa, un servidor de sockets que abre un hilo por cada conexión entrante y aparte otro hilo paralelo principal que hace como unas 30-50 consultas UPDATE cada 5 segs. 
Este es el código:   
 Código PHP:
    public class servidorES
{
          
    // punto de entrada a nuestro programa
    public static void main(String [] array)    
    {
     
        //cargar el driver de mysql
        try    {
           Class.forName("org.gjt.mm.mysql.Driver");
        } 
        catch (Exception e)    {
            System.out.println("Error1: "+e);
           e.printStackTrace();
        }
 
       
        //arranca el hilo principal
        PnjIAES pnjia = new PnjIAES();
        pnjia.start();
 
        servidorES instancia = new servidorES(array);    
        instancia.arranca();
    }
        
    
    boolean arranca()
    {
         
        try
        {
            
            ServerSocket s = new ServerSocket(puerto);
 
            depura("Esperando conexion...");
            
            while(true)  // bucle infinito .... 
            {
                Socket entrante = s.accept();
                peticionES pCliente = new peticionES(entrante);
                pCliente.start();
            }
            
        }
        catch(Exception e)
        {
            depura("Error en servidor\n" + e.toString());
        }
        
        return true;
    }
    
}
 
 
 
class PnjIAES extends Thread
{
 
 public PnjIAES(){ 
        DEBUG = 2;
        dormir=5000;
        //inicializar variables
        //....
 }
 
 
public void run(){ //iniciar hilo
 
    try{
 
            conexion = DriverManager.getConnection (dbhost,dbuser, dbpass);
           
            s = conexion.createStatement();
           
            while(true){
                //hacer consultas aqui, unas 30-50 UPDATE por cada 5 segundos
 
                //dormir xx segundos
                try{
                    sleep(dormir);
                }catch(Exception e){
                    depura("exc:"+e.toString());
                    e.printStackTrace();
                }
            }
 
         }catch(Exception e){
            System.out.println("e2: "+e.toString());
            e.printStackTrace();
        }
}//run
 
}
 
 
class peticionES extends Thread
{
 
      private Socket scliente     = null;      
       peticionES(Socket ps)
       {             
        
        scliente = ps;
       
       }
    
 public void run() // implementamos el metodo run
    {
 
    depura("Procesamos conexion");
 
    
        // Establecemos la conexion con la base de datos.
        Connection conexion = null;
        try{
              conexion = DriverManager.getConnection (dbhost,dbuser, dbpass);
 
 
        }catch(Exception e){
            depura(e.toString());
        }
 
 
        boolean conectado = true;    
 
        do{ //bucle principal de cada hilo
 
            //varias consultas (de 1 a 5) de cualquier tipo (select,update) cada segundo
 
        }while(conectado==true);
        
    }
} 
    
  ¿alguna idea de donde declarar el dataSource,  basicDataSource, etc y como accedo a ellos desde la clase PnjIAES o desde cada peticion? 
GRACIAS