WebSphere Load Balancer pour IPv4 et IPv6
Systèmes d'exploitation : AIX, HP-UX, Linux, Solaris, Windows

             Personnalisation de la table des matières et des résultats de la recherche

Méthodes et appels de fonction du conseiller personnalisé

Utilisez les appels de fonction et méthodes de conseiller suivants dans vos conseillers personnalisés.

Sachez que les conseillers personnalisés doivent posséder toutes les routines requises. Ils doivent contenir les méthodes de classe de base suivantes :

Constructeur (fourni par la base du conseiller)

public <advisor_name> { 
  String sName; 
  String sVersion; 
  int iDefaultPort; 
  int iInterval; 
  String sDefaultLogFileName; 
  boolean replace 
) 
sName
Nom du conseiller personnalisé
sVersion
Version du conseiller personnalisé
iDefaultPort
Numéro de port permettant de contacter le serveur si aucun numéro de port n'est spécifié dans l'appel.
iInterval
Intervalle d'interrogation des serveurs par le conseiller.
sDefaultLogFileName
Ce paramètre est requis, mais il n'est pas utilisé. La seule valeur acceptable est une chaîne vide : ""
replace
Indique si ce conseiller fonctionne en mode remplacement. Les valeurs possibles sont les suivantes :
  • true – Remplace la charge calculée par le code de base du conseiller par la valeur indiquée par le conseiller personnalisé.
  • false – Ajoute la valeur de la charge indiquée par le conseiller personnalisé à la valeur de la charge calculée par le code de base du conseiller.

Méthode ADV_AdvisorInitialize()

void ADV_AdvisorInitialize()

Cette méthode permet d'effectuer toute initialisation qui peut être requise pour le conseiller personnalisé. Elle est appelée après le démarrage du module de base du conseiller. Dans la plupart des cas, et notamment dans les conseillers standard, cette méthode n'est pas utilisée et son code ne comprend qu'une instruction de retour. Cette méthode peut être utilisée pour appeler la méthode suppressBaseOpeningSocket(), qui n'est valide que dans cette méthode.

Dans la plupart des cas, et notamment dans les conseillers standard, cette méthode n'est pas utilisée et son code ne comprend qu'une instruction de retour. Cette méthode peut être utilisée pour appeler la méthode suppressBaseOpeningSocket, qui n'est valide que dans la méthode ADV_AdvisorInitialize.

Méthode ADVLOG()

La fonction ADVLOG permet à un conseiller personnalisé de créer un message de texte dans le fichier journal de la base du conseiller. Le format est le suivant :
void ADVLOG (int logLevel, String message) 
Cette commande possède les paramètres suivants :
logLevel
Niveau de statut auquel le message est consigné dans le fichier journal. Le fichier journal du conseiller est organisé en phases ; les messages les plus urgents reçoivent le niveau de statut 0 et les moins urgents, des numéros plus élevés. Le type de message le plus prolixe reçoit le niveau de statut 5. Ces niveaux permettent de contrôler les types de message que l'utilisateur reçoit en temps réel (La commande dscontrol permet de définir la prolixité). Les erreurs catastrophiques doivent toujours être consignées au niveau 0.
message
Message à consigner dans le fichier journal. La valeur de ce paramètre est une chaîne Java standard.

Fonction getAdvisorName

La fonction getAdvisorName renvoie une chaîne Java avec le suffixe du nom de votre conseiller personnalisé. Par exemple, pour le conseiller ADV_cdload.java, cette fonction renvoie la valeur cdload.

Cette fonction n'accepte pas de paramètres.
Evitez les incidents : Cette valeur ne peut pas être modifiée lors d'une instanciation d'un conseiller.gotcha

caller.getCurrentServerId()

La fonction getCurrentServerId renvoie une chaîne Java qui correspond à une représentation unique du serveur en cours. Généralement, cette valeur est modifiée chaque fois que vous appelez votre conseiller personnalisé car le code de base du conseiller interroge tous les serveurs, les uns à la suite des autres.

Cette fonction n'accepte pas de paramètres.

caller.getCurrentClusterId()

L'appel de fonction getCurrentClusterId renvoie une chaîne Java qui correspond à une représentation unique du cluster en cours. Généralement, cette valeur est modifiée chaque fois que vous appelez votre conseiller personnalisé car la base du conseiller interroge tous les clusters, les uns à la suite des autres.

Cette fonction n'accepte pas de paramètres.

caller.getSocket()

L'appel de fonction getSocket renvoie une socket Java qui représente la socket ouverte avec le serveur en cours pour les communications.

Cette fonction n'accepte pas de paramètres.

caller.getLatestLoad()

La fonction getLatestLoad permet à un conseiller personnalisé d'obtenir la dernière valeur de charge d'un objet de serveur donné. Les valeurs de charge sont conservées dans des tables internes par le code de base du conseiller et le démon du gestionnaire. Cet appel de fonction est utile si vous souhaitez que le comportement d'un protocole ou d'un port dépende de celui d'un autre. Par exemple, vous pouvez utiliser cet appel de fonction dans un conseiller personnalisé qui a désactivé un serveur d'applications particulier si le serveur Telnet sur cette même machine a été désactivé.

