Questa sezione fa parte dell'attività più ampia di sviluppo delle applicazioni CMP (Configuration Manager Proxy/Proxy di Gestione configurazione).
L'esempio riportato di seguito aggiunge il broker denominato B2, in esecuzione sul gestore code QMB2, al dominio e lo associa al gruppo di esecuzione denominato default. Al termine, questa configurazione viene distribuita al broker.
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); } } } }
Le istruzioni fondamentali in questo esempio sono le tre righe all'interno del blocco try verso la fine del metodo addBroker(). La prima istruzione prova ad aggiungere il broker alla topologia di Gestione configurazione, la seconda prova a creare il gruppo di esecuzione predefinito e la terza prova a distribuire la configurazione (il nuovo gruppo di esecuzione) al broker.
Notare che il metodo createBroker() suppone che il componente del broker "fisico" sia già stato creato mediante il comando mqsicreatebroker.
Poiché le richieste vengono elaborate in modo asincrono da Gestione configurazione, l'oggetto BrokerProxy restituito dal metodo createBroker() è un oggetto "skeleton" quando restituito all'applicazione, perché fa riferimento ad un oggetto che potrebbe non esistere ancora in Gestione configurazione.
Ciò è vero anche per l'oggetto ExecutionGroupProxy e restituito dal metodo createExecutionGroup(). In entrambi i casi, l'applicazione può modificare l'oggetto come se esistesse in Gestione configurazione, sebbene la creazione reale dell'oggetto sottostante potrebbe non essere eseguita per alcuni minuti.
Una volta che l'oggetto rappresentato dallo skeleton viene creato in Gestione configurazione, tutte le richieste che fanno riferimento ad esso possono essere elaborate. In questo esempio, una volta che il broker è stato realmente aggiunto alla topologia in Gestione configurazione, Gestione configurazione può soddisfare la richiesta di creazione del gruppo di esecuzione.
Se, per qualsiasi motivo, la richiesta di creazione dell'oggetto descritto dallo skeleton non viene eseguita, non vengono eseguite anche le richieste che utilizzano lo skeleton. Quindi, se non è possibile creare il broker B2 tutte le richieste che coinvolgono l'oggetto BrokerProxy dello skeleton b2, ossia b2.createExecutionGroup() e b2.deploy() hanno esito negativo. Tuttavia, l'applicazione CMP funziona, come nel caso di esito positivo, come se non venisse generata alcuna eccezione. Consultare Verifica dei risultati della gestione del dominio broker mediante Proxy di Gestione configurazione per ulteriori informazioni relative alla rilevazione di questo tipo di problemi.