Dies ist eine der Tasks, die in Zusammenhang mit der Entwicklung Ihrer Konfigurationsmanager-Proxy-Anwendungen ausgeführt werden.
Die einzigen Methoden zur Statusänderung, die einen Rückkehrcode mit dem Ergebnis der Anforderung zurückgeben, sind die deploy()-Methoden. Mit dem folgenden Beispielcode wird veranschaulicht, wie das Ergebnis einer Topologieimplementierung unter Verwendung des zurückgegebenen Objekts
DeployResult festgestellt werden kann:
...
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()) {
// Den Broker ausfindig machen
BrokerProxy b = (BrokerProxy)e.nextElement();
// Beendigungscode für den 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()));
}
}
In diesem Code wird die Methode deploy() blockiert, bis alle betroffenen Broker auf die Implementierungsanforderung geantwortet haben.
Die Methode enthält jedoch einen Parameter long, der die maximale Wartezeit des CMPs angibt.
Hinweis: Wenn die Methode einen Wert zurückgibt, entspricht DeployResult dem Ergebnis der Implementierung zu dem Zeitpunkt, als die Methode den Wert zurückgegeben hat.
Wenn der Wert an die Anwendung zurückgegeben wird, wird das Objekt also vom CMP nicht aktualisiert.
Wenn die Methode
deploy() vollständig ausgeführt wurde, wird im Beispiel das zurückgegebene Ergebnis
DeployResult abgefragt und der Gesamtbeendigungscode für die Implementierungsoperation angezeigt.
Dieser kann die folgenden Werte annehmen:
- (com.ibm.broker.config.proxy.)CompletionCodeType.pending
- Die Implementierung befindet sich in einer Warteschleife und wird erst gesendet, wenn Sie den Befehl ConfigManagerProxy.sendUpdates() ausführen. Hinweis: Diese Nachricht wird sofort, d. h. vor Ablauf des Zeitlimits, zurückgegeben.
- CompletionCodeType.submitted
- Die Implementierungsnachricht wurde an den Konfigurationsmanager gesendet, jedoch wurde das Zeitlimit für den Empfang einer Antwort überschritten.
Wenn die Implementierungsnachricht nicht an den Konfigurationsmanager gesendet werden kann, wird stattdessen die Ausnahmebedingung ConfigManagerProxyLoggedException beim Implementieren ausgegeben.
- CompletionCodeType.initiated
- Der Konfigurationsmanager hat eine Antwort gesendet, in der angezeigt wird, dass die Implementierung gestartet wurde. Es wurden jedoch keine Brokerantworten vor Ablauf des Zeitlimits empfangen.
- CompletionCodeType.successSoFar
- Der Konfigurationsmanager hat die Implementierungsanforderung ausgegeben, und einige, jedoch nicht alle Broker haben vor Ablauf des Zeitlimits die Nachricht zurückgegeben, dass die Implementierung erfolgreich war.
Es wurden keine negativen Antworten von Brokern empfangen.
- CompletionCodeType.success
- Der Konfigurationsmanager hat eine Implementierungsanforderung ausgegeben, und alle relevanten Broker haben eine positive Nachricht vor Ablauf des Zeitlimits zurückgegeben.
Diese Nachricht wird angezeigt, sobald alle relevanten Broker eine positive Antwort zurückgegeben haben.
- CompletionCodeType.failure
- Der Konfigurationsmanager hat eine Implementierungsaufforderung ausgegeben, und mindestens ein Broker hat eine negative Antwort zurückgegeben.
Hinweis: Die Beendigungscodes gelten nicht für alle Implementierungsvorgänge. Beispiel: Bei Ausführung eines Implementierungsvorgangs für einen einzelnen Broker wird der Beendigungscode
'successSoFar' nicht zurückgegeben.
Im nachfolgenden Beispiel werden Protokollnachrichten angezeigt, die in Zusammenhang mit der Implementierung stehen und nicht einem bestimmten Broker zugeordnet werden können:
Bei einem erfolgreichen Implementierungsvorgang enthalten diese Nachrichten stets den Protokolleintrag "deploy initiated" (Implementierung eingeleitet), der vom Konfigurationsmanager stammt, auch wenn der Implementierungsvorgang anschließend abgeschlossen wurde.
Schließlich werden für alle Broker, die von der Implementierung betroffen sind, der Beendigungscode und Broker-spezifische Protokollnachrichten angezeigt.
Beachten Sie, dass dies Bei einer Topologie- bzw. Themenstrukturimplementierung für alle Broker in der Domäne gilt.
Im Folgenden sind die Beendigungscodes aufgelistet, die in Zusammenhang mit einer Antwort eines bestimmten Brokers stehen:
- CompletionCodeType.pending
- Die Implementierung befindet sich in einer Warteschleife und wird erst gesendet, wenn Sie den Befehl ConfigManagerProxy.sendUpdates() ausführen.
- CompletionCodeType.submitted
- Die Implementierungsnachricht wurde gesendet, jedoch wurde noch keine Antwort vom Konfigurationsmanager zurückgegeben, die besagt, dass der Implementierungsvorgang eingeleitet wurde.
- CompletionCodeType.initiated
- Der Konfigurationsmanager hat eine Antwort gesendet, in der angezeigt wird, dass die Implementierung gestartet wurde. Es wurden jedoch keine Brokerantworten empfangen.
- CompletionCodeType.success
- Der Konfigurationsmanager hat eine Implementierungsanforderung ausgegeben, und der Broker hat die Implementierungsänderungen erfolgreich ausgeführt.
- CompletionCodeType.failure
- Der Konfigurationsmanager hat eine Implementierungsanforderung ausgegeben, und der Broker hat als Antwort zurückgegeben, dass der Implementierungsvorgang fehlgeschlagen ist.
Führen Sie den Befehl getLogEntriesForBroker() aus, um weitere Informationen zur fehlgeschlagenen Implementierung anzuzeigen.
- CompletionCodeType.notRequired
- An den Konfigurationsmanager, der dem Broker zugeordnet ist, wurde eine Implementierungsanforderung gesendet. Die Anforderung wurde jedoch nicht an den Broker übergeben, da seine Konfiguration bereits aktualisiert worden ist.
Im
Das Beispielprogramm 'Deploy BAR' ausführen oder
Das Beispielprogramm 'Brokerdomänenverwaltung' ausführen (MEthode
CMPAPIExerciser.reportDeployResult()) findenn Sie Beispiele zum syntaktischen Analysieren von
DeployResult-Objekten.