Conecte um aplicativo que usa o CMP API a um broker para enviar pedidos sobre seu status e seus recursos.
Antes de começar
Antes de iniciar esta etapa, é necessário ter concluído Configurando um Ambiente para Desenvolvimento e Execução de Aplicativos do CMP.
Considere o seguinte programa BrokerRunStateChecker.java. Ele se conecta a um broker em execução no gerenciador de fila padrão do computador 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("O broker '"+brokerName+
"' está disponível!");
b.disconnect();
} catch (ConfigManagerProxyException ex) {
System.out.println("O broker NÃO está disponível"+
" because "+ex);
}
}
}
A primeira linha do programa solicita ao Java™ para importar as classes do CMP API, que são fornecidas no pacote com.ibm.broker.config.proxy.
A primeira linha do código dentro do bloco try do método displayBrokerRunState() instancia um objeto BrokerConnectionParameters. Este método é uma interface que indica que as classes de implementação podem fornecer os parâmetros para conexão com um broker.
Depois de definir esse objeto, é possível se conectar ao gerenciador de fila que está definido por essas características. A conexão é obtida pelo método do gerador de getInstance() estático que se encontra dentro do bloco try. Quando um identificador válido para o gerenciador de fila é retornado, o aplicativo solicita o nome do broker usando b.getName() e o exibe.
getName() e outros métodos que solicitam informações do broker ficam bloqueados até que as informações sejam fornecidas ou ocorra um tempo limite. Portanto, se o broker não estiver em execução, o aplicativo ficará interrompido por um período. É possível controlar o período de tempo limite usando o método BrokerProxy.setRetryCharacteristics(). Geralmente, o bloqueio ocorre apenas quando um determinado recurso é acessado pela primeira vez em um aplicativo.
Por último, o programa chama o método disconnect(). Este método libera os recursos associados à conexão no CMP e no broker.
Quando um identificador BrokerProxy é retornado pela primeira vez do método getInstance(), o serviço do broker não precisa estar em execução. É apenas quando o aplicativo usa o identificador (chamando getName() neste exemplo) que o aplicativo pode ter a garantia de que uma conexão bidirecional com o broker está ativa.