Guide des développeurs pour les services de données Sun Cluster 3.1 10/03

Utilisation d'Agent Builder

Cette rubrique présente la procédure d'utilisation d'Agent Builder ainsi que les tâches que vous devez effectuer avant de pouvoir l'utiliser. Vous y découvrirez également comment déployer Agent Builder après avoir généré le code de votre type de ressources.

Analyse de l'application

Avant d'utiliser Agent Builder, vous devez déterminer si votre application répond aux critères requis pour devenir hautement disponible ou évolutive. Agent Builder ne peut pas réaliser cette analyse s'appuyant uniquement sur les caractéristiques du temps d'exécution de l'application. Vous trouverez de plus amples informations à ce sujet dans la rubrique Analyse du caractère approprié de l'application.

Il est possible qu'Agent Builder ne puisse pas toujours créer un type de ressources complet pour votre application. Dans la plupart des cas, cependant, il propose au moins une solution partielle. Par exemple, les applications particulièrement complexes peuvent nécessiter un code supplémentaire qu'Agent Builder ne génère pas par défaut. Il peut notamment s'agir d'un code permettant d'ajouter des contrôles de validation pour des propriétés supplémentaires ou de régler des paramètres qu'Agent Builder n'affiche pas. Le cas échéant, vous devez apporter des modifications au code source généré ou au fichier RTR. La conception d'Agent Builder vise justement à offrir cette souplesse.

De fait, Agent Builder insère des commentaires aux endroits du code source généré où vous pouvez ajouter votre propre code de type de ressources. Une fois le code source modifié, vous pouvez utiliser le fichier makefile généré par Agent Builder pour recompiler le code source et générer de nouveau le package de type de ressources.

Même si vous utilisez exclusivement le code de type de ressources que vous avez créé sans insérer de code généré par Agent Builder, vous pouvez déployer le fichier makefile et la structure fournis par Agent Builder pour créer le package Solaris de votre type de ressources.

Installation et configuration d'Agent Builder

Agent Builder ne requiert aucune installation spéciale. Agent Builder est intégré au package SUNWscdev qui est installé par défaut lors de l'installation standard du logiciel Sun Cluster (reportez-vous au document Guide d'installation du logiciel Sun Cluster 3.1 10/03 pour obtenir de plus amples informations). Avant d'utiliser Agent Builder, vérifiez les points suivants :


Remarque :

vous pouvez utiliser un autre compilateur que le compilateur cc standard avec Agent Builder. Pour ce faire, vous pouvez par exemple créer un lien symbolique du compilateur cc vers un autre compilateur dans la variable $PATH, tel gcc. Vous pouvez également remplacer la spécification du compilateur dans le fichier makefile (actuellement CC=cc) par le chemin d'accès complet d'un autre compilateur. Par exemple, dans le fichier makefile généré par Agent Builder, remplacez CC=cc par CC=pathname/gcc . Le cas échéant, vous ne pouvez pas exécuter Agent Builder directement. Vous devez utiliser les commandes make et make pkg pour générer un code de service de données et un package.


Lancement d'Agent Builder

Lancez Agent Builder à l'aide de la commande suivante :


% /usr/cluster/bin/scdsbuilder

L'écran initial de Sun Builder (comme indiqué dans l'illustration suivante) apparaît.

Figure 9–1 Écran initial

Boîte de dialogue intitulée SunPlex Agent Builder présentant l'écran principal d'Agent Builder


Remarque :

vous pouvez accéder à Agent Builder par le biais de l'interface de ligne de commande (reportez-vous à la rubrique Utilisation de la version ligne de commande d'Agent Builder) si l'interface utilisateur graphique n'est pas accessible.


