Déploiement et gestion d'un programme client d'administration personnalisé avec plusieurs serveurs d'applications Java Platform, Enterprise Edition

Cette section explique comment se connecter à un serveur Java™ Platform, Enterprise Edition (Java EE), et comment gérer plusieurs serveurs de différentes marques.

Avant de commencer

Le produit implémente totalement la spécification de gestion Java également nommée JSR-77 (Java Specification Requests 77). Toutefois, vous devez bien comprendre certaines divergences entre la spécification Java et l'implémentation de WebSphere Application Server au moment de développer un programme client d'administration Java pour gérer plusieurs serveurs de différentes marques. Pour plus d'informations, voir la spécification de gestion Java Platform, Enterprise Edition (Java EE) et la documentation sur les API (Application Programming Interface) Java MBean. Dans le centre de documentation, cliquez sur Référence > Interface Mbean.

Pourquoi et quand exécuter cette tâche

i votre programme client d'administration accède exclusivement à des serveurs WebSphere Application Server, vous pouvez utiliser les API Java et les MBeans définis par WebSphere Application Server. Si votre programme doit accéder à la fois à des serveurs WebSphere Application Server et à d'autres serveurs Java, utilisez l'API définie dans la spécification de gestion Java EE.

Procédure

  1. Connectez-vous à un serveur Java.
    Connectez-vous à un serveur en recherchant le bean enterprise de gestion dans l'interface JNDI (Java Naming and Directory Interface). Ce bean offre une interface distante au serveur MBean qui s'exécute dans le serveur d'applications. Le bean enterprise de gestion fonctionne quasiment comme le client d'administration WebSphere Application Server, sauf qu'il n'offre pas les fonctions spécifiques à WebSphere Application Server. L'exemple suivant montre comment rechercher le bean enterprise de gestion.
    import javax.management.j2ee.ManagementHome;
    import javax.management.j2ee.Management;
    
    Properties props = new Properties();
    
    props.setProperty(Context.PROVIDER_URL, "iiop://myhost:2809");
    Context ic = new InitialContext(props);
    Object obj = ic.lookup("ejb/mgmt/MEJB");
    ManagementHome mejbHome = (ManagementHome)
            PortableRemoteObject.narrow(obj, ManagementHome.class);
    Management mejb = mejbHome.create();
    L'exemple obtient un contexte initial pour un serveur d'applications en transmettant l'hôte et le port du connecteur RMI (Remote Method Invocation). Vous devez coder explicitement le port RMI (dans le cas présent, 2809). La méthode de recherche porte sur le chemin ejb/mgmt/MEJB, à savoir l'emplacement de l'interface home du bean enterprise de gestion. L'exemple crée ensuite le bean session sans état mejb que vous emploierez à l'étape suivante.
  2. Gestion de plusieurs serveurs d'applications de marques différentes.

    Après avoir créé le bean de session sans état mejb, vous pouvez l'utiliser pour gérer vos serveurs d'applications. Les composants des serveurs d'applications apparaissent sous forme de MBeans, lesquels sont définis par la spécification. Tous ces MBeans ont la propriété j2eeType. Cette propriété est l'un des ensembles de types définis par la spécification. Tous ces types sont dotés d'un ensemble d'attributs exposés.

    Utilisez l'exemple suivant pour apprendre à gérer plusieurs serveurs d'applications de différentes marques. L'exemple utilise le MBean JVM (machine virtuelle Java) pour déterminer la taille actuelle du tas pour le serveur d'applications.

    ObjectName jvmQuery = new ObjectName("*:j2eeType=JVM,*");
    Set s = mejb.queryNames(jvmQuery, null);
    ObjectName jvmMBean = (ObjectName) s.iterator().next();
    boolean hasStats = ((Boolean) mejb.getAttribute(jvmMBean,
            "statisticsProvider")).booleanValue();
    if (hasStats) {
        JVMStats stats = (JVMStats) mejb.getAttribute(jvmMBean,
                                                      "stats");
        String[] statisticNames = stats.getStatisticNames();
        if (Arrays.asList(statisticNames).contains("heapSize")) {
            System.out.println("Heap size: " + stats.getHeapSize());
        }
    }

    La méthode queryNames() interroge d'abord le MBean JVM. La méthode getAttribute obtient l'attribut statisticsProvider et détermine si ce MBean fournit des statistiques. Si tel est le cas, l'exemple accède à l'attribut stats et appelle la méthode getHeapSize() pour connaître la taille du tas.

Résultats

L'atout majeur de cet exemple est qu'il peut s'exécuter sur n'importe quel serveur d'applications. Il montre qu'un MBean peut éventuellement implémenter des interfaces définies, dans le cas présent l'interface StatisticsProvider. Dès lors qu'un MBean implémente l'interface StatisticsProvider, vous pouvez déterminer si un serveur d'applications fournit une donnée statistique particulière, en l'occurrence la taille du tas (heapSize). La spécification définit la taille de pile, même si cette valeur est facultative. Si le serveur d'applications rend compte de cette statistique, vous pouvez afficher la taille du tas de la JVM.

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjmx_multappsrv_conn
Nom du fichier : tjmx_multappsrv_conn.html