Freigeben über


Unterstützung für Transaktionen und Zweiphasencommits

In der COM-Termwinologie ist eine Transaktion immer eine Arbeitseinheit, die atomar, konsistent, isoliert und dauerhaft (ACID) ist. In der Mainframeterminologie kann es sich bei einer Transaktion um eine ACID-Transaktion handeln. in der Mainframeterminologie ist eine Transaktion eine Gruppe von Vorgängen oder Befehlen in einem Transaktionsprogramm (TP). Dieser Unterschied in der Terminologie kann verwirrend sein. Das Wort Transaktion, wie es in TI-Manager und TI-Designer verwendet wird, bezieht sich immer auf eine ACID-Transaktion.

Der zweiphasige Commit (2PC) ist ein Protokoll, mit dem eine Reihe von Anwendungsvorgängen (oder anwendungsübergreifenden) Vorgängen oder Befehlen entweder ein Rollback oder ein Commit als einzelne Transaktionseinheit ermöglicht.

Hinweis

Wenn Sie einen TI Automation-Server über das TCP/IP-Protokoll aufrufen, wird keine Unterstützung für Transaktionen mit zweistufigem Commit bereitgestellt. Der zweistufige Commit funktioniert nur über das SNA APPC/LU 6.2-Protokoll.

Eine TI-Komponente verfügt über vier mögliche Transaktionseigenschaften:

  • Erfordert eine Transaktion.

  • Erfordert eine neue Transaktion.

  • Unterstützt Transaktionen

  • Unterstützt keine Transaktionen.

    Für die ersten beiden Optionen muss das Mainframe-TP transaktional sein (d. h. die ACID-Eigenschaften erfüllen) und Synchronisierungsstufe 2 unterstützen. Dies ist für das Mainframe-TP transparent, wenn es sich um ein CICS Link- oder IMS-Programm 6.0 oder höher handelt. Die dritte Wahl erfordert, dass das Mainframe-TP Anforderungen der Synchronisierungsstufe 2 unterstützt und die Transaktionssemantik entsprechend verarbeitet. Die vierte Auswahl ist für IMS-TPs vor IMS-Version 6.0 und für alle CICS-TPs erforderlich, die nur Synchronisierungsebene 0 oder Synchronisierungsebene 1 unterstützen.

    Wenn eine TI-Komponente im Bereich einer COM+-Transaktion aufgerufen wird, richtet TI eine Synchronisierungsstufe 2-Konversation mit CICS ein (andernfalls wird Synchronisierungsebene 0 verwendet). Dies ist für den Client der TI-Komponente transparent. Wenn das Mainframe-TP ein CICS Link-Programm ist, ist die Transaktionsnatur der Konversation auch für das TP transparent, da die Spiegel Transaktion von IBM in CICS (CSMI) das Protokoll Sync Level 2 verarbeitet und das TP, mit dem sie verknüpft ist, nicht wissen, ob Synchronisierungsebene 0 oder Synchronisierungsebene 2 verwendet wird.

    TI erfüllt das COM+-Programmiermodell, indem SetComplete oder SetAbort aufgerufen wird, wenn der Vorgang der einzelnen Methodenaufrufe vom Client abgeschlossen wird. Wenn keine Fehler erkannt wurden, ruft TI SetComplete auf; Andernfalls wird SetAbort aufgerufen. TI ruft auch SetAbort auf, wenn das Mainframe-TP angibt, dass die Transaktion keinen Commit ausführen soll, indem das DisableCommit-Flag im zurückgegebenen Metadatenfehlerblock festgelegt wird. TI Automation-Clientanwendungen können setAbort auch aufrufen, wenn sie feststellen, dass Probleme auf Anwendungsebene vorliegen, die das Commit für die Transaktion verhindern sollten.

    Wenn der Methodenaufruf des Clients zurückgibt, hat der TP auf dem Mainframe eine Arbeitseinheit ausgeführt, aber alle Änderungen an geschützten Ressourcen in CICS wurden noch nicht committet. TI verwendet neue DTC-Schnittstellen, um die Synchronisierungsstufe 2-Konversation für die DTC-Transaktion anzuordnen. Wenn DTC bereit ist, die Transaktion zu committen oder abzubrechen, kommuniziert es mit TI, um die entsprechenden zweistufigen Commitflows für die LU 6.2-Konversation zu steuern. Auch hier wird die gesamte 2PC-Arbeit transparent von TI im Auftrag des Clients ausgeführt.

    Obwohl das TI-Objekt nach Abschluss der Methode deaktiviert werden kann, muss die Konversation so lange beibehalten werden, bis die Transaktion committet oder abgebrochen wird. Benutzer können sich negativ auf die Leistung auswirken und Systemressourcen binden, wenn ihr Anwendungscode einen oder mehrere Transaktionsmethodenaufrufe ausführt, die Transaktion jedoch für einen längeren Zeitraum nicht committet. Unterhaltungen können schnell von schlecht strukturiertem Benutzercode genutzt werden.

    Wenn eine Unterhaltung auf einen Commit wartet, wird sie von dem Objekt getrennt, dem sie zugeordnet wurde. TI verwaltet einen Pool dieser "wartenden" Unterhaltungen und führt die erforderlichen Vorgänge auf Synchronisierungsebene aus, wenn die entsprechenden Benachrichtigungen von DTC empfangen werden. Wenn möglich, verwendet TI diese Unterhaltungen wieder, um den Mehraufwand zu minimieren.

    TI bietet auch einen Neusynchronisierungsdienst (SNA LU 6.2 Resync TP). Dieser Windows-Dienst ist als automatisch gestarteter aufrufbarer Dienst für den SNA-definierten Resync TP (0x06f2) konfiguriert. Der Resync-Dienst implementiert die Funktionen "Exchange Log Names" und "Compare States" eines SNA-Transaktions-Managers. Es ermöglicht sowohl DTC (Distributed Transaction Coordinator) als auch CICS, den Wiederherstellungsprozess nach Bedarf während des Systemstarts oder nach einem System- oder Kommunikationsfehler zu initiieren.

    Informationen zu DEN SNA SyncPoint- oder 2PC-Flows von IBM finden Sie unter SNA SyncPoint Services Architecture Reference (IBM SC31-8134-00). Alle TI 2PC-Flows werden in Übereinstimmung mit dieser Architektur implementiert.

