Es gibt eine Gruppe von Prüfungen, die Sie ausführen können, um festzustellen, warum Punkt-zu-Punkt-Nachrichten nicht an einem Ziel in einem
Service Integration Bus ankommen, wenn die Nachrichten über einen fernen Nachrichtenpunkt weitergeleitet werden.
Informationen zu diesem Vorgang
Sie führen diese Task im Rahmen der Task Feststellen, warum Punkt-zu-Punkt-Nachrichten nicht ankommen aus.
Diese Task erläutert, wie Sie den Nachrichtenfluss beim Punkt-zu-Punkt-Messaging untersuchen, wenn Nachrichten über einen fernen Nachrichtenpunkt weitergeleitet werden.
In der folgenden Abbildung enthält ein Bus drei Messaging-Engines: ME1, ME2 und ME3. Die erzeugende
Anwendung ist mit ME1 verbunden und die konsumierende Anwendung mit ME3. Die Nachrichten werden
für ME1 erzeugt und von ME1 über ME2 an ME3 weitergeleitet. Dieses Szenario beschäftigt sich nur mit ME1und ME2. ME1 enthält einen fernen
Nachrichtenpunkt, der den Nachrichtenpunkt in ME2 darstellt. ME1 ist die Messaging-Engine, mit der die erzeugende
Anwendung verbunden ist, und ME2 die Messaging-Engine, die den Warteschlangenpunkt enthält.
Auf diese Messaging-Engines wird in den folgenden Schritten verwiesen.
Abbildung 1. Erzeugen von Punkt-zu-Punkt-Nachrichten mit einem fernen Nachrichtenpunkt
Vorgehensweise
- Zeigen Sie die Eigenschaften für ME1 an, indem Sie auf klicken.
- Klicken Sie auf der Registerkarte Laufzeit für ME1 auf [Ferne
Nachrichtenpunkte] Ferne Warteschlangenpunkte, und klicken Sie dann auf den fernen
Warteschlangenpunkt, der den Warteschlangenpunkt in ME2 repräsentiert.
Überprüfen Sie den Wert im Feld Aktuelle abgehende Nachrichten.
- Wenn die aktuelle Anzahl abgehender Nachrichten größer als null ist, wurden Nachrichten erzeugt, aber von ME2 möglicherweise
nicht empfangen.
- Vergewissern Sie sich, dass die beiden Messaging-Engines
miteinander kommunizieren können. Lesen Sie hierzu den Artikel Fehlerbehebung bei der Serviceintegration: Kommunikation zwischen zwei Messaging-Engines in einem Bus überprüfen.
- Suchen Sie nach älteren Nachrichten in der Warteschlange. Sollten ältere Nachrichten vorhanden und einige oder alle
für ME2 bestimmt sein, warten Sie einige Augenblicke und aktualisieren Sie dann die Ansicht.
- Wenn einige der Nachrichten nicht mehr in der Warteschlange enthalten sind, stellt das System
derzeit Nachrichten zu, befindet sich aber mit der Zustellung im Rückstand.
Warten Sie, bis das System den Rückstand aufgeholt hat, und untersuchen Sie dann den Warteschlangenpunkt in
ME2, um festzustellen, ob die Testnachricht angekommen ist.
- Wenn noch alle Nachrichten in der Warteschlange enthalten sind,
wird die Übertragung der Nachrichten möglicherweise durch eine Nachricht im Status "Festschreiben" blockiert.
Später gesendete Nachrichten müssen warten, bis diese Nachricht zugestellt ist, andernfalls gerät die Nachrichtenreihenfolge durcheinander.
Wenn eine Nachricht im Status "Festschreiben" gefangen ist, ist diese Nachricht in einer unaufgelösten
Transaktion enthalten.
Unter Umständen ist ein Ressourcenmanager, z. B. eine Datenbank, blockiert. Beheben Sie den Fehler im Ressourcenmanager.
Sollte dieser Versuch fehlschlagen, notieren Sie die Transaktions-ID der Nachricht, und klicken Sie auf
, um die allgemeinen Eigenschaften
für den Transaktionsservice anzuzeigen.
Verwenden Sie die Links Überprüfen, um die Transaktion aufzulösen, deren
globale ID mit der Transaktions-ID der Nachricht übereinstimmt.
- Überprüfen Sie den Status der Testnachricht:
- Wenn die Testnachricht den Status "Senden anstehend" hat, wartet die Nachricht darauf, versendet zu werden.
Möglicherweise akzeptiert ME2 derzeit keine Nachrichten. Führen Sie die folgenden Prüfungen durch:
- Wenn die Testnachricht den Status "Bestätigung anstehend" hat, wurde die Nachricht zwar gesendet, aber
ME2 hat die Nachricht entweder noch nicht empfangen oder noch nicht verarbeitet.
Stellen Sie sicher, dass in der Übertragungswarteschlange keine Nachrichten im Status "Festschreiben" vor der
Testnachricht enthalten sind. Warten Sie dann einen Moment und untersuchen Sie den Warteschlangenpunkt erneut, um festzustellen, ob die
Testnachricht angekommen ist. Sollten Nachrichten im Status "Festschreiben" gefangen sein, ziehen Sie zur Fehlerbehebung den
folgenden Punkt heran.
- Wenn die Testnachricht (oder eine andere Nachricht) den Status "Festschreiben" hat, ist die Nachricht in einer unaufgelösten
Transaktion enthalten.
Unter Umständen ist ein Ressourcenmanager, z. B. eine Datenbank, blockiert. Beheben Sie den Fehler im Ressourcenmanager.
Sollte dieser Versuch fehlschlagen, notieren Sie die Transaktions-ID der Nachricht, und klicken Sie auf
, um die allgemeinen Eigenschaften
für den Transaktionsservice anzuzeigen.
Verwenden Sie die Links Überprüfen, um die Transaktion aufzulösen, deren
globale ID mit der Transaktions-ID der Nachricht übereinstimmt.
- Wenn die Anzahl abgeschlossener abgehender Nachrichten größer ist als null, wurden Nachrichten von ME2
erzeugt und verarbeitet, aber die Testnachricht ist nicht angekommen.
Führen Sie die erzeugende Anwendung erneut aus und stellen Sie sicher, dass sich die Anzahl
abgeschlossener abgehender Nachrichten in ME1 erhöht (der Zähler für aktive abgehende Nachrichten kann sich vor dem
Zähler für abgeschlossene abgehende Nachrichten erhöhen).
- Sollte sich an den Zählerwerten nichts ändern, wurde die Nachricht in ME1 nicht erzeugt. Vergewissern Sie sich,
dass die erzeugende Anwendung mit der Messaging-Engine verbunden ist.
(Informationen hierzu finden Sie im Artikel Die Messaging-Engine bestimmen, mit der eine Anwendung verbunden ist).
- Wenn sich die Zähler erhöhen, ist die Nachricht in ME2 angekommen, wurde aber entweder konsumiert, an das
Ausnahmeziel gesendet oder sie ist verfallen.
Stellen Sie fest, ob Konsumenten vorhanden sind, und führen Sie die vorläufigen Tests erneut aus.
- Wenn die Anzahl der aktuellen und abgeschlossenen Nachrichten gleich null ist,
prüfen Sie, ob die erzeugende Anwendung Nachrichten für dieses Ziel erzeugt, indem Sie die vorläufigen Tests erneut ausführen.
Nächste Schritte
Sollten weiterhin Probleme auftreten, wenden Sie sich an einen zuständigen IBM Servicemitarbeiter.