En parlant de langages de développement d'applications pour CICS Transaction Server for z / OS, COBOL, PL / I et Asembler sont souvent utilisés, mais Java est pris en charge depuis longtemps. Cela signifie que vous pouvez écrire des applications CICS en Java. Une bibliothèque de classes Java (JCICS) équivalente à la commande EXEC CICS est fournie, vous pouvez donc utiliser des méthodes Java pour effectuer des opérations telles que EXEC CICS LINK ou EXEC CICS START. Ici, je vais essayer d'exécuter réellement l'exemple d'application CICS-Java (compatible OSGi).
Application Java CICS-Exécuter - (1) Exécuter un exemple d'application simple Application Java CICS-Run - (2) Build management by Maven Application Java CICS-Run - (3) Build management by Gradle Application Java CICS-Run - (4) Application Spring Boot
Environnement de développement Windows10 CICS Explorer V5.6(Beta)
** Environnement d'exécution ** z/OS V2.4 CICS Transaction Server for z/OS V5.6(Beta)
Passons en revue la prise en charge de Java pour CICS. CICS prend en charge les applications Java compatibles OSGi. Pour exécuter une application CICS implémentée en Java, la procédure suivante est requise.
** Préparation à l'exécution ** Pour exécuter une application Java, créez une définition de ressource appelée JVMSERVER dans la région CICS cible et préparez un environnement d'exécution Java.
développement de Le travail de développement est effectué avec l'outil gratuit basé sur Eclipse "CICS Explorer". Créez une application Java qui importe la bibliothèque JCICS et empaquetez-la sous la forme d'un bundle OSGi (comme une extension d'un fichier jar). (Référence: Présentation OSGI) À ce stade, la première logique que vous voulez être reconnue comme programme CICS doit être implémentée dans la fonction principale. Empaquetez certains bundles OSGi en unités appelées "Bundles CICS".
** Déployer ** Transférez le bundle CICS sur l'USS du z / OS de l'environnement d'exécution. Créez une définition BUNDLE dans la définition de ressource de la région CICS pour reconnaître le bundle CICS (application Java) transféré sur l'USS. Créez une définition PROGRAM dans la définition de ressource de la région CICS et enregistrez la classe Java incluse dans BUNDLE en tant que programme CICS.
La relation entre chaque définition de ressource CICS et l'entité est la suivante.

Téléchargez et configurez un outil basé sur Eclipse appelé CICS Explorer, en vous référant aux zones suivantes. Référence: Téléchargement et démarrage de CICS Explorer
En tant que définition de connexion hôte, configurez une connexion FTP pour le z / OS sur lequel s'exécute CICS cible.

Préparez une région CICS pour exécuter l'exemple. Pour l'instant, nous utiliserons la région nommée ** CT56B4A1 **. Ajoutez une ressource appelée JVMServer pour exécuter des applications Java.
Préparez le profil JVM sur USS. (Les propriétés liées à JVMServer sont effectivement spécifiées dans le fichier sur cet USS. La définition de ressource JVMSERVER pointe vers le nom de fichier de ce profil JVM.) Un échantillon est fourni, alors copiez-le et utilisez-le.
Créez un répertoire appelé / var / cicsts / cicsts56 / CT56B4A1 / JVMProfiles et copiez-y /usr/lpp/cicsts/cicsts56/JVMProfiles/DFHOSGI.jvmprofile (exemple de définition pour OSGi situé sous le répertoire d'installation du CCD). Faire. Personnalisez en fonction de votre environnement.
DFHOSGI.extrait jvmprofile
JAVA_HOME=/usr/lpp/java/J8.0_64/
WORK_DIR=/var/cicsts/cicsts56/CT56B4A1/work
-Xms32M
-Xmx256M
-Xmso1M
-Xgcpolicy:gencon
-Xscmx256M
-Xshareclasses:name=cicsts%g,groupAccess,nonfatal
-Xtune:virtualized
-Dcom.ibm.tools.attach.enable=no
_BPXK_DISABLE_SHLIB=YES
SIT
Spécifiez le répertoire où se trouve le fichier de propriétés ci-dessus dans le paramètre SIT "JVMPROFILEDIR".
JVMPROFILEDIR=/var/cicsts/cicsts56/CT56B4A1/JVMProfiles 
Redémarrez la région pour que les modifications prennent effet.
Préparez la définition de ressource JVMSERVER. Copiez la définition JVMSERVER "DFHJVMS" dans le groupe fourni par le produit appelé DFH $ OSGI dans un groupe approprié et installez-le.
OBJECT CHARACTERISTICS                                    CICS RELEASE = 0730 
 CEDA  View JVmserver( DFHJVMS  )                                             
  JVmserver      : DFHJVMS                                                    
  Group          : TAG$OSGI                                                   
  DEScription    : CICS JVM server to run OSGi samples                        
  Status         : Enabled            Enabled | Disabled                      
  Jvmprofile     : DFHOSGI                                        (Mixed Case)
  Lerunopts      : DFHAXRO                                                    
  Threadlimit    : 015                1-256                                   
 DEFINITION SIGNATURE                                                         
  DEFinetime     : 06/02/20 17:28:17                                          
  CHANGETime     : 06/02/20 17:28:17                                          
  CHANGEUsrid    : CICSUSER                                                   
  CHANGEAGEnt    : CSDApi             CSDApi | CSDBatch                       
  CHANGEAGRel    : 0730                                                       
Il est OK s'il est activé en regardant CEMT I JVMSERVER.
I JVMS                                               
STATUS:  RESULTS - OVERTYPE TO MODIFY                
 Jvm(DFHJVMS ) Ena     Prf(DFHOSGI ) Ler(DFHAXRO )   
    Threadc(000) Threadl( 015 ) Cur(9965280)         
Créez un répertoire sur USS pour placer le fichier de bundle.
Ici, nous allons créer un répertoire appelé / var / cicsts / cicsts56 / CT56B4A1 / bundles /.
Référence: Exemples Java: exemples JCICS
Sélectionnez Window-Settings dans le menu CICS Explorer pour ouvrir la fenêtre des paramètres.
Développement de plugins - Sélectionnez votre plateforme cible et cliquez sur Ajouter.

Sélectionnez la version CICS cible dans le modèle. Ici, sélectionnez CICS TS V5.6.

Vérifiez et appliquez le CICS TS 5.6 ajouté.

Dans la perspective Java, sélectionnez Fichier-Nouveau-Autre dans le menu

Sélectionnez l'exemple OSGi du bundle CICS

Continuez comme c'est

Fin comme c'est

Un exemple de projet est créé.

Plusieurs exemples d'applications sont fournis dans ce projet, mais jetons un coup d'œil à la source Hello World la plus simple. (examples.hello.HelloCICSWorld.java inclus dans le projet com.ibm.cics.server.examples.hello (bundle OSGi))
HelloCICSWorld.java
package examples.hello;
import com.ibm.cics.server.CommAreaHolder;
import com.ibm.cics.server.Task;
public class HelloCICSWorld
{
    public static void main(CommAreaHolder CAH)
    {
        Task t = Task.getTask();
        if ( t == null )
            System.err.println("HelloCICSWorld example: Can't get Task");
        else
            t.out.println("Hello from a Java CICS application");
    }
}
JCICS com.ibm.cics.server.Task est utilisé. Task.out signifie PrintWriter pour la sortie du terminal, il est donc logique d'envoyer une simple chaîne de caractères au terminal. Référence: [Javadoc --Task](https://www.ibm.com/support/knowledgecenter/SSGMCP_5.6.0/reference-javadocs/jcics-javadoc/com/ibm/cics/server/Task.html?view=embed# en dehors)
Vérifions META-INF / MANIFEST.MF du même projet.
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Hello Plug-in
Bundle-SymbolicName: com.ibm.cics.server.examples.hello
Bundle-Version: 1.0.0
Bundle-RequiredExecutionEnvironment: J2SE-1.4,
 J2SE-1.5,
 JavaSE-1.6
Import-Package: com.ibm.cics.server;version="[1.0.0,2.0.0)"
CICS-MainClass: examples.hello.HelloCICSWorld, examples.hello.HelloWorld
Dans la spécification de CICS-MainClass, la classe avec la méthode main est spécifiée. La méthode principale de la classe spécifiée ici peut être reconnue comme un programme CICS (elle peut être liée à la définition du programme).
Consultez le projet de bundle CICS appelé com.ibm.cics.server.examples.bundle.
Si vous ouvrez META-INF / cics.xml dans l'éditeur de manifeste du bundle CICS, vous pouvez voir qu'il contient le bundle OSGi ci-dessus.

Ouvrez com.ibm.cics.server.examples.hello.osgibundle.

Vérifiez la valeur de jvmserver spécifiée ici. Vous devez spécifier ici le nom de la définition JVMSERVER que vous souhaitez exécuter. Modifiez-le en fonction du nom de la définition JVMSERVER créée dans la préparation. Si vous copiez l'exemple de définition avec le même nom, ce sera DFHJVMS, vous n'avez donc pas besoin de le modifier.
Le déploiement vers CICS se fait en unités de "bundles CICS".
Cliquez avec le bouton droit sur le projet com.ibm.cics.server.examples.bundle et cliquez sur Exporter le projet groupé vers le système de fichiers z / OS UNIX

Sélectionnez Exporter vers un emplacement spécifique dans le système de fichiers et Suivant

Spécifiez le répertoire pour organiser le fichier de bundle créé précédemment et quittez

Vérifiez le message
Le fichier bundle a été placé sur USS.
Copiez chaque ressource du groupe DFH $ OSGI fourni par CICS dans un groupe approprié.
Personnalisez la définition BUNDLE "DFH $ OSGB" et définissez la valeur de BUNDLEDIR sur le répertoire où le fichier bundle est placé au-dessus (/var/cicsts/cicsts56/CT56B4A1/bundles/com.ibm.cics.server.examples.bundle_1. Remplacez par 0.0).
OVERTYPE TO MODIFY                                        CICS RELEASE = 0730
 CEDA  ALter Bundle( DFH$OSGB )                                              
  Bundle         : DFH$OSGB                                                  
  Group          : TAG$OSGI                                                  
  DEScription  ==> CICS bundle containing OSGi sample bundles                
  Status       ==> Enabled            Enabled | Disabled                     
  BUndledir    ==> /var/cicsts/cicsts56/CT56B4A1/bundles/com.ibm.cics.server.
  (Mixed Case) ==> examples.bundle_1.0.0                                     
               ==>                                                           
               ==>                                                           
               ==>                                                           
  BAsescope    ==>                                                           
  (Mixed Case) ==>                                                           
               ==>                                                           
               ==>                                                           
               ==>                                                           
 DEFINITION SIGNATURE                                                        
  DEFinetime     : 06/02/20 18:27:37                                         
  CHANGETime     : 06/02/20 18:27:37                                         
Assurez-vous qu'il est installé et activé.
I BUNDLE                                                 
STATUS:  RESULTS - OVERTYPE TO MODIFY                    
 Bun(DFH$OSGB) Ena         Par(00003) Tar(00003)         
    Enabledc(00003) Bundlei(com.ibm.cics.server.exampl)  
Soit dit en passant, si vous vérifiez la définition de ressource avec CICS Explorer, vous pouvez vérifier non seulement la définition BUNDLE mais également les BUNDLE PARTS inclus dans BUNDLE.

Cette fois, nous allons exécuter l'exemple Hello World, nous allons donc installer des définitions de ressources supplémentaires liées à cet exemple. Référence: Exécution de l'exemple Hello World
La définition de programme "DFJ $ JHE2" et la définition de transaction "JHE2". Le programme Java actuel est déjà installé en tant que BUNDLE. Les deux sont fournis dans DFH $ OSGI, donc copiez-les et installez-les tels quels. Au fait, si vous regardez la définition de DFH $ JHE2,
OBJECT CHARACTERISTICS                                    CICS RELEASE = 0730 
 CEDA  View PROGram( DFJ$JHE2 )                                               
  PROGram        : DFJ$JHE2                                                   
  Group          : TAG$OSGI                                                   
  DEScription    : OSGi Hello CICS world sample program                       
  Language       :                    CObol | Assembler | Le370 | C | Pli     
  RELoad         : No                 No | Yes                                
  RESident       : No                 No | Yes                                
  USAge          : Normal             Normal | Transient                      
  USElpacopy     : No                 No | Yes                                
  Status         : Enabled            Enabled | Disabled                      
  RSl            : 00                 0-24 | Public                           
  CEdf           : Yes                Yes | No                                
  DAtalocation   : Any                Below | Any                             
  EXECKey        : Cics               User | Cics                             
  COncurrency    : Required           Quasirent | Threadsafe | Required       
  Api            : Cicsapi            Cicsapi | Openapi                       
 REMOTE ATTRIBUTES                                                            
  DYnamic        : No                 No | Yes                                
  REMOTESystem   :                                                            
  REMOTEName     :                                                            
  Transid        :                                                            
  EXECUtionset   : Fullapi            Fullapi | Dplsubset                     
 JVM ATTRIBUTES                                                               
  JVM            : Yes                No | Yes                                
  JVMClass       : examples.hello.HelloCICSWorld                              
  (Mixed Case)   :                                                            
                 :                                                            
                 :                                                            
                 :                                                            
  JVMServer      : DFHJVMS                                                    
  JVMProfile     :                                                (Mixed Case)
 JAVA PROGRAM OBJECT ATTRIBUTES                                               
  Hotpool        : No                 No | Yes                                
...
Comme ça, JVM: Oui, JVMClass: examples.hello.HelloCICSWorld, JVMServer: DFHJVMS sont spécifiés (classes installées par BUNDLE PARTS). * Si le nom du serveur JVM créé à l'avance est différent, veuillez le corriger en conséquence.
Maintenant que les ressources sont en place, exécutons-le.
Exécutez une transaction JHE2 à partir d'un terminal CICS.
La chaîne de caractères sortie du programme Java Hello d'une application Java CICS est affichée!
Cela confirme que Java fonctionnait comme un programme CICS.
Recommended Posts