La syntaxe est la suivante :
int caller.getLatestLoad (String IDcluster, int port, String IDserveur)
Ensembles, les trois arguments définissent un objet de serveur.
Cette commande possède les paramètres suivants :
IDcluster
Identificateur de cluster de l'objet de serveur pour lequel la valeur de charge actuelle doit être obtenue. Cet argument doit correspondre à une chaîne Java.
port
Numéro de port de l'objet de serveur pour lequel la valeur de charge actuelle doit être obtenue.
IDserveur
Identificateur de serveur de l'objet de serveur pour lequel la valeur de charge actuelle doit être obtenue. Cet argument doit correspondre à une chaîne Java. La valeur renvoyée est un entier.
  • Une valeur de retour positive représente la valeur de charge réelle affectée à l'objet interrogé.
  • La valeur -1 indique que le serveur interrogé est arrêté.
  • La valeur -2 indique que le statut du serveur interrogé est inconnu.

caller.receive()

La fonction de réception extrait les informations de la connexion socket. La syntaxe est la suivante :
caller.receive(StringBuffer *réponse) 
Cette commande possède les paramètres suivants :
réponse
Il s'agit d'une mémoire tampon de chaîne dans laquelle les données extraites sont placées. De plus, cette fonction renvoie un entier dont la signification est la suivante :
  • 0 indique que les données ont été envoyées correctement.
  • Un nombre négatif indique une erreur.

caller.send()

La fonction d'envoi utilise la connexion socket établie pour envoyer un paquet de données au serveur, à l'aide du port spécifié. La syntaxe est la suivante :
caller.send(String commande) 
Cette commande possède les paramètres suivants :
commande
Il s'agit d'une chaîne contenant les données à envoyer au serveur. Cette fonction renvoie un entier dont la signification est la suivante :
  • 0 indique que les données ont été envoyées correctement.
  • Un nombre négatif indique une erreur.

getLoad()

int getLoad( int iConnectTime; ADV_Thread *demandeur )
Cette fonction possède les paramètres suivants :
iConnectTime
Durée de la connexion, en millisecondes. Cette mesure de charge est effectuée par le code de base du conseiller et transmise au code du conseiller personnalisé, qui peut l'utiliser ou l'ignorer lorsqu'il renvoie la valeur de la charge. Si la connexion échoue, cette valeur est -1.
demandeur
Instance de la classe de base du conseiller où les méthodes de base du conseiller sont fournies. Appels de fonction disponibles aux conseillers personnalisés : les méthodes ou les fonctions décrites dans les sections suivantes peuvent être appelées à partir de conseillers personnalisés. Ces méthodes ne sont pas prises en charge par le code de base du conseiller. Certains de ces appels de fonction peuvent être effectués directement (par exemple, function_name()), tandis que d'autres requièrent le demandeur de préfixe. Le demandeur représente l'instance de conseiller de base qui prend en charge le conseiller personnalisé exécuté.

getAdviseOnPort()

La fonction getAdviseOnPort renvoie le numéro de port sur lequel le conseiller personnalisé appelant est exécuté.

La valeur de retour correspond à un entier Java (int) et la fonction n'accepte pas de paramètres.
Remarque : Cette valeur ne peut pas être modifiée lors d'une instanciation d'un conseiller.

getAdvisorName()

La fonction getAdvisorName renvoie une chaîne Java avec le suffixe du nom de votre conseiller personnalisé. Par exemple, pour le conseiller ADV_cdload.java, cette fonction renvoie la valeur cdload. Cette fonction n'accepte pas de paramètres. Notez que cette valeur ne peut pas être modifiée lors d'une instanciation d'un conseiller.

getInterval()

La fonction getInterval renvoie l'intervalle du conseiller, à savoir, le nombre de secondes entre les cycles du conseiller. Cette valeur est égale à la valeur par défaut définie dans le constructeur du conseiller personnalisé, sauf si elle a été modifiée lors de la phase d'exécution à l'aide de la commande dscontrol. La valeur renvoyée est un entier Java (int).

Cette fonction n'accepte pas de paramètres.

suppressBaseOpeningSocket()

L'appel de fonction suppressBaseOpeningSocket permet à un conseiller personnalisé d'indiquer si le code du conseiller de base ouvre une socket TCP au serveur de la part du conseiller personnalisé. Si votre conseiller n'utilise pas de communication directe au serveur pour déterminer son statut, il n'est peut-être pas nécessaire d'ouvrir cette socket. Cet appel de fonction ne peut être émis qu'une seule fois et doit l'être à partir de la routine de la méthode ADV_AdvisorInitialize().

Cette fonction n'accepte pas de paramètres.




Tâches connexes
Création d'un conseiller personnalisé
Référence associée
Exemple : Exemple de conseiller
Rubrique de référence    

Conditions d'utilisation | Commentaires

Dernière mise à jour : 31 juillet 2008 3:18:06 PM EDT
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.edge.doc/lb/info/ae/rprf_advcustmeth.html