Chapitre 2. Gestion de serveurs d'applications

2.1. Démarrer et stopper JBoss EAP 6

2.1.2. Démarrez JBoss EAP 6 comme un serveur autonome

Résumé

Cette rubrique couvre toutes les étapes à couvrir pour démarrer JBoss EAP 6 en tant que serveur autonome.

Procédure 2.1. Démarrer le service de plate-forme comme serveur autonome.

  1. Dans Red Hat Enterprise Linux.

    Exécuter la commande suivante : EAP_HOME/bin/standalone.sh
  2. Dans Microsoft Windows Server

    Exécuter la commande suivante : EAP_HOME\bin\standalone.bat
  3. Option : indiquer les paramètres supplémentaires.

    Pour imprimer une liste de paramètres supplémentaires à passer aux scripts de démarrage, utiliser le paramètre -h.
Résultat

L'instance de serveur autonome JBoss EAP 6 démarre.

2.1.3. Démarrez JBoss EAP 6 comme domaine géré

Ordre des opérations

Le contrôleur de domaines doit être démarré avant qu'un serveur esclave ne démarre dans des groupes de serveurs du domaine. Utiliser cette procédure sur le contrôleur de domaine pour commencer, puis, sur chaque contrôleur hôte associé et sur chaque hôte associé.

Procédure 2.2. Démarrer le service de plate-forme comme serveur géré

  1. Dans Red Hat Enterprise Linux.

    Exécutez la commande : EAP_HOME/bin/domain.sh
  2. Dans Microsoft Windows Server

    Exécutez la commande : EAP_HOME\bin\domain.bat
  3. En option : passez des paramètres supplémentaires au script de démarrage.

    Pour obtenir une liste de paramètres que vous pourrez passer au script de démarrage, utilisez le paramètre -h.
Résultat

L'instance de domaine géré de JBoss EAP 6 démarre.

2.1.4. Configuration d'un nom d'hôte dans un domaine géré

Résumé

Chaque hôte exécutant dans un domaine géré doit avoir un nom d'hôte unique. Pour faciliter l'administration et permettre l'utilisation de mêmes fichiers de configuration hôte sur plusieurs hôtes, le serveur utilise la priorité suivante pour déterminer le nom d'hôte.

  1. Si défini, l'attribut de nom de l'élément hôte qui se trouve dans le fichier de configuration host.xml.
  2. La valeur de la propriété système jboss.host.name.
  3. La valeur qui suit le caractère (".") dans la propriété système jboss.qualified.host.name, ou toute la valeur s'il n'y a pas de point final (".").
  4. La valeur qui suit le caractère (".") dans la variable d'environnement HOSTNAME pour les systèmes d'exploitation basés POSIX, la variable d'environnement COMPUTERNAME dans Microsoft Windows, ou toute la valeur s'il n'y a pas de point final (".")

Pour obtenir des informations sur la façon de définir les variables d'environnement, voir la documentation de votre système d'exploitation. Pour plus d'informations sur la façon de définir les propriétés système, voir Section 3.6.11, « Configurer les propriétés système par l'interface CLI ».
Cette section décrit comment fixer le nom de l'hôte dans le fichier de configuration, à l'aide d'une propriété système ou d'un nom codé en dur.

Procédure 2.3. Configuration d'un nom d'hôte avec une propriété système

  1. Ouvrir le fichier de configuration de l'hôte host.xml pour le modifier.
  2. Cherchez l'élément host dans le fichier, comme par exemple :
    <host name="master" xmlns="urn:jboss:domain:1.6">
  3. S'il est présent, retirez la déclaration d'attribut name="HOST_NAME". L'élément host devra ressembler à l'exemple suivant :
    <host xmlns="urn:jboss:domain:1.6">
  4. Démarrer le serveur en saisissant -Djboss.host.name comme argument de ligne de commande, comme par exemple :
    -Djboss.host.name=HOST_NAME

