按照下列这些步骤,使用工作台检查部署:
命令返回来自配置管理器以及任何受部署影响的代理的数字值,以表示部署的结果。 如果命令成功完成,则返回 0。请参阅 mqsideploy 主题,以获取可能看到的其他值的详细信息。
TopologyProxy t = cmp.getTopology(); boolean isDelta = true; long timeToWaitMs = 10000; DeployResult dr = topology.deploy(isDelta, timeToWaitMs); System.out.println("Overall result = "+dr.getCompletionCode()); // Display overall log messages Enumeration logEntries = dr.getLogEntries(); while (logEntries.hasMoreElements()) { LogEntry le = (LogEntry)logEntries.nextElement(); System.out.println("General message: " + le.getDetail()); } // Display broker specific information Enumeration e = dr.getDeployedBrokers(); while (e.hasMoreElements()) { // Discover the broker BrokerProxy b = (BrokerProxy)e.nextElement(); // Completion code for broker System.out.println("Result for broker "+b+" = " + dr.getCompletionCodeForBroker(b)); // Log entries for broker Enumeration e2 = dr.getLotEntriesForBroker(b); while (e2.hasMoreElements()) { LogEntry le = (LogEntry)e2.nextElement(); System.out.println("Log message for broker " + b + le.getDetail())); } }直到所有受影响的代理响应了部署请求之后,deploy() 方法才不会阻塞。
方法返回时,DeployResult 表示返回方法的时候部署的结果;配置管理器代理不更新对象。
如果无法将部署消息发送到配置管理器,会在部署时抛出异常 ConfigManagerProxyLoggedException。如果配置管理器接收到部署消息,则整个部署的日志消息会显示,后跟特定于受部署影响的每个代理的完成代码。 完成代码是 com.ibm.broker.config.proxy.CompletionCodeType 类的下列其中一个静态实例:
完成代码 | 描述 |
---|---|
暂挂 | 部署保留在批处理中,并且直至发出 ConfigManagerProxy.sendUpdates() 后才被发送。 |
已提交 | 部署消息已发送到配置管理器,但在发生超时之前未收到响应。 |
已启动 | 配置管理器应答称部署已启动,但在发生超时之前没有收到代理的响应。 |
successSoFar | 配置管理器已发出部署请求,并且在超时周期到期之前,某些但非全部代理已作出响应,并带有成功消息。所有代理均无错误响应。 |
成功 | 配置管理器已发出部署请求,并且在超时周期到期之前,所有相关代理已成功响应。 |
失败 | 配置管理器已发出部署请求,并且至少有一个代理没有响应。可以使用 getLogEntriesForBroker,了解有关部署失败原因的更多信息。 |
不需要 | 部署请求已提交给具有所提供的代理的配置管理器,但由于代理的配置已过期,而没有将请求发送给代理。 |