MQ-Aktivität 'Nachricht abrufen'

Mithilfe der MQ-Aktivität Nachricht abrufen werden während der Ausführung Nachrichten aus einer MQ-Warteschlange abgerufen.

Anmerkung: Sie müssen einen Endpunkt für die MQ-Aktivität erstellt haben, bevor die Aktivität konfiguriert werden kann.
Die Task Konfigurieren hat drei Abschnitte:

Nach der Ausführung der Tasks Konfigurieren führen Sie die in Eingaben zuordnen und Ausgaben zuordnen beschriebenen Schritte der Aktivität aus.

Anmerkung: Die maximale Nachrichtengröße beträgt 100 MB.

Details der Warteschlange und der Nachricht

Geben Sie die Details der Warteschlange und der Nachricht in den Feldern in der folgenden Tabelle an. Erforderliche Felder sind mit einem Stern gekennzeichnet.
Feld Beschreibung
Name der Warteschlange * Gibt den Namen der MQ-Warteschlange an, aus der die Integrationseinheit versucht, Nachrichten abzurufen.
Zeitlimit Die Zeitdauer (in Sekunden), die zwischen einer MQ-Aktivität Nachricht abrufen, die den Abruf einer Nachricht aus der Warteschlange anfordert, und dem Zeitpunkt der Rückgabe der Nachricht verstreichen darf, bevor eine Zeitlimitüberschreitung auftritt. Wenn dieses Zeitlimitintervall abläuft und keine Nachricht aus der Warteschlange zurückgegeben wird, wartet die Integrationseinheit das angegebene Wiederholungszeitintervall ab, bevor sie erneut versucht, eine Nachricht abzurufen. Eine detaillierte Erläuterung der Zeitlimit- und Wiederholungsoptionen finden Sie in Zeitlimit- und Wiederholungsoptionen.

Zur Angabe der Anzahl Sekunden, die die Integrationseinheit warten soll, bevor Sie eine Zeitlimitüberschreitung ausgibt, wählen Sie die Option Nach aus und geben die gewünschte Anzahl Sekunden in das Feld Sekunden ein. Standardmäßig ist die Option Nie ausgewählt. Diese Option gibt an, dass die Integrationseinheit unbegrenzt darauf wartet, dass eine Nachricht aus der Warteschlange abgerufen wird (kein Zeitlimitintervall).

Datentyp der Nutzdaten Gibt den Datentyp der Nachrichtennutzdaten (Binär oder Zeichenfolge) an.
Schemafragment für MQRFH2-Header Gibt an, ob ein MQRFH2-Header in die Nachricht eingeschlossen ist. Wenn die Nachricht einen MQRFH2-Header einschließt, wählen Sie dieses Kontrollkästchen aus und klicken auf [...]. Suchen Sie im Dialogfenster Nach Schematypelement suchen das XML-Schema heraus, das den Header definiert, wählen Sie das Element 'NameValueData' in diesem XML-Schema aus und klicken Sie auf OK. Das Schemafragment ist das Element 'NameValueData' mit allen seinen untergeordneten Elementen.
Anmerkung: Das XML-Schema, das den Header definiert, muss zunächst erstellt und in das Projekt geladen werden, bevor es ausgewählt werden kann. Weitere Informationen finden Sie in XML-Schema für einen MQRFH2-Header definieren und laden.

Zustellregeln

