Cierre de una conexión a una fuente de datos en una aplicación SQLJ

Una vez finalizada una conexión con una fuente de datos, es necesario que cierre la conexión con la fuente de datos. De esta forma se liberan inmediatamente los recursos del servidor de datos y SQLJ del objeto ConnectionContext asociado.

Acerca de esta tarea

Si no cierra un objeto ConnectionContext tras utilizarlo, pueden producirse comportamientos inesperados si un finalizador de Java cierra el objeto ConnectionContext. Algunos ejemplos de comportamiento inesperado son:
  • Una ObjectClosedException en los objetos ResultSet o Statement subyacentes
  • Un agente se cuelga en los procedimientos almacenados de DB2

Procedimiento

Para cerrar la conexión con la fuente de datos, utilice uno de los métodos de " ConnectionContext.close ".
  • Si ejecuta ConnectionContext.close() o ConnectionContext.close(ConnectionContext.CLOSE_CONNECTION), se cierran el contexto de conexión y la conexión con el origen de datos.
  • Si ejecutas ConnectionContext.close(ConnectionContext.KEEP_CONNECTION) , el contexto de conexión se cierra, pero la conexión con el origen de datos no.

Ejemplo

El código de programa siguiente cierra el contexto de conexión, pero no cierra la conexión con la fuente de datos.
…
ctx = new EzSqljctx(con0);          // Create a connection context object
                                    // from JDBC connection con0
…                                   // Perform various SQL operations 
 EzSqljctx.close(ConnectionContext.KEEP_CONNECTION);
                                    // Close the connection context but keep
                                    // the connection to the data source open