L'interface PartitionHandlerLocal définit les méthodes de rappel qui permettent à l'application de recevoir des événements relatifs au cycle de vie d'une partition spécifique envoyés par l'environnement d'exécution de la fonction de partitionnement. Cette interface comporte quatre méthodes.
PartitionDefinition[] getPartitions()
public PartitionDefinition[] getPartitions() { PartitionDefinition[] rc = new PartitionDefinition[10]; for(int i = 0; i < rc.length; ++i) { rc[i] = ivRuntime.createPartitionDefinition("" + i); } return rc;Cette méthode renvoie dix partitions à l'environnement d'exécution. Le nom des partitions est {0,1,2,3,4,5,6,7,8,9}. Elles sont toutes créées avec la classification par défaut.
boolean partitionLoadEvent(String partitionName)
La phrase qui suit n'est pas valable pour z/OS.
La méthode doit renvoyer la valeur true si le membre du cluster est prêt à accepter les tâches pour la partition indiquée.
Une fois que la méthode renvoie la valeur true, les tables de routage IIOP sont mises à jour et les demandes IIOP entrantes sont transmises au membre du cluster pour la partition indiquée.
Si la méthode renvoie la valeur false, le gestionnaire haute disponibilité désactive le membre du cluster pour cette partition et tente d'activer la partition sur un autre membre en fonction de la stratégie en cours. Cette désactivation s'applique uniquement à la partition transmise à la méthode. Les autres partitions peuvent toujours être activées sur ce membre du cluster. Les applications qui renvoient la valeur false doivent s'assurer que la fonction de trace est activée pour permettre à l'administrateur d'identifier l'incident. Si l'incident ne se produit pas systématiquement, l'administrateur peut utiliser JMX pour réactiver le membre du cluster pour cette partition.
Si une application utilise des fonctions de messagerie pour accepter les demandes entrantes d'une partition (par opposition au routage IIOP), l'application doit s'abonner aux sujets et aux files d'attente dans lesquelles les demandes peuvent être placées.
void partitionUnloadEvent(String partitionName)
Si une application utilise des fonctions de messagerie pour accepter les demandes entrantes d'une partition (par opposition au routage IIOP), l'application doit se désabonner des sujets et des files d'attente dans lesquelles les demandes sont placées. Le gestionnaire haute disponibilité n'active pas de membre de remplacement tant que la méthode ne renvoie pas de données.
La méthode isPartitionAlive est appelée uniquement lorsque l'attribut isAlive de la stratégie contrôlant la partition est associé à la valeur true dans la stratégie CoreGroup en cours pour cet ensemble de partitions (voir les sections relatives à la présentation de la stratégie wpfadmin et aux exemples de commandes liées aux stratégies).
Les stratégies applicables par défaut aux partitions désactivent ce rappel car les performances globales du cluster peuvent s'en trouver altérées. Pour les environnements soumis à un contrôle plus strict, il est possible de gérer cet attribut de manière active.
boolean isPartitionAlive(String partitionName)
Si la méthode renvoie la valeur false, la machine virtuelle Java reçoit une alerte (arrêtée) et un autre membre du cluster est choisi pour héberger la partition. L'application peut utiliser cette méthode pour vérifier que la partition fonctionne correctement, par exemple en demandant à un membre homologue du cluster d'invoquer une méthode de la partition pour effectuer une opération de type ping ou une vérification du fonctionnement à partir d'une machine virtuelle Java éloignée.
Related concepts
Modèle de programmation de la fonction de partitionnement