Les Nouveautés CICS v5.4 1er Décembre 2016 – GSE France Les nouveautés CICS v5.4 L’API pour démarrer des TASKs asynchrone • Trois nouvelles commandes d’API qui vous permettre d’exécuter vos programmes en parallèle CICS Provisioning Toolkit • Un nouvel outil qui vous permettre de décrire une région et la démarrer avec l’invite de commande MQMONITOR • Un nouvelle ressource de CICS pour vous aider de gérer le monitoring de MQ dans CICS Java en CICS • Changements à le modèle de Threads • Les nouvelles fonctionnalités de Java Enterprise Edition 7 • LINK à Liberty et mode de exécution ‘Standard’ pour Liberty Autre petits changements • Un aperçu des autres petits changements © 2014 IBM Corporation 2 TASKs en CICS Imaginez un scénario où vous avez une programme qui doit appeler trois services externes et attendre les réponses. Avant ce changement on devrait attendre la réponse d’un appelle avant de continuer. Si une appelle marche lentement, il ralentit tous les autres. Le cout totale de tel programme est toujours la somme de tous appelles à les services externes. S’on ne veut pas attendre un réponse d’un ou plus services, le temps est perdu. © 2014 IBM Corporation 3 TASKs en CICS Après ce changement vos appelles pourraient faire en parallèle. On attend seulement le plus lent appelle. En résultat, votre TASK marche plus vite. Vous n'êtes plus bloqué par les services que vous avez appelé Nous vous fournissons commandes d’API pour vérifier le résultats de votre appelles ou attendre pour les terminer. © 2014 IBM Corporation 4 API ASYNC Nous avons ajouté trois commandes neufs qui vous permettre de programmer les CICS TASKs asynchrone: • EXEC CICS RUN TRANSID pour commencer nouveaux TASKs • EXEC CICS FETCH CHILD pour retrouver TASKs spécifique qui vous avez commencé • EXEC CICS FETCH ANY pour retrouver au hasard TASKs qui vous avez commencé Les commandes sont disponibles en COBOL, ASM, C et PL1 (actuellement pas Java) © 2014 IBM Corporation 5 API ASYNC Les TASKs sont structurés comme des parents et leur enfants PARENT Chaque TASK peut commencer un nouveau TASK. Le premier est le parent et le deuxième est l’enfant. CHILD 1 CHILD 2 CHILD 3 Un parent peut avoir un ou plus enfants. Si un parent finit avant ses enfants, les enfants avance encore. CHILD 3-1 CHILD 3-2 Un enfant a seulement un parent, mais peut avoir ses propres enfants. © 2014 IBM Corporation 6 API ASYNC EXEC CICS PUT CONTAINER(container) CHANNEL(channel) FROM(struct) FLENGTH(len_struct) BIT RESP(reason) RESP2(response) EXEC CICS RUN TRANSID(transid) CHILD(child) CHANNEL(channel) RESP(reason) RESP2(response) Les données peuvent être passé à vos TASKs enfants avec des CONTAINERs dans la même façon de EXEC CICS LINK Pour commencer un nouveau enfant, utiliser EXEC CICS RUN La paramètre ‘CHILD’ retournerai vous un jeton qui représente le TASK enfant © 2014 IBM Corporation 7 ASYNC API EXEC CICS FETCH CHILD(child) ABCODE(abcode) COMPSTATUS(child_status) CHANNEL(fetch_channel) RESP(reason) RESP2(response) Quand vous voulez retrouver les résultats d’un enfant (ou examiner son statut), utilisez EXEC CICS FETCH CHILD Le jeton qui était retourné à vous plus tôt est utilisé pour identifier l’enfant. EXEC CICS GET CONTAINER(container) CHANNEL(fetch_channel) INTO(struct) FLENGTH(len_struct) RESP(reason) RESP2(response) Ensuite vous pouvez retrouver quelque résultats avec les CONTAINERs © 2014 IBM Corporation 8 ASYNC API Quelquefois, vous ne voulez pas attendre un enfant particulier. EXEC CICS FETCH ANY(child) ABCODE(abcode) COMPSTATUS(child_status) CHANNEL(fetch_channel) Pour chercher tous les enfants RESP(reason) RESP2(response) qui ont terminé, utiliser EXEC CICS FETCH ANY. EXEC CICS GET CONTAINER(container) CHANNEL(fetch_channel) INTO(struct) FLENGTH(len_struct) RESP(reason) RESP2(response) EXEC CICS FETCH ANY retournerai un enfant terminé au hasard Il vous retournerai aussi tous les informations sur le TASK enfant © 2014 IBM Corporation 9 CICS Provisioning Toolkit En bref, CICS PT est un outil pour approvisionner des régions CICS dans un façon automatique utilisant l’invite de commande. ‘Image’ cicsptfile Région CICS CICS1 JVM=OSGi SEC=YES z/OSMF CICS1 © 2014 IBM Corporation 10 CICS Provisioning Toolkit – Un Exemple cicsptfile # de null FROM scratch # Spécifier le type de serveur JVM désirée ENV DFH_REGION_JVMSERVER=Axis2 # Spécifier le variable de WSDIR environnement qui est le emplacement de fichier pour les pipelines # NE CHANGER PAS ENV WSDIR pipeline/wsdir # La PIPELINE créer par cicspt a besoin d’un fichier de configuration à "pipeline/config.xml". # Note: Vous pouvez retrouver cet exemple en le dossier d’installation pour CICS TS COPY jsonjavaprovider.xml pipeline/config.xml # Ajouter un répertoire vide COPY wsdir ${WSDIR} © 2014 IBM Corporation 11 CICS Provisioning Toolkit Chaque développeur peut créer leur propre ‘image’ pour commencer rapidement leur environnement désirée, ou votre administrateur de système peut créer plusieurs de images à l’avance ‘Image’ Développeur Administrateur de système z/OSMF ‘Image’ ‘Image’ ‘Image’ ‘Image’ CICS Region © 2014 IBM Corporation 12 CICS Provisioning Toolkit Il y a cinq étapes de déploiement pour CICS PT. Chaque stage a sa propre commande. image Cicsptfile cicspt build © 2014 IBM Corporation 13 CICS Provisioning Toolkit © 2014 IBM Corporation 14 CICS Provisioning Toolkit Il y a cinq étapes de déploiement pour CICS PT. Chaque stage a sa propre commande. cicspt run image Cicsptfile Approvisionné et commencé CICS environnement cicspt build © 2014 IBM Corporation 15 CICS Provisioning Toolkit © 2014 IBM Corporation 16 CICS Provisioning Toolkit © 2014 IBM Corporation 17 CICS Provisioning Toolkit Il y a cinq stages de déploiement pour CICS PT. Chaque stage a sa propre commande. cicspt run Cicsptfile et build path Approvisionné et commencé CICS environnement image cicspt build Approvisionné et terminé CICS environnement cicspt stop © 2014 IBM Corporation 18 CICS Provisioning Toolkit © 2014 IBM Corporation 19 CICS Provisioning Toolkit © 2014 IBM Corporation 20 CICS Provisioning Toolkit Il y a cinq stages de déploiement pour CICS PT. Chaque stage a sa propre commande. cicspt run Cicsptfile et build path Approvisionné et commencé CICS environnement image cicspt build cicspt start Approvisionné et terminé CICS environnement cicspt stop © 2014 IBM Corporation 21 CICS Provisioning Toolkit Il y a cinq stages de déploiement pour CICS PT. Chaque stage a sa propre commande. cicspt run Cicsptfile et build path Approvisionné et commencé CICS environnement image cicspt start cicspt build cicspt rm Approvisionné et terminé CICS environnement cicspt stop © 2014 IBM Corporation 22 CICS Provisioning Toolkit © 2014 IBM Corporation 23 Nouveau ressource ‘MQMONITOR’ Nous avons ajouté le nouveau ressource ‘MQMONITOR’ qui aide vous de gérer quelque monitors de MQ qui est hébergé par votre région CICS. • Il marche bien avec le MQCONN ressource en CICS • Monitors peut être un ‘trigger monitor’, un ‘MQ bridge monitor’ ou un monitor fabriqué par vous. • Monitors peut commencer automatique, en parallèle de vos MQCONNs • On peut créer beaucoup de MQMONITORs en le même région CICS • Ca vous permettre de gérer plus facile vos monitors sans utiliser manuellement ‘CKQC’ © 2014 IBM Corporation 24 Attributs pour les MQMONITORs DEFINE MQMONITOR(MQMON001) GROUP(MQMON) AUTOSTART(YES) STATUS(ENABLED) TRANSACTION(CKTI) AUTOSTART spécifie si le monitor commencer quand votre MQCONN commence. TRANSACTION spécifie le transaction CICS pour votre monitor QNAME spécifie le nom de la queue en MQ qui vous voulez suivre QNAME(CICSTEST.MQMON001.INITQ) MONUSERID(CICSUSER) MONUSERID spécifie le user qui exécute le programme de monitor © 2014 IBM Corporation 25 Performance Java – Changements à Modèle de Threads CICS TS v5.3 inclut changements à le modèle de threads en Java. Maintenant, les Threads sont créés lorsque le JVM commence, et sont attachés quand il y a un besoin Thread ‘Pool’ Thread0 Thread1 Thread2 La transaction est maintenant attaché sur un T8 TCB au début de la TASK Ce changement habiliter plus de fonctionnalités de Java EE Il aussi réduit le coût de temps sur processeurs générale © 2014 IBM Corporation 26 Performance Java – Changements à Modèle de Threads Thread Pool CICS TASK Thread0 Thread1 Demande HTTP Thread2 © 2014 IBM Corporation 27 Java Efficacité – Changements à Modèle de Threads Thread Pool Thread0 Thread1 Réponse HTTP Thread2 © 2014 IBM Corporation 28 Performance – Comparaison de Modèles 0,50 26% réduction de coute totale 0,45 CPU per request (ms) 0,40 0,35 0,30 zIIP-eligible 0,25 GCP 0,20 0,15 Moins de le TASK est exécuté par le processeur générale 0,10 0,05 0,00 CICS V5.2 CICS V5.3 + PI54263 © 2014 IBM Corporation 29 Performance – Les résultats pour une Exemple Servlet © 2014 IBM Corporation 30 CICS Java - Nouvelle Fonctionnalités de Java Enterprise 7 Web Sockets Modèle conversationnel pour la communication entre applications sur ligne Java Mail APIs et functionalities pour créer les emails en Java Java Batch API et services qui permettre la création et exécution de programmes batch © 2014 IBM Corporation 31 CICS et Java EE 7 – Web Sockets CICS Liberty JVM server CICS Liberty JVM server Websocket Liberty en Linux Websocket Autre Serveur JEE Websocket Websocket © 2014 IBM Corporation 32 CICS et Java EE 7 – Batch batch-1.0 batchManagement-1.0 Ecrivez ‘batchlets’ en Java qui contenaient votre logique d’metier. Il fournit un interface REST pour commencer les programmes batch. Utiliser job.xml fichiers pour définir les programmes batch. Il fournit un outil pour commencer les programmes batch par l’invite de commande Il soutenir aussi JMS et logs pour vos programmes batch. © 2014 IBM Corporation 33 CICS et Java EE 7 – Batch Liberty JVM server Queue Batch Container Liberty JVM server Batch Container Batch Dispatcher Batch Executor Job Repository Type 4 DB2 © 2014 IBM Corporation 34 CICS and Java EE 7 – Batch Processing L’adresse et port pour JVMSERVER Nom de bundle en Liberty Nom de job.xml fichier pour le batchlet © 2014 IBM Corporation 35 CICS and Java EE 7 – Batch Processing © 2014 IBM Corporation 36 Link à Liberty Disponible en CICS TS V5.3 APAR PI63005 WLPJVMS Programme COBOL EXEC CICS LINK PROGRAM(WLPLINK) CHANNEL(MYCHANNEL) Programme WLPLINK.java © 2014 IBM Corporation 37 Link à Liberty Plus que EXEC CICS LINK… public class LinkToLiberty { @CICSProgram(value = "LINKPROG") public void writeTsq() throws CicsException, IOErrorException{ TSQ tsq = new TSQ(); tsq.setName("EXAMPLEQ"); tsq.writeString("TESTDATA"); } } © 2014 IBM Corporation 38 Link à Liberty @CICSProgram(value = "LINKPROG") CEDA INSTALL BUNDLE(LINKBUND) CICS Bundle © 2014 IBM Corporation 39 Mode Standard de Liberty en CICS Mode Intégré de Liberty Mode Standard de Liberty Mode Intégré est le mode d’exécution par défaut en CICS Mode standard de Liberty est un mode d’exécution sans fonctionnalités de CICS Quand les threads commencent, ils se enveloppé automatique dans un TASK CICS Les threads neufs commencent sans la fonctionnalité de CICS Tous les fonctionnalités CICS sont dispensables à votre programmes S’on voudrait utiliser les fonctionnalités CICS, on peut utiliser le ‘CICS Executor Service’ © 2014 IBM Corporation 40 Mode Standard de Liberty en CICS Capabilité Mode intégré Mode Standard Java EE 6 Web Profile Web Profile Java EE 7 Web Profile Full Platform API pour Java en CICS Oui Oui, par runAsCICS DB2 and MQ Native Oui Oui, par runAsCICS Déploiement dans un CICS Oui Bundle Oui JVM server créer et contrôler Liberty Oui Oui Optimisation pour la modèle de Threads en CICS Oui Non © 2014 IBM Corporation 41 Mode Standard de Liberty – zIIP Offload Un rapport de performance de Graham Rawson Utilisant WebSphere DayTrader 3 Java EE application de référence La rapport entière: IBM CICS Performance Series: A CPU Utilization Study of Java EE applications running in CICS TS V5.3 © 2014 IBM Corporation 42 Un aperçu d’autre petits changements • Nouveaux transactions ‘CEDG’ et ‘CEDY’ qui sont les mêmes que ‘CEDF’ et ‘CEDX’, mais sont en lecture seule • CICS utilise maintenant ‘system autoinstall’ pour installer les programmes requis par LE. • Le défaut pour le CICS XPTKT SIT est maintenant YES, donc CICS va vérifier avec RACF (où votre fournisseur de sécurité) avant créer un PASSTICKET. © 2014 IBM Corporation 43 Un aperçu d’autre petits changements • Améliorations pour les statistiques de TCP/IP pour les effets de l’option ‘SOTUNING’ • Un nouveau TDQ adaptateur pour traiter les événements et les écrire sur un TDQ © 2014 IBM Corporation 44 C’est disponible où le CICS v5.4 version beta On peut télécharger gratuitement le version beta à partir le site web: http://www.ibm.com/cics/openbeta Pour registrer votre intérêt pour les versions futur de CICS, envoyer un email à ‘CICS Early Programs Coordinator’: [email protected] On peut aussi rejoindre la collaboration de design pour CICS (SVP demande moi après la présentation) © 2014 IBM Corporation 45 Merci d’écoute N’hésitiez pas de me contacter par email à: [email protected] © 2014 IBM Corporation 46