Per proteggere e mantenere l'integrità di risorse aziendali critiche, IMS Connector per Java, supporta la gestione della transazione globale e l'elaborazione commit in due fasi.
Mediante questo supporto, è possibile generare un'applicazione J2EE per raggruppare un insieme di modifiche in una sola transazione oppure una singola unità di lavoro, in modo che tutte le modifiche in una transazione siano completate o se ne esegua un rollback completo. Ciò consente che l'applicazione venga eseguita in un server delle applicazioni J2EE conforme (ad esempio, WebSphere Application Server) per accedere a transazioni IMS e ai dati in modo coordinato. La gestione della transazione globale garantisce l'integrità dei dati in IMS.
Quando si apportano modifiche a risorse protette, si desidera garantire che le modifiche siano apportate correttamente. Al pari di un cliente di una banca, ad esempio, che desidera trasferire denaro dal deposito a risparmio al conto corrente. Si desidera accertarsi che quando il denaro viene prelevato dal deposito a risparmio venga aggiunto contemporaneamente al conto corrente. Non si desidera che la transazione venga completata parzialmente con il denaro prelevato dal deposito ma non aggiunto al conto.
Oppure si immagini che sia necessario comprare un biglietto da San Francisco a Parigi ma un volo diretto non è disponibile. A meno che non si riesca a riservare un biglietto da San Francisco a Chicago ed un altro da Chicago a Parigi, non si potrà andare a Parigi. Vale a dire, decidere di non andare a Parigi, considerato che si dispone di un posto confermato per una sola parte del viaggio, non risulta utile.
In entrambi gli esempi, vengono richieste molte transazioni di piccole dimensioni per completare quella generale. Se c'è un problema con una di queste piccole transazioni, non si esegue quella generale (vale a dire, il trasferimento di denaro o il viaggio a Parigi). Invece, si potrebbe voler rinunciare ad ogni fase della transazione, cosicché nessuna delle transazioni minori viene eseguita. Per trasferire il denaro o per andare a Parigi, si desidera che le transazioni minori vengano gestite e coordinate insieme per completare quella generale.
Per assicurare un processo di transazione coordinato, la piattaforma J2EE (che consiste di un server delle applicazioni J2EE, di componenti dell'applicazione J2EE e di un adattatore di risorse J2EE Connector Architecture) fornisce un ambiente di elaborazione transazione distribuito, dove le transazioni vengono gestite in modo trasparente e le risorse vengono aggiornate e ripristinate attraverso più piattaforme in modo coordinato.
Un server delle applicazioni J2EE conforme (come ad esempio WebSphere Application Server) utilizza un gestore transazioni Java, noto anche come coordinatore esterno, per comunicare con i componenti dell'applicazione (ad esempio, servlet Java o Bean Enterprise Java) e gestori risorse (ad esempio, IMS o DB2) tramite gli adattatori di risorse (ad esempio, IMS Connector per Java) per coordinare una transazione.
Se un gestore transazioni coordina una transazione, quest'ultima viene considerata una transazione globale. Se un gestore transazioni coordina una transazione con più di un gestore risorse, il coordinatore esterno utilizza il protocollo del commit a due fasi.
Nell'esempio precedente della banca, si desidera trasferire denaro dal deposito a risparmio al conto corrente. Se le informazioni sul deposito a risparmio risiedono su un gestore risorse separato dalle informazioni sul conto corrente (ad esempio, il deposito risiede su IMS e il conto corrente risiede su DB2), il gestore transazioni nel server di applicazioni (WebSphere Application Server) aiuta l'applicazione a coordinare le modifiche tra IMS e DB2 in modo trasparente mediante l'elaborazione commit in due fasi. In particolare, il gestore transazioni utilizza l'adattatore di risorse IMS per coordinare le modifiche in IMS.
IMS Connector per Java nasce per essere utilizzato insieme al gestore transazioni Java nella piattaforma J2EE, l'RRS (Resource Recovery Services) di z/OS e IMS Connect per apportare modifiche coerenti a IMS e ad altre risorse protette.
Per partecipare all'elaborazione commit in due fasi con IMS, IMS Connector per Java utilizza il protocollo di sincronizzazione IMS OTMA. Per partecipare alla transazione globale e all'elaborazione commit in due fasi quando le modifiche vengono richieste da un'applicazione remota, IMS utilizza RRS su z/OS.
RRS, dal punto di vista di IMS, funziona come "coordinatore esterno" o gestore di sincronizzazione per coordinare l'aggiornamento e il ripristino della risorse. IMS Connector per Java e IMS Connect interagiscono con il gestore transazioni Java in esecuzione nel server delle applicazioni e RRS su z/OS, in modo da consentire l'esecuzione della transazione globale su una piattaforma J2EE e partecipare ad un aggiornamento coordinato con IMS in esecuzione sull'host.
Quando si configura un'applicazione J2EE per partecipare in una transazione globale, selezionare uno dei due protocolli di comunicazione disponibili tra IMS Connector per Java e IMS Connect. I due protocolli di comunicazione supportati da IMS Connector per Java e IMS Connect sono TCP/IP e Opzione locale.
Nell'ambito di transazione globale, il componente dell'applicazione J2EE può accedere ad una transazione IMS stabilendo una connessione TCP/IP con IMS Connect. IMS Connector per Java interagisce con il gestore transazioni Java mediante il protocollo X/Open (XA) per gestire la transazione globale e il commit in due fasi. Il protocollo XA definisce un insieme di interfacce ed interazioni che descrivono come il gestore transazioni Java e il gestore risorse interagiscono in un ambiente di elaborazione transazione distribuito. IMS Connector per Java, insieme a IMS Connect, utilizza il protocollo XA e IMS e RRS su z/OS per apportare modifiche coerenti.
Limitazioni: Si richiede RRS in esecuzione sullo stesso sistema MVS con IMS Connect.
Per configurare RRS su IMS Connect, fare riferimento a IMS Connect Guide and Reference (SC27-0946). Per ulteriori informazioni sul protocollo di comunicazione TCP/IP per la transazione globale e il commit a due fasi, vedere Considerazioni sulle configurazioni della piattaforma e sui protocolli di comunicazione e Considerazioni sull'ambiente del commit a due fasi.
Se il componente dell'applicazione J2EE è in esecuzione su WebSphere Application Server per z/OS, è possibile inoltrare messaggi sulle transazioni IMS mediante Opzione locale e partecipare all'elaborazione della transazione globale. Questa elaborazione della transazione è coordinata da RRS su z/OS e su WebSphere Application Server per z/OS. IMS Connector per Java è RRS conforme e nasce specificamente per essere utilizzato insieme a RRS, in modo che il gestore transazioni Java in WebSphere e IMS, come gestore risorse, possano essere utilizzati insieme per apportare modifiche coerenti a più risorse protette. Il protocollo XA non viene utilizzato da IMS Connector per Java quando si esegue una transazione globale con Opzione locale.
Per informazioni sul protocollo di comunicazione Opzione locale per la transazione globale e il commit a due fasi, vedere Considerazioni sulle configurazioni della piattaforma e sui protocolli di comunicazione, Prerequisiti del commit a due fasi e Considerazioni sull'ambiente del commit a due fasi.
Transazione locale
J2EE Connection Architecture definisce l'interfaccia javax.resource.cci.LocalTransaction per consentire un gestore risorse, piuttosto che un gestore transazioni per coordinare la transazione localmente. IMS Connector per Java, tuttavia, supporta solo il coordinamento transazioni con un gestore risorse. IMS Connector per Java non supporta l'interfaccia javax.resource.cci.LocalTransaction. Se si chiama il metodo IMSConnection.getLocalTransaction(), si otterrà NotSupportedException. Per utilizzare il supporto della transazione con IMS Connector per Java, utilizzare l'interfaccia della transazione JTA o impostare un attributo transazione appropriato nel descrittore di distribuzione nell'applicazione. Per ulteriori informazioni, vedere Utilizzo del supporto della transazione globale nell'applicazione.
Elaborazione commit ad una fase
IMS Connector per Java supporta l'ottimizzazione del commit ad una fase con il gestore transazioni. Come risultato, se tutte le modifiche in un ambito della transazione appartengono alla stessa risorsa IMS, il gestore risorse potrebbe eseguire l'ottimizzazione del commit ad una fase come il gestore transazioni invia la richiesta commit a due fasi direttamente al gestore risorse per il commit delle modifiche, senza inviare la richiesta di preparazione della fase uno.
Elaborazione transazione non globale
Se viene utilizzata la transazione non globale nell'applicazione (ad esempio, quando l'attributo della transazione è impostato su TX_NOTSUPPORTED), l'elaborazione della transazione non globale utilizza "Sync-On-Return" (OTMA SyncLevel=None). Nel frattempo che si esegue il commit della transazione IMS, l'output viene restituito al client.
Elaborazione transazione interattiva nell'ambito della transazione globale
IMS utilizza un programma interattivo per dividere l'elaborazione in una serie connessa di interazioni client-programma-client (anche definite interazioni). Ciascuna interazione è un tipo di transazione interattiva IMS. L'elaborazione interattiva viene utilizzata quando una transazione contiene molte parti. Si esegue il commit e il rollback di ciascuna parte di una transazione di grandi dimensioni.
Per ulteriori informazioni sul supporto transazione globale, vedere la pagina Web di IMS Connector per Java all'indirizzo www.ibm.com/ims e andare ai suggerimenti e consigli della pagina di supporto.