Feld Beschreibung
Nachrichten zustellen Die verfügbaren Optionen hängen hier davon ab, ob das Kontrollkästchen für Eindeutige IDs ausgewählt ist. Wenn es ausgewählt ist, sind alle drei Optionen verfügbar. Wenn nicht, wird nur die Option Mindestens einmal angezeigt.
  • Mindestens einmal: Gibt an, dass die Nachricht mindestens einmal zugestellt wird, jedoch mehrmals zugestellt werden kann. Verbindungsfehler oder Fehler der Integrationseinheit können dazu führen, dass Nachrichten mehrmals abgerufen und verarbeitet werden. Diese Zustelloption wird in der Regel dann verwendet, wenn das empfangende System doppelte Nachrichten erkennen oder tolerieren kann.
  • Höchstens einmal: Gibt an, dass die Nachricht nur einmal oder keinmal zugestellt wird. Verbindungsfehler oder Fehler der Integrationseinheit können dazu führen, dass Nachrichten verloren gehen. Diese Zustelloption wird in der Regel dann verwendet, wenn das empfangende System keine doppelten Nachrichten, jedoch verlorene Nachrichten tolerieren kann.
  • Genau einmal: Gibt an, dass die Nachricht einmal und nur einmal zugestellt wird. Verbindungsfehler oder Fehler der Integrationseinheit haben keine Auswirkung auf diese Option. Die Integrationseinheit verwendet MQ-Nachrichten-IDs, um sicherzustellen, dass jede Nachricht genau einmal abgerufen und verarbeitet wird.
    Anmerkung: Wenn Sie die Option Genau einmal auswählen, müssen Sie auch die Persistenz aktivieren. Weitere Informationen finden Sie in Persistenz aktivieren.
Wenn Nachrichten eindeutige IDs haben Gibt an, ob die Nachrichten in der Warteschlange eindeutige IDs haben.

Wiederholungsoptionen

Konfigurieren Sie die Wiederholungsoptionen für das Abrufen einer Nachricht aus der MQ-Warteschlange wie in der folgenden Tabelle beschrieben:

Wiederholungsoptionen Beschreibung
1) ___ Sekunden zwischen den einzelnen Wiederholungen warten. Die Dauer (in Sekunden), die die Integrationseinheit wartet, bevor sie versucht, eine Nachricht aus der Warteschlange abzurufen. Weitere Informationen dazu, in welchem Zusammenhang diese Option mit dem Feld Zeitlimit im Fenster Konfigurieren oder mit dem Eingabeparameter timeout (Zeitlimit) steht, finden Sie in Zeitlimit- und Wiederholungsoptionen.
2) Verbindungsherstellung ___ mal versuchen, bevor ein Fehler zurückgegeben wird. Gibt die maximale Anzahl der Male an, die die Integrationseinheit versucht, eine Nachricht aus der Warteschlange abzurufen, bevor sie einen Fehler ausgibt und die Verarbeitung des aktuellen Orchestrierungsjobs stoppt.

Wenn Sie eine Orchestrierung implementieren, die eine MQ-Aktivität Nachricht abrufen enthält, und die Integrationseinheit keine Verbindung zum MQ Server herstellen kann oder keine Nachricht aus der Warteschlange abrufen kann, protokolliert die Integrationseinheit die Fehler als Warnungen im System- und Orchestrierungsprotokoll, bis die maximale Wiederholungsanzahl erreicht wird. Wenn die Wiederholungsanzahl erreicht wird, protokolliert die Integrationseinheit einen Fehler im System- und Orchestrierungsprotokoll und stoppt die Verarbeitung des aktuellen Orchestrierungsjobs.

Wenn Sie zum Beispiel die Wiederholungsanzahl auf den Wert 3 setzen, werden der erste, zweite und dritte Fehler als Warnung im Systemprotokoll aufgezeichnet. Die Integrationseinheit protokolliert den vierten Fehler als Fehler und stoppt die Verarbeitung des aktuellen Orchestrierungsjobs.

Weitere Informationen dazu, in welchem Zusammenhang diese Option mit dem Feld Zeitlimit im Fenster Konfigurieren oder mit dem Eingabeparameter timeout (Zeitlimit) steht, finden Sie in 'Zeitlimit- und Wiederholungsoptionen'.

