Beispiel für die Einrichtung einer JMX-Routing-Umgebung

Sie können Liberty verwenden, um JMX-MBeans (Java™ Management Extensions) in einem Verbundmember-Server über einen Verbundcontroller-Server aufzurufen.

Mit dem Feature collectiveMember-1.0 kann ein Server über einen Verbundcontroller (Feature collectiveController-1.0) verwaltet werden. Nachdem ein Server so konfiguriert worden ist, dass er von einem Verbundcontroller verwaltet werden kann, können Sie alle MBeans im Verbundmember direkt über den Server des Verbundcontrollers aufrufen.

Es folgt ein Beispiel dafür, wie MBeans in einem Verbundmember über den Server eines Verbundcontrollers aufgerufen werden.

// Truststore für den Verbund-Controller-Server konfigurieren

    System.setProperty("javax.net.ssl.trustStore", "<trustStore for https connection to collective controller>");
    System.setProperty("javax.net.ssl.trustStorePassword", "<trustStore password>");

    Map<String, Object> environment = new HashMap<String, Object>();
    environment.put("jmx.remote.protocol.provider.pkgs", "com.ibm.ws.jmx.connector.client");
    environment.put(JMXConnector.CREDENTIALS, new String[] { "<username>", "<password>" });
    environment.put(ClientProvider.DISABLE_HOSTNAME_VERIFICATION, true);
    environment.put(ClientProvider.READ_TIMEOUT, 2 * 60 * 1000);

    JMXServiceURL url = new JMXServiceURL(
        "REST", "<hostname of collective controller server>", <https port>, "/IBMJMXConnectorREST");
    jmxConnector = JMXConnectorFactory.connect(url, environment);
    MBeanServerConnection exmbsc = jmxConnector.getMBeanServerConnection();

// Sie haben jetzt eine Verbindung vom Typ "MBeanServerConnection". Jetzt sind alle ihre MBean-Aufrufe im Verbund-Controller-Server.

// Die nächsten Codezeilen dienen der Konfiguration des Routing-Kontextes und haben den Zweck, alle Aufrufe an ein Verbundmember weiterzuleiten.

   ObjectName rmObjectName = new ObjectName(
       "WebSphere:feature=collectiveController,type=RoutingContext,name=RoutingContext");

// MBean "MBeanRoutingContext" aufrufen, um den Routing-Kontext zu konfigurieren.

    Object rcObj = connection.invoke(rmObjectName, "assignServerContext",
    new Object[] { 
        "<hostname of the collective member>", "<collective member server usr dir>", "<collective member server name>"
    },  

// Der verwaltete Server kann über das Benutzerverzeichnis und den Namen des
// Servers des Verbundmembers eindeutig auf einem Host identifiziert werden.

    new String[] { "java.lang.String", "java.lang.String", "java.lang.String" });

    if (rcObj instanceof Boolean) {
        Boolean result = (Boolean) rcObj;
    if (result.booleanValue()) {
       System.out.println("routing context is configured correctly");
       }
    Or if (!result.booleanValue()) {
       System.out.println("routing context result is false");
       }
    } else {
        System.out.println("failed to configure routing context");
    }
Wenn der Routing-Kontext ordnungsgemäß konfiguriert ist, werden alle künftigen Aufrufe von MBeanServerConnection an den Zielserver des Verbundmembers weitergeleitet.

Symbol das den Typ des Artikels anzeigt. Referenzartikel

Dateiname: rwlp_jmx_routing.html