Liberty : Exemple de configuration d'un environnement de routage JM
Vous pouvez utiliser Liberty pour appeler des beans de gestion JMX (Java™ Management Extensions) sur un serveur membre de collectivité via un serveur de contrôleur de collectivité.


La fonction collectiveMember-1.0 permet à un serveur d'être géré par un contrôleur de collectivité (la fonction collectiveController-1.0). Une fois qu'un serveur a été configuré en vue de sa gestion par un contrôleur de collectivité, vous pouvez appeler directement des beans gérés sur le membre de la collectivité via le serveur du contrôleur de collectivité.
L'exemple suivant illustre l'appel de beans gérés sur un membre de la collectivité via un serveur de contrôleur de collectivité :
// Set up the trust store to the collective controller server.
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();
// You have a MBeanServerConnection now; at this point, however, all of your MBean calls
// are on the collective controller server.
// The next few lines of code are to set up the routing context so that all calls
// can be routed to a collective member.
ObjectName rmObjectName = new ObjectName(
"WebSphere:feature=collectiveController,type=RoutingContext,name=RoutingContext");
// Call the MBeanRoutingContext MBean to set up the routing context.
Object rcObj = connection.invoke(rmObjectName, "assignServerContext",
new Object[] {
"<hostname of the collective member>", "<collective member server usr dir>", "<collective member server name>"
},
// With the collective-member server usr dir and collective-member server name,
// the managed server can be uniquely identified on a host.
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");
}
Si le contexte de routage est configuré correctement, tous les appels suivants de MBeanServerConnection seront routés vers un serveur membre de la collectivité cible.