Eingaben zuordnen

  1. Wählen Sie die Task Eingaben zuordnen in der Prüfliste aus. Das Fenster Wiederholung wird geöffnet.

    Die Eingabeparameter der Aktivität werden im Fenster An Aktivität angezeigt.

  2. Alle Eingabeparameter der MQ-Aktivität Nachricht abrufen sind optional. Wenn die Eingabeparameter der folgenden Tabelle nicht im Fenster An Aktivität des Fensters Eingaben zuordnen angezeigt werden, wählen Sie Zuordnen > Optionale Parameter anzeigen im Symbolleistenmenü aus oder klicken mit der rechten Maustaste in das Fenster An Aktivität und wählen die Option Optionale Parameter anzeigen aus. Wenn die Option Zuordnen > Optionale Parameter anzeigen im Symbolleistenmenü nicht auswählbar ist, klicken Sie auf einen Knoten im Fenster Eingaben zuordnen, um diese Option zu aktivieren.
    Sie können den Typ von Nachricht beschränken, der von der MQ-Aktivität Nachricht abrufen zurückgegeben wird, indem Sie eine beliebige Kombination der folgenden Knoten des optionalen Eingabeparameters mqmdheader zuordnen:
    • mqmdheader/MsgId
    • mqmdheader/CorreId
    • mqmdheader/GroupId
    • mqmdheader/MsgSeqNumber

    Während der Ausführung iteriert die Aktivität sequenziell durch die Nachrichten in der Warteschlange. Wenn diesen Knoten kein Element zugeordnet ist, erfolgt keine Beschränkung, sodass die erste Nachricht in der Warteschlange von der MQ-Aktivität Nachricht abrufen zurückgegeben wird und die nächste Aktivität in der Orchestrierung verarbeitet wird.

    Wenn ein oder mehrere dieser Knoten zugeordnet sind, iteriert die MQ-Aktivität Nachricht abrufen während der Ausführung durch die einzelnen Nachrichten in der Warteschlange, bis sie die erste Nachricht findet, die den Laufzeitwerten aller zugeordneten Knoten entspricht. Die erste übereinstimmende Nachricht wird von der MQ-Aktivität Nachricht abrufen zurückgegeben und die nächste Aktivität in der Orchestrierung wird verarbeitet.

    Zum Beispiel wird in der Task Eingaben zuordnen der Knoten mqmdheader/MsgId der Zeichenfolge mit dem Namen msgId zugeordnet und der Standardwert largeOrders wird für den Knoten mqmdheader/GroupId wie in der folgenden Abbildung gezeigt zugeordnet:
    Während der Ausführung gibt die MQ-Aktivität Nachricht abrufen die erste Nachricht in der Warteschlange zurück, die beide der folgenden Bedingungen erfüllt:
    • Der angegebene Laufzeitwert der Zeichenfolgevariable mit dem Namen msgId ist gleich der Nachrichten-ID der Nachricht in der Warteschlange.
    • Die Gruppen-ID der Nachricht ist gleich dem Wert 'largeOrders'.

    Sie können die Einstellungen, die Sie für Name der Warteschlange und Zeitlimit in der Task Konfigurieren der Prüfliste angegeben haben, während der Ausführung mithilfe der in der folgenden Tabelle definierten Eingabeparameter dynamisch überschreiben.

    Zum Beispiel könnte der MQ-Warteschlangenname in der Task Konfigurieren auf 'poqueue' gesetzt werden. Während der Ausführung könnte der MQ-Warteschlangenname 'newqueue' über den Eingabeparameter queuename an die Aktivität übergeben werden. Der Warteschlangenname, der während der Laufzeit dynamisch angegeben wird, überschreibt die ursprüngliche Einstellung, die im Fenster Konfigurieren angegeben wurde. In diesem Beispiel verwendet die Integrationseinheit die MQ-Warteschlange mit dem Namen 'newqueue' für Nachrichten.

    Optionale Eingabeparameter, die die Einstellungen in der Task 'Konfigurieren' überschreiben
    Name des Eingabeparameters/Knoten Beschreibung Überschreibt die Einstellung in der Task?
    timeout (Zeitlimit) Gibt die Dauer an, die die Integrationseinheit wartet, nachdem sie den Abruf einer Nachricht aus der Warteschlange angefordert hat, bevor sie eine Wiederholung versucht.

    Geben Sie eine negative Zahl an, um kein Zeitlimitintervall anzugeben — die Integrationseinheit wartet unbegrenzt auf den Abruf einer Nachricht aus der Warteschlange. Die Angabe einer negativen Zahl ist gleichbedeutend mit der Angabe der Option Nie in der Task Konfigurieren.

    Der Eingabeparameter timeout überschreibt das Feld Zeitlimit der Task Konfigurieren.
    queuename (Warteschlangenname) Gibt den Namen der MQ-Warteschlange an, in der die Integrationseinheit nach Nachrichten sucht. Der Eingabeparameter queuename überschreibt die Codierung, die im Feld Name der Warteschlange der Task Konfigurieren angegeben ist.

    Allgemeine Anweisungen zur Zuordnung finden Sie in Zuordnung erstellen.

