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.
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
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>