Application Java CICS-Run - (1) Exécutez un exemple d'application simple

introduction

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).

Article associé

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

Informations environnementales

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)

À propos de la prise en charge de Java pour CICS

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. image.png

Préparation préalable

Environnement de développement

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. image.png

Environnement d'exécution

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.

Profil JVM

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.

Définition du serveur JVM

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)         

bundle répertoire de placement de fichiers

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 /.

Exemple de vérification du fonctionnement de l'application

Référence: Exemples Java: exemples JCICS

Créer un exemple de projet

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. image.png

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

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

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

Sélectionnez l'exemple OSGi du bundle CICS image.png

Continuez comme c'est image.png

Fin comme c'est image.png

Un exemple de projet est créé. image.png

Vérifiez le contenu de l'échantillon

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. image.png

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

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.

Déployez votre application sur CICS

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 image.png

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

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

Vérifiez le message image.png 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. image.png

Exemple d'exécution

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. image.png 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

Application Java CICS-Run - (1) Exécutez un exemple d'application simple
Un exemple simple de rappels en Java
Créer une image docker pour exécuter une application Java simple
Application Java CICS-Run - (4) Application Spring Boot
[Java] Dessine un motif simple
Comment déployer une application Java Servlet simple sur Heroku
Un exemple CRUD simple utilisant Java Servlet / JSP et MySQL
3 Implémentez un interpréteur simple en Java
J'ai créé une application shopify @java
Exécuter des applications Java dans Azure Batch
Accéder à Teradata depuis une application Java
Exécuter des applications écrites en Java8 en Java6
Créez une application Web simple avec Dropwizard
Un simple échantillon d'ArBiMap (carte bidirectionnelle)
Un débutant Java a essayé de créer une application Web simple à l'aide de Spring Boot
Créer une application TODO dans Java 7 Créer un en-tête
Créons une application de calcul avec Java
Déployer des applications Web Java sur Heroku
[Azure] J'ai essayé de créer une application Java pour la création d'applications Web gratuites - [Débutant]
Exemple simple de rappel dans l'exemple de classe anonyme Java Part2
Créez une application de recherche simple avec Spring Boot
Créez un tableau d'affichage simple avec Java + MySQL
Connectez-vous à Aurora (MySQL) depuis une application Java
java j'ai essayé de casser un simple bloc
Une collection de questions simples pour les débutants Java
Connexion SSH à l'aide de SSHJ à partir de l'application Java 6
Exemple de code Java 02
Exemple de code Java 03
État de l'application Java 9+
Échantillon de sélénium (Java)
Exemple d'interface graphique Java
Exemple de code Java 01
J'ai fait un jeu de problèmes de calcul simple en Java
Comment exécuter l'application SpringBoot en tant que service
[Tutoriel] Télécharger Eclipse → Lancer l'application avec Java (Pléiades)
Entraînez-vous à créer une application de chat simple avec Docker + Sinatra
[Tutoriel] Télécharger Eclipse → Lancer l'application Web avec Java (Pléiades)
[Mémo personnel] Créez une copie complète simple avec Java
Faisons un robot! "Une simple démo de Java AWT Robot"
Développer une application Java qui utilise Amazon SQS (partie 1)
Créez une application JAVA WEB et essayez OMC APM
Développer une application Java qui utilise Amazon SQS (partie 2)
Java11: exécuter le code Java dans un seul fichier tel quel