Ejemplo de configuración de un entorno de direccionamiento JMX
Puede utilizar Liberty para llamar a beans de gestión (MBeans) de Java™ Management Extensions (JMX) en un servidor miembro de colectivo a través de un servidor de controlador colectivo.
La característica collectiveMember-1.0 permite que un controlador de colectivo gestione los servidores (la característica collectiveController-1.0). Después de que un servidor se configura para que lo gestione un controlador de colectivo, puede llamar directamente a cualquier MBean del miembro de colectivo mediante el servidor del controlador de colectivo.
A continuación se muestra un ejemplo de cómo llamar a los MBean en un miembro de colectivo mediante un servidor de controlador de colectivo.
// Configurar un almacén de confianza para el servidor del controlador de colectivo.
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();
// Ahora tendrá una MBeanServerConnection; en este punto, sin embargo, todas las llamadas al MBean
// están en el servidor del controlador de colectivo.
// Las líneas de código siguientes son para configurar el contexto de direccionamiento de modo que todas las llamadas
// se pueden dirigir a un miembro de colectivo.
ObjectName rmObjectName = new ObjectName(
"WebSphere:feature=collectiveController,type=RoutingContext,name=RoutingContext");
// Llamar al bean gestionado MBeanRoutingContext para configurar el contexto de direccionamiento.
Object rcObj = connection.invoke(rmObjectName, "assignServerContext",
new Object[] {
"<nombre de host del miembro de colectivo>", "<collective
member server usr dir>", "<nombre de servidor de miembro
de colectivo>"
},
// Con el directorio usr del servidor de miembro de colectivo y el nombre de servidor del miembro de colectivo,
// el servidor gestionado se puede identificar de forma única en un 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("el contexto de direccionamiento se ha configurado correctamente");
}
Or if (!result.booleanValue()) {
System.out.println("el resultado del contexto de direccionamiento es false");
}
} else {
System.out.println("no se ha podido configurar el contexto de direccionamiento");
}
Si el contexto de direccionamiento se ha configurado correctamente, todas
las llamadas futuras de este MBeanServerConnection se direccionan al servidor
de miembro de colectivo de destino.