Nachrichtenflusstransaktionen konfigurieren

Wenn Sie die Verarbeitung des Nachrichtenflusses mit anderen Ressourcen koordinieren möchten, müssen Sie sowohl die Eigenschaften des Knotens im Nachrichtenfluss als auch den Nachrichtenfluss selbst konfigurieren.

Vor dem Start müssen Sie Folgendes beachten:

Zur Ausführung dieses Vorgangs müssen folgende Aufgaben beendet worden sein:

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 der Knoten, der mit der Datenbank interagiert, Datenbankfehler behandelt.

Führen Sie folgende Schritte aus, um den Nachrichtenfluss und die Knoten zu konfigurieren:

  1. Wechseln Sie in die Ansicht Ansicht 'Brokeranwendungsentwicklung'.
  2. Öffnen Sie den Nachrichtenfluss, mit dem Sie arbeiten möchten, oder erstellen Sie einen neuen.
  3. Setzen Sie die Eigenschaft Transaktion für die folgenden Knoten fest, wenn diese im Nachrichtenfluss angezeigt werden:
    • Rechenknoten
    • Datenbankknoten
    • Datenlöschknoten
    • Dateneinfügeknoten
    • Datenaktualisierungsknoten
    • Filterknoten
    • Zuordnungsknoten
    • Warehouseknoten

    Sie können die Eigenschaft Transaktion auf folgende Werte setzen:

    Automatisch
    Alle Aktualisierungen, Löschungen und Zusätze, die der Knoten ausgeführt hat, werden festgeschrieben oder zurückgesetzt, wenn die Verarbeitung im Nachrichtenfluss beendet wurde. Wird der Nachrichtenfluss erfolgreich ausgeführt, werden alle Änderungen festgeschrieben. Wird der Nachrichtenfluss nicht erfolgreich ausgeführt, werden alle Änderungen zurückgesetzt.

    Wenn Sie alle Verarbeitungen des Nachrichtenflusses koordinieren möchten, müssen Sie diesen Wert setzen.

    Festschreiben
    Die ausgeführte Aktion hängt von dem System ab, auf das der Nachrichtenfluss implementiert 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, unabhängig von dem anschließenden Erfolg oder Ausfall des Nachrichtenflusses. Alle vor diesem Knoten unter automatischer Transaktionalität ausgeführten Aktionen werden nicht festgeschrieben, aber bleiben weiterhin in einer Arbeitseinheit und können entweder festgeschrieben oder zurück gesetzt werden, je nachdem ob der Nachrichtenfluss erfolgreich beendet.
    Wenn Sie Knoten mit Transaktionalität Automatisch und Festschreiben im gleichen Nachrichtenfluss kombinieren möchten, müssen Sie getrennte ODBC-Anschlüsse verwenden, wenn die Knoten auf derselben externen Datenbank ausgeführt werden: einen Anschluss für die Knoten, die nicht vor Abschluss des Nachrichtenflusses festgeschrieben werden und einen Anschluss für die Knoten, die sofort festgeschrieben werden. Andernfalls werden die Knoten, die sofort festgeschrieben werden, alle Operationen festschreiben, die von vorangegangenen Knoten mit der Option Automatisch ausgeführt wurden.
    Anmerkung: Auf anderen Plattformen als z/OS wird diese Betriebsart nicht in allen Fällen von relationalen Datenbanken unterstützt.

    Wenn Sie mehrere ODBC-Anschlüssen definieren, können Probleme mit Datenbanksperren auftreten. Insbesondere wenn ein Knoten mit der Transaktionalität Automatisch Operationen wie EINSETZEN oder AKTUALISIEREN ausführt, die zur Sperrung eines Datenbankobjekts (z. B. einer Tabelle) führen, und der nachfolgende Knoten versucht, mit einem anderen ODBC-Anschluss auf dieses Datenbankobjekt zuzugreifen, kann eine endgültige Sperre (Deadlock) eintreten.

    Der zweite Knoten wartet darauf, dass die vom ersten Knoten verursachte Sperre entriegelt wird, aber der erste Knoten wird seine Operationen nicht festschreiben und die Sperre entriegeln bevor der Nachrichtenfluss abgeschlossen ist. Dies wird jedoch nicht eintreten, da der zweite Knoten darauf wartet, dass die Datenbanksperre des ersten freigegeben wird.

    Diese Situation kann nicht von einer automatischen DBMS Deadlock-Vermeidungsroutine entdeckt werden, da die beiden Operationen sich indirekt, über den Broker, gegenseitig behindern.

    Sie haben zwei Möglichkeiten, diese Sperrprobleme zu vermeiden:

    • Gestalten Sie Ihren Nachrichtenfluss so, dass nicht festgeschriebene (automatische) Operationen keine Datenbankobjekte sperren, auf die nachfolgende Operationen mit einem anderen ODBC-Anschluss zugreifen müssen.
    • Konfigurieren Sie den Parameter des Zeitlimits für Sperren in der Datenbank so, dass ein Versuch, eine Sperre einzurichten, nach einer vorgegebenen Zeit fehlschlägt. Schlägt eine Datenbankoperation aufgrund des Zeitlimits für Sperren fehl, wird eine Ausnahmebedingung ausgelöst, die der Broker ganz normal bearbeitet.

    Informationen, welche Datenbankobjekte durch bestimmte Operationen gesperrt werden können und wie Sie den Parameter des Zeitlimits für Sperren in Ihrer Datenbank konfigurieren, finden Sie in der Produktdokumentation Ihrer Datenbank.

  4. Setzen Sie die Eigenschaft Transaktionsmodus für die folgenden Knoten fest, wenn sie im Nachrichtenfluss angezeigt werden:
    • MQEmpfangsknoten
    • MQSenden
    • MQAntwort
    • SCADAEmpfangsknoten
    • JMSEmpfangsknoten
    • JMSSendeknoten

    Die nachfolgende Tabelle zeigt eine Zusammenfassung der Aktionen, die auf Grund bestimmter Einstellungen in den Eigenschaften für Eingabe- und Sendeknoten ausgeführt wurden.

    Nachrichtenpermanenz a Transaktionsmodus des Empfangsknoten Transaktionsmodus des MQSendeknotens oder des 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 Kontrollkästchen 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
Von Nachrichtenflüssen auf Datenbanken zugreifen
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: 18.05.2006
ac00393_