Despliegue y gestión de un programa cliente administrativo Java personalizado con varios servidores de aplicaciones Java Platform, Enterprise Edition

En este apartado se describe cómo conectarse a un servidor Java™ Platform, Enterprise Edition (Java EE) y cómo gestionar varios servidores de proveedores.

Antes de empezar

El producto implementa totalmente la especificación de gestión de Java EE, conocida también como JSR-77 (Java Specification Requests 77). No obstante, es importante que entienda algunas de las diferencias de los detalles entre la especificación Java EE y la implementación de WebSphere Application Server cuando se desarrolla un programa de cliente administrativo para gestionar varios servidores de proveedores. Si desea más información, consulte la especificación de gestión de Java Platform, Enterprise Edition (Java EE) y la documentación de la interfaz de programación de aplicaciones (API) Java de MBean. En este Information Center, pulse Reference (Referencia) > Mbean interfaces (Interfaces de Mbean).

Acerca de esta tarea

Cuando el programa de cliente administrativo accede a WebSphere Application Server de forma exclusiva, puede utilizar las API de Java y los MBeans definidos por WebSphere Application Server para gestionarlos. Si el programa necesita acceder a WebSphere Application Server y a otros servidores Java EE, utilice la API definida en la especificación de gestión de Java EE.

Procedimiento

  1. Conéctese a un servidor Java EE.
    Para conectarse a un servidor, busque el enterprise bean de gestión de la JNDI (Java Naming and Directory Interface). El enterprise bean de gestión proporciona una interfaz remota con el servidor de MBeans que se ejecuta en el servidor de aplicaciones. El enterprise bean de gestión funciona prácticamente igual que el cliente administrativo de WebSphere Application Server, excepto que no ofrece funciones específicas de WebSphere Application Server. En el ejemplo siguiente se muestra cómo buscar el enterprise bean de gestión.
    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();
    El ejemplo obtiene un contexto inicial para un servidor de aplicaciones pasando el host y el puerto del conector de RMI (Remote Method Invocation). Debe codificar explícitamente el puerto RMI, en este caso 2809. El método lookup busca la vía de acceso ejb/mgmt/MEJB, que es la ubicación inicial del enterprise bean de gestión. En el ejemplo se crea el bean de sesión sin estado mejb, que se utiliza en el paso siguiente.
  2. Gestión de servidores de aplicaciones de varios proveedores.

    Una vez creado el bean de sesión sin estado mejb, puede utilizarlo para gestionar los servidores de aplicaciones. Los componentes de los servidores de aplicaciones aparecen como MBeans, que define la especificación. Estos MBeans tienen todos la propiedad de claves j2eeType. Esta propiedad forma parte de un conjunto de tipos que define la especificación. Todos estos topos tiene un conjunto de atributos expuestos.

    Utilice el siguiente ejemplo como guía en la gestión de servidores de aplicaciones de varios proveedores. En el ejemplo se utiliza el MBean de JVM (Java virtual machine) para determinar cuál es tamaño de almacenamiento dinámico del servidor de aplicaciones.

    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());
        }
    }

    El método queryNames() consulta primero el MBean JVM. El método getAttribute obtiene el atributo statisticsProvider y determina si este MBean proporciona estadísticas. Si lo hace, el ejemplo accede al atributo de estadísticas y, a continuación, invoca al método getHeapSize() para obtener el tamaño de almacenamiento dinámico.

Resultados

La ventaja de este ejemplo es que se puede ejecutar en un servidor de aplicaciones de cualquier proveedor. Demuestra que un MBean puede implementar de manera opcional las interfaces definidas, en este caso, la interfaz StatisticsProvider. Si un MBean implementa la interfaz StatisticsProvider, puede ver si un servidor de aplicaciones da soporte a una estadística determinada, en este caso el tamaño de almacenamiento dinámico. La especificación define el tamaño de almacenamiento dinámico, aunque este valor es opcional. Si el servidor de aplicaciones da soporte al tamaño de almacenamiento dinámico, puede visualizar el tamaño de almacenamiento dinámico de la JVM.

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjmx_multappsrv_conn
File name: tjmx_multappsrv_conn.html