Hinweis

Informationen zur Verwendung von CICS-Link-TPs, die explizite SYNCPOINT-Befehle verwenden, finden Sie unter TPs mit expliziten SYNCPOINT-Befehlen.

Zusammenfassend können Sie einen zweistufigen Commit verwenden, indem Sie alle folgenden Anforderungen erfüllen:

  • Für die lokalen und Remote-LUs muss syncPoint-Unterstützung im Host Integration Server-Knoten aktiviert sein.

  • Die lokalen und Remote-LUs sollten jeweils auf den Computer verweisen, auf dem Resync-Dienste ausgeführt werden.

  • Für die Remoteumgebung (RE) muss die Unterstützung für Synchronisierungsebene 2 aktiviert sein. Um dies zu überprüfen, klicken Sie im TI-Manager mit der rechten Maustaste auf re, klicken Sie auf Eigenschaften, und klicken Sie dann auf die Registerkarte LU 6.2.

  • Für die TI-Komponente muss Transaktionsunterstützung auf Unterstützt, Erforderlich oder Neu erforderlich festgelegt sein. Klicken Sie zum Überprüfen dieser Einstellung im TI-Manager mit der rechten Maustaste auf die TI-Komponente, klicken Sie auf Eigenschaften, und klicken Sie dann auf die Registerkarte Transaktionen.

  • Der Remotehostcomputer muss für die Unterstützung der Synchronisierungsstufe 2 konfiguriert sein.

Weitere Informationen

WIP-Programmiermodell