Procédure 2.4. Configuration d'un nom d'hôte avec un nom spécifique

  1. Démarrer l'hôte esclave JBoss EAP à l'aide de la syntaxe suivante :
    bin/domain.sh --host-config=HOST_FILE_NAME
    Par exemple :
    bin/domain.sh --host-config=host-slave01.xml
  2. Lancer l'interface CLI.
  3. Utiliser la syntaxe suivante pour remplacer le nom d'hôte :
    /host=EXISTING_HOST_NAME:write-attribute(name="name",value=UNIQUE_HOST_NAME)
    Par exemple :
    /host=master:write-attribute(name="name",value="host-slave01")
    Vous devriez voir apparaître le résultat suivant.
     "outcome" => "success"
    Cela modifie l'attribut name de l'hôte dans le fichier host-slave01.xml comme suit :
    <host name="host-slave01" xmlns="urn:jboss:domain:1.6">
  4. Vous devez charger à nouveau la configuration du serveur avec l'ancien nom d'hôte pour terminer le processus.
    reload --host=EXISTING_HOST_NAME
    Par exemple :
    reload --host=master

2.1.5. Créer un domaine géré sur deux machines

Note

Vous devrez sans doute configurer votre pare-feu pour qu'il puisse exécuter cet exemple.
Vous pouvez créer un domaine géré sur deux machines, avec une machine en tant que contrôleur de domaine, et l'autre en tant qu'hôte. Pour plus d'informations, voir Section 1.6, « Contrôleur de domaine ».
  • IP1 = adresse IP du contrôleur de domaine (Machine 1)
  • IP2 = adresse IP de l'hôte (Machine 2)

Procédure 2.5. Créer un domaine géré sur deux macchines

  1. Sur la machine 1

    1. Utiliser le script add-user.sh pour ajouter l'utilisateur de management. Par exemple, slave01, pour que l'hôte puisse authentifier le contrôleur de domaines. Notez la valeur SECRET_VALUE de la sortie add-user.
    2. Démarrer le domaine par le fichier de configuration host-master.xml, qui est préconfiguré pour un contrôleur de domaines exclusif.
    3. Utiliser -bmanagement=$IP1 pour rendre le contrôleur de domaine visible auprès des autres machines.
      [$JBOSS_HOME/bin]$ ./domain.sh --host-config=host-master.xml -bmanagement=$IP1
  2. Sur la machine 2

    1. Mettre à jour le fichier $JBOSS_HOME/domain/configuration/host-slave.xml avec les identifiants.
      	<?xml version='1.0' encoding='UTF-8'?>
              <host xmlns="urn:jboss:domain:1.6" name="slave01">   
              <!-- add user name here -->
               <management>
                  <security-realms>
                     <security-realm name="ManagementRealm">
                        <server-identities>
                          <secret value="$SECRET_VALUE" />   
                          <!-- use secret value from add-user.sh output-->
                        </server-identities> 
                        ...
    2. Démarrer l'hôte.
      [$JBOSS_HOME/bin]$ ./domain.sh --host-config=host-slave.xml  -Djboss.domain.master.address=$IP1 -b=$IP2
  3. Nous pouvons maintenant gérer le domaine.

    via le CLI :
    [$JBOSS_HOME/bin]$ ./jboss-cli.sh -c --controller=$IP1
    
    via la console web :
    http://$IP1:9990
    
    Accéder à la page d'index du serveur :
    http://$IP2:8080/
    http://$IP2:8230/
    

2.1.6. Démarrez JBoss EAP 6 avec une configuration différente

Si vous n'indiquez pas de fichier de configuration, le serveur démarrera avec le fichier par défaut. Cependant, quand vous démarrez le serveur, vous pouvez spécifier Configuration manuelle. Le processus varie légèrement, suivant que vous utilisez un Domaine géré ou un Serveur autonome, et suivant le système d'exploitation que vous utilisez.

Conditions préalables

  • Avant d'utiliser un fichier de configuration alternatif, préparez-le à l'aide de la configuration par défaut comme modèle. Pour un domaine géré, le fichier de configuration doit être placé dans EAP_HOME/domain/configuration/. Pour les serveurs autonomes, le fichier de configuration devra être mis dans le répertoire EAP_HOME/standalone/configuration/.

Note

Plusieurs exemples de configurations sont inclus dans les répertoires de configuration EAP_HOME/docs/examples/configs/. Utiliser ces exemples pour activer des fonctionnalités supplémentaires, comme clustering ou l'API XTS de Transactions.

