Saltar al contenido

¿Cómo puedo evitar que Oracle SQL Developer cierre la conexión de base de datos?

Solución:

Respuesta

Lo más probable es que sea un firewall entre SQL Developer y la base de datos lo que rompe las cosas. Puede resolver eso desde SQL Developer utilizando el complemento SQL Developer Keepalive.

También puede solucionar este problema desde el servidor de base de datos utilizando las respuestas de Thomas y David Mann.

Oracle Net se puede configurar con Dead Connection Detection (SQLNET.EXPIRE_TIME) para solucionar este problema. Establezca EXPIRE_TIME en el servidor de la base de datos en un valor menor que el tiempo de espera de la conexión del cortafuegos para que DCD mantenga activa la conexión a la base de datos. Consulte la Nota 151972.1 “Explicación de la detección de conexión muerta (DCD)”

Respuesta original

No tengo la respuesta para esto, pero estoy experimentando el mismo problema.

El cortafuegos entre mi desarrollador SQL y la base de datos cierra automáticamente las sesiones “inactivas”. Según el cortafuegos, una consulta de larga duración es una sesión inactiva, por lo que la cierra. Todavía no he descubierto cómo hacer que SQL Developer envíe paquetes a través de una conexión con una consulta de larga duración, de modo que el firewall no cierre la conexión. Y no sé si esto es posible en absoluto.

Así que no creo que sea un problema de SQL Developer, sino un problema de firewall.

— ACTUALIZAR

Existe una extensión para SQL Developer que le permite mantener las conexiones activas: http://sites.google.com/site/keepaliveext/

Aún no está totalmente terminado (por ejemplo, la notificación que recibe indica el mismo tiempo de espera sin importar el tiempo de espera que haya especificado) pero funciona. Todavía no lo he probado con la última versión preliminar de SQL Developer, pero funcionó con SQL Developer 2.2.x

— ACTUALIZAR

Para SQL Developer 4+ puede usar: http://scristalli.github.io/SQL-Developer-4-keepalive/

Aquí hay otra extensión de Keep Connection Active que podría ser útil. (La extensión mencionada anteriormente contiene una serie de problemas que se resuelven en esta extensión).

http://sites.google.com/site/keepconnext/

También me suena como un problema de firewall.

Puede tener suerte con la configuración del parámetro EXPIRE_TIME en el archivo SQLNET.ORA del servidor. De la documentación:

Utilice el parámetro SQLNET.EXPIRE_TIME para especificar el intervalo de tiempo, en minutos, para enviar una sonda para verificar que las conexiones cliente / servidor están activas. Establecer un valor mayor que 0 asegura que las conexiones no se dejen abiertas indefinidamente, debido a una terminación anormal del cliente. Si la sonda encuentra una conexión terminada o una conexión que ya no está en uso, devuelve un error, lo que hace que se cierre el proceso del servidor. Este parámetro está destinado principalmente al servidor de bases de datos, que normalmente maneja varias conexiones a la vez.

Documentación 10g sobre EXPIRE_TIME

¡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 *