Invocazione di un'applicazione Java in un server JVM

Esistono diversi modi per chiamare un'applicazione Java™ in esecuzione in un server JVM. Il metodo utilizzato dipende dalle caratteristiche del server JVM.

Ad esempio:
  • Utilizzando gli endpoint del server tipicamente da un browser o da un'applicazione client: HTTP, MDB, IIOP e così via. Questo metodo si applica solo ai server Liberty JVM.
  • Utilizzando le API CICS® come EXEC CICS LINK o EXEC CICS START - questo metodo si applica a tutti i tipi di server JVM.

Le applicazioni Java aziendali sviluppate come file di archivio web (WAR), come file di archivio di applicazioni aziendali (EAR) o come file di archivio di bundle aziendali (EBA) contenente file di bundle di applicazioni web (WAB) sono molto probabilmente invocate tramite una richiesta HTTP con un URL specifico. Per invocare le applicazioni da un browser o da un client REST non è necessario alcun collegamento speciale con CICS. In modalità Liberty INTEGRATED, ogni richiesta viene allegata come task CICS e, per impostazione predefinita, viene eseguita con le transazioni CJSA (Web) o CJSU (Non classificato). È possibile personalizzare l'id della transazione definendo e installando gli URIMAP adatti.

Quando si utilizzano le API CICS per eseguire applicazioni Java, esistono diversi modi per indirizzare le classi Java all'esecuzione. Gli approcci disponibili dipendono dal tipo di server JVM e sono indicati nella tabella.

Tabella 1. Approcci per il targeting dei metodi in diversi tipi di server JVM
Tipo di server JVM @CICSProgram mirando a qualsiasi metodo CICS-MainClass mirando a un metodo main Interfaccia fornitore DFHSJJI
server JVM Liberty Sì (solo file WAR e EAR). POJO e tipi di Spring) No No
Server JVM OSGi No
Server JVM Classpath No No
Server Liberty JVM ( @CICSProgram )

Sebbene le chiamate a EXEC CICS LINK o EXEC CICS START non possano pilotare direttamente gli endpoint web, è possibile implementare un POJO (Plain Old Java Object) all'interno dell'applicazione Enterprise Java, annotarlo con @CICSProgram e invocare i componenti della logica aziendale attraverso le API CICS.

Server JVM OSGi ( CICS-MainClass e @CICSProgram )

L'invocazione di un'applicazione Java in un server JVM OSGi può avvenire in due modi. L'approccio CICS-MainClass, descritto di seguito, è adatto sia alle applicazioni COMMAREA che a quelle CHANNEL, mentre il più recente approccio @CICSProgram, utilizzato anche da un server JVM Liberty, supporta solo il collegamento CHANNEL. Entrambi gli approcci utilizzano un EXEC CICS LINK a un PROGRAMMA, o un EXEC CICS START di una TRANSAZIONE con un collegamento iniziale a un PROGRAMMA.

Server JVM basato su Classpath (interfaccia DFHSJJI)

L'invocazione di una funzione Java in un server JVM basato su classpath viene solitamente eseguita come parte di una funzionalità specifica di un server JVM, come Batch, Axis2 e SAML. Per queste funzionalità, viene fornita l'interfaccia del fornitore DFHSJJI; per ulteriori informazioni, vedere Collegamento a un server JVM.

Axis2 o server SAML JVM (fornitori di pipeline)

Vedere Configurazione di un server JVM per Axis2 e Configurazione di CICS per SAML.

Utilizzo dell'approccio CICS-MainClass

  1. Aggiornare il MANIFEST.MF del bundle OSGi per aggiungere l'intestazione CICS-MainClass. L'intestazione deve fare riferimento al nome del pacchetto/classe completamente qualificato in cui esiste un metodo main(). Questo valore sarà registrato anche come servizio OSGi collegabile a CICS.
  2. Creare manualmente una definizione di PROGRAMMA CICS, assicurarsi che il campo JVMCLASS corrisponda al nome/classe del pacchetto completamente qualificato nell'intestazione CICS-MainClass (il servizio OSGi collegabile) o a un nome di alias se si è utilizzata la sintassi CICS-MainClass per specificare un alias.
  3. Utilizzate la vista "Servizi OSGi" di INQUIRE OSGISERVICES SPI o delle operazioni di CICS Explorer® per determinare quali classi di main() sono disponibili per LINK.
  4. Per l'attributo JVM, specificare YES per indicare che il programma è un programma Java.
  5. Per l'attributo JVMCLASS, specificare il nome simbolico del servizio OSGi. Questo valore è sensibile alle maiuscole e alle minuscole.
  6. Assicurarsi di inserire il nome corretto del JVMSERVER in cui è stata installata l'applicazione di destinazione.

Per ulteriori informazioni sull'invocazione dei metodi principali nei server JVM OSGi, vedere Preparazione di un'applicazione OSGi per essere chiamata da un programma CICS utilizzando CICS-MainClass.

Utilizzo dell'approccio di annotazione @CICSProgram

  1. Aggiungere l'annotazione @CICSProgram al metodo Java di destinazione.
  2. Completare il nome del PROGRAMMA CICS desiderato come parte dell'annotazione.
  3. Assicuratevi di costruire o compilare l'applicazione con il processore di annotazioni CICS per generare i metadati richiesti da CICS. I metadati consentono a CICS di eseguire un LINK di successo e di creare automaticamente una definizione di PROGRAMMA all'installazione dell'applicazione. Più metodi annotati comportano la generazione di più definizioni di PROGRAMMA. Se è già stata creata manualmente una definizione di PROGRAMMA, la definizione esistente ha la precedenza e CICS non la sovrascrive.

Per ulteriori informazioni, consultate Preparare un'applicazione OSGi per essere chiamata da un programma CICS usando @CICSProgram e Preparare un'applicazione Enterprise Java per essere chiamata da un programma CICS, che descrivono anche come invocare i componenti della logica di business delle applicazioni Enterprise Java.

Risultati

È stata creata la definizione per rendere l'applicazione Java disponibile ad altri componenti. Quando CICS riceve la richiesta nel server JVM di destinazione, invoca la classe Java o l'applicazione Web specificata su un nuovo thread Java CICS. Se il servizio OSGi o l'applicazione Web associati non sono registrati o sono inattivi, viene restituito un errore al programma chiamante.