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

Tiempo de espera de la conexion

Estas en el tema de Tiempo de espera de la conexion en el foro de Java en Foros del Web. Saludos a todos, una consulta que hacer. Tengo instalado en MySQL una base de datos en la que están las fotos de los usuarios que ...
  #1 (permalink)  
Antiguo 14/05/2013, 15:52
 
Fecha de Ingreso: marzo-2009
Mensajes: 121
Antigüedad: 15 años, 1 mes
Puntos: 1
Tiempo de espera de la conexion

Saludos a todos, una consulta que hacer.

Tengo instalado en MySQL una base de datos en la que están las fotos de los usuarios que se muestra una vez que los usuarios acceden a ella a través de una aplicación que esta instalado en otros equipos. Hasta aquí no hay problema, el problema surge cuando el equipo esta apagado ya que el trata de conectarse y al no conseguirlo el tiempo de respuesta es muuuuy largo y la respuesta que genera son algo como esto:::
STACKTRACE:
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl .java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSoc ketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.j ava:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.j ava:366)
at java.net.Socket.connect(Socket.java:516)
at java.net.Socket.connect(Socket.java:466)
at java.net.Socket.(Socket.java:366)
at java.net.Socket.(Socket.java:208)
at com.mysql.jdbc.StandardSocketFactory.connect(Stand ardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.(MysqlIO.java:271)
at com.mysql.jdbc.Connection.createNewIO(Connection.j ava:2771)
at com.mysql.jdbc.Connection.(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonReg isteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager .java:525)
at java.sql.DriverManager.getConnection(DriverManager .java:171)
at gestorBD.conectar(gestorBD.java:42)
at main_clase.(main_clase.java:20)
at main_clase$6.run(main_clase.java:243)
at java.awt.event.InvocationEvent.dispatch(Invocation Event.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 461)
at java.awt.EventDispatchThread.pumpOneEventForHierar chy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:110)
** END NESTED EXCEPTION **

Lo que yo necesito es poder controlar con un limite de tiempo es decir que si la aplicación tarda mas de 10 segundos en conectarse con la BASE que me retorne algún valor que pudiera tomarlo como referencia para yo ejecutar otra acción .

La conexión la establezco de la siguiente forma
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {

System.out.println( "No se pudo cargar el puente JDBC-ODBC_MYSQL." );
e.printStackTrace();
}
try {
conexion_mysql = DriverManager.getConnection("jdbc:mysql://xxx.xx.x.x/base", "usuario", "password");

} catch (SQLException e) {
e.printStackTrace();
conex = 1;
}

SI me pueden ayudar se los agradecería
  #2 (permalink)  
Antiguo 14/05/2013, 16:08
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Tiempo de espera de la conexion

Por favor usa el resaltado de código.

Código Java:
Ver original
  1. try {
  2.     Class.forName("com.mysql.jdbc.Driver");
  3.    
  4.     System.out.println( "No se pudo cargar el puente JDBC-ODBC_MYSQL." );
  5.     e.printStackTrace();
  6. }
  7. int seconds = 10;
  8. DriverManager.setLoginTimeout(seconds);
  9. try {
  10.     conexion_mysql = DriverManager.getConnection("jdbc:mysql://xxx.xx.x.x/base", "usuario", "password");
  11. } catch (SQLException e) {
  12.     e.printStackTrace();
  13.     conex = 1;
  14. }
  15. catch (ConnectException e) {
  16.     e.printStackTrace();
  17.     conex = 2;
  18. }

Has los cambios necesarios para manejar la excepción.
  #3 (permalink)  
Antiguo 17/05/2013, 16:24
 
Fecha de Ingreso: marzo-2009
Mensajes: 121
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Tiempo de espera de la conexion

Gracias por responder pero yo coloco la instrucción que me dijiste y a pesar de que le coloco 5 segundos por colocar un ejemplo el dura mas del tiempo que se le asigna.
Y no logro capturar el error si no que me sale el mensaje que ya coloque.

Etiquetas: clase, conexion, espera, tiempo
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




La zona horaria es GMT -6. Ahora son las 09:35.