Routage de la charge de travail des ressources
Cette rubrique explique comment activer le routage des ressources dans votre environnement.
![[z/OS]](../images/ngzos.gif)
- Configuration d'une ressource secondaire
- Configuration d'une notification d'action
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
Sur des systèmes répartis, vous pouvez activer le routage des ressources uniquement en configurant une ressource secondaire.
Configuration d'une ressource secondaire
Une source de données et une fabrique de connexions peuvent basculer et reprendre par restauration automatiquement lorsqu'une valeur de seuil définie ou par défaut est atteinte. Lors d'un basculement, l'application passe de la ressource principale à la ressource secondaire. La reprise par restauration se produit lorsque l'application passe de la ressource secondaire à la ressource principale.
La ressource secondaire est créée de la même manière que les autres fabriques de connexions ou sources de données. La configuration de la ressource secondaire doit refléter la configuration de la ressource principale. Par exemple, la configuration de la sécurité de la ressource secondaire et la configuration de la ressource principale, par rapport à l'application et aux ressources, doit se refléter mutuellement pour que l'application et la base de données puissent accéder aux données nécessaires. Après la création de la ressource secondaire, vous pouvez changer les valeurs de base de données nécessaires à la configuration back-end de la ressource secondaire. Si la ressource secondaire n'est pas compatible, il est fort probable que le basculement échoue. Si les ressources ne sont pas compatibles, les erreurs suivantes peuvent se produire : tables ou zones inexistantes, enregistrement attendu inexistant et erreurs de ressources inattendues. Avant de configurer la ressource secondaire dans la ressource de données principale, vous pouvez tester l'application en remplaçant dans l'application le nom JNDI principal par le nom JNDI secondaire.
Lorsque la ressource principale est utilisée, la ressource secondaire est suspendue. Avant que la ressource secondaire soit suspendue, elle peut être disponible avant l'utilisation de la ressource principale. Il n'est pas recommandé d'utiliser la ressource secondaire lorsqu'elle est suspendue, sauf s'il est nécessaire d'y accéder avant la ressource principale. La vérification de la compatibilité de l'application peut justifier cette décision.
Une ressource secondaire ne peut pas être utilisée comme ressource principale. Lorsque vous utilisez le basculement avec des adaptateurs de ressource non relationnelle disposant de systèmes dorsaux qui prennent également en charge le basculement, vous devez vérifier que le basculement n'est pas configuré pour ces systèmes. Le basculement fonctionne avec des adaptateurs de ressource non relationnelle disposant d'un objet ManagedConnection qui implémente une méthode testConnection. La méthode testConnection permet de contacter (ping) les ressources secondaires et principales avant de rétablir une connexion à la ressource disponible en cours. Si l'adaptateur de ressource n'implémente pas une méthode testConnection ou que testConnection génère une erreur javax.resource.NotSupportedException, cela implique que la fonction de basculement est désactivée.
Pour les adaptateurs de ressource qui ne répondent pas à la condition de testConnection, le basculement partiel peut être utilisé. Vous devez exécuter la reprise par restauration manuellement en utilisant des Mbeans vers la ressources principale lorsqu'elle est disponible. Le basculement partiel peut être activé en affectant à la propriété enablePartialResourceAdapterFailoverSupport la valeur true.
Il est recommandé de tester la compatibilité de cette fonction avec l'environnement du système et les ressources avant d'activer le support du basculement.
Pour plus d'informations sur l'utilisation des adaptateurs locaux optimisés, consultez la rubrique relative à l'activation du support haute disponibilité des adaptateurs locaux optimisés.
Opérations Mbean
- failOverToAlternateResource
Valeurs : none, hold ou automated ; la valeur par défaut est hold sans basculement automatique.
Description : basculement manuel vers la ressource secondaire. Cette action est exécutée sur la ressource principale.
- failBackToPrimaryResource
Valeurs : none, hold ou automated ; la valeur par défaut est automated avec le basculement automatique.
Description : basculement manuel vers la ressource principale. Cette action est exécutée sur la ressource principale.
Propriétés d'attribut Mbean
- currentActivePool
Valeurs : valeur de type chaîne renvoyée contenant un nom JNDI.
Description : un nom JNDI principal ou secondaire est renvoyé, selon celui qui est en cours d'utilisation.
- populateAlternateResource
Valeurs : booléennes
Description : False - Désactive la ressource secondaire de remplissage. True - Active le remplissage de la ressource secondaire. Cette action est exécutée sur la ressource secondaire.
- resourceFailOver
Valeurs : booléennes
Description : False - Désactive le basculement de ressource. True - Active le basculement de ressource. Cette action est exécutée sur la ressource principale.
- resourceFailBack
Valeurs : booléennes
Description : False - Désactive le basculement de ressource. True - Active le basculement de ressource. Cette action est exécutée sur la ressource principale.
![[z/OS]](../images/ngzos.gif)
Routage de ressource manuel avec la commande modify pour les ressources configurées avec une ressource secondaire
Sur la plateforme z/OS, vous pouvez utiliser partiellement la fonctionnalité Mbean en utilisant la commande modify. La commande modify permet de désactiver ou d'activer manuellement le support de basculement de ressource, de basculer vers une ressource secondaire configurée et de reprendre par restauration sur la ressources configurée principale. Voir la rubrique Commande Modify pour plus d'informations sur l'exécution de la commande et les paramètres de basculement.
![[z/OS]](../images/ngzos.gif)
Configuration d'une notification d'action
Lorsqu'une notification d'action est configurée pour une ressource particulière et que les demandes envoyées à cette ressource échouent après qu'une valeur de seuil définie ou par défaut est atteinte, l'environnement d'exécution WebSphere Application Server for z/OS reçoit une notification pour l'exécution d'une action donnée. L'action est une valeur configurable. Les codes d'action sont définis dans le contenu des propriétés failureNotificationActionCode dans la section "Propriétés personnalisées" de la rubrique.
- Code d'action 1
Ce code d'action génère des messages BBOJ0130I et BBOJ0131I dans le flux de consignation sur papier dans le contrôleur. Le message BBOJ0130I est généré lorsque la ressource est indisponible, et le message BBOJ0131I lorsque la ressource est redémarrée et disponible. WebSphere Application Server n'exécute pas d'autre action automatique.
Le code d'action 1 vise à envoyer une notification aux administrateurs WebSphere pour que les actions d'atténuation puissent être exécutées en dehors du serveur d'applications. BBOJ0130I contient les informations suivantes :- Le nom JNDI qui identifie la ressource défaillante.
- Le nom du serveur sur lequel la ressource défaillante était utilisée.
- L'action exécutée. Par exemple : NONE, PAUSING LISTENERS
BBOJ0131I contient les informations suivantes :- Le nom JNDI qui identifie la ressource qui est redémarrée.
- Le nom du serveur sur lequel la ressource est redémarrée.
- L'action exécutée. Par exemple : NONE, RESUMING LISTENERS
- La raison pour laquelle l'action a été exécutée : 1 : Notification de disponibilité de la région serviteur normale. 2 : Disponibilité de ressource inconnue.
- Code d'action 2
Ce code d'action suspend et relance les programmes d'écoute sur le serveur où se trouve la ressource pour laquelle l'action a été configurée. Les programmes d'écoute du serveur sont suspendus lorsque la ressource est indisponible. Les programmes d'écoute du serveur reprennent lorsque la ressource est disponible. Lorsqu'elle est combinée avec un routeur frontal qui prend en charge la haute disponibilité, tel qu'un serveur proxy, le travail du serveur est routé vers les autres serveurs du cluster. Dans le cadre de cette action, deux messages d'information sont imprimés dans la région du contrôleur. Le message BBOJ0130I est généré lorsque la ressource est indisponible, et le message BBOJ0131I lorsque la ressource est redémarrée et disponible.
- Code d'action 3
Ce code d'action arrête et démarre toutes les applications avec les modules installés localement qui utilisent cette ressource pour laquelle l'action est configurée. Les applications sont arrêtées lorsque la ressource utilisée par ces applications est indisponible. Les applications sont démarrées lorsque la ressource utilisée par ces applications est disponible.
Dans le cadre de cette action, deux messages d'information sont imprimés dans la région du contrôleur. Le message BBOJ0130I est généré lorsque la ressource est indisponible, et le message BBOJ0131I lorsque la ressource est redémarrée et disponible.Avertissement : Les seules applications pour lesquelles une référence de ressource est définie sont arrêtées uniquement sur le serveur affecté par la défaillance de ressource. Par conséquent, si l'application est installée dans un cluster, elle reste démarrée sur les autres serveurs du cluster.Les messages BBOJ0130I et BBOJ0131I contiennent les informations suivantes :
BBOJ0130I :- Le nom JNDI qui identifie la ressource défaillante.
- Le nom du serveur sur lequel la ressource défaillante était utilisée.
- L'action exécutée. Par exemple : NONE, "PAUSING LISTENERS", "STOPPING APPLICATIONS THAT USE THIS RESOURCE"
- Le nom JNDI qui identifie la ressource qui est redémarrée.
- Le nom du serveur sur lequel la ressource est redémarrée.
- L'action exécutée. Par exemple : NONE, "RESUMING LISTENERS", "STARTING APPLICATIONS THAT USE THIS RESOURCE"
- La raison pour laquelle l'action a été exécutée : 1 : Notification de disponibilité de la région serviteur normale. 2 : Disponibilité de ressource inconnue.
Propriétés personnalisées.
Toutes les propriétés de cette fonction doivent être créées comme des propriétés personnalisées dans le pool de connexions d'une source de données ou d'une fabrique de connexions. Dans la console d'administration, accédez à la source de données ou la fabrique de connexions pour laquelle la notification doit être activée. Cliquez sur le lien Propriétés du pool de connexions. Dans le panneau Propriétés du pool, cliquez sur le lien Propriétés personnalisées du pool de connexion. Le panneau Propriétés personnalisées du pool de connexions de la ressource s'affiche. Cliquez sur Nouveau pour créer les propriétés personnalisées décrites, comme suit :
failureNotificationActionCode
Valeurs : {1,2,3}
Description : la propriété failureNotificationActionCode permet d'activer la fonction de notification. Si cette propriété n'est pas affectée de l'une des valeurs entières suivantes, la fonction de notification est désactivée :- 1 = Un message BBOJ0130I est imprimé sur papier pour indiquer que la ressource n'est pas disponible. Lorsque la ressource devient disponible, un message BBOJ0131I est imprimé sur papier pour indiquer que la ressource est de nouveau disponible.
- 2 = Une commande de suspension des programmes d'écoute est émise vers le serveur pour qu'il ne reçoive pas le nouveau travail entrant. Le message BBOJ0130I est également généré pour décrire l'action exécutée. Lorsque la ressources est disponible, une commande de reprise des programmes d'écoute est émise pour que le serveur reçoive de nouveau le travail. Le message BBOJ0131I est généré pour décrire l'action exécutée.
- 3 = Toutes les applications avec des modules installés localement qui utilisent cette ressource sont arrêtées sur le serveur. Le message BBOJ0130I est également exécuté pour décrire l'action exécutée. Lorsque la ressource devient disponible, ces applications sont démarrées. Le message BBOJ0131I est également généré pour décrire l'action exécutée.
- failureThreshold
Valeurs : doivent être un entier et > 0.
Description : la propriété failureThreshold est en lecture seule si la propriété failureNotificationActionCode ou alternateResourceJNDIName est affectée d'une valeur valide. Si la propriété failureThreshold n'est pas définie ou qu'elle est affectée d'une valeur non valide par défaut 5 est utilisée. L'entier défini pour la propriété failureThreshold correspond au nombre d'exceptions consécutives qui doivent se produire pour une ressource donnée avant qu'une notification soit envoyée ou qu'un basculement se produise.
Voici un exemple de fonctionnement de cette valeur : si la propriété failureThreshold a la valeur 5 pour la source de données B, cette dernière doit avoir cinq exceptions consécutives lors des tentatives d'établissement de connexion sans aucune tentative fructueuse entre elles pour qu'une notification soit envoyée ou que la ressource puisse basculer. Une tentative d'envoi de la notification ou de basculement est exécutée après cinq exceptions consécutives de ressource. Cependant, dans un environnement à unités d'exécution multiples, une fois que la valeur de seuil d'échec est atteinte, le déclenchement de la notification ou du basculement peut se produire à la suite d'autres exceptions de ressource.Avertissement : Les compteurs d'exceptions de ressource ne sont pas partagés entre les ressources. Les exceptions de ressource doivent être consécutives pour atteindre le seuil d'échec.- alternateResourceJNDIName
Valeurs : valeur de type chaîne contenant un nom JNDI direct.
Description : une fabrique de connexions secondaire ou une ressource de source de données secondaire doit être identique à la ressource principale. Fournissez le nom JNDI de la ressource secondaire pour activer la fonction de basculement.
Propriétés avancées de basculement
- resourceAvailabilityTestRetryInterval
Valeurs : entiers. La valeur par défaut est 10.
Description : fréquence de connexion de test. La valeur par défaut est 10 secondes. Toutes les 10 secondes, l'unité d'exécution de la connexion de test tente de tester la ressource principale. Selon les ressources système, la valeur 1 - MAXINIT secondes peut être remplacée.
- enablePartialResourceAdapterFailoverSupport
Valeurs : booléennes. La valeur par défaut est false.
Description : si la valeur est true, le basculement vers la ressource secondaire est exécuté, mais la reprise par restauration vers la ressource principale est manuelle. Cette propriété peut être définie si l'adaptateur de ressource utilisé ne répond pas aux conditions de basculement de connexion ; par exemple testConnection n'est pas implémenté ou génère une exception non prise en charge.
- disableResourceFailOver
Valeurs : booléennes. La valeur par défaut est false.
Description : si la valeur est true, le basculement automatique n'est pas exécuté.
- disableResourceFailBack
Valeurs : booléennes. La valeur par défaut est false.
Description : si la valeur est true, la reprise par restauration n'est pas exécutée.
- populateAlternateResource
Valeurs : booléennes. La valeur par défaut est false.
Description : si la valeur est true, la ressource secondaire est remplie avec le nombre maximal de connexions. Chaque tentative vise à maintenir le nombre maximal de connexions de la ressource secondaire. Si la base de données est défaillante pour la ressource secondaire, les connexions obsolètes sont supprimées et l'unité d'exécution de remplissage reremplit la ressource secondaire lorsque la base de données est disponible. Vous pouvez activer et désactiver dynamiquement la ressource secondaire de remplissage en utilisant les opérations Mbean, disablePopulateAlternateResource et enablePopulateAlternateResource.Avertissement : Vous pouvez constater un gain de performances au cours d'un basculement avec la ressource secondaire de remplissage activée, mais le maintien du remplissage de la ressource secondaire a un fort impact. L'impact est surtout dû au maintien du double de connexions généralement nécessaires pour une source de données. Comme les connexions sont de grands objets, le maintien des connexions utilise de la mémoire supplémentaire sur le serveur et des ressources supplémentaires dans la base de données.