Supporto per transazioni e commit in due fasi

In COM termwinology una transazione è sempre un'unità di lavoro atomica, coerente, isolata e durevole (ACID). Nella terminologia del mainframe, una transazione può essere o meno una transazione ACID. nella terminologia mainframe, una transazione è un set di operazioni o comandi in un programma di transazione (TP). Questa differenza nella terminologia può generare confusione. La parola transazione usata in TI Manager e TI Designer fa sempre riferimento a una transazione ACID.

Il commit in due fasi (2PC) è un protocollo che consente a un set di operazioni o comandi di applicazione (o tra applicazioni) di essere tutti di cui eseguire il rollback o il commit come una singola unità transazionale.

Nota

Se si richiama un server di automazione interfaccia utente tramite il protocollo TCP/IP, non è disponibile alcun supporto per le transazioni di commit in due fasi. Il commit in due fasi funziona solo tramite il protocollo SNA APPC/LU 6.2.

Un componente TI ha quattro possibili proprietà transazionali:

  • Richiede una transazione

  • Richiede una nuova transazione

  • Supporta le transazioni

  • Non supporta le transazioni

    Le prime due opzioni richiedono che il TP mainframe sia transazionale (ovvero soddisfi le proprietà ACID) e supporti il livello di sincronizzazione 2. Questo è trasparente per il mainframe TP se si tratta di un collegamento CICS o di un programma IMS versione 6.0 o successiva. La terza scelta richiede che il TP mainframe supporti le richieste di livello 2 di sincronizzazione e gestirà la semantica della transazione in modo appropriato. La quarta scelta è necessaria per i TP IMS precedenti a IMS versione 6.0 e per tutti i TP CICS che supportano solo il livello di sincronizzazione 0 o il livello di sincronizzazione 1.

    Se un componente TI viene richiamato nell'ambito di una transazione COM+, TI stabilirà una conversazione di livello 2 di sincronizzazione con CICS (in caso contrario, viene usato il livello di sincronizzazione 0). Questo è trasparente per il client del componente TI. Se il TP mainframe è un programma CICS Link, la natura transazionale della conversazione è trasparente anche per il TP, poiché la transazione mirror ibm in CICS (CSMI) gestisce il protocollo Sync Level 2 e il TP a cui è collegata non è a conoscenza se viene usato il livello di sincronizzazione 0 o sincronizzazione 2.

    TI è conforme al modello di programmazione COM+ chiamando SetComplete o SetAbort quando completa l'operazione di ogni chiamata di metodo dal client. Se non sono stati rilevati errori, TI chiama SetComplete; in caso contrario chiama SetAbort. TI chiama anche SetAbort se il TP mainframe indica che non deve essere eseguito il commit della transazione impostando il flag DisableCommit nel blocco di errore dei metadati restituito. Le applicazioni client di Automazione TI possono anche scegliere di chiamare SetAbort se determinano che esistono problemi a livello di applicazione che devono impedire il commit della transazione.

    Quando la chiamata al metodo del client viene restituita, il TP nel mainframe ha eseguito alcune unità di lavoro, ma non viene ancora eseguito il commit delle modifiche alle risorse protette in CICS. TI usa nuove interfacce DTC per integrare la conversazione di livello 2 di sincronizzazione nella transazione DTC. Quando DTC è pronto per il commit o l'interruzione della transazione, comunica con TI per guidare i flussi di commit in due fasi appropriati nella conversazione LU 6.2. Anche in questo caso, tutte le operazioni 2PC vengono eseguite in modo trasparente da TI per conto del client.

    Anche se l'oggetto TI può essere disattivato al termine del metodo , la conversazione deve essere mantenuta fino al commit o all'interruzione della transazione. Gli utenti possono influire negativamente sulle prestazioni e vincolere le risorse di sistema se il codice dell'applicazione esegue una o più chiamate al metodo transazionali, ma non esegue il commit della transazione per un lungo periodo di tempo. Le conversazioni possono essere utilizzate rapidamente da codice utente strutturato in modo non strutturato.

    Quando una conversazione è in attesa di commit, verrà rimosso dall'oggetto a cui è stata associata. TI gestisce un pool di queste conversazioni "in attesa" ed esegue le operazioni a livello di sincronizzazione necessarie quando le notifiche appropriate vengono ricevute da DTC. Quando possibile, ti riutilizza queste conversazioni per ridurre al minimo il sovraccarico.

    TI fornisce anche un servizio di risincronizzazione (SNA LU 6.2 Resync TP). Questo Windows è configurato per essere il servizio di fatturazione avviato automaticamente per il TP di risincronizzazione definito da SNA (0x06f2). Il servizio Resync implementa le funzioni "Exchange Log Names" e "Compare States" di un gestore transazioni SNA. Consente a DTC (Distributed Transaction Coordinator) e CICS di avviare il processo di ripristino in base alle esigenze durante l'avvio del sistema o in seguito a un errore di sistema o di comunicazione.

    Per informazioni sui flussi SNA SyncPoint o 2PC di IBM, vedere SNA SyncPoint Services Architecture Reference (IBM SC31-8134-00). Tutti i flussi TI 2PC vengono implementati in conformità con questa architettura.

Nota

Per informazioni su come usare tP di collegamento CICS che usano comandi SYNCPOINT espliciti, vedere TP con comandi SYNCPOINT espliciti.

In sintesi, per usare il commit in due fasi, è necessario soddisfare tutti i requisiti seguenti:

  • Le unità di archiviazione locali e remote devono avere il supporto syncPoint abilitato nel nodo Host Integration Server remoto.

  • Le unità LU locali e remote devono puntare al computer che esegue i servizi di sincronizzazione.

  • Per l'ambiente remoto deve essere abilitato il supporto del livello di sincronizzazione 2. A tale scopo, fare clic con il pulsante destro del mouse su RE in TI Manager, scegliere Proprietà e quindi fare clic sulla scheda LU 6.2.

  • Il componente TI deve avere Supporto transazioni impostato su Supportato, Obbligatorio o Richiede nuovo. Per controllare questa impostazione, fare clic con il pulsante destro del mouse sul componente TI in TI Manager, scegliere Proprietà e quindi fare clic sulla scheda Transazioni.

  • Il computer host remoto deve essere configurato per il supporto del livello di sincronizzazione 2.

Vedere anche

Modello di programmazione WIP