Conecte una aplicación que utiliza el API de CMP a un intermediario, para enviar solicitudes sobre su estado y sus recursos.
Antes de empezar
Antes de iniciar este paso, ha de haber completado lo indicado en el apartado Configuración de un entorno para el desarrollo y ejecución de aplicaciones del CMP.
Vea el programa siguiente BrokerRunStateChecker.java. Conecta con un intermediario que se ejecuta en el gestor de colas predeterminado del sistema local.
import com.ibm.broker.config.proxy.*;
public class BrokerRunStateChecker {
public static void main(String[] args) {
// The ip address of where the broker is running
// and the port number of the queue manager listener.
displayBrokerRunState("localhost", 2414, "");
}
public static void displayBrokerRunState(String hostname,
int port,
String qmgr) {
BrokerProxy b = null;
try {
BrokerConnectionParameters bcp =
new MQBrokerConnectionParameters(hostname, port, qmgr);
b = BrokerProxy.getInstance(bcp);
String brokerName = b.getName();
System.out.println("Broker '"+brokerName+
"' is available!");
b.disconnect();
} catch (ConfigManagerProxyException ex) {
System.out.println("Broker is NOT available"+
" because "+ex);
}
}
}
La primera línea del programa solicita que Java™ importe las clases de API de CMP, que se suministran en el paquete com.ibm.broker.config.proxy.
La primera línea de código en el bloque try del método displayBrokerRunState() genera una instancia del objeto BrokerConnectionParameters. Este método es una interfaz que indica que las clases de implementación pueden proporcionar los parámetros para conectarse a un intermediario.
Cuando haya definido este objeto, puede conectarse al gestor de colas que está definido por esas características. La conexión se obtiene mediante el método de fábrica getInstance() que hay dentro del bloque try. Cuando se devuelve un manejador válido al gestor de colas, la aplicación solicita el nombre del intermediario utilizando b.getName() y lo muestra.
getName()y otros métodos que solicitan información del intermediario, bloquean hasta que se suministra la información o se produce un tiempo de espera excedido. Por lo tanto, si el intermediario no se ejecuta, la aplicación se cuelga durante un periodo de tiempo. Puede controlar el periodo de tiempo de espera utilizando el método BrokerProxy.setRetryCharacteristics(). Normalmente, el bloqueo sólo se produce cuando se accede a un recurso dado por primera vez dentro de una aplicación.
Por último, el programa llama al método disconnect(). Este método libera recursos asociados a la conexión en CMP y el intermediario.
Cuando un manejador BrokerProxy se devuelve por primera vez del método getInstance(), el servicio de intermediario no tiene que estar en ejecución. Sólo cuando la aplicación utiliza el manejador (llamando a getName() en este ejemplo), la aplicación puede estar segura de que hay una conexión bidireccional activa con el intermediario.