Isto faz parte da tarefa maior de desenvolver aplicativos do Configuration Manager Proxy (CMP).
O exemplo a seguir inclui um intermediário chamado B2, que está em execução no gerenciador de fila QMB2, no domínio e o associa a um grupo de execução chamado default. Por último, esta configuração é implementada no intermediário.
import com.ibm.broker.config.proxy.*; public class AddBroker { public static void main(String[] args) { ConfigManagerProxy cmp = null; try { ConfigManagerConnectionParameters cmcp = new MQConfigManagerConnectionParameters( "localhost", 1414, ""); cmp = ConfigManagerProxy.getInstance(cmcp); } catch (ConfigManagerProxyException cmpex) { System.out.println("Error connecting: "+cmpex); } if (cmp != null) { System.out.println("Connected to Config Manager!"); addBroker(cmp, "B2", "QMB2", "default"); cmp.disconnect(); } } private static void addBroker(ConfigManagerProxy cmp, String bName, String bQMgr, String egName) { TopologyProxy topology = null; try { topology = cmp.getTopology(); } catch(ConfigManagerProxyPropertyNotInitializedException ex) { System.err.println("Comms problem! "+ex); } if (topology != null) { try { BrokerProxy b2 = topology.createBroker(bName, bQMgr); ExecutionGroupProxy e = b2.createExecutionGroup(egName); b2.deploy(); } catch (ConfigManagerProxyException ex) { System.err.println("Could not perform an action: "+ex); } } } }
As instruções críticas neste exemplo são as três linhas dentro do bloco try próximo ao final do método addBroker(). A primeira instrução tenta incluir o intermediário na topologia do Configuration Manager, a segunda tenta criar o grupo de execução padrão e a terceira tenta implementar a configuração (ou seja, o novo grupo de execução) no intermediário.
Observe que o método createBroker() assume que o componente do intermediário "físico" já foi criado utilizando o comando mqsicreatebroker.
Como os pedidos são processados assincronamente pelo Configuration Manager, o objeto BrokerProxy retornado do método createBroker() é um objeto "skeleton" quando retornado ao seu aplicativo, pois refere-se a um objeto que pode ainda não existir no Configuration Manager.
Isto também se aplica ao objeto ExecutionGroupProxy e retornado do método createExecutionGroup(). Em ambos os casos, o objeto pode ser manipulado pelo aplicativo como se existisse no Configuration Manager, embora a criação real do objeto subjacente pode não ocorrer por algum tempo.
Quando o objeto representado pela estrutura for criado no Configuration Manager, os pedidos referentes a ele poderão ser processados. Neste exemplo, quando o intermediário realmente tiver sido incluído na topologia no Configuration Manager, o Configuration Manager poderá considerar o pedido para criar o grupo de execução.
Se, por algum motivo, o pedido para criar o objeto descrito pela estrutura falhar, os pedidos que utilizam a estrutura também falharão. Portanto, se o intermediário B2 não puder ser criado, os pedidos que envolvem o objeto BrokerProxy b2 da estrutura, ou seja, b2.createExecutionGroup() e b2.deploy() também falharão. No entanto, o aplicativo CMP funcionará, como no caso bem-sucedido, pois não é emitida nenhuma exceção. Consulte Verificando os Resultados do Gerenciamento de Domínios Intermediários Utilizando o Configuration Manager Proxy para obter informações adicionais sobre como detectar problemas como estes.