Foros del Web » Programación para mayores de 30 ;) » Java »

Espera en Conexiones remotas

Estas en el tema de Espera en Conexiones remotas en el foro de Java en Foros del Web. Buenas tardes amigos; les escribo porque tengo un sistema hecho en JAVA que se conecta a una base de datos mySQL remota. Mi problema es ...
  #1 (permalink)  
Antiguo 24/05/2013, 14:09
Avatar de francoBalsamo  
Fecha de Ingreso: mayo-2013
Ubicación: San Jorge
Mensajes: 6
Antigüedad: 6 años, 2 meses
Puntos: 2
Espera en Conexiones remotas

Buenas tardes amigos; les escribo porque tengo un sistema hecho en JAVA que se conecta a una base de datos mySQL remota. Mi problema es el siguiente:

En consultas o ABMs hay una pequeña espera que creo yo debe ser algo normal tratándose de una conexión remota. El problema es que en ese lapso de espera no puedo hacer otra cosa más que esperar ya que el sistema se congela.

Mi pregunta es:

¿Existe alguna manera de que el sistema siga funcionando normalmente en ese lapso de espera?

Aquí les dejo el código para que vean que es lo que hice:

Clase Conexión:
Código PHP:
package gestor;

/**
 *
 * @author fjbalsamo
 */
public class Conexion {
    private static 
java.sql.Connection connection=null;
    private static 
String cxnString="jdbc:mysql://localhost:3306/dbName";    
    private static 
String password="**********";
    private static 
String user="user";
    private static 
com.mysql.jdbc.PreparedStatement pstmt;
    
    public static 
java.sql.Connection getConexion(){
        try{
            if(
connection==null){
                
//Registro el Driver
                
Class.forName("com.mysql.jdbc.Driver").newInstance();
                
//Conexion a la base de datos
                
connection=(java.sql.Connectionjava.sql.DriverManager.getConnection(cxnStringuserpassword);
                
            }
        }catch(
com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException e1){
            
System.err.println(e1);
        }catch(
java.sql.SQLException e2){
            
System.err.println(e2);
        }catch(
Exception e3){
            
System.err.println(e3);
        }
        return 
connection;
    }
    
    public static 
com.mysql.jdbc.PreparedStatement getPreparedStatement(String sql){
        try{
            
pstmt=(com.mysql.jdbc.PreparedStatementConexion.getConexion().prepareStatement(sql);
        }catch(
java.sql.SQLException e1){
            
System.err.println(e1);
        }catch(
Exception e2){
            
System.err.println(e2);
        }
        return 
pstmt;
    }
    

Clase GestorCliente:

Código PHP:
public class GestorCliente {
    private static 
com.mysql.jdbc.PreparedStatement pstmt;
    private static 
java.sql.ResultSet rst;
    private static 
boolean ok=false;
    private static 
Cliente cliente;
    private static 
ArrayList<Clienteclientes;
    
    public static 
boolean addCliente(Cliente cli){
        try{
            
pstmt=Conexion.getPreparedStatement("string sql");

            
pstmt.setInt(1cli.getCampoInt());

            
pstmt.setString(2cli.getCampoString());
            
            
ok=(pstmt.executeUpdate()!=0);

        }catch(
Exception e){
            
ok=false;
            
System.err.println(e);
        }
        return 
ok;
    }

public static 
ArrayList<ClientegetClientesByString(String str){
        
clientes=new ArrayList<Cliente>();
        try{
            
pstmt=Conexion.getPreparedStatement("SELECT query");
            
pstmt.setString(1str+"%");
            
rst=pstmt.executeQuery();
            while(
rst.next()){
                
cliente=new Cliente();
                
cliente.setNombre(rst.getString("nombreCliente"));
                
clientes.add(cliente);                     
            }
        }catch(
Exception e){            
            
System.err.println(e);
        }
        return 
clientes;
    }


  #2 (permalink)  
Antiguo 24/05/2013, 14:14
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.773
Antigüedad: 14 años, 9 meses
Puntos: 454
Respuesta: Espera en Conexiones remotas

¿Has probado a lanzar la conexión en un hilo?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 28/05/2013, 13:08
Avatar de francoBalsamo  
Fecha de Ingreso: mayo-2013
Ubicación: San Jorge
Mensajes: 6
Antigüedad: 6 años, 2 meses
Puntos: 2
Respuesta: Espera en Conexiones remotas

Código Java:
Ver original
  1. Thread t = new Thread("ThreadConnection", new Runnable() {
  2.     void run()
  3.     {
  4.         Conexion cxn=new Conexion();
  5.     }
  6. });
  7. t.start();

Me estas sugiriendo algo así??
  #4 (permalink)  
Antiguo 28/05/2013, 13:24
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.773
Antigüedad: 14 años, 9 meses
Puntos: 454
Respuesta: Espera en Conexiones remotas

Sí, todo lo que tarde mételo en un hilo separado, así el sistema no se congelará ... siempre que "congelar el sistema" signifique la interfaz de usuario de tu aplicación no responde.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: conexion, java-mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:34.