Procédure 2.6. Démarrage de l'instance par une configuration différente

  1. Serveur autonome

    Pour un domaine autonome, fournir le nom du fichier de configuration comme option du paramètre --server-config. Le fichier de configuration doit se trouver dans le répertoire EAP_HOME/standalone/configuration/, et vous devez indiquer le chemin d'accès du fichier de ce répertoire.

    Exemple 2.1. Utiliser un fichier de configuration alternatif pour un serveur autonome Red Hat Enterprise Linux.

    [user@host bin]$ ./standalone.sh --server-config=standalone-alternate.xml
    Cet exemple utilise le fichier de configuration EAP_HOME/standalone/configuration/standalone-alternate.xml.

    Exemple 2.2. Utiliser un fichier de configuration alternatif pour un serveur autonome Microsoft Windows.

    C:\EAP_HOME\bin> standalone.bat --server-config=standalone-alternate.xml
    Cet exemple utilise le fichier de configuration EAP_HOME/standalone/configuration/standalone-alternate.xml.
  2. Domaine géré

    Pour un domaine géré, fournir le nom du fichier de configuration comme option du paramètre --domain-config. Le fichier de configuration se trouve dans le répertoire EAP_HOME/domain/configuration/, et vous devez indiquer le chemin d'accès de ce répertoire.

    Exemple 2.3. Utilisation d'un fichier de configuration alternatif pour un domaine géré dans Red Hat Enterprise Linux

    [user@host bin]$ ./domain.sh --domain-config=domain-alternate.xml
    Cet exemple utilise le fichier de configuration EAP_HOME/domain/configuration/domain-alternate.xml.

    Exemple 2.4. Utilisation d'un fichier de configuration alternatif pour un domaine géré dans un serveur Microsoft Windows

    C:\EAP_HOME\bin> domain.bat --domain-config=domain-alternate.xml
    
    
    Cet exemple utilise le fichier de configuration EAP_HOME\domain\configuration\domain-alternate.xml.
Résultat

La plateforme JBoss Enterprise Application Platform est maintenant en cours d'exécution, avec votre fichier de configuration alternatif.

2.1.7. Stopper le serveur JBoss EAP 6

La façon dont vous arrêtez la plate-forme JBoss EAP 6 dépend de la façon dont elle a été lancée. Cette tâche couvre l'arrêt d'une instance qui a démarré de manière interactive, faire cesser une instance qui a été démarrée par un service et faire cesser une instance qui a été mise en arrière-plan par un script.

Note

