Configuration de la redirection du client pour les applications utilisant les bases de données DB2
Vous pouvez utiliser la fonction de redirection du client pour configurer vos applications d'entreprise pour la récupération d'une base de données DB2 après une perte de communication, et les applications peuvent continuer à fonctionner avec un minimum d'interruption. La redirection est un élément central dans la prise en charge du fonctionnement en continu, mais elle est possible uniquement si un emplacement alternatif existe et a été identifié pour la connexion au serveur d'applications.
Avant de commencer
Cette tâche suppose la configuration suivante :
- La source de données DB2 à laquelle votre application se connecte est en cours d'exécution :
- DB2 for z/OS version 10.1 ou ultérieure, ou
- DB2 Database for Linux, UNIX, and Windows version 9.7 ou ultérieure
- Vous avez configuré la base de données DB2 avec une configuration redondante ou la possibilité de mettre en échec le serveur DB2 sur un noeud de secours.
Pourquoi et quand exécuter cette tâche
Vous pouvez utiliser la redirection du client pour DB2 afin de fournir des informations sur des serveurs de remplacement en cas d'échec de la connexion au serveur de base de données principal.
Sans configuration côté client, le pilote Java™ Common Connectivity (JCC) Java Database Connectivity (JDBC) driver for DB2 prend en charge la fonction de redirection du client si elle est activée sur le serveur DB2, quand le pilote effectue une première connexion au serveur DB2. Quand le pilote JDBC JCC se connecte à un serveur DB2 comportant un ou plusieurs serveurs de remplacement configurés, le serveur principal envoie des informations sur les serveurs de secours au pilote JDBC JCC. Si la connexion au serveur principal échoue, le pilote JDBC JCC est capable de rediriger les connexions vers un serveur de remplacement. Si le processus du serveur d'applications tombe en panne, cependant, les informations de serveur de remplacement sont perdues et le client doit se connecter à nouveau au serveur principal. Si le client ne peut pas effectuer de connexion initiale au serveur principal, il n'a pas la connaissance des serveurs de remplacement et ne peut pas effectuer de reroutage.
Pour surmonter ce problème, vous pouvez configurer une source de données DB2 sur le serveur d'applications avec les noms et ports des serveurs de remplacement avec les propriétés de source de données clientRerouteAlternateServerName et clientRerouteAlternatePortNumber pour prendre en charge la redirection de client même lors d'une tentative de connexion initiale. Si le pilote JDBC JCC ne parvient pas à se connecter au serveur DB2 principal, les informations nécessaires à la redirection de client sont déjà présentes, et le pilote JDBC JCC peut rerouter la connexion vers un serveur de remplacement.
Quand une connexion est reroutée et que le pilote JDBC JCC est connecté au serveur DB2, le serveur de remplacement envoie des informations sur son propre serveur de remplacement au pilote JDBC JCC. Le pilote JDBC JCC disposer alors des informations nécessaires pour rerouter à nouveau la connexion si le serveur DB2 de remplacement n'est pas disponible. Le serveur qui au départ était le serveur de secours devient alors le serveur principal et un nouveau serveur de secours est sélectionné. Cependant, ce nouvel état des serveur principal et de remplacement n'est pas conservé par le pilote JDBC JCC. Si le serveur d'applications tombe en panne et est redémarré, le pilote JDBC JCC doit démarrer à partir de la configuration de serveur d'origine et tenter de se connecter au serveur originellement considéré comme serveur principal.
Vous pouvez utiliser la fonction de redirection du client automatique dans les environnements configurables DB2 suivants :
Procédure
Exemple
<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>