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