LES CAHIERS d'AIX

Publication réservée aux abonnés du Point Service AIX
Janvier 1998



Transaction Series



Sophie RICHAUD



Introduction



Nouvelle version, enrichie, du Transaction Server,
Transaction Series regroupe :


Cet article vous informe sur :



Transaction Series



Composants


Transaction Series inclut les produits suivants :


Tous les produits inclus supportent l'an 2000.


Plates-formes


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.


Medias


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.


Produits supportés


Transaction Series supporte les produits pré-requis ou optionnels
suivants :


Nouveautés du CICS 4.2


CICS 4.2, basé sur le CICS 211, comprend les dernières mises à jour et les
nouvelles fonctions suivantes :


Changements concernant le fichier "console.msg"


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


Détection de boucle


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.


Amélioration du diagnostic d'abend


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.



Modifications dans le "dump output"


Génération des dumps de transactions

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 :


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

| +--------------------------------------------------------------------------------+





Dump de transaction pour abend A158

Avec Transaction Series, les dumps de transaction pourront être générés
pour les "abend A158".



Informations nouvelles dans les dumps de transaction

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



Informations nouvelles concernant les programmes

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.



La commande EXEC CICS formatée

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.



Numéro de ligne du "source" pour un programme non-EDF

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



Modification dans les commandes externes



Les nouveautés d'Encina 4.2



Développement de CORBA


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 :




DCE

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

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 :



Amélioration de l'administration



Ajout de l'ENCCP

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 :




Amélioration de l'ENCONSOLE

L'Enconsole est une console interactive dont l'utilisation
est facilitée par une interface graphique améliorée.


Modifications de la PPC (Peer-to-Peer Communication)


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



Nouveautés de MQSeries 5.0



Fonctions nouvelles principales



DMRC (Database Message Ressource Coordination)

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 :

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


Smart Message Distribution

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.


Performances améliorées


D'autres améliorations contribuent également à l'obtention de
meilleures performances...


Réponses aux besoins des Clients adressés



Support de messages plus volumineux




Threads d'application

Maintenant, MQSeries 5.0 gère mieux les environnements "multi-threads",
et toutes ses bibliothèques sont ré-entrantes.


Répertoire de DCE

MQSeries étend l'utilisation optionnelle du répertoire de DCE, permettant ainsi :


Langages de programmation additionnels

Le support de Java, de C&supplus.&supplus., du Cobol IBM et de PL/I IBM est maintenant assuré.


Composants du canal de messages



Intégration dans l'IBM Software Server


L'IBM Software Server définit certaines caractéristiques concernant
les fonctions "serveur" des produits (installation, administration,
format de la documentation, ...).


Administration et sécurité



Installation

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.


Administration des canaux de messages

Elle est également rendue plus facile.


Sécurité

Des exits sont fournis :


Résolution de problèmes

La résolution de problèmes va être facilitée par :



[ Top of Page | Previous Page | Next Page | Table of Contents ]