Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2011, 07:16
Avatar de sfx4ever
sfx4ever
 
Fecha de Ingreso: noviembre-2003
Ubicación: aqui
Mensajes: 384
Antigüedad: 20 años, 5 meses
Puntos: 2
Pregunta Duda sobre integración de pool de conexiones

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,dbuserdbpass);
           
            
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,dbuserdbpass);


        }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