Configuración de redirección de cliente para aplicaciones que utilicen bases de datos DB2

Puede utilizar la característica de redirección de cliente para configurar las aplicaciones de empresa para que una base de datos DB2 se recupere de una pérdida de comunicación, y las aplicaciones pueden seguir trabajando con el mínimo de interrupciones. La redirección es fundamental para el soporte de operaciones continuas, pero la redirección solo es posible cuando hay una ubicación alternativa que está identificada en la conexión del servidor de aplicaciones.

Antes de empezar

Esta tarea presupone que:

  • El origen de datos DB2 al que se conecta la aplicación se está ejecutando:
    • DB2 for z/OS Versión 10.1 o posterior o
    • DB2 Database para Linux, UNIX y Windows Versión 9.7 o posterior
  • Ha configurado la base de datos DB2 con una configuración redundante o la capacidad de hacer que el servidor de DB2 pase tras error a un nodo en espera.

Acerca de esta tarea

Puede utilizar la redirección de cliente para que DB2 proporcione información sobre servidores alternativos en el caso de que falle la conexión con el servidor de bases de datos primario.

Sin ningún tipo de configuración en el lado del cliente, el controlador Java™ Common Connectivity (JCC) Java Database Connectivity (JDBC) para DB2 soporta la prestación de redirección de cliente, si está habilitado en el servidor DB2, cuando el controlador realiza una conexión inicial con el servidor DB2. Cuando el controlador JCC JDBC se conecta a un servidor DB2 que tiene uno o más servidores alternativos que están configurados, el servidor primario envía información sobre los servidores alternativos para el controlador JCC JDBC. Si la conexión con el servidor primario falla, el controlador JCC JDBC puede redireccionar conexiones con un servidor alternativo. Sin embargo, si el proceso del servidor de aplicaciones se cuelga, la información del servidor alternativo se pierde y el cliente se tiene que volver a conectar al servidor primario. Si el cliente no puede realizar una conexión inicial con el servidor primario, el cliente no tiene conocimiento de los servidores alternativos y no se puede redireccionar.

Para superar este problema, puede configurar un origen de datos DB2 en el servidor de aplicaciones con los campos Nombre de servidor alternativo y Número de puerto alternativo, o con las propiedades personalizadas del origen de datos clientRerouteAlternateServerName y clientRerouteAlternatePortNumber, para soportar la redirección del cliente, incluso en el intento de conexión inicial. Si el controlador de JDBC no puede conectar con el servidor de DB2 primario, la información que es necesaria para una redirección de cliente ya está presente y el controlador de JDBC puede redireccionar la conexión a un servidor alternativo.

Atención: La propiedad personalizada del origen de datos, enableClientAffinitiesList, cambia la semántica de las propiedades clientRerouteAlternateServerName y clientRerouteAlternatePortNumber.

Cuando una conexión se redirecciona y el controlador JCC JDBC está conectado al servidor DB2 alternativo, el servidor alternativo envía información sobre su propio servidor alternativo al controlador JCC JDBC. El controlador JCC JDBC tiene la información necesaria para volver a redireccionar la conexión, si el servidor DB2 alternativo no está disponible. El servidor que era originalmente el servidor alternativo ahora es el servidor principal, y se establece un nuevo servidor alternativo. Sin embargo, este nuevo estado de los servidores principales y alternativos ya no es conservado por el controlador JCC JDBC. Si el servidor de aplicaciones falla y se reinicia, el controlador JCC JDBC debe iniciarse desde la configuración del servidor original e intenta conectarse al servidor que se consideraba originalmente como el servidor principal.

Puede utilizar la característica de redirección de cliente automática en los entornos configurables de DB2 siguientes:

Procedimiento

  1. Defina el origen de datos DB2 en el archivo server.xml con las propiedades siguientes:
    • clientRerouteAlternateServerName
      • Tipo de valores válidos:
        • Nombre de dominio; por ejemplo: www.ibm.com
        • Dirección IP (IPv4 e IPv6); por ejemplo: 23.72.11.219
      • Formato de varios valores:
        • Separado por comas; por ejemplo: host1, host2, host3
        • Separado por espacios; por ejemplo: host1 host2 host3
      • Significancia del orden:
        • El orden de los nombres de host proporcionados es el orden que utiliza el controlador JCC JDBC para intentar descubrir el siguiente servidor disponible al que conectarse.
    • clientRerouteAlternatePortNumber
      • Tipo de valores válidos:
        • Entero que representa el número de puerto; por ejemplo: 50000
      • Formato de varios valores:
        • Separado por comas; por ejemplo: port1, port2, port3
        • Separado por espacios; por ejemplo: port1 port2 port3
      • Significancia del orden:
        • El orden de los puertos proporcionados debe coincidir con el orden de sus servidores asociados.
  2. (Opcional) Puede añadir una o ambas de las propiedades siguientes:
    • retryIntervalForClientReroute

      Esta propiedad define el número de segundos que espera el controlador JCC JDBC entre cada intento de establecer una conexión.

      Si no se asigna ningún valor, se utiliza el comportamiento predeterminado. Para obtener más información, consulte Soporte de JDBC y SQL.

    • maxRetriesForClientReroute

      Esta propiedad define el número de reintentos que realiza el controlador JCC JDBC para conectarse al servidor antes de que decida moverse al siguiente servidor. Esta propiedad solo se utiliza cuando está establecida la propiedad RetryIntervalForClientReroute.

      Si no se asigna ningún valor, se utiliza el comportamiento predeterminado. Para obtener más información, consulte Soporte de JDBC y SQL.

Ejemplo

<dataSource id="DefaultDataSource"jndiName="jdbc/db2">
     <properties.db2.jcc 
        databaseName="sampleDatabase"
        driverType="4"
        serverName="host"
        portNumber="50000"
        clientRerouteAlternateServerName="host01, host02, host03"
        clientRerouteAlternatePortNumber="50000, 50005, 50000"
        retryIntervalForClientReroute="2"
        maxRetriesForClientReroute="3" />
 ...
</dataSource>
Nota: Asegúrese de que se especifica un número igual de entradas para ambos puertos y hosts. Si no, se mostrará un aviso y la redirección de cliente no se habilitará.

Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_config_reroute_db2.html