La función de sistema
VGLib.connectionService proporciona dos ventajas:
- Permite que un programa se conecte o desconecte a una base de datos durante la ejecución.
- Recibe (opcionalmente) el nombre de producto y el nivel de release de la base de datos. Puede utilizar la información recibida en una sentencia case, if,
o while de modo que el proceso de ejecución depende de las características de la base de datos.
Si utiliza VGLib.connectionService para crear una conexión
nueva desde un programa
Java,
especifique el nivel de aislamiento estableciendo la variable de sistema
VGVar.sqlIsolationLevel.
VGLib.connectionService sólo puede utilizarse en programas migrados
desde VisualAge
Generator y EGL 5.0. La función está soportada (durante el desarrollo) si la preferencia EGL Compatibilidad de VisualAge Generator está seleccionada o (durante la generación) si la opción del descriptor de construcción
VAGCompatibility está establecida en yes.
Para programas nuevos, utilice las siguientes funciones de sistema:
VGLib.connectionService no devuelve ningún valor.

- idUsuario
- ID de usuario que se utiliza para acceder a la base de datos. El argumento debe ser un elemento de tipo CHAR y longitud 8; un literal no es válido. El argumento es obligatorio, pero no se tiene en cuenta para la generación COBOL. Para obtener información general, consulte la sección Autorización de base de datos y nombres de tabla.
- contraseña
- Contraseña que se utiliza para acceder a la base de datos. El argumento debe ser un elemento de tipo CHAR y longitud 8; un literal no es válido. El argumento es obligatorio, pero no se tiene en cuenta para la generación COBOL.
- nombreServidor
- Especifica una conexión y utiliza dicha conexión para asignar valores a los argumentos
producto y release, si estos argumentos están
incluidos en la invocación de VGLib.connectionService.
El argumento
nombreServidor es obligatorio y debe ser un elemento de tipo CHAR y longitud 18. Son válidos los siguientes valores:
- blanks (sin contenido)
- Si una conexión está activa, VGLib.connectionService mantiene dicha
conexión. Si una conexión no está activa, el resultado (que no sea asignar valores) es volver al estado de conexión que está en vigor al principio de una unidad de ejecución, como se describe en la sección Base de datos por omisión.
- RESET
- En relación con COBOL, RESET compromete los cambios, cierra los cursores, libera los bloqueos, se desconecta de la base de datos actual y vuelve al estado de conexión que está en vigor al principio de una unidad de ejecución, como se describe en la sección Base de datos por omisión.
Sin embargo, si tiene la intención de especificar RESET en este caso, invoque
sysLib.commit o sysLib.rollback antes de
invocar VGLib.connectionService.
En relación con un programa Java, RESET vuelve a conectar a la base de datos por omisión; pero si la base de datos por omisión no está disponible, el estado de conexión sigue igual.
Para obtener más detalles, consulte la sección Base de datos por omisión.
- RESET
- RESET vuelve a conectar a la base de datos por omisión; pero si la base de datos por omisión no está disponible, el estado de conexión sigue igual.
Para obtener más detalles, consulte la sección Base de datos por omisión.
- nombreServidor
- Identifica una base de datos.Identifica una base de datos:
Si el código se ejecuta como un programa COBOL, se aplica lo siguiente:
- El valor de nombreServidor debe ser un valor de la columna de ubicación de la tabla
SYSIBM.LOCATIONS, que se encuentra en el subsistema DB2 UDB conectado a la región CICS.
- Especificar una base de datos cierra todos los cursores, libera los bloqueos y finaliza
cualquier conexión existente, y se establece una conexión con la base de datos; sin embargo, si
tiene la intención de especificar un valor para serverName, invoque
sysLib.commit o sysLib.rollback antes de
invocar VGLib.connectionService
Si el código se ejecuta como un programa COBOL, se aplica lo siguiente:
- El valor de nombreServidor debe ser un valor de la columna de ubicación de la tabla
SYSIBM.LOCATIONS, que se encuentra en el subsistema
DB2 UDB.
- Especificar una base de datos cierra todos los cursores, libera los bloqueos y finaliza
cualquier conexión existente, y se establece una conexión con la base de datos; sin embargo, si
tiene la intención de especificar un valor para serverName, invoque
sysLib.commit o sysLib.rollback antes de
invocar VGLib.connectionService
Si el código se ejecuta como un programa Java, se aplica lo siguiente: - Busque el nombre de la base de datos física consultando la propiedad
vgj.jdbc.database.servidor, donde
servidor es el nombre del servidor especificado en la llamada a
VGLib.connectionService. Si esta propiedad no está definida, el nombre de
servidor que está especificado en la llamada a VGLib.connectionService se
utiliza tal cual.
- El formato del nombre de base de datos es distinto para las conexiones J2EE que para las conexiones no J2EE:
- Si ha generado el programa para un entorno J2EE, utilice el nombre al que está enlazado el origen de datos en el registro JNDI; por ejemplo, jdbc/MyDB. Esta situación se produce si la opción del descriptor de construcción J2EE se ha establecido en YES.
- Si ha generado el programa para un entorno JDBC no J2EE, utilice un URL de conexión; por ejemplo, jdbc:db2:MyDB. Esta situación se produce si la opción J2EE se ha establecido en NO.
- producto
- Recibe el nombre de producto de la base de datos. El argumento, si existe, debe ser un elemento de tipo CHAR y longitud 8.
Para determinar la serie que se recibirá cuando el código se conecte a una determinada base de datos, revise la documentación del producto para la base de datos o el controlador; o bien ejecute el código en un entorno de prueba y escriba el valor recibido en un archivo.
- release
- Recibe el nivel de release de la base de datos. El argumento, si existe, debe ser un elemento de tipo CHAR y longitud 8.
Para determinar la serie que se recibirá cuando el código se conecte a una determinada base de datos, revise la documentación del producto para la base de datos o el controlador; o bien ejecute el código en un entorno de prueba y escriba el valor recibido en un archivo.
- opciónConexión
- Este parámetro se pasa por alto si genera un programa para
CICS para
z/OS. Los valores válidos son los siguientes:
- D1E
- D1E es el valor por omisión. El 1 en el nombre de la opción indica que sólo se soporta un compromiso de una fase y la E indica que cualquier desconexión debe tener el valor explicit.
En este caso, un compromiso o una retrotracción no tiene ningún efecto sobre una conexión existente.
Si genera un programa que no es CICS COBOL, sólo puede acceder a una base de datos a la vez y debe solicitar explícitamente una desconexión para liberar los recursos de una conexión anterior (si existe) o conectarse a una base de datos distinta.
Si genera un programa
Java, se
aplica lo siguiente:
- Una conexión a una base de datos no cierra cursores, libera bloqueos ni finaliza una conexión existente. Sin embargo, si la unidad de ejecución ya está conectada a la misma base de datos, el efecto es equivalente a especificar DISC y luego D1E.
- Puede utilizar varias conexiones para leer varias bases de datos, pero sólo debe actualizar una base de datos en una unidad de trabajo ya que sólo está disponible un compromiso de una fase.
Una conexión a una base de datos no cierra cursores, libera bloqueos ni finaliza una conexión existente. Sin embargo, si la unidad de ejecución ya está conectada a la misma base de datos, el efecto es equivalente a especificar DISC y luego D1E.
Puede utilizar varias conexiones para leer varias bases de datos, pero sólo debe actualizar una base de datos en una unidad de trabajo ya que sólo está disponible un compromiso de una fase.
- D1A
-
El
1 en el nombre de opción indica que sólo se soporta un compromiso de
una fase y la
A indica que cualquier desconexión tiene el valor
automatic. Las características de esta opción son las siguientes:
- Sólo puede conectarse a una base de datos a la vez
- Un compromiso, retrotracción o conexión a una base de datos finaliza una conexión existente
- DISC
- Se desconecta de la base de datos especificada. La desconexión de una base de datos produce una retrotracción y libera los bloqueos, pero sólo para dicha base de datos.
- DCURRENT
- Se desconecta de la base de datos conectada actualmente. La desconexión de una base de datos produce una retrotracción y libera los bloqueos, pero sólo para dicha base de datos.
- DALL
- Se desconecta de todas las bases de datos conectadas. La desconexión de todas las bases de datos provoca una retrotracción de dichas bases de datos, pero no de otros recursos recuperables.
- SET
- Establece una conexión como actual. (Por omisión, la conexión realizada más recientemente en la unidad de ejecución es la actual).
Los siguientes valores están soportados para la compatibilidad con
VisualAge
Generator, pero son equivalentes a D1E: R, D1C, D2A, D2C, D2E.