Exemple de configuration d'un environnement de routage JM
Vous pouvez utiliser le profil 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é :
// Configurez le fichier de clés certifiées sur le serveur du contrôleur de collectivité :
System.setProperty("javax.net.ssl.trustStore", "<magasin de clés certifiées pour la connexion https à un contrôleur de collectivité>");
System.setProperty("javax.net.ssl.trustStorePassword", "<mot de passe du magasin de clés certifiées>");
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[] { "<nom utilisateur>", "<mot de passe>" });
environment.put(ClientProvider.DISABLE_HOSTNAME_VERIFICATION, true);
environment.put(ClientProvider.READ_TIMEOUT, 2 * 60 * 1000);
JMXServiceURL url = new JMXServiceURL(
"REST", "<nom d'hôte du serveur de contrôleur de collectivité>", <port https>, "/IBMJMXConnectorREST");
jmxConnector = JMXConnectorFactory.connect(url, environment);
MBeanServerConnection exmbsc = jmxConnector.getMBeanServerConnection();
// A présent, vous disposez d'une connexion MBeanServerConnection ; à ce stade toutefois, tous vos appels de bean géré
// se trouvent sur le serveur du contrôleur de collectivité.
// Les prochaines lignes de code configurent le contexte de routage de sorte que tous les appels
// puissent être routés vers un membre de la collectivité.
ObjectName rmObjectName = new ObjectName(
"WebSphere:feature=collectiveController,type=RoutingContext,name=RoutingContext");
// Appelez le bean géré MBeanRoutingContext pour configurer le contexte de routage.
Object rcObj = connection.invoke(rmObjectName, "assignServerContext",
new Object[] {
"<nom d'hôte du membre de la collectivité>", "<répertoire utilisateur du serveur membre de la collectivité>", "<nom du serveur membre de la collectivité>"
},
// Avec le répertoire utilisateur du serveur membre de la collectivité et le nom du serveur membre de la collectivité,
// le serveur géré peut être identifié de façon unique sur un hôte.
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("le contexte de routage est configuré correctement");
}
Or if (!result.booleanValue()) {
System.out.println("le résultat du contexte de routage est false");
}
} else {
System.out.println("échec de la configuration du contexte de routage");
}
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.