Fehler beim Entwickeln von Anwendungen für den
Message Broker-API beheben
Mit den hier angegebenen Anweisungen können Sie Probleme beheben, die beim Entwickeln von Anwendungen für den Message Broker-API (auch CMP-API) entstehen können.
Die Konfigurationsmanager-Proxy-Anwendung ist blockiert, wenn der Broker nicht verfügbar ist
Szenario: Wenn der Broker nicht verfügbar ist, ist die Konfigurationsmanager-Proxy-Anwendung blockiert.
Erläuterung: Die Datenübertragung zwischen dem Konfigurationsmanager-Proxy und dem Broker verläuft asynchron, deshalb blockiert der Konfigurationsmanager-Proxy, da er auf eine Nachricht vom Broker wartet.
Lösung: Konfigurieren Sie die maximale Zeitspanne, während der der Konfigurationsmanager-Proxy wartet, mit folgender Methode:
// Wait for a maximum of 10 seconds
BrokerProxy.setRetryCharacteristics(10000);
Der angegebene Wert steht für die Zeit in Millisekunden, während der der Konfigurationsmanager-Proxy auf Informationen wartet, bevor die Ausnahmebedingung BrokerProxyPropertyNotInitializedException ausgegeben wird.
Wenn das Zeitlimit zu niedrig angesetzt wird, wird eine Ausnahmebedingung ausgelöst, obwohl der Broker verfügbar ist.
Sie haben eine Eigenschaft eines Objekts angegeben und den Wert abgefragt, doch der Wert hat sich nicht geändert
Szenario: Sie haben eine Eigenschaft eines Objekts angegeben und anschließend den Wert abgefragt; doch der Wert hat sich nicht geändert.
Erläuterung: Methoden, durch die die Eigenschaften von Brokerobjekten geändert werden, werden nicht unverzüglich verarbeitet. Wenn Sie in einem Konfigurationsmanager-Proxy-Objekt eine Methode zur Änderung einer Eigenschaft aufrufen, sendet die CMP-API eine Nachricht, die die angegebene Änderung am Broker anfordert. Der Broker verarbeitet die Anfrage asynchron und benachrichtigt beim Versuch, die Änderung durchzuführen, alle AdministeredObjectListeners des betroffenen Objekts.
Lösung: Methoden zur Statusänderung werden normalerweise nach dem Einreihen der Anforderung in die Warteschlange des Brokers an den Aufrufenden zurückgegeben, oder sobald die Anforderung nach einem Aufruf an BrokerProxy.beginUpdates() zum aktuellen Stapel hinzugefügt wurde. Wenn die Eigenschaft nach der Rückgabe der Antwort auf die Anfrage an die Anwendung noch immer nicht aktualisiert wurde, überprüfen Sie die Antwortnachricht auf weitere Einzelheiten.
Sie können über eine .broker-Datei keine Verbindung zu einem Broker herstellen
Szenario: Sie können unter Verwendung einer .broker-Datei keine Verbindung zu einem Broker herstellen.
Erläuterung: Wenn Ihre Konfigurationsmanager-Proxy-Anwendungen die Klasse MQPropertyFileBrokerConnectionParameters verwenden, können sie über eine Verbindungsdatei mit einer Erweiterung .broker eine Verbindung zu einem Broker herstellen.
Diese Datei kann jedoch nur syntaktisch analysiert werden, wenn ein XML-Parser verfügbar ist.
Lösung: Stellen Sie sicher, dass auf der CLASSPATH-Variablen ein unterstützter Parser verfügbar ist. Ein unterstützter Parser gehört zum Lieferumfang von WebSphere Message
Broker.
Alternativ dazu kann die Anwendung statt der Klasse MQPropertyFileBrokerConnectionParameters die Klasse MQBrokerConnectionParameters verwenden.
Diese Klasse stellt eine Verbindung zu einem Broker her, indem Hostname, Name des Warteschlangenmanagers und Port des Warteschlangenmanagers für die Zieladresse des Brokers direkt angegeben werden.
Bei dieser Methode ist kein XML-Parser erforderlich.