Controladores

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 UIImplementación TécnicaDescripciónRequeridoValor por Defecto
Hosthost en la configuración de conexión ibm_dbEl nombre de host o dirección IP del servidor DB2 for z/OSlocalhost
Puertoport en la configuración de conexión ibm_dbEl número de puerto en el que escucha el servidor DB2 for z/OS50000 (de driverPorts)
Base de Datosdatabase en la configuración de conexión ibm_dbEl nombre de la base de datos a la que conectarseNinguno (debe ser especificado)
Esquemaschema en la configuración gigadbEl esquema a usar para consultas y extracción de metadatosNinguno (debe ser especificado)
Nombre de Usuariouser en la configuración de conexión ibm_dbUsuario de base de datos para autenticaciónNinguno (debe ser especificado)
Contraseñapassword en la configuración de conexión ibm_dbContraseña para el usuario de base de datosNinguno (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 pooled en 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ónMapeo UIDescripción
NingunaNo aplicable para DB2zDB2z siempre requiere autenticación
ContraseñaCampos de usuario/contraseñaAutenticación estándar usuario/contraseña
Gestor de ContraseñasVarios campos de gestores de contraseñasObtiene 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:

  1. Tener a su DBA ejecute la utilidad db2connectactivate en el servidor Db2 para activar la licencia del lado del servidor
  2. 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