Esto forma parte de la tarea global para el desarrollo de las aplicaciones del Proxy del Gestor de configuración (CMP).
El siguiente ejemplo añade un intermediario llamado B2, que se está ejecutando en gestor de colas QMB2, al dominio y le asocia un grupo de ejecución llamado default. Finalmente, esta configuración se despliega para el intermediario.
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); } } } }
Las sentencias críticas de este ejemplo son las tres líneas que hay dentro del bloque try hacia el final del método addBroker(). La primera sentencia intenta añadir el intermediario a la topología del Gestor de configuración, la segunda intenta crear el grupo de ejecución por omisión y la tercera intenta desplegar la configuración (es decir, el nuevo grupo de ejecución) para el añadir.
Tenga en cuenta que el método createBroker() supone que el componente intermediario "físico" ya se ha creado usando el mandato mqsicreatebroker.
Como las peticiones las procesa Gestor de configuración de forma asíncrona, el objeto BrokerProxy que se devuelve desde el método createBroker() es un objeto "esqueleto" cuando vuelve a su aplicación, puesto que se refiere a un objeto que puede no existir aún en el Gestor de configuración.
Esto también es cierto para el objeto ExecutionGroupProxy e que se devuelve desde el método createExecutionGroup(). En ambos casos, el objeto ser manipulado por la aplicación como si hubiese existido en el Gestor de configuración, aunque la creación real del objeto subyacente puede no producirse durante un tiempo.
Cuando el objeto representado por el esqueleto se crea en el Gestor de configuración, se podrán procesar todas las peticiones que hagan referencia al misma. En este ejemplo, cuando el intermediario se ha añadido realmente a la topología en el Gestor de configuración, el Gestor de configuración puede satisfacer la petición de crear un grupo de ejecución.
Si, por algún motivo, la petición de crear el objeto descrito por el esqueleto no se ejecuta correctamente, todas las peticiones que utilicen el esqueleto tampoco se ejecutarán correctamente. Por lo tanto, si no se puede crear el intermediario B2, todas las peticiones que impliquen el objeto b2 del esqueleto BrokerProxy, es decir, b2.createExecutionGroup() y b2.deploy(), tampoco se ejecutarán correctamente. No obstante, la aplicación de CMP funciona, como en el caso satisfactorio, puesto que no se genera una excepción. Consulte el apartado Comprobación de los resultados de la gestión del dominio de intermediarios utilizando el Proxy del Gestor de configuración para obtener más información sobre la detección de problemas como éstos.