Knoten für koordinierte Nachrichtenflüsse konfigurieren

Wenn Sie die Nachrichtenflussverarbeitung mit anderen Ressourcen koordinieren möchten, müssen Sie die Eigenschaften sowohl der Knoten innerhalb des Nachrichtenflusses als auch des Nachrichtenflusses selbst konfigurieren.

Ein koordinierter Nachrichtenfluss wird innerhalb einer einzelnen Transaktion ausgeführt. Dies wird gestartet, wenn ein Empfangsknoten eine Nachricht empfängt und kann festgeschrieben oder zurückgesetzt werden, nachdem alle Verarbeitungsschritte abgeschlossen wurden. Sie können auch steuern, wie Datenbankfehler von dem Knoten verarbeitet werden, der mit der Datenbank interagiert.

Gehen Sie wie folgt vor, um den Nachrichtenfluss und die Knoten zu konfigurieren:

  1. Wechseln Sie zur Ansicht 'Brokeranwendungsentwicklung'.
  2. Öffnen Sie den Nachrichtenfluss, mit dem Sie arbeiten möchten, oder erstellen Sie einen neuen Nachrichtenfluss.
  3. Legen Sie die Eigenschaft Transaktion für die folgenden Knoten fest, sofern sie in diesem Nachrichtenfluss angezeigt werden:
    • Rechenknoten (Compute)
    • Datenbankknoten (Database)
    • Datenlöschknoten (DataDelete)
    • Dateneinfügeknoten (DataInsert)
    • Datenaktualisierungsknoten (DataUpdate)
    • Filterknoten
    • Zuordnungsknoten (Mapping)
    • Warehouse-Knoten (Warehouse)

    Die Eigenschaft Transaktion kann auf die folgenden Werte gesetzt werden:

    Automatisch
    Alle vom Knoten ausgeführten Aktualisierungen, Löschungen und Ergänzungen werden festgeschrieben oder zurückgesetzt, wenn die Nachrichtenflussverarbeitung abgeschlossen ist. Wenn der Nachrichtenfluss erfolgreich abgeschlossen wird, werden alle Änderungen festgeschrieben. Falls der Nachrichtenfluss nicht erfolgreich abgeschlossen wird, werden alle Änderungen zurückgesetzt.

    Wenn die gesamte Verarbeitung durch den Nachrichtenfluss koordiniert werden soll, müssen Sie diesen Wert auswählen.

    Festschreiben
    Die ausgeführte Aktion hängt von dem System ab, für das der Nachrichtenfluss eingesetzt wurde:
    • Auf verteilten Systemen werden alle Bearbeitungen, die bis zu diesem Zeitpunkt an dieser Datenquelle in diesem Nachrichtenfluss vorgenommen wurden (einschließlich aller in diesem Knoten ausgeführten Aktionen), ungeachtet des nachfolgenden Erfolgs oder Fehlschlags des Nachrichtenflusses festgeschrieben.
      Anmerkung: Auf anderen Plattformen als z/OS wird diese Betriebsart nicht in allen Fällen von relationalen Datenbanken unterstützt.
    • Unter z/OS werden nur in diesem Knoten ausgeführte Aktionen festgeschrieben, und zwar ungeachtet des nachfolgenden Erfolgs oder Fehlschlags des Nachrichtenflusses. Alle Aktionen, die vor diesem Knoten unter der automatischen Transaktionalität erfolgt sind, werden nicht festgeschrieben, verbleiben jedoch in einer Arbeitseinheit und können je nach Erfolg des Nachrichtenflusses festgeschrieben oder zurückgesetzt werden.
    Falls Sie in demselben Nachrichtenfluss Knoten mit einer Transaktionalität des Typs Automatisch und des Typs Festschreiben kombinieren möchten und die Knoten in derselben externen Datenbank agieren, müssen Sie separate ODBC-Verbindungen verwenden: eine für die Knoten, die erst nach dem Abschluss des Nachrichtenflusses festgeschrieben werden sollen, und eine für die Knoten, die sofort festgeschrieben werden sollen. Andernfalls schreiben die Knoten, die sofort festgeschrieben werden, auch alle Operationen fest, die von früheren Knoten des Typs Automatisch ausgeführt werden.
    Anmerkung: Auf anderen Plattformen als z/OS wird diese Betriebsart nicht in allen Fällen von relationalen Datenbanken unterstützt.

    Wenn Sie mehrere ODBC-Verbindungen definieren, treten möglicherweise Probleme in Bezug auf Datenbanksperren auf. Insbesondere bedeutet dies Folgendes: Wenn ein Knoten mit der Transaktionalität Automatisch eine Operation wie beispielsweise INSERT oder UPDATE ausführt, die zu einer Sperre eines Datenbankobjekts (z. B. einer Tabelle) führt, und ein nachfolgender Knoten versucht, über eine andere ODBC-Verbindung auf dieses Datenbankobjekt zuzugreifen, tritt eine unendliche Sperre (gegenseitige Sperre) auf.

    Der zweite Knoten wartet darauf, dass die Sperre des ersten Knotens freigegeben wird, aber der erste Knoten schreibt seine Operationen erst fest und gibt die Sperre frei, wenn der Nachrichtenfluss abgeschlossen ist; dies wird jedoch nie eintreten, da der zweite Knoten darauf wartet, dass die Datenbanksperre des ersten Knotens freigegeben wird.

    Eine derartige Situation kann von keinen DBMS-Routinen zur automatischen Vermeidung von gegenseitigen Sperren entdeckt werden, da die beiden Operationen indirekt unter Verwendung des Brokers interagieren.

    Diese Art des Sperrproblems kann auf zwei Arten vermieden werden:

    • Entwerfen Sie Ihren Nachrichtenfluss so, dass nicht festgeschriebene (automatische) Operationen keine Datenbankobjekte sperren, auf die nachfolgende Operationen, die eine andere ODBC-Verbindung nutzen, zugreifen müssen.
    • Konfigurieren Sie für Ihre Datenbank den Parameter für das Sperrzeitlimit so, dass ein Versuch zur Anforderung einer Sperre nach einer bestimmten Dauer fehlschlägt. Wenn eine Datenbankoperation auf Grund eines Sperrzeitlimits fehlschlägt, wird eine Ausnahmebedingung ausgegeben, die vom Broker auf die übliche Weise verarbeitet wird.

    Die Produktdokumentation Ihrer Datenbank enthält Informationen darüber, welche Datenbankobjekte von bestimmten Operationen gesperrt werden, und wie der Parameter für das Sperrzeitlimit Ihrer Datenbank konfiguriert werden soll.

  4. Legen Sie die Eigenschaft Transaktionsmodus für die folgenden Knoten fest, sofern sie in diesem Nachrichtenfluss angezeigt werden:
    • MQEmpfangsknoten (MQInput)
    • MQSendeknoten (MQOutput)
    • MQAntwortknoten (MQReply)
    • SCADAEmpfangsknoten (SCADAInput)
    • JMSEmpfangsknoten
    • JMSSendeknoten

    Die unten stehende Tabelle enthält eine Zusammenfassung der Aktionen, die als Reaktion auf bestimmte Eigenschafteneinstellungen für die Empfangs- und Sendeknoten ausgeführt werden.

    Nachrichtenpermanenz a Transaktionsmodus des Empfangsknotens Transaktionsmodus des MQSende- oder MQAntwortknotens Nachrichtenfluss ist global koordiniert?
    Ja Ja Automatisch Ja
    Nein Ja Automatisch Ja
    Ja Nein Automatisch Nein
    Nein Nein Automatisch Nein
    Ja Automatisch Automatisch Ja
    Nein Automatisch Automatisch Nein
    Beliebig b Beliebig b Ja Ja
    Beliebig b Beliebig b Nein Nein
    Hinweise:
    1. Die Permanenz ist nur für Nachrichten relevant, die über die Protokolle 'WebSphere MQ Enterprise Transport', 'WebSphere MQ Mobile Transport' und 'WebSphere MQ Telemetry Transport' empfangen werden.
    2. Der an dieser Stelle festgelegte Wert wird durch die Einstellung in der Eigenschaft des MQSende- oder MQAntwortknotens überschrieben.
    3. Die Transaktionsmoduseinstellungen der JMSEmpfangs- und JMSSendeknoten werden anders als in der oben genannten Tabelle festgelegt. Weitere Informationen hierzu finden Sie unter JMSEmpfangsknoten und JMSSendeknoten.

    Der Standardwert für jeden Empfangsknoten lautet Ja, was bedeutet, dass die eingehenden Nachrichten unter Synchronisationspunktsteuerung verarbeitet werden. Darüber hinaus werden Nachrichten, die an den Sendeknoten gesendet werden, unter Synchronisationspunktsteuerung zugestellt. Sie können dieses Verhalten ändern, wenn es sich beim Sendeknoten um einen MQSende- oder MQAntwortknoten handelt, die beide über die Eigenschaft Transaktionsmodus verfügen.

    Wenn Sie den Transaktionsmodus in einem Empfangsknoten auf Automatisch setzen, werden die eingehenden Nachrichten nur unter der Synchronisationspunktsteuerung verarbeitet , wenn sie als permanent definiert sind. An den MQSendeknoten gesendete Nachrichten werden unter Synchronisationspunktsteuerung zugestellt, es sei denn, Sie ändern im MQSendeknoten explizit den Transaktionsmodus.

  5. Legen Sie die Optionen Warnungen als Fehler behandeln und Ausnahme für Datenbankfehler ausgeben für jeden Knoten fest, der auf eine Datenbank zugreift, um anzugeben, wie dieser Knoten Datenbankwarnungen und -fehler behandeln soll. Ob Sie diese Eigenschaften auswählen und wie Sie die Fehlerterminals der Knoten verbinden, wirkt sich auch darauf aus, wie Datenbankaktualisierungen festgeschrieben oder zurückgesetzt werden.
  6. Wechseln Sie zur Ansicht 'Brokerverwaltung'.
  7. Fügen Sie den Nachrichtenfluss einem Brokerarchiv hinzu.
  8. Wählen Sie unterhalb der Editoransicht für die Brokerarchivierung die Registerkarte 'Konfigurieren' aus, und wählen Sie den Nachrichtenfluss aus. Daraufhin werden die konfigurierbaren Eigenschaften für den Nachrichtenfluss innerhalb des Brokerarchivs angezeigt. Wählen Sie das Markierungsfeld koordinierte Transaktion aus, um den Nachrichtenfluss als global koordiniert zu konfigurieren.

    Unter z/OS sind Transaktionen immer global koordiniert. Die Einstellung der Eigenschaft koordinierte Transaktion für einen Nachrichtenfluss wird ignoriert. Die Koordination wird immer von RRS bereitgestellt.

Zugehörige Konzepte
Nachrichtenflüsse - Übersicht
Nachrichtenflusstransaktionen
Zugehörige Tasks
Zugriff auf Datenbanken über Nachrichtenflüsse
Koordinierte Nachrichtenflüsse konfigurieren
Fehler in Nachrichtenflüssen behandeln
Konfigurierbare Eigenschaften bearbeiten
Zugehörige Verweise
Unterstützte Datenbanken
Integrierte Knoten
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac00393_