Configuration de la redirection du client pour les applications utilisant des 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 résoudre ce problème, vous pouvez configurer une source de données DB2 dans le serveur d'applications à l'aide des zones Autres noms de serveur et Autres numéros de port, ou à l'aide des propriétés personnalisées de source de données clientRerouteAlternateServerName et clientRerouteAlternatePortNumber, pour prendre en charge la redirection du client, même lors d'une tentative de connexion initiale. Si le pilote JDBC ne peut pas se connecter au serveur principal DB2, les informations nécessaires à une redirection du client sont déjà présentes et le pilote JDBC peut rediriger la connexion vers un autre serveur.

Avertissement : La propriété personnalisée de la source de données, enableClientAffinitiesList, modifie la sémantique des propriétés clientRerouteAlternateServerName et clientRerouteAlternatePortNumber.

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

  1. Définissez votre source de données DB2 dans le fichier server.xml avec les propriétés suivantes :
    • clientRerouteAlternateServerName
      • Type de valeurs valides :
        • Nom de domaine. Par exemple : www.ibm.com
        • Adresse IP (IPv4 et IPv6). Par exemple : 23.72.11.219
      • Format des valeurs multiples :
        • Séparées par des virgules. Par exemple : host1, host2, host3
        • Séparées par un espace. Par exemple : host1 host2 host3
      • Signification de l'ordre :
        • L'ordre des noms d'hôte fournis est celui que le pilote JDBC JCC utilise pour rechercher le prochain serveur disponible auquel se connecter.
    • clientRerouteAlternatePortNumber
      • Type de valeurs valides :
        • Entier représentant le numéro de port. Par exemple : 50000
      • Format des valeurs multiples :
        • Séparées par des virgules. Par exemple : port1, port2, port3
        • Séparées par un espace. Par exemple : port1 port2 port3
      • Signification de l'ordre :
        • L'ordre des ports fournis doit correspondre à l'ordre des serveurs y associés.
  2. (Facultatif) Vous pouvez ajouter l'une et/ou l'autre des propriétés suivantes :
    • retryIntervalForClientReroute

      Cette propriété définit le nombre de secondes pendant lequel le pilote JDBC JCC attend entre deux tentatives d'établissement d'une connexion.

      Si aucune valeur n'est affectée, le comportement par défaut est utilisé. Pour en savoir plus, voir Support JDBC et SQL.

    • maxRetriesForClientReroute

      Cette propriété définit le nombre de nouvelles tentatives de connexion au serveur que le pilote JDBC JCC fait avant de décider de passer au serveur suivant. Cette propriété est utilisée uniquement quand la propriété RetryIntervalForClientReroute est définie.

      Si aucune valeur n'est affectée, le comportement par défaut est utilisé. Pour en savoir plus, voir Support JDBC et SQL.

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>
Remarque : Assurez-vous qu'un nombre égal d'entrées est spécifié pour les ports et les hôtes. Sinon, un avertissement s'affiche et la redirection du client n'est pas activée.

Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_config_reroute_db2.html