[AIX HP-UX Linux Solaris Windows]

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.

N'oubliez pas que les conseillers personnalisés ont besoin de toutes les routines nécessaires. 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 du port de contact du serveur si aucun port n'est défini dans l'appel.
iInterval
Fréquence d'interrogation des serveurs par le conseiller.
sDefaultLogFileName
Ce paramètre est nécessaire, 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'exécuter une initialisation qui peut être nécessaire au 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é d'écrire un message texte dans le fichier journal de base du conseiller. Le format est :
void ADVLOG (int logLevel, String message) 
Cette commande possède les paramètres suivants :
logLevel
Niveau d'état d'écriture du message dans le fichier journal. Le fichier journal du conseillé est organisé en niveaux ; les messages les plus urgents ont le niveau d'état 0 et les moins urgents reçoivent des valeurs plus élevées. 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 à écrire 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.
Eviter les incidents Eviter les incidents : Cette valeur ne peut pas changer 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 change chaque fois que vous appelez le conseiller personnalisé, car le code de base du conseiller interroge toutes les machines en série.

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 change chaque fois que vous appelez le conseiller personnalisé, car le code de base du conseiller interroge tous les clusters en série.

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 serveur. 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 utilisé pour rendre le comportement d'un protocole ou d'un port indépendant 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 si le serveur Telnet sur la 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 du cluster de l'objet serveur dont la valeur de charge en cours 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 l'objet serveur dont la valeur de charge en cours doit être obtenue. Cet argument doit correspondre à une chaîne Java. La valeur retourné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 obtient les informations de la connexion au 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.
  • Une valeur négative indique une erreur.

caller.send()

La fonction d'envoi utilise la connexion de socket établie pour envoyer un paquet de données au serveur en utilisant le port défini. 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.
  • Une valeur négative indique une erreur.

getLoad()

int getLoad( int iConnectTime; ADV_Thread *demandeur )
Cette fonction possède les paramètres suivants :
iConnectTime
Délai d'établissement en secondes de la connexion. Cette mesure de charge est réalisée par le code de base du conseiller et envoyée au code du conseiller personnalisé qui peut utiliser ou ignorer la mesure lors de l'envoi de la valeur de 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 sont 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 changer 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, si le conseiller s'appelle ADV_cdload.java, la fonction retourne cdload. Cette fonction n'a pas de paramètres. Notez que cette valeur ne peut pas changer lors de l'instanciation d'un conseiller.

getInterval()

La fonction getInterval retourne la fréquence 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 Méthode ADV_AdvisorInitialize().

Cette fonction n'accepte pas de paramètres.




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

Conditions d'utilisation | Commentaires

Dernière mise à jourDernière mise à jour : Jun 21, 2011 12:02:44 PM EDT
Nom du fichier : rprf_advcustmeth.html