Saltar al contenido

No hay más datos para leer del error de socket

Esta pregunta se puede abordar de variadas maneras, sin embargo te dejamos la que para nosotros es la respuesta más completa.

Solución:

Para errores como este, debe involucrar al soporte de Oracle. Lamentablemente, no menciona qué versión de Oracle está utilizando. El error puede estar relacionado con la consulta de enlace del optimizador. Dependiendo de la versión de Oracle, se aplican diferentes soluciones alternativas.

Tienes dos formas de abordar esto:

  • actualizar a 11.2
  • establecer parámetro de oráculo _optim_peek_user_binds = false

Por supuesto, los parámetros de subrayado solo deben establecerse si lo recomienda el soporte de Oracle.

Estábamos enfrentando el mismo problema, lo resolvimos aumentando initialSize y maxActive tamaño del grupo de conexiones.

Puedes consultar este enlace

Tal vez esto ayude a alguien.

Otro caso: si está enviando parámetros de fecha a un sql parametrizado, asegúrese de enviar java.sql.Timestamp y no java.util.Date. De lo contrario, obtienes

java.sql.SQLRecoverableException: No hay más datos para leer desde el socket

Declaración de ejemplo: en nuestro código Java, estamos usando org.apache.commons.dbutils y tenemos lo siguiente:

final String sqlStatement = "select x from person where date_of_birth between ? and ?";
java.util.Date dtFrom = new Date(); //<-- this will fail
java.util.Date dtTo = new Date();   //<-- this will fail
Object[] params = new Object[] dtFrom , dtTo ;
final List mapList = (List) query.query(conn, sqlStatement, new MapListHandler(),params); 

Lo anterior estaba fallando hasta que cambiamos los parámetros de fecha para ser java.sql.Timestamp

java.sql.Timestamp tFrom = new java.sql.Timestamp (dtFrom.getTime()); //<-- this is OK
java.sql.Timestamp tTo = new java.sql.Timestamp(dtTo.getTime());   //<-- this is OK
Object[] params = new Object[] tFrom , tTo ;
final List mapList = (List) query.query(conn, sqlStatement, new MapListHandler(),params); 

Acuérdate de que tienes la capacidad de interpretar si descubriste tu enigma a tiempo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *