LES CAHIERS d'AIX
Publication réservée aux abonnés du Point Service AIX
Janvier 1998
Sophie RICHAUD
Nouvelle version, enrichie, du Transaction Server,
Transaction Series regroupe :
- Les deux produits transactionnels d'IBM et de Transarc(TM) :
Cics et Encina.
- Le produit de messagerie d'IBM : MQseries.
- Une suite de logiciels :
- Elargissant les possibilités de connexion des machines clientes.
- Incluant le support de l'internet / intranet et Lotus Notes.
- Permettant de créer des applications e-business(TM) complètes.
Cet article vous informe sur :
- Les composants logiciels inclus dans le Transaction Series.
- Les plates-formes supportées.
- Les nouveautés des moniteurs transactionnels Cics 4.2 et Encina 4.2.
- Les nouveautés de MQSeries 5.0.
Transaction Series inclut les produits suivants :
- Moniteur Transactionnel : Cics distribué 4.2.
- Moniteur Transactionnel : Encina 4.2.
- Client Cics Universel 2.0.2 (OS/2, WINDOWS NT/95/3.1(TM), MAC(TM) et DOS) incluant :
- Passerelle pour Internet : Cics Internet Gateway 2.0.2.
- Passerelle pour Java(TM) : Cics Gateway for Java 1.1.3.
- Passerelle pour Lotus Notes(TM) : Cics Link for Lotus Notes 2.0.2.
- Client Cics Unix 2.1.1 (AIX, SOLARIS(TM) et HP-UX(TM)) incluant :
- Passerelle pour Internet : Cics Internet Gateway 2.0.2.
- Passerelle pour Java : Cics Gateway for Java 1.1.3.
- Client DCE/Encina : DE Light 2.1.
- Serveur MQSeries 5.0.
- Client MQSeries 5.0.
- Domino Go Web Server 4.6 (sauf en France, pour des raisons de dépôt
des clés de chiffrement).
- Serveur de sécurité : DCE Cell Directory Service et Security Service 2.1.
Tous les produits inclus supportent l'an 2000.
Transaction Series fonctionne sur AIX 4.2.1 et AIX 4.3.
Note: Ce produit est également disponible sur les plates-formes HP-UX 10.20,
Solaris 2.5.1 et Windows Nt 4.0 ; se référer à la lettre d'annonce pour
connaître les restrictions.
Les modules de base de DCE (Distributed Computing Environment) se
trouvent sur le CD-Rom AIX.
On trouve, en standard, sur des CD-Rom séparés, la documentation de
CICS et d'ENCINA en formats "html" et "post-script",
ainsi que deux brochures "papier" (Quick Beginnings et
Transaction Series Concepts and Facilities)
accompagnant les différentes notes d'installation.
Les autres brochures "papier" sont à commander.
Transaction Series supporte les produits pré-requis ou optionnels
suivants :
- DCE Base 2.1
- IBM Communication Server for Aix 4.2
- IBM C&supplus.&supplus. for Aix 3.1.4.6
- IBM Cobol Set for Aix 1.0.6
- IBM PL/I Set for Aix 1.2
- MF Cobol for Aix 3.1.90J
- MF Cobol for Windows NT 4.0.20J
- DB/2 for Aix 2.1.2
- Database Server for Aix 4.0
- DB/2 Universal Database enterprise (or extended) for Aix 5.0
- Oracle 7.3.3
- Oracle 8.0.3
- Sybase 11.1
- Informix 7.2 (seulement pour le langage "C").
CICS 4.2, basé sur le CICS 211, comprend les dernières mises à jour et les
nouvelles fonctions suivantes :
- Fichier "console.msg".
- Détection de boucle.
- Diagnostic d'abend.
Transaction Series apporte la possibilité de limiter la taille du fichier
console (appelé couramment : "console")
à l'aide du paramètre MaxConsoleSize de la définition de la
région (RD - Region Definition).
Le minimum est de 100Kb ;
0 est une valeur spéciale indiquant une taille infinie, soit un seul fichier.
Lorsque la taille limite est atteinte, la région bascule sur un nouveau fichier
après avoir augmenté de "1" l'extension numérique du fichier précédent.
L'ancienne "console"
peut alors être archivée ou effacée.
Le nom de la "console"
active est contenu dans le fichier
"console.nam".
Le même principe a été mis en oeuvre pour le fichier
"symrecs" ; la taille
maximale de ce fichier est la même que celle de la console.
Un nouvel utilitaire "cicstail" permet d'éditer facilement
les derniers messages des fichiers "console" et "CSMT".
Il s'agit, en fait, de nouveaux paramètres qui permettent de fixer une
limite d'utilisation de la CPU par une transaction. Lorsque cette limite est
atteinte, le système génère un message d'avertissement ou produit un
abend AICA sur la transaction.
Le temps CPU est calculé à l'aide d'appels système "getrusage".
Le paramètre MaxTaskCPU peut être positionné (donc avoir une valeur
différente de "0") dans la définition de la région (RD -
Region Definition) ou dans la définition de la transaction
(TD - Transaction Definition). Si
ce paramètre a une valeur non nulle dans les deux définitions, c'est la
valeur définie dans la "TD" qui est utilisée.
Dès qu'une transaction dépasse sa limite CPU, CICS consulte
l'entrée MaxTaskCPUAction qui lui indique
s'il doit produire un message d'avertissement ou un
abend AICA.
Cette nouvelle fonction permet un meilleur diagnostic des abends
applicatifs sur un système de production, sans avoir recours aux traces ou
aux outils de débogage en ligne, ni à reproduire l'abend.
Ce diagnostic s'applique plus particulièrement aux applications écrites en
Cobol IBM, mais les autres langages bénéficient également de la majorité
des améliorations.
Le contrôle de la génération des dumps se fait toujours à l'aide des
paramètres suivants :
+--------------------------------------------------------------------------------+
| |
|Ressource Paramètre Valeur Effet |
| |
| TD TransDump O/N Prend un dump si abend de la transaction |
| RD ABDump O/N Dump de transaction sur abend ASRB si N |
| RD PCDump O/N Dump de transaction sur abend ASRA si N |
| |
| RD TransDumpTrace O/N Inclut la trace principale dans |
| le dump de transaction |
| |
+--------------------------------------------------------------------------------+ |
TransDumpTrace est un nouveau paramètre affectant
le contenu des dumps transaction ; il permet
d'y inclure la trace principale.
Pour que cette possibilité soit effective, il faut :
- Que la trace principale soit active
(CEMT SET, CECI, EXEC CICS / TRACE ON)
- ET que le type de trace voulue soit précisé
(CECI, EXEC CICS / TRACE SYSTEM / EI, USER, SINGLE).
Note: Le buffer de trace contiendra les entrées de trace pour
toutes les tÔches actives de la région, et non pas seulement
celles de la transaction ayant généré le dump.
Il faut donc rechercher le numéro du processus
concerné dans la section TasTA du dump :
+--------------------------------------------------------------------------------+
| |
| TaskControl Area Header |
| .... Aix processID = 34567 |
|Le contenu du buffer de trace contient également le numéro du processus, |
|en dixième position : |
| 585 CICS Tue Apr 22 15:05:30 GMT 208381696 34567/1 |
| cics5 (63696335) reg1 cicsas I TasPR_CallApplication(void) |
| |
+--------------------------------------------------------------------------------+ |
Avec Transaction Series, les dumps de transaction pourront être générés
pour les "abend A158".
Toutes les informations du "call stack" peuvent être visualisées
quel que soit le langage de programmation (C, C&supplus.&supplus.,
Cobol IBM, PL/I IBM, MF Cobol).
Note: Le nom des fonctions contenues dans les routines écrites en C&supplus.&supplus.
sont à déchiffrer en utilisant l'utilitaire du "xlC:" :
/usr/lpp/xlC/bin/c++filt
Les informations d'offset pour tous les langages se situent maintenant au
début du dump formaté ; auparavant elles n'apparaissaient pas.
Elles peuvent être utiles lors des abends causés par un signal généré dans
le code de l'application (ASRA / ASRB) ou pour un abend A158.
L'offset de l'instruction courante représente l'offset en
hexadécimal dans la routine courante où l'erreur est apparue. Il indique généralement
la dernière instruction correctement exécutée.
Le contenu du registre suivant le "call stack" peut
également être utile...
La structure cics_args, figurant dans la section TasPR
du dump, se présente de la manière suivante :
+--------------------------------------------------------------------------------+
| |
|cics_args : |
|Buffer Address = 0X20869428 |
|Function Code = 43 (INQUIRE TASK) |
|CEDF Line number = 37 |
|Length of Working Storage = 416 |
|Pointer to Working Storage = 0X2FF1E910 |
|Bitmask of option codes = |
|BIT OPTION |
|29 NOHANDLE |
|Number of aggregate options = 4 |
|Aggregate option codes = |
|CODE OPTION |
|388 TASK |
|392 TCLASS |
|107 FACILITY |
|447 PROCESSID |
|Filler = 2bytes |
|Programming language = C |
|Pointer to Exec Interface Block = 0X202F0DD0 |
|Option argument data ... |
| |
+--------------------------------------------------------------------------------+ |
Si cette présentation est tronquée, cela signifie qu'aucun EXEC CICS
n'a encore été exécuté par le programme CICS.
Le nom complet du programme CICS, tel qu'il est défini dans le
Program Definition (PD), avec le chemin complet (nom
du fichier Aix chargé), est indiqué dans la section Program Control
Information (PCI).
Le code du programme CICS ainsi que les données, qui étaient
jusqu'à présent affichés seulement en hexadécimal, seront également
affichés en "ASCII" pour permettre une localisation plus facile.
L'EXEC CICS en cours est maintenant formaté dans la section
"TasPR" du dump, dans la rubrique
"EXEC CICS command string".
On peut y trouver toutes les options, celles spécifiées et celles prises
par défaut ("NOHANDLE" pour les applications C et C&supplus.&supplus.),
ainsi que tous les arguments de la commande, en format hexadécimal et ASCII.
Si cette rubrique ne figure pas le dump, cela signifie que
l'abend s'est produit avant une commande EXEC CICS.
Que le programme soit ou non préparé à fonctionner sous CEDF,
le numéro de ligne d'un code source, pour une commande EXEC CICS, peut être
inclus dans la section "TasPR" du dump de
transaction.
Cette information figure dans la structure "cics_args".
On peut alors se reporter au fichier source comportant l'extension
".ccs", ".ccp" ou ".pli".
- L'option "-d", qui existe déjà dans les commandes CICS
de compilation, "CICSTRAN" et "CICSTCL",
permet maintenant de numéroter les commandes EXEC CICS à
partir du fichier source, pour le faire figurer dans la structure
"cics_args", comme expliqué précédemment.
- L'option "-e" n'est plus nécessaire.
- L'option "-s", qui existe aussi dans "CICSTCL",
permettra d'obtenir :
- Un listing assemblé pour des applications écrites en C,
C&supplus.&supplus. et Cobol IBM.
- Un listing "data map" pour les programmes écrits en Cobol IBM.
Encina 4.2 correspond à la version 2.5 d'Encina augmentée des dernières
mises à jour.
Les principaux changements de la version 4.2 par rapport à la version
2.0, commercialisée dans le Transaction Server, concernent l'utilisation
de services définis dans CORBA (Common Object Request Broker
Architecture) par Encina&supplus.&supplus. afin d'offir
un modèle de "programmation orienté objet" pour les
transactions distribuées. Encina&supplus.&supplus.
est basé sur les
spécifications de CORBA OTS (Object Transaction Service).
L'OTS 1.1 a été presqu'entièrement mise en oeuvre par IONA(TM)
dans son produit "Orbix 2.3c", actuellement supporté par
Encina&supplus.&supplus.
Note: "Orbix 2.3c" est un produit commercialisé séparément.
La précédente version d'Encina&supplus.&supplus. ne pouvait être basée que
sur DCE CDS (Cell Directory Service), obligatoire,
et DCE SS (Security Service), facultatif,
selon un modèle de "programmation objet propriétaire".
Maintenant, les trois modes de mise en oeuvre suivants cohabitent :
- Encina&supplus.&supplus./DCE (modèle de "programmation distribuée"
propriétaire, en C&supplus.&supplus.).
- Encina&supplus.&supplus./ORBIX (modèle de programmation utilisant CORBA,
en C, C&supplus.&supplus., Java, Ada, Cobol ou Small Talk).
- Mode mixte (clients et serveurs peuvent utiliser les deux précédents
types de programmation).
DCE est une spécification d'environnement distribué. Elle est définie par
l'OSF (Open Software Foundation), organisation réunissant les groupes
qui participent à la recherche et au développement de standards sur les
systèmes ou technologie ouverts.
DCE 1.1 a été amélioré et mis en oeuvre par IBM sous
le nom de "IBM DCE 2.1".
Ce dernier apporte les services et outils supportant la
création, l'utilisation et la maintenance d'applications distribuées
en environnement hétérogène.
CORBA est une spécification de standard d'objets distribués. Elle est
développée par l'OMG (Object Management Group), consortium regroupant
plus d'une centaine de sociétés (SUN, IBM, HP, Microsoft, Digital, Netscape).
CORBA est ensuite mise en oeuvre individuellement par les diverses
sociétés, selon des spécifications très précises.
Le noyau standard de Corba 2.2 définit :
- L'architecture ORB (Object Request Broker).
- L'IDL (Interface Definition Language).
- L'interface et le fonctionnement des bibliothèques de classe "runtime".
- Le "language maping", qui permet de choisir son langage de programmation.
- L'interopérabilité des différentes versions ORB.
- Le dialogue avec COM.
L'ENCCP (ENCina Control Program)
est une interface de haut niveau permettant de gérer les cellules
Encina Monitor.
Développée sur la base de DCECP, l'outil d'administration de DCE,
elle incorpore celui-ci et profite de ses fonctions.
L'interface ENCCP inclut les opérations de démarrage, de configuration
et d'arrêt des serveurs, ainsi que d'autres tÔches d'administration.
Elle peut être utilisée pour une programmation de plus haut niveau et
fonctionne des trois manières suivantes :
- En mode interactif :
l'utilisateur tape " enccp ", puis spécifie ses commandes.
- En mode commande globale :
par exemple : enccp -c sfs show Sfs1
- En mode script :
par exemple : enccp MyScript
L'Enconsole est une console interactive dont l'utilisation
est facilitée par une interface graphique améliorée.
Pour la communication selon le protocole SNA "LU 6.2" et la coordination de
transactions distribuées avec d'autres applications "CICS grands systèmes",
de nombreuses applications ENCINA utilisent les TRPC (Transactionnal
Remote Procedure Call) entre des processus ENCINA et la PPC.
Ces types d'applications n'ont pas besoin de toute la flexibilité des
interfaces de programmation CPI-C et CPI-RR, mais d'une interface
simplifiée ressemblant plus aux TRPC d'ENCINA.
"Encina 4.2" fournit cette interface à l'aide de l'API CICS "DPL"
(Distributed Program Link).
Le DPL permet aux applications ENCINA
d'invoquer une transaction CICS sur un autre système sans se servir des
interfaces CPI-C et CPI-RR.
La mise en oeuvre du DPL avec ENCINA utilise la passerelle
"encina PPC gateway" et supporte la synchronisation de
niveau 2 (communication entièrement transactionnelle avec d'autres
applications CICS).
Note: Ce composant PPC gateway a également été ajouté sur la plate-forme
Windows NT(TM).
Le changement le plus important de MQSeries 5.0 est la possibilité de
coordonner, de manière simple, à l'aide de messages,
les mises à jour des bases de données.
Il n'est plus nécessaire d'avoir un TM (Transaction Monitor),
ou un programme d'application compliqué, pour gérer les changements
dans les bases de données et les messages à l'intérieur
d'une seule LUW (Logical Unit of Work).
De manière concrète, dans une application MQSeries devant effectuer des appels SQL :
- on utilisera le nouveau verbe MQBEGIN pour enregistrer une LUW,
- onpourra ensuite utiliser :
- MQCMIT pour effectuer un "commit"
- MQBACK pour effectuer un "rollback"
Le lancement de la resynchronisation entre MQSeries et la base de
données est fourni par le DMRC. Cette resynchronisation ne
concerne pour l'instant que DB/2 et Oracle(TM).
SMD est la possibilité de réduire le trafic sur le réseau.
Dans ce cas, l'envoi d'une même information à une liste de distribution,
se traduira en fait par l'envoi d'un seul message par noeud supportant
les files d'attente de plusieurs utilisateurs ; l'information sera
alors dupliquée automatiquement en local.
- Un module d'envoi rapide de messages non-persistants a été mis en oeuvre,
augmentant ainsi le nombre de messages par seconde.
- L'architecture interne du canal a été rationnalisée afin d'améliorer
les performances des messages persistants et non-persistants.
Ce changement concerne surtout les communications entre deux systèmes
MQSeries 5.0, mais aussi celles entre un système en version 5.0 et un autre en
version 2.0.
D'autres améliorations contribuent également à l'obtention de
meilleures performances...
- La précédente limite de 4Mb est maintenant portée à 100Mb.
- Get/Put partiels :
Les messages peuvent être construits ou récupérés par segments.
Les programmes pourront ainsi gérer les messages plus
volumineux que la taille d'un buffer, ou alors gérer plusieurs
enregistrements à l'intérieur d'un seul message.
De même, ce support permet d'envoyer de très gros messages vers des files
d'attente qui ne permettaient pas, auparavant, de recevoir de tels fichiers.
- Messages de référence :
Une nouvelle caractéristique du MQPUT est de
"passer" les messages par référence, donc de donner en fait un pointeur
logique sur une donnée externe telle qu'un fichier, une image graphique ou autre.
Le MQGET saura traiter ces messages à l'aide de l'en-tête de ceux-ci.
Maintenant, MQSeries 5.0 gère mieux les environnements "multi-threads",
et toutes ses bibliothèques sont ré-entrantes.
MQSeries étend l'utilisation optionnelle du répertoire de DCE, permettant ainsi :
- de réduire le nombre d'objets MQSeries nécessaires,
- de standardiser les fonctions de répertoires sur les différentes plates-formes.
Le support de Java, de C&supplus.&supplus., du Cobol IBM et de PL/I IBM est maintenant assuré.
- Novell SPX(TM) est un nouveau protocole supporté.
- Un intervalle minimal d'attente de batch (spécifié en millisecondes)
est mis en oeuvre, de manière à laisser le temps nécessaire au programme
batch pour s'exécuter et augmenter ainsi les performances.
- Les programmeurs de systèmes de communication disposent maintenant
des "exits MCA" chaînés pour coder des
exits séparés pour les fonctions de communication, et peuvent
les utiliser conjointement avec d'autres types d'exits.
L'IBM Software Server définit certaines caractéristiques concernant
les fonctions "serveur" des produits (installation, administration,
format de la documentation, ...).
Elle est simplifiée car les objets par défaut sont créés automatiquement.
L'exécution séparée de MQSC n'est plus nécessaire.
Elle est également rendue plus facile.
Des exits sont fournis :
- de sécurité, fonctionnant avec DCE,
- d'envoi et de réception de messages pour
l'encryptage du contenu du message.
La résolution de problèmes va être facilitée par :
- L'ajout de nouvelles fonctions de trace,
- Un utilitaire de stockage des dumps,
- Un dossier RAS, regroupant les informations et
les utilitaires de diagnostic. :poinnoir.
[ Top of Page | Previous Page | Next Page | Table of Contents ]