Ausgaben zuordnen

Sie brauchen die Ausgabeparameter für diese Aktivität nicht zuzuordnen. Allgemeine Anweisungen zur Zuordnung finden Sie in Zuordnung erstellen.

Zeitlimit- und Wiederholungsoptionen

Das Zeitlimit, das im Feld Zeitlimit in der Task Konfigurieren oder im Eingabeparameter timeout angegeben wird, gibt die Zeitdauer (in Sekunden) an, die zwischen einer MQ-Aktivität Nachricht abrufen, die den Abruf einer Nachricht aus der Warteschlange anfordert, und dem Zeitpunkt der Rückgabe der Nachricht verstreichen darf, bevor eine Zeitlimitüberschreitung auftritt. Wenn dieses Zeitlimit abläuft und keine Nachricht aus der Warteschlange zurückgegeben wird, wartet die Integrationseinheit die in der Option 1) ___ Sekunden zwischen den einzelnen Wiederholungen warten angegebene Dauer, bevor sie erneut versucht, eine Nachricht abzurufen. Die Integrationseinheit versucht weiter bis zur angegebenen Anzahl Wiederholungen, die Nachricht abzurufen. Die Anzahl Wiederholungen wird über die Option 2) Verbindungsherstellung ___ mal versuchen, bevor ein Fehler zurückgegeben wird angegeben. Die Optionen 1) ___ Sekunden zwischen den einzelnen Wiederholungen warten und 2) Verbindungsherstellung ___ mal versuchen, bevor ein Fehler zurückgegeben wird werden in der Task Wiederholungsoptionen angegeben.

Zum Beispiel kann die Task der MQ-Aktivität Nachricht abrufen mit den folgenden Optionen konfiguriert werden:
  • Das Feld Zeitlimit in der Task Konfigurieren wird auf 10 Sekunden gesetzt und der optionale Eingabeparameter timeout wird nicht zugeordnet und es wird kein Standardwert definiert.
  • Die Option 1) ___ Sekunden zwischen den einzelnen Wiederholungen warten wird auf 15 Sekunden gesetzt.
  • Die Option 2) Verbindungsherstellung ___ mal versuchen, bevor ein Fehler zurückgegeben wird wird auf den Wert 2 gesetzt.
Was geschieht, wenn während der Ausführung die MQ-Aktivität Nachricht abrufen fortlaufend keine Nachricht aus der Warteschlange abrufen kann, stellt die folgende Abbildung dar:




Feedback | Notices


Timestamp icon Letzte Aktualisierung: Friday, November 8, 2013


http://pic.dhe.ibm.com/infocenter/wci/v7r0m0/topic/com.ibm.wci.doc/MQ_Get_Message_Activity.html