Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > java.sql.SQLException: Lost connection

Hola, estoy haciendo una consulta a un servidor Basis BBj y realiza la coneccion correcta pero después de obtener unos 61707 registros me marca una excepción en el ResultSet . Imagino que es por el tiempo que el ResultSet cierra la conexion.
Alguien me podría orientar como configurar la conexión o la manera de poder extraer todos los registros.

Pongo el código y la salida de pantalla .....

Gracias.
__________
public class TestConnection {
public static void main(String[] args) {
BasisBBj bbj = new BasisBBj("01CB_CONTABANCO");
String query = "SELECT * FROM CUENTAS";
ResultSet rs_select = bbj.getResult(query);
Calendar pass = Calendar.getInstance();
int n=0;
Calendar now = Calendar.getInstance();
if(rs_select!=null){
try {
while(rs_select.next()){
System.out.println((n++)+" - "+rs_select.getString(1)+" "+rs_select.getString(2) + " ");
}
} catch (SQLException ex) {
now = Calendar.getInstance();
Logger.getLogger(TestConnection.class.getName()).log(Level.SEVERE, null, ex);
System.out.println(getTime(now)+" "+getDelay(now.getTimeInMillis(),pass.getTimeInMillis())+" "+ex.getSQLState()+" "+ex.getMessage());
}
}
}
}

---------------------------------


0 -
1 - 000@ 000@
2 - 0011 0011
3 - 0012 0012
4 - 00140001010100020109 0014
5 - 0020000600300069 0020
6 - 0101 0101
7 - 01010010 0101
8 - 010100100001 0101
9 - 010100100002 0101
10 - 010100100003 0101
.
.
.
61700 - 0111020702200098 0111
61701 - 0111020702200099 0111
61702 - 0111020702200100 0111
61703 - 0111020702200101 0111
61704 - 0111020702200102 0111
61705 - 0111020702200103 0111
61706 - 0111020702200104 0111
61707 - 0111020702200105 0111
ene 19, 2015 6:48:52 PM testconnection.TestConnection main
GRAVE: null
java.sql.SQLException: Lost connection to BBj Data Server.
at com.basis.jdbc.b.a(b.java:443)
18:48:48.323 00:00:34 08S01 Lost connection to BBj Data Server.
at com.basis.jdbc.b.a(b.java:1136)
at com.basis.jdbc.k.next(k.java:1215)
at testconnection.TestConnection.main(TestConnection.java:33)

enero 20, 2015 | Unregistered CommenterRivadeneyra

Anexo que al camiar el query de "SELECT * FROM CUENTAS" a "SELECT ID_CUENTA, CUENTA FROM CUENTAS" Pude recorrer todo el ArrayList, asi que creo esta asociado a la memoria. Sigo a la espera de aportaciones para poder obtener todos los registros.

enero 20, 2015 | Registered Commenterfeferefe

En teoría cuando tu hace la query y trae los resultados esos ya los tienes en memoria tu máquina y recorrerlos no debería ser un problema, otra cosa es como gestione las cosas el driver del BASIS ese.

Prueba a hacer la query en varias partes, orderna por id y ve cogiendo trozos o paginala si el driver lo permite.

enero 20, 2015 | Registered Commenterantuansoft