CICS Transaction
Gateway fornisce adattatori risorse che implementano CCI (Common Client Interface) per interazioni con CICS.
CCI (Common Client Interface)
CCI è un'interfaccia di alto livello definita da JCA ed è disponibile per gli sviluppatori J2EE che utilizzano ECI (External Call Interface) per comunicare con i programmi in esecuzione su un server CICS.
CCI ha due diversi tipi di classe:
- Classi CCI generiche: le classi CCI generiche vengono utilizzate per richiedere una connessione a un EIS, ad esempio CICS, ed eseguire comandi su tale EIS, passando input
e richiamando output. Tali classi sono generiche nel senso che non passano informazioni specifiche per un EIS particolare. Connection e ConnectionFactory
rappresentano esempi di classi CCI generiche.
- Classi CCI specifiche per CICS: le classi specifiche per CICS vengono utilizzate per passare informazioni specifiche tra un'applicazione client Java e CICS. Esempi di classi specifiche per CICS:
- ECIConnectionSpec
- ECIInteractionSpec
Le applicazioni che seguono un modello di interfaccia di programmazione utilizzando CCI hanno una struttura comune, indipendentemente dall'EIS che viene utilizzato. JCA
definisce Connection e ConnectionFactory che rappresentano la connessione all'EIS. Tali oggetti consentono a un server di applicazioni di gestire sicurezza, contesto delle transazioni e pool di connessione per l'adattatore risorse. Un'applicazione deve essere avviata ottenendo un oggetto ConnectionFactory da cui può essere ottenuto un oggetto Connection. Le proprietà dell'oggetto Connection possono essere sostituite da un oggetto ConnectionSpec. La classe ConnectionSpec è specifica per CICS, ad esempio ECIConnectionSpec.
Una volta ottenuta una connessione, è possibile creare un oggetto Interaction da un oggetto Connection al fine di effettuare una particolare richiesta. Come Connection,
anche gli oggetti Interaction possono avere proprietà personalizzate impostate dalla classe InteractionSpec specifica per CICS (ECIInteractionSpec). Per eseguire l'oggetto Interaction, l'applicazione effettua una chiamata al metodo execute() e utilizza oggetti Record specifici per CICS per contenere i dati.
- Factory di connessione: ConnectionFactory può essere ottenuto in due modi:
- Gestito: se si utilizza un server di applicazioni, in genere ConnectionFactory
viene creato dall'adattatore risorse per mezzo di un'interfaccia di gestione. ConnectionFactory dispone di proprietà personalizzate impostate appositamente, ad esempio il
Gateway da utilizzare deve essere impostato come ConnectionURL. Una volta creato, ConnectionFactory
può essere reso disponibile per l'utilizzo da parte di qualsiasi applicazione enterprise tramite JNDI. Questo tipo di ambiente viene detto ambiente gestito. Un ambiente gestito consente a un server di applicazioni di gestire le qualità del servizio delle connessioni.
- Non gestito: se non si utilizza un server di applicazioni, è necessario creare un ManagedConnectionFactory e impostarne le proprietà personalizzate. È possibile quindi creare un
oggetto ConnectionFactory dall'oggetto ManagedConnectionFactory. Questo tipo di ambiente viene detto ambiente non gestito. Un ambiente non gestito non consente a un server di applicazioni di gestire connessioni.
Per richiamare dati dal server CICS, l'applicazione J2EE:
- Utilizza l'oggetto ConnectionFactory per creare un oggetto Connection.
- Utilizza l'oggetto Connection per creare un oggetto Interaction.
- Utilizza l'oggetto Interaction per eseguire comandi sull'EIS.
- Chiude Interaction e Connection.
Il seguente esempio illustra l'utilizzo di interfacce CCI J2EE per eseguire un comando su un EIS:
ConnectionFactory cf = [ricerca da spazio nomi JNDI]
Connection conn = cf.getConnection();
Interaction int = conn.createInteraction();
int.execute([Dati input output]);
int.close();
conn.close();