使用配置管理器代理创建域对象

这是部署配置管理器代理(CMP)应用程序中大型任务中的一部分。

下列示例将正在队列管理器 QMB2 上运行的名为 B2 的代理添加至域,并将其与名为 default 的执行组相关联。最后,该配置被部署至代理。

要使本示例成功运行,代理 B2 必须已存在于运行队列管理器 QMB2 的机器上,并且先前不得有另一个配置管理器部署至该代理。
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);
      }
    }
  }
}

本示例中的关键语句是位于 addBroker() 方法结尾处的 try 块中的三行。 第一个语句试图将代理添加至配置管理器的拓扑,第二个语句试图创建缺省执行组,而第三个语句试图将配置(即,新执行组)部署至代理。

请注意,createBroker() 方法假设已使用 mqsicreatebroker 命令创建“物理”代理组件。

由于配置管理器是异步处理请求,因此,从 createBroker() 方法返回的 BrokerProxy 对象当返回到应用程序时,是“框架”对象,它是指可能尚未存在于配置管理器上的对象。

当从 createExecutionGroup() 方法返回 ExecutionGroupProxy 对象 e 时,也会发生同样的情况。这两种情况下,尽管可能一段时间内不会实际创建底层对象,但对象如同存在于配置管理器上一样,可以由应用程序操作。

一旦在配置管理器中创建了由框架表示的对象,则涉及该对象的任何请求都可以进行处理。在本示例中,一旦代理实际添加至配置管理器中的拓扑,则配置管理器就可以执行创建执行组的请求。

如果由于任何原因,创建框架所描述对象的请求失败,则任何使用该框架的请求也会失败。所以,如果无法创建代理 B2,则涉及框架 BrokerProxy 对象 b2 的任何请求(即,b2.createExecutionGroup()b2.deploy()也会失败。然而,由于没有异常抛出,所以 CMP 应用程序如成功案例中一样运行。有关如何检测诸如此类问题的更多信息,请参阅使用配置管理器代理检查代理域管理的结果

相关任务
配置用于开发和运行配置管理器应用程序的环境
使用配置管理器代理检查代理域管理的结果
相关参考
mqsicreatebroker 命令
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ae33100_