Agent Builder comprend deux écrans vous guidant tout au long du processus de création d'un nouveau type de ressources :

  1. Créer : cet écran contient des informations élémentaires sur le type de ressources à créer, comme son nom et le répertoire de travail (c'est-à-dire le répertoire dans lequel vous créez et configurez le modèle de type de ressources) des fichiers générés. Vous pouvez également identifier le type de ressources à créer (évolutives ou de basculement), si l'application de base est compatible réseau (c'est-à-dire si elle passe par le réseau pour communiquer avec ses clients) et le type de code (C, ksh ou GDS (service de données générique)) à générer. Pour de plus amples informations sur le code GDS (service de données générique), reportez-vous au Chapitre 10. Vous devez renseigner les champs de cet écran, puis sélectionner Créer pour générer la sortie correspondante, avant d'afficher l'écran Configurer.

  2. Configurer : vous devez indiquer dans cet écran une commande permettant de démarrer l'application. Vous pouvez, de façon facultative, fournir des commandes pour interrompre et sonder l'application. Si vous n'entrez pas ces commandes, la sortie générée utilise des signaux pour arrêter l'application et fournit un mécanisme de détection par défaut (reportez-vous à la description de la commande correspondante dans la rubrique Utilisation de l'écran Configurer). Cet écran vous permet également de modifier les valeurs de délai pour chacune de ces trois commandes.


Remarque :

si vous lancez Agent Builder à partir du répertoire de travail d'un type de ressources existant, Agent Builder initialise les écrans Créer et Configurer en reprenant les valeurs du type de ressources existant.


Reportez-vous à la rubrique Navigation dans Agent Builder si vous avez des questions sur l'utilisation des boutons ou des commandes de menu de l'un ou l'autre des écrans d'Agent Builder.

Utilisation de l'écran Créer

La première étape de création d'un type de ressources consiste à renseigner l'écran Créer qui s'affiche au lancement d'Agent Builder. L'illustration suivante présente l'écran Créer une fois que vous avez renseigné les champs.

Figure 9–2 Écran Créer

Boîte de dialogue présentant l'écran Créer une fois les champs renseignés

L'écran Créer contient les champs, les cases d'option et les cases à cocher suivantes :


Remarque :

si le compilateur cc ne figure pas dans la variable $PATH, Agent Builder grise la case d'option C et sélectionne le bouton ksh. Pour spécifier un compilateur différent, reportez-vous à la remarque figurant à la fin de la rubrique Installation et configuration d'Agent Builder.


Une fois les données requises entrées, cliquez sur le bouton Créer. Le Journal en bas de l'écran présente les actions qu'Agent Builder entreprend. La commande Enregistrer journal du menu Éditer vous permet d'enregistrer les données dans le journal.

Une fois cette opération terminée, Agent Builder affiche soit un message indiquant que cette étape a été réalisée avec succès soit un message d'avertissement précisant qu'il est impossible d'achever correctement cette tâche. Dans ce cas, vous devez consulter le journal pour obtenir plus d'informations.

Si Agent Builder termine cette tâche avec succès, vous pouvez cliquer sur le bouton Suivant pour afficher l'écran Configurer depuis lequel vous pouvez terminer de générer le type de ressources.


Remarque :

bien que la génération d'un type de ressources complet s'exécute suivant une procédure en deux étapes, vous pouvez quitter Agent Builder une fois la première étape (création) terminée sans perdre les données que vous avez entrées ou le travail qu'Agent Builder a achevé (reportez-vous à la rubrique Réutilisation d'un travail terminé).


Utilisation de l'écran Configurer

L'écran Configurer, illustré ci-après, apparaît une fois qu'Agent Builder a terminé de créer le type de ressources et que vous avez cliqué sur le bouton Suivant de l'écran Créer. Vous ne pouvez pas accéder à l'écran Configurer avant d'avoir créé le type de ressources.

Figure 9–3 Écran Configurer

Boîte de dialogue présentant l'écran Configurer

L'écran Configurer contient les champs suivants :

Utilisation de la variable $hostnames d'Agent Builder

Pour de nombreuses applications, notamment les applications réseau, le nom d'hôte sur lequel l'application écoute et gère les requêtes des clients doit être transmis à l'application sur la ligne de commande. Par conséquent, le nom d'hôte est généralement un paramètre que vous devez indiquer pour les commandes de démarrage, d'arrêt et de détection du type de ressources cible (dans l'écran Configurer). Par contre, le nom d'hôte est propre au cluster. Il est déterminé à l'exécution de la ressource sur un cluster et ne peut pas l'être lorsqu'Agent Builder génère le code de votre type de ressources.

Pour pallier ce problème, Agent Builder propose la variable $hostnames que vous pouvez spécifier sur la ligne de commande pour les commandes de démarrage, d'arrêt et de détection. Vous spécifiez la variable $hostnames exactement comme vous indiqueriez un nom d'hôte réel. Exemple :


/opt/network_aware/echo_server -p n°_port -l $hostnames

Lorsqu'une ressource du type de ressources cible est exécutée sur un cluster, le nom d'hôte LogicalHostname (NomHôteLogique) ou SharedAddress (AdressePartagée) configuré pour cette ressource (dans la propriété de ressource Ressources_réseau_utilisées de cette ressource) est remplacé par la valeur de la variable $hostnames.

Si vous configurez la propriété Ressources_réseau_utilisées avec plusieurs noms d'hôte, ils apparaissent tous dans la variable $hostnames, séparés par des virgules.

Création de types de ressources contenant plusieurs arborescences de processus indépendantes

Agent Builder peut créer des types de ressources pour les applications intégrant plusieurs arborescences de processus indépendantes. Ces arborescences de processus sont indépendantes dans le sens où la fonction PMF les contrôle et les démarre individuellement. La fonction PMF démarre chaque arborescence de processus avec sa propre balise.


Remarque :

Agent Builder ne vous permet de créer des types de ressources contenant plusieurs arborescences de processus indépendantes que si le code source généré que vous spécifiez est C. Vous ne pouvez pas utiliser Agent Builder pour créer ces types de ressources pour ksh ou GDS. Pour ce faire, vous devez écrire le code manuellement.


Dans le cadre d'une application de base contenant plusieurs arborescences de processus indépendantes, la spécification d'une ligne de commande unique ne suffit pas pour démarrer l'application. Dans ce cas, vous devez créer un fichier texte dont chaque ligne indique le chemin d'accès complet à une commande permettant de démarrer l'une des arborescences de processus de l'application. Ce fichier ne doit contenir aucune ligne vide et être spécifié dans le champ Commande de démarrage de l'écran Configurer.

Vous devez également vous assurer qu'il ne contient aucune autorisation d'exécution. De fait, Agent Builder peut ainsi distinguer ce fichier visant à démarrer plusieurs arborescences de processus d'un simple script exécutable contenant plusieurs commandes. Si ce fichier texte contient des autorisations d'exécution, les ressources s'affichent correctement sur le cluster mais toutes les commandes sont exécutées sous une seule balise PMF. Le cas échéant, la fonction PMF ne peut pas contrôler et redémarrer individuellement les arborescences de processus.

Réutilisation d'un travail terminé

Agent Builder vous permet d'exploiter un travail terminé de plusieurs façons :

Clonage d'un type de ressources existant

Procédez comme suit pour cloner un type de ressources existant généré par Agent Builder :

  1. Chargez un type de ressources existant dans Agent Builder. Pour ce faire, vous pouvez procéder de deux façons :

    1. Lancez Agent Builder à partir du répertoire de travail (dans lequel figure le fichier rtconfig) d'un type de ressources existant (créé avec Agent Builder). Agent Builder charge ensuite les valeurs de ce type de ressources dans les écrans Créer et Configurer.

    2. Utilisez la commande Charger type de ressources du menu Fichier.

  2. Modifiez le répertoire de travail dans l'écran Créer.

    Pour ce faire, sélectionnez le répertoire avec le bouton Parcourir, la saisie du nom d'un nouveau répertoire n'étant pas suffisant. Une fois le répertoire sélectionné, Agent Builder active de nouveau le bouton Créer.

  3. Apportez les modifications requises.

    Cette procédure vous permet notamment de modifier le type de code généré pour le type de ressources. Par exemple, si vous avez commencé par créer une version ksh d'un type de ressources avant de découvrir qu'il vous faut une version C, vous pouvez charger le type de ressources ksh existant, remplacer le langage de sortie par C, puis utiliser Agent Builder pour concevoir une version C du type de ressources.

  4. Créez le clone du type de ressources.

    Sélectionnez Créer pour créer le type de ressources. Sélectionnez Suivant pour passer à l'écran Configurer. Sélectionnez Configurer pour configurer le type de ressources, puis Annuler pour terminer la procédure.

Édition du code source généré

Pour que le processus de création d'un type de ressources reste simple, Agent Builder limite le nombre d'entrées, ce qui restreint la portée du type de ressources généré. Par conséquent, si vous souhaitez ajouter des fonctions plus complexes (des contrôles de validation de propriétés supplémentaires, par exemple) ou régler des paramètres qu'Agent Builder n'affiche pas, vous devez modifier le code source généré ou le fichier RTR.

Les fichiers sources sont disponibles dans le répertoire répertoire_installation /nom_type_res/src. Agent Builder intègre des commentaires dans le code source là où vous pouvez ajouter un code. Exemple (pour un code C) :


/* Code ajouté par l'utilisateur -- BEGIN vvvvvvvvvvvvvvv */
/* Code ajouté par l'utilisateur -- END   ^^^^^^^^^^^^^^^ */


Remarque :

ces commentaires sont identiques dans le code korn shell à la seule différence que le symbole # est inséré au début d'une ligne de commentaire.


Par exemple, nom_typ_res.h déclare toutes les routines utilitaires que les différents programmes utilisent. À la fin de la liste des déclarations, vous trouverez des commentaires vous permettant de déclarer les autres routines que vous aimeriez ajouter à n'importe quel code source.

Agent Builder génère également un fichier makefile dans le répertoire répertoire_installation/nom_type_res/src avec les cibles appropriées. Les commandes make et make pkg vous permettent respectivement de recompiler le code source et de générer de nouveau le package du type de ressources.

Le fichier RTR figure dans le répertoire répertoire_installation/ nom_type_res/etc. Vous pouvez éditer le fichier RTR au moyen d'un éditeur de texte standard (reportez-vous à la rubrique Paramétrage des propriétés de ressources et de types de ressources pour de plus amples informations sur le fichier RTR et à l'Annexe A pour de plus amples informations sur les propriétés).

Utilisation de la version ligne de commande d'Agent Builder

La version ligne de commande d'Agent Builder s'appuie sur la même procédure en deux étapes que l'interface utilisateur graphique. Au lieu de saisir les données dans l'interface utilisateur graphique, vous fournissez les paramètres aux commandes scdscreate( 1HA) et scdsconfig (1HA).

Procédez comme suit pour utiliser la version ligne de commande d'Agent Builder :

  1. Utilisez la commande scdscreate pour créer un modèle de type de ressources Sun Cluster permettant de concevoir une application hautement disponible ou évolutive.

  2. Utilisez la commande scdsconfigure pour configurer le modèle de type de ressources créé avec scdscreate.

  3. Remplacez les répertoires par le sous-répertoire pkg dans le répertoire de travail.

  4. Utilisez la commande pkgadd(1M) pour installer les packages que vous avez créés avec scdscreate.

  5. Éditez le code source généré, si vous le souhaitez.

  6. Exécutez le script de démarrage.