Freigeben über


Unterstützung für Transaktionen und Zweiphasen-Commit

In der COM-Terminologie ist eine Transaktion immer eine Arbeitseinheit, die atomar, konsistent, isoliert und dauerhaft (ACID) sein muss. In der Terminologie des Großrechners kann eine Transaktion eine ACID-Transaktion sein oder nicht; in der Terminologie eines Großrechners ist eine Transaktion eine Reihe 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.

Zwei-Phasen-Commit (2PC) ist ein Protokoll, das dafür sorgt, dass eine Reihe von Vorgängen oder Befehlen innerhalb oder zwischen Anwendungen entweder alle zurückgerollt oder alle als eine einzelne Transaktionseinheit zugesichert werden.

Hinweis

Wenn Sie einen TI Automation-Server über das TCP/IP-Protokoll aufrufen, gibt es keine Unterstützung für Zwei-Phasen-Commit-Transaktionen. Der Zwei-Phasen-Commit funktioniert nur mit dem SNA APPC/LU 6.2-Protokoll.

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

  • Erfordert Transaktion

  • Erfordert eine neue Transaktion

  • Unterstützt Transaktionen

  • Transaktionen werden nicht unterstützt.

    Bei den ersten beiden Optionen muss der Mainframe-TP transaktionsal sein (d. h. die ACID-Eigenschaften erfüllen) und die Sync Level 2 unterstützen. Dies ist für den Mainframe TP transparent, wenn es sich um einen CICS Link oder IMS Version 6.0 oder höher handelt. Die dritte Wahl erfordert, dass der Großrechner-TP Synchronisierungsebene 2-Anforderungen unterstützt und die Transaktionssemantik entsprechend verarbeitet. Die vierte Option 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 innerhalb einer COM+-Transaktion aufgerufen wird, richtet TI eine Synchronisationsebene 2-Konversation mit CICS ein (andernfalls wird die Synchronisationsebene 0 verwendet). Dies ist für den Client der TI-Komponente transparent. Wenn es sich bei dem Mainframe TP um ein CICS Link-Programm handelt, ist die transaktionstechnische Art der Unterhaltung auch für das TP transparent, da die Spiegeltransaktion von IBM in CICS (CSMI) das Sync Level 2-Protokoll verarbeitet und der TP, mit dem sie verknüpft ist, nicht weiß, ob Sync Level 0 oder Sync Level 2 verwendet wird.

    TI entspricht dem 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 der Mainframe-TP angibt, dass die Transaktion nicht übernommen werden soll, indem das DisableCommit-Flag im zurückgegebenen Metadaten-Fehlerblock festgelegt wird. TI Automation-Clientanwendungen können auch die Methode SetAbort aufrufen, wenn sie feststellen, dass Probleme auf Anwendungsebene auftreten, die verhindern sollten, dass die Transaktion ausgeführt wird.

    Wenn der Methodenaufruf des Clients zurückgegeben wird, hat der TP auf dem Mainframe eine Einheit von Arbeit ausgeführt, aber alle Änderungen an geschützten Ressourcen in CICS sind noch nicht festgeschrieben. TI verwendet neue DTC-Schnittstellen, um die Sync Level 2-Interaktion innerhalb der DTC-Transaktion zu integrieren. Wenn DTC bereit ist, die Transaktion festzuschreiben oder abzubrechen, kommuniziert es mit TI, um die entsprechenden zweiphasigen Commit-Vorgänge in der LU 6.2-Unterhaltung auszuführen. Auch hier werden alle 2PC-Arbeiten transparent von TI im Auftrag des Kunden durchgeführt.

    Obwohl das TI-Objekt deaktiviert werden kann, wenn die Methode abgeschlossen ist, muss die Sitzung beibehalten werden, bis die Transaktion bestätigt wird oder abbricht. Benutzer können sich negativ auf die Leistung auswirken und Systemressourcen binden, wenn ihr Anwendungscode einen oder mehrere Transaktionsmethodenaufrufe durchführt, die Transaktion jedoch für einen längeren Zeitraum nicht committ. Unterhaltungen können schnell durch schlecht strukturierten Benutzercode überlastet werden.

    Wenn eine Unterhaltung darauf wartet, sich zu verpflichten, wird sie von dem Objekt getrennt, dem sie zugeordnet war. 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 Aufwand zu minimieren.

    TI bietet auch einen Resynchronisierungsdienst (SNA LU 6.2 Resync TP). Dieser Windows-Dienst ist so konfiguriert, dass es sich um den automatisch gestarteten aufrufbaren Dienst für den SNA-definierten resync TP (0x06f2) handelt. Der Resync-Dienst implementiert die Funktionen "Exchange-Protokollnamen" und "Zustände vergleichen" eines SNA-Transaktionsmanagers. Es ermöglicht sowohl DTC (Distributed Transaction Coordinator) als auch CICS, den Wiederherstellungsvorgang nach Bedarf während des Systemstarts oder nach einem System- oder Kommunikationsfehler zu initiieren.

    Informationen zu den IBM SNA SyncPoint- oder 2PC-Flüssen finden Sie in der SNA SyncPoint Services Architecture Reference (IBM SC31-8134-00). Alle TI 2PC-Flüsse 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.

Zusammenfassung: Um zweistufigen Commit zu verwenden, müssen Sie alle folgenden Anforderungen erfüllen:

  • Die lokalen und Remote-LUs müssen jeweils die SyncPoint-Unterstützung im Knoten hostintegrationsserver aktiviert haben.

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

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

  • Die TI-Komponente muss die Transaktionsunterstützung auf "Unterstützt", "Erforderlich" oder "Neu" festgelegt haben. Um diese Einstellung zu überprüfen, klicken Sie mit der rechten Maustaste auf die TI-Komponente im TI-Manager, klicken Sie auf "Eigenschaften", und klicken Sie dann auf die Registerkarte "Transaktionen".

  • Der Remotehostcomputer muss für die Unterstützung der Synchronisierungsebene 2 konfiguriert werden.

Siehe auch

WIP-Programmiermodell