Controlador DB2 for z/OS
Esta documentación explica la implementación del controlador DB2 for z/OS y cómo los parámetros de conexión se corresponden con los campos de la interfaz de usuario en la aplicación Gigantic.
Parámetros de Conexión
| Campo UI | Implementación Técnica | Descripción | Requerido | Valor por Defecto |
|---|---|---|---|---|
| Host | host en la configuración de conexión ibm_db | El nombre de host o dirección IP del servidor DB2 for z/OS | Sí | localhost |
| Puerto | port en la configuración de conexión ibm_db | El número de puerto en el que escucha el servidor DB2 for z/OS | Sí | 50000 (de driverPorts) |
| Base de Datos | database en la configuración de conexión ibm_db | El nombre de la base de datos a la que conectarse | Sí | Ninguno (debe ser especificado) |
| Esquema | schema en la configuración gigadb | El esquema a usar para consultas y extracción de metadatos | Sí | Ninguno (debe ser especificado) |
| Nombre de Usuario | user en la configuración de conexión ibm_db | Usuario de base de datos para autenticación | Sí | Ninguno (debe ser especificado) |
| Contraseña | password en la configuración de conexión ibm_db | Contraseña para el usuario de base de datos | Sí | Ninguno (debe ser especificado) |
Nota: La implementación real utiliza el puerto 5025 por defecto, pero la UI muestra 50000. Ambos puertos deberían funcionar con conexiones DB2 for z/OS.
Detalles Técnicos
La implementación del controlador DB2 for z/OS utiliza la biblioteca Node.js ibm_db con capacidades de agrupamiento de conexiones.
Aspectos técnicos clave:
- El agrupamiento de conexiones se soporta mediante la bandera
pooleden la configuración - La selección de esquema es crítica y afecta a toda la generación de consultas
- El controlador utiliza tablas del sistema SYSIBM para la extracción de metadatos (SYSTABLES, SYSCOLUMNS, SYSINDEXES)
- La gestión de restricciones se implementa usando procedimientos del sistema
- Se soportan capacidades de registro (journaling) y bloqueo específicas de IBM z/OS
- La generación de DDL utiliza las utilidades UNLOAD y RELOAD de DB2 for z/OS
- Soporta operaciones MERGE para actualizaciones eficientes de datos
Cuando el túnel SSH está habilitado, las conexiones se establecen primero a través del túnel antes de conectarse al servidor DB2 for z/OS.
Formato de Cadena de Conexión
Las conexiones DB2 for z/OS se construyen usando un formato de cadena de conexión específico para la biblioteca ibm_db:
DATABASE=[database];HOSTNAME=[host];PORT=[port];PROTOCOL=TCPIP;UID=[user];PWD=[password];Se pueden especificar parámetros adicionales de conexión a través de opciones de configuración en el controlador.
Opciones de Autenticación
DB2 for z/OS soporta varios tipos de autenticación:
| Tipo de Autenticación | Mapeo UI | Descripción |
|---|---|---|
| Ninguna | No aplicable para DB2z | DB2z siempre requiere autenticación |
| Contraseña | Campos de usuario/contraseña | Autenticación estándar usuario/contraseña |
| Gestor de Contraseñas | Varios campos de gestores de contraseñas | Obtiene credenciales de gestores de contraseñas externos |
Soporte de Túnel SSH
El controlador DB2 for z/OS soporta túneles SSH para acceso seguro a bases de datos detrás de firewalls o en redes privadas. Para información detallada sobre la configuración de túneles SSH, por favor consulte la documentación de Túneles SSH.
Endpoints de API Utilizados
Las conexiones DB2 for z/OS se utilizan principalmente en:
- Creación de Tap (descubrimiento de fuente de datos)
- Creación de Sink (destino de datos para datos anonimizados)
- Ejecución de Pipeline (extracción y carga de datos)
Dependencia de Controlador Node.js
El controlador DB2 for z/OS depende de la biblioteca Node.js ibm_db:
- Biblioteca: ibm_db
- Propósito: Conectarse a bases de datos IBM DB2 for z/OS
- Características: Agrupamiento de conexiones, sentencias preparadas, transacciones
Requisitos de Licencia DB2 z/OS
Para conectarse a servidores DB2 for z/OS, la biblioteca ibm_db requiere una licencia válida de DB2 Connect. Para DB2 for z/OS, necesita el archivo de certificado de licencia "DB2 Connect Unlimited Edition for System z".
El archivo de licencia (típicamente nombrado db2consv_zs.lic) debe copiarse al directorio clidriver/license dentro de la instalación de ibm_db. La ruta exacta depende de dónde está instalada la biblioteca ibm_db en su sistema, pero típicamente es:
- En instalaciones locales:
node_modules/ibm_db/installer/clidriver/license/ - En instalaciones globales:
<ibm_db_install_path>/installer/clidriver/license/
Error SQL1598N de Licencia
Cuando se conecta desde plataformas distribuidas (Linux, Unix, Windows, MacOS) a Db2 for z/OS o Db2 for i (AS400) sin una licencia válida de db2connect, el servidor retornará un error SQL1598N. Este error indica acceso no autorizado debido a licencia faltante.
Si encuentra el error SQL1598N, puede resolverlo mediante:
- Tener a su DBA ejecute la utilidad db2connectactivate en el servidor Db2 para activar la licencia del lado del servidor
- Aplicar un archivo de licencia db2connect del lado del cliente copiándolo al directorio clidriver/license como se describió anteriormente
Note que se requiere una licencia db2connect de versión 12.1 para las versiones actuales de ibm_db, aunque licencias V11.5 más antiguas pueden funcionar con versiones específicas de clidriver.
Es importante notar que si su sistema z/OS ya tiene correctamente configurado y desbloqueado el licenciamiento del driver ODBC, puede que no se requiera un archivo separado de licencia DB2 z/OS para que las conexiones tengan éxito.
Para más información sobre configuración de licencias DB2 y el error SQL1598N, por favor consulte la Documentación de Configuración de Licencias IBM DB2 y la sección de SQL1598N en el README de ibm_db en GitHub.
Parámetros Personalizados
El controlador DB2 for z/OS soporta parámetros personalizados adicionales que pueden especificarse en formato YAML para ajustar finamente el comportamiento de conexión, configuraciones SSL y otras opciones avanzadas.
Parámetros de Seguridad SSL
# Parámetros de Conexión SSL
Security: SSL
SSLServerCertificate: /ruta/al/certificado_del_servidor.arm
ValidateServerCertificate: false # Establecer a YES por defecto, NO para deshabilitar validación
# Parámetros de Almacén de Confianza SSL (formato GSKit)
SSLTrustStoreLocation: /ruta/al/almacen_de_confianza.kdb
TrustStorePassword: contraseña_del_almacen_de_confianza
# Autenticación con Certificado de Cliente
SSLClientCertificate: /ruta/al/certificado_de_cliente.arm
ClientCertificateLabel: "mi_certificado_de_cliente"Parámetros de Agrupamiento de Conexiones
# Agrupamiento de conexiones
pooled: true
connectionTimeout: 30 # Tiempo de espera en segundos para establecimiento de conexión
queryTimeout: 60 # Tiempo de espera en segundos para ejecución de consulta
# Validación de conexión
connectionValidation: auto # o timeout, count, manual
validationTimeout: 0 # Período después del cual se revalida la conexión (0 = inmediata)
validationCount: 0 # Número de usos antes de revalidar la conexión (0 = cada uso)Opciones de Optimización de Rendimiento
# Parámetros de rendimiento
fetchSize: 1000 # Número de filas a obtener por petición
ArraySize: 100 # Número de conjuntos de parámetros cuando se usan arrays
asyncMode: full # o row, off - Modo de operación asíncrona
# Opciones avanzadas de conexión
applicationName: "Conexión Gigantic DB2z"
currentSchema: miesquema
currentPath: "SYSIBM,SYSFUN,SYSPROC,SYSXML"Ejemplos de Configuraciones
Configuración SSL
Security: SSL
SSLServerCertificate: ${file:/ruta/al/db2server.arm}
ValidateServerCertificate: true
applicationName: "Conexión Segura Gigantic"Configuración Avanzada con Optimización de Rendimiento
fetchSize: 5000
connectionTimeout: 60
queryTimeout: 300
pooled: true
connectionLimit: 20
asyncMode: full