使用带有返回码的配置管理器代理检查代理域管理的结果

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

提供表示请求结果的返回码的仅更改状态的方法是 deploy() 方法。下列代码样本显示如何使用返回的 DeployResult 对象找到拓扑部署操作的结果:
...

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.getLogEntriesForBroker(b);
    while (e2.hasMoreElements()) {
        LogEntry le = (LogEntry)e2.nextElement();
        System.out.println("Log message for broker " + b +
            le.getDetail()));
    }
}

本代码中,在所有受影响的代理已响应部署请求之前,将阻止 deploy() 方法。然而,该方法包含描述 CMP 等待响应到达的最长时间的 long 参数。

请注意,当该方法最终返回时,DeployResult 表示在方法返回时的部署结果。换言之,一旦对象返回到应用程序,就不能再由 CMP 对其进行更新。

deploy() 方法完成后,示例将查询返回的 DeployResult 并显示部署操作的总体完成代码。这将采用下列某个值:
(com.ibm.broker.config.proxy.)CompletionCodeType.pending
表示部署要保留在批处理中,直至您发出 ConfigManagerProxy.sendUpdates() 后才能发出该部署。 请注意,如果应用了该消息,则它将立即返回,即不等待超时周期到期。
CompletionCodeType.submitted
表示部署消息已发送至配置管理器,但是在超时发生之前没有收到任何响应。请注意,如果部署消息无法发送至配置管理器,则会在部署时间抛出 ConfigManagerProxyLoggedException
CompletionCodeType.initiated
表示配置管理器已应答,声明部署已启动,但是在超时发生之前没有收到任何代理响应。
CompletionCodeType.successSoFar
表示配置管理器已发出部署请求,并且在超时周期到期之前,有一些(并非全部)代理响应了“成功”消息。所有代理均无错误响应。
CompletionCodeType.success
表示配置管理器已发出部署请求,并且在超时周期到期之前,所有相关代理都已成功响应。一旦所有相关代理已成功响应,就会立即发送该消息。
CompletionCodeType.failure
表示配置管理器已发出部署请求,并且至少有一个代理错误响应。
请注意,并非所有完成代码会应用于所有部署。例如,部署到单个指定代理无法产生完成代码 'successSoFar'

下一个示例显示来自部署的所有日志消息,其无法表征任何指定代理。在成功部署时,这些消息始终包含源自配置管理器的“启动的部署”日志条目,即便随后完成部署也是如此。

最后,示例显示完成代码,以及特定于受部署影响的每个代理的所有日志消息。请注意,在拓扑或主题树部署时,这是域中的每个代理。

可应用于来自指定代理响应的完成代码集为:
CompletionCodeType.pending
表示部署要保留在批处理中,直至您发出 ConfigManagerProxy.sendUpdates() 后才能发出该部署。
CompletionCodeType.submitted
表示部署消息已发送,但是尚未收到来自配置管理器的声明已启动该部署的任何响应。
CompletionCodeType.initiated
表示配置管理器已应答,声明部署已启动,但是尚未从代理返回任何应答。
CompletionCodeType.success
表示配置管理器已发出部署请求,并且代理已成功应用部署更改。
CompletionCodeType.failure
表示配置管理器已发出部署请求,并且代理已响应,声明部署不成功。使用 getLogEntriesForBroker() 以获取有关部署失败原因的更多信息。
CompletionCodeType.notRequired
表示部署请求已提交到包含所提供代理的配置管理器,但是由于代理的配置已为最新,所以代理未发送该请求。
请参阅运行部署 BAR 样本运行代理域管理样本 CMPAPIExerciser.reportDeployResult() 方法,以获取如何解析 DeployResult 对象的示例。
相关任务
使用配置管理器代理检查代理域管理的结果
使用带有最新完成代码的配置管理器代理检查代理域管理的结果
使用带有对象通知的配置管理器代理检查代理域管理的结果
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ae33070_