Pour obtenir des informations sur la façon de stopper un serveur ou un groupe de serveurs dans un domaine géré, voir Section 2.2.3, « Stopper un serveur qui utilise une console de gestion ». Pour obtenir des informations sur la façon de stopper un serveur par le CLI, voir Section 2.2.1, « Démarrer et arrêter les serveurs par l'interface CLI ».
  • Procédure 2.7. Stopper une instance de JBoss EAP 6

    • Stopper une instance qui a été démarrée de façon interactive à partir d'une invite de commande.

      Appuyez sur Ctrl-C dans le terminal où JBoss EAP 6 exécute.
  • Procédure 2.8. Stopper une instance qui a démarré en tant que service de système d'exploitation.

    Suivant votre système d'exploitation, utiliser une des procédures suivantes :
      • Red Hat Enterprise Linux

        Dans Red Hat Enterprise Linux, si vous avez écrit un script de service, utiliser sa fonction stop. Cela devra être inscrit dans le script. Ensuite, vous pourrez utiliser service scriptname stop, avec scriptname comme nom de script.
      • Microsoft Windows Server

        Dans Microsoft Windows, utiliser la commande net service, ou bien faites cesser le service à partir de l'applet Services qui se trouve dans le panneau de contrôle.
  • Procédure 2.9. Stopper une instance qui exécute en arrière-plan (Red Hat Enterprise Linux)

    1. Chercher l'ID de processus (PID) du processus :
      • Si une seule instance est en cours d'exécution (mode autonome)

        N'importe laquelle des commandes suivantes renverront le PID d'une simple instance de JBoss EAP 6 :
        • pidof java
        • jps
          (La commande jps retournera un ID des deux processus ; un pour jboss-modules.jar et un pour jps lui-même. Utiliser l'ID de jboss-modules.jar pour stopper l'instance EAP)
      • Si plusieurs instances EAP sont en cours d'exécution (mode de domaine)

        Identifier le process qui convient pour y mettre un terme si plus d'une instance d'EAP en cours d'exécution nécessitent l'utilisation de commandes plus élaborées.
        • La commande jps peut être utilisée en mode détaillé (verbose) pour qu'elle puisse fournir davantage d'informations sur les processus java qu'elle trouve.
          Vous trouverez ci-dessous sous une sortie abrégée d'une commande détaillée jps qui identifie les différents processus d'EAP en cours par PID et rôle :
          $ jps -v
          12155 jboss-modules.jar -D[Server:server-one] -XX:PermSize=256m -XX:MaxPermSize=256m -Xms1303m 
          ...
          
          12196 jboss-modules.jar -D[Server:server-two] -XX:PermSize=256m -XX:MaxPermSize=256m -Xms1303m 
          ...
          
          12096 jboss-modules.jar -D[Host Controller] -Xms64m -Xmx512m -XX:MaxPermSize=256m 
          ...
          
          11872 Main -Xms128m -Xmx750m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=96m -XX:+UseCodeCacheFlushing 
          ...
          
          11248 jboss-modules.jar -D[Standalone] -XX:+UseCompressedOops -verbose:gc 
          ...
          
          12892 Jps 
          ...
          
          12080 jboss-modules.jar -D[Process Controller] -Xms64m -Xmx512m -XX:MaxPermSize=256m 
          ...
          
        • La commande ps aux peut également être utilisée pour renvoyer des informations sur les instances multiples EAP.
          Vous trouverez ci-dessous sous une sortie abrégée d'une commande détaillée ps aux qui identifie les différents processus d'EAP en cours par PID et rôle :
          $ ps aux | grep java
          username 12080  0.1  0.9 3606588 36772 pts/0   Sl+  10:09   0:01 /path/to/java -D[Process Controller] -server -Xms128m -Xmx128m -XX:MaxPermSize=256m 
          ...
          
          username 12096  1.0  4.1 3741304 158452 pts/0  Sl+  10:09   0:13 /path/to/java -D[Host Controller] -Xms128m -Xmx128m -XX:MaxPermSize=256m 
          ...
          
          username 12155  1.7  8.9 4741800 344224 pts/0  Sl+  10:09   0:22 /path/to/java -D[Server:server-one] -XX:PermSize=256m -XX:MaxPermSize=256m -Xms1000m -Xmx1000m -server -
          ...
          
          username 12196  1.8  9.4 4739612 364436 pts/0  Sl+  10:09   0:22 /path/to/java -D[Server:server-two] -XX:PermSize=256m -XX:MaxPermSize=256m -Xms1000m -Xmx1000m -server 
          ...
          
        Dans les exemples ci-dessus, les processus Process Controller sont des processus à stopper pour stopper tout le domaine.
        L'utilitaire grep peut être utilisé avec une de ces commandes pour identifier le Process Controller :
        jps -v | grep "Process Controller"
        ps aux | grep "Process Controller"
    2. Envoyer le signal TERM au processus en exécutant kill PID, quand PID est l'ID de processus identifié par une des commandes ci-dessus.
Résultat

Chacune de ces solutions ferme la plate-forme JBoss EAP 6 nettement, ce qui fait qu'aucune donnée n'est perdue.

2.1.8. Référence aux variables et arguments à passer à l'exécution du serveur

Le script de démarrage du serveur d'applications accepte l'ajout d'arguments et de variables en cours d'exécution. L'utilisation de ces paramètres permettent au serveur d'être démarré sous d'autres configurations que celles qui sont définies dans les fichiers de configuration standalone.xml, domain.xml et host.xml. Cela peut comprendre le démarrage du serveur par un ensemble de liaisons de sockets différent ou une configuration secondaire. Vous pourrez accéder à une liste des paramètres disponibles en passant la variable d'assistance au démarrage.

Exemple 2.5. 

L'exemple suivant ressemble au démarrage de serveur expliqué dans Section 2.1.2, « Démarrez JBoss EAP 6 comme un serveur autonome » et Section 2.1.3, « Démarrez JBoss EAP 6 comme domaine géré », avec en plus les variables -h ou --help>. Les résultats de cette variable d'assistance sont expliqués dans le tableau ci-dessous.
Mode autonome :
[localhost bin]$ standalone.sh -h
Mode de domaine :
[localhost bin]$ domain.sh -h

Tableau 2.1. Tableau des arguments et variables du temps d'exécution

Argument ou Variable Mode Description
--admin-only Autonome Définir le type d'exécution du serveur à ADMIN_ONLY. Cela le fera ouvrir les interfaces administratives et il pourra ainsi accepter les ordres de gestion, mais il ne pourra pas démarrer d'autres services de runtime ou accepter les demandes de l'utilisateur final.
--admin-only Domaine Définir le type d'exécution du contrôleur hôte à ADMIN_ONLY, ce qui le fera ouvrir les interfaces administratives et il pourra ainsi accepter les ordres de gestion, mais il ne pourra pas démarrer d'autres serveurs ou, si ce contrôleur hôte est le master du domaine, il pourra accepter les demandes des contrôleurs hôte esclaves.
-b <value>, -b=<value> Autonome, Serveur Définir la propriété système jboss.bind.address à la valeur donnée.
-b<interface>=<value> Autonome, Serveur Définir la propriété système jboss.bind.address.<interface> à la valeur donnée.
--backup Domaine Conserver une copie de la configuration de domaine persistante même si cet hôte n'est pas le contrôleur de domaines.
-c <config>, -c=<config> Autonome Nommer le fichier de configuration du serveur à utiliser. La valeur par défaut est standalone.xml.
-c <config>, -c=<config> Domaine Nom du fichier de configuration de serveur à utiliser. La valeur par défaut est domain.xml.
--cached-dc Domaine Si l'hôte n'est pas le contrôleur de domaine et ne peut pas contacter le contrôleur de domaine au démarrage, puisque le processus de démarrage (booting) utilise une copie de la configuration de domaine mise en cache localement.
--debug [<port>] Autonome Active le mode de débogage par un argument en option qui indique le port. Ne fonctionne que si le script de lancement le supporte.
-D<name>[=<value>] Autonome, Serveur Définit une propriété système.
--domain-config=<config> Domaine Nom du fichier de configuration de serveur à utiliser. La valeur par défaut est domain.xml.
-h, --help Autonome, Serveur Affiche le message d'assistance et sortir.
--host-config=<config> Domaine Nom du fichier de configuration hôte à utiliser. La valeur par défaut est host.xml.
--interprocess-hc-address=<address> Domaine Adresse à laquelle le contrôleur hôte doit écouter la communication en provenance du contrôleur de processus.
--interprocess-hc-port=<port> Domaine Port sur lequel le contrôleur hôte doit écouter la communication en provenance du contrôleur de processus.
--master-address=<address> Domaine Définit la propriété système jboss.domain.master.address à la valeur donnée. Dans une configuration de contrôleur hôte esclave par défaut, c'est utilisé pour configurer l'adresse du contrôleur hôte maître.
--master-port=<port> Domaine Définit la propriété système jboss.domain.master.port à la valeur donnée. Dans une configuration de contrôleur hôte esclave par défaut, c'est utilisé pour configurer le port utilisé pour la communication de gestion native du contrôleur hôte maître.
--read-only-server-config=<config> Autonome Nom du fichier de configuration du serveur à utiliser. Cela diffère de --server-config et -c en ce que le fichier d'origine n'est jamais écrasé.
--read-only-domain-config=<config> Domaine Nom du fichier de configuration du domaine à utiliser. Cela diffère de --domain-config et de -c en ce que le fichier de départ n'est jamais écrasé.
--read-only-host-config=<config> Domaine Nom du fichier de configuration de l'hôte à utiliser. Cela diffère de --host-config en ce que le fichier de départ n'est jamais écrasé.
-P <url>, -P=<url>, --properties=<url> Autonome, Serveur Télécharge les propriétés système de l'URL donné.
--pc-address=<address> Domaine Adresse à laquelle le contrôleur de processus doit écouter les communications en provenance des processus qu'il contrôle.
--pc-port=<port> Domaine Port sur lequel le contrôleur de processus doit écouter les communications en provenance des processus qu'il contrôle.
-S<name>[=<value>] Autonome Définit une propriété de sécurité.
--server-config=<config> Autonome Nommer le fichier de configuration du serveur à utiliser. La valeur par défaut est standalone.xml.
-u <value>, -u=<value> Autonome, Serveur Définit la propriété système jboss.default.multicast.address à la valeur donnée.
-v, -V, --version Autonome, Serveur Affiche la version du serveur d'application et sortie.