JCL pour SAP - Rackcdn.com
Transcription
JCL pour SAP - Rackcdn.com
Automation Engine 10 Base de connaisances Version: 10.0.3 Date: 2014-09-11 Automic Software GmbH ii Copyright Copyright Les logos Automic ® et Automic ® sont des marques déposées appartenant à Automic Software GmbH (Automic). L'utilisation de toutes les marques déposées nécessite une autorisation explicite écrite et est soumise aux conditions de la licence. Les logiciels et/ou le programme sont la propriété protégée d'Automic Software. L'accès et l'utilisation de ces derniers sont soumis à des conditions de licence devant être approuvées par écrit. Les logiciels et/ou le programme sont également protégés par des droits de reproduction par des contrats internationaux ainsi que par les lois nationales et internationales. Un accès et/ou une utilisation non autorisés peuvent entraîner des poursuites civiles et pénales. La copie non autorisée et d'autres formes de reproduction partielle ou totale, la décompilation, la reproduction, la modification, ou le développement de produits dérivés du logiciel sont strictement interdits. Le nonrespect de ces conditions peut entraîner des poursuites pénales. Sous réserve de modifications. Aucune responsabilité ne sera acceptée pour toute modification, omission, erreur d'impression ou de production. Toute reproduction, totale ou partielle, est strictement interdite. © Copyright Automic Software GmbH. Tous droits réservés. Automation Engine iii Contents 1 Terminologie - Machines, programmes et fichiers 1 2 Heure 6 3 Informateur de Job de l'Agent 8 4 Automation Engine et NAT 10 5 Codes d’erreur externes 11 5.1 COBOL - Codes d'erreur des fichiers Texte d'origine de la description du compilateur 5.2 COBOL - Codes d'erreur d'exécution Texte d'origine de la description du compilateur 11 11 14 14 5.3 Messages d'erreur de la pile TCP/IP 34 5.4 Codes d’erreur UNIX 36 5.4.1 Codes d'erreur dans les messages du log de l'Agent 36 Remarques 36 5.4.2 DEC OSF 37 Codes d'erreur Alpha - DEC-OSF/1 - Digital UNIX 4.0 5.4.3 HP-UX 37 40 Codes d'erreur HP-Workstation (9000), HP-UX 9 40 Codes d'erreur HP-Workstation (9000), HP-UX 10 42 5.4.4 IBM AIX Codes d'erreur Power-PC - AIX 4.1 5.4.5 Sun OS (Solaris) 45 45 48 Codes d'erreur Sparc, Solaris 1 version 4,1 et supérieure 48 Codes d'erreur Sparc, Solaris 2 version 5.5 et supérieure 51 Codes d'erreur Intel, Solaris version 2.4 et supérieure 54 5.5 Codes d’erreur Windows 57 5.5.1 Win32 - Codes d'erreur (0-999) 57 5.5.2 Win32 - Codes d'erreur (1 000-1 999) 68 5.5.3 Win32 - Codes d'erreur (2 000-5 999) 96 5.5.4 Win32 - Codes d'erreur (6 000-11 999) 114 6 Prise en charge SNMP 137 6.1 Généralités sur SNMP 137 6.2 Automation Engine et SNMP 137 iv Contents Mode Agent maître sous UNIX 6.3 Mode Agent sous UNIX 139 139 Agent maître (conseillé) 139 Sous-agent 140 HP-UX 141 6.4 FAQ et glossaire du sous-agent SNMP 141 Termes importants : 142 Questions fréquemment posées : 142 6.5 Installation 6.5.1 Installation du sous-Agent SNMP (UNIX) 144 144 Prérequis 144 Fichiers fournis 144 Installation 145 6.5.2 Sous-Agent SNMP pour UNIX 146 Structure du fichier ucsnmp1.ini 146 Exemple de fichier INI 148 6.5.3 Installation du sous-Agent SNMP (Windows) 148 Prérequis 149 Fichiers fournis 149 Installation 149 6.5.4 Sous-Agent SNMP pour Windows 150 Structure du fichier ucsnmp1.ini 150 Exemple de fichier INI 152 6.5.5 Configuration du service SNMP de Windows 152 Prérequis 152 Déroulement 152 6.6 MIB 154 6.6.1 Structure de la MIB 154 6.6.2 Agent Data Group 155 6.6.3 Agent Control Group 156 6.6.4 Agent Work Group 156 6.6.5 System Group 158 6.6.6 Client Group 160 6.6.7 Server Group 162 Automation Engine v 6.6.8 Executor Group 165 6.6.9 Blocking Point Group 168 6.6.10 CallOperator Group 170 6.6.11 Interruptions SNMP générées 172 Résumé des interruptions 172 Description des interruptions 173 6.7 Licence Net-SNMP 7 L'Automation Engine et les systèmes cible 177 182 7.1 L'Automation Engine et BS2000 182 7.1.1 archive de texte BS2000 182 Situation de départ 182 La solution : archive de texte BS2000 182 Intégration dans BS2-TOOLS 182 Programme BS2-TAR 183 CD AE fourni 183 7.1.2 Moteur/Agent d'automatisation AE - BCIN pour établissement de la connexion 183 7.1.3 Agent BS2000 - Prise en charge du Transfert de Fichier 184 Attributs de fichier pour la destination Exemple 184 184 Conserver les attributs originaux 185 Eléments de bibliothèque en tant que source et cible 185 Exemples Limitations lors du Transfert de Fichiers PAM 185 186 7.1.4 Utilitaire pour la Tâche RFC 186 7.1.5 Agent - Numéros de port définis librement 186 7.1.6 Commande de console BS2000 187 7.1.7 Commande de système d'exploitation BS2000 190 7.2 L'Automation Engine et les bases de données 194 7.2.1 Agent de base de données 194 7.2.2 Connexion aux bases de données Oracle 194 Connexion à une instance Oracle unique 194 Connexions RAC 195 7.2.3 Sybase - Procédures enregistrées 195 7.2.4 Procédures enregistrées par MS SQL Server 195 vi Contents RETURN 195 PRINT 196 RAISE ERROR 196 7.2.5 ILM - Partition-Key Turnaround 196 Généralités 196 Changement de partition 197 Mode Partition-Key Turnaround 197 Oracle 197 Serveur SQL 199 7.3 L'Automation Engine et GCOS 8 7.3.1 Agent GCOS8 - Prise en charge du Transfert de Fichier Format de fichier GFRC 201 201 201 Syntaxe 201 Exemple 202 Format de fichier séquentiel UFF 202 Syntaxe 202 Exemple 202 Format de fichier relatif UFF 203 Syntaxe 203 Exemple 203 Format de fichier indexé UFF 203 Syntaxe 203 Exemple 204 7.3.2 Surveillance d'une fin anormale de l'Agent Job Déroulement 7.4 L'Automation Engine et J2EE/JMX 204 205 207 7.4.1 Agent JMX/Java EE 207 7.4.2 Création de MBeans à partir des services web 208 Généralités 209 Installation 209 Utilisation 212 7.4.3 Agent Java EE/JMX et IBM WebSphere 214 7.4.4 Envoi de messages SOAP à l'aide de MBeans 214 7.5 L'Automation Engine et Micro Focus JES 216 Automation Engine 7.5.1 Jobs dans Micro Focus JES vii 216 Création d'un Job 217 Architecture 218 Variables d'Agent dans Micro Focus JES 218 Exemple de fichier de trace d'exit JES 219 7.6 L'Automation Engine et MPE 7.6.1 Agent – Interaction entre l'Automation Engine et MPE 221 221 Traitement de Jobs 221 Exécution de Transferts de Fichiers 221 Traitement d'Evènements 222 7.7 L'Automation Engine et NSK 222 7.7.1 Agent - Interaction entre l'Automation Engine et NSK 222 Traitement de Jobs 222 Exécution de Transferts de Fichiers 223 CallAPI 224 7.7.2 Exécutions de Jobs sur NSK 225 7.7.3 Traitement automatisé des lignes de commande 225 Utilisation 225 Exemples 226 7.7.4 Agent AE pour HP NonStop Server - Architecture Description des déroulements internes : 227 228 1. Démarrage du Job 228 2. Déroulement du Job 229 3. Fin du Job 229 Conseils : 229 7.7.5 Fichier modèle EMS 230 7.7.6 Configuration des paramètres spécifiques à NSK 231 7.8 L'Automation Engine et Oracle Applications 7.8.1 L'Automation Engine et Oracle Applications 232 232 Termes pour Oracle 232 Termes pour Oracle Applications 232 7.8.2 Codes retour des Jobs OA 7.9 L'Automation Engine et OS/400 7.9.1 Agent - Interaction entre l'Automation Engine et OS/400 233 234 234 viii Contents Traitement de Jobs 234 Exécution de Transferts de Fichiers 235 Traitement d'Evènements 235 CallAPI 236 7.9.2 Agent OS/400 - Prise en charge du Transfert de Fichier Indication de fichiers : Système de fichiers QSYS Attributs 236 236 236 237 7.9.3 Agent - commandes 239 Démarrer l'Agent 239 Arrêter l'Agent 239 Générer la bibliothèque de messages 240 7.10 L'Automation Engine et PeopleSoft 7.10.1 Test de la connexion PeopleSoft Déroulement 240 240 241 7.10.2 Utilisation de Variables de liaison 243 7.10.3 Modifications apportées aux contrôles d'exécution 243 Application 243 Exemples 244 Risques et limitations 245 7.11 L'Automation Engine et SAP 245 7.11.1 Solutions SAP et Job Scheduling avec l'Automation Engine 245 7.11.2 SAP NetWeaver 246 Automation Engine et SAP NetWeaver Intégration dans SAP Enterprise Portal (iViews) 246 249 Introduction 249 Intégration à People 249 Démarrage de Tâches 249 Surveillance des activités 250 Intégration d’informations 251 Planification des processus de chargement des données 251 Planification des chaînes de processus 252 Planification de requêtes dans le batch 253 Intégration des processus 254 Automation Engine Surveillance des canaux de communication SAP XI Plate-forme d'application ABAP ix 254 255 255 Gestion des variantes 255 Gestion de BDC 256 Gestion de Spool 257 Gestion d'Evènements 258 Gestionnaire de critères 259 Reprise de Jobs SAP 260 Reprise des définitions de calendrier SAP 262 Gestion des Jobs 264 Exécution de Jobs dans la pile ABAP (CCMS) 264 Processus fils 266 Jobs interceptés 267 Analyse du code retour d'application des steps SAP 268 JAVA 270 Agent Java EE/JMX pour SAP NetWeaver 270 JMX dans SAP NetWeaver 270 Exécution de Jobs dans la pile Java (JXBP) 274 Gestion du cycle de vie 275 Surveillance de SAP NetWeaver 275 Surveillance des moniteurs 275 Surveillance des Evènements SAP 276 Intégration de l'Automation Engine à SAP Solution Manager 278 Inscription dans le système Landscape Directory 281 Analyse du log système et du log application 282 Commutation des modes de fonctionnement 282 7.11.3 SAP Banking 283 Gestion de processus pour SAP for Banking 283 Déroulements dans SAP Banking 283 Les processus ont un code de retour d'application 284 Démarrage de réseaux de processus et de processus 284 Exigences sur l'Automation Engine 284 Description de fonction AE 285 x Contents JCL pour SAP 7.11.4 SAP Financial Closing Cockpit Intégration de l'Automation Engine dans SAP Closing Cockpit 285 286 286 Conditions 286 Fichiers fournis 286 Installation 286 Activation d'objets avec SAP Closing Cockpit 290 Configuration 290 Exécution 293 7.11.5 SAP Solution Manager Intégration de SAP Solution Manager 293 293 Configuration et test 293 Fonctionnalité 294 SAP Solution Manager - Cas d'application 297 297 Cas d'application 1: rechercher le Job via le Solution Manager 297 Cas d'application 2 : planification des tâches à partir d'une documentation de Job298 Cas d'application 3 : planification directe des tâches Configurer une connexion avec l'Interface Utilisateur 300 301 Fichiers fournis 302 Déroulement 302 7.11.6 Solutions personnalisées Archivage des données dans SAP 303 303 Contrôle avec l'Automation Engine 304 Prérequis dans SAP 304 Objets 305 Déroulement 305 Récapitulatif 306 Traitements en masse 306 Définition 307 Technique 307 Copie de Client dans SAP R/3 307 Copie de Client dans SAP R/3 308 Exposé du problème 308 Automation Engine Copie de Client dans R/3 avec l'Automation Engine xi 308 Dialogue SAP pour l'Automation Engine 309 Automated SystemCopy for SAP 310 7.11.7 Liaison technique 310 Automation Engine et SAP 310 Plusieurs systèmes SAP 310 Agents SAP supplémentaires 310 Objets SAP Security 311 Prise en compte d'attributs de Job 316 Interfaces 317 Interfaces 317 Différences au niveau des fonctions 317 Transport de l'interface 320 Nom du fichier 7.11.8 Importation des modules fonctionnels dans SAP 320 321 Requis : 321 Déroulement: 321 Test de l'interface avec ABAP Workbench 323 Agent pour SAP BW 327 Généralités 327 Vérification du statut 328 Paramètres d'archivage avec R3_ACTIVATE_REPORT 328 ERROR/ERRORLEVEL dans R3_ACTIVATE_SESSIONS 329 ERROR 329 ERROR=IGNORE 329 ERROR=ABEND 330 ERRORLEVEL 330 Conseils sur la recherche d'erreurs 331 Résolution de problèmes 331 Rapport de Job 331 Attributs de l'objet activé 331 Utilisateur CPIC 331 Transactions utiles 331 Fichiers log 331 xii Contents Le log système SAP 331 Traces 332 332 Problèmes lors de l'importation des modules fonctionnels Le programme tp ne se termine pas 332 332 Jobs SAP se terminant par ARCHIVE_INFO_NOT_FOUND 333 Problème de stabilité avec des instances SAP chez de nombreux Agents SAP (connexion RFC) sur un serveur : 334 Problème de transmission de mot de passe à SAP 334 Après la mise à jour vers les versions 2004s et ultérieures de SAP Netweaver, la connexion de l'Utilisateur CPIC ne fonctionne plus 334 7.11.9 Certification Résumé 7.12 L'Automation Engine et Siebel 7.12.1 Démarrage et surveillance de Tâches 7.13 L'Automation Engine et UNIX 336 336 337 337 338 7.13.1 Authentification des données d'identification 338 7.13.2 Shell et options de shell 339 Détermination du chemin Shell 339 Détermination de l'option du Shell 340 7.13.3 ID utilisateur pour l'Agent UNIX 340 7.13.4 Agent UNIX - Prise en charge du Transfert de Fichier 340 7.13.5 Droits pour la suppression de fichiers source dans les Transferts de Fichiers 341 7.13.6 Interrogation du système de fichiers UNIX 342 7.13.7 PREP_PROCESS - Interrogation du système de fichiers UNIX 346 Remarques 347 Exemple 348 7.13.8 Interruption de processus AIX en cas de mémoire insuffisante 348 7.13.9 Agrandissement des fichiers centraux 348 7.13.10 Codes retour des Jobs UNIX 349 7.13.11 Activation de la trace de l'informateur de Job 350 7.13.12 Solaris: Déclencher les Jobs du processus des Agents 352 7.13.13 Restrictions des ressources via ulimit 353 7.14 L'Automation Engine et VMS 7.14.1 Agent VMS - Prise en charge du Transfert de Fichier 353 353 Automation Engine 7.14.2 Codes retour des Jobs VMS 7.15 L'Automation Engine et WebSphere MQ 7.15.1 Connect pour WebSphere MQ Queue Manager xiii 356 357 357 Message XML de la demande 357 Exemple d'une demande 359 Message XML de la réponse 360 7.16 L'Automation Engine et Windows 7.16.1 Démarrage de programmes sous Windows Attributs 360 360 360 Domaine 361 Nom d'utilisateur 361 Mot de passe 361 BATCH (type d'identification) 361 DESKTOP 361 Attention ! 361 Dépendances du système 361 Stratégie pour les Jobs sous Windows 362 Objectif 7.16.2 Programmes de test pour l'Agent Windows 363 363 Fichiers 363 Contrôle des programmes de test 363 Exemple 364 7.16.3 Objet Job Windows Exemple : 7.16.4 Rapport des Jobs Windows 364 364 365 Génération du rapport de Job par Script 365 Objet Job Windows 366 7.16.5 User Account Control dans Windows 2008 et Vista 366 7.16.6 Calcul du nombre CPU 367 7.16.7 Bibliothèques dans Windows 7 367 7.16.8 Agent Windows - Prise en charge du Transfert de Fichier 368 Attributs de fichier Windows 368 Options supplémentaires 368 7.17 L'Automation Engine et z/OS 369 xiv Contents 7.17.1 Agent - Interaction entre l'Automation Engine et z/OS 369 Traitement de Jobs 369 Exécution de Transferts de Fichiers 369 Traitement d'Evènements 370 CallAPI 370 7.17.2 Agent z/OS - Prise en charge du Transfert de Fichier 370 Language Environment Format 370 Allocate format 371 7.17.3 Classes de messages Utilisation d'un système de gestion des sorties 7.17.4 Moniteur d'Evènements 371 372 373 Moniteur d'Evènements comme Tâche autonome (Started Task) 373 Fermeture du moniteur d'Evènements 374 Exit SMF 374 7.17.5 Moniteur de Job externe 375 Fonctionnement du moniteur de Job externe 375 Exit SMF 377 Fichier de filtre 377 7.17.6 Exit SMF 379 Généralités 379 Configuration 380 Démarrage du moniteur d'Evènements 381 Fermeture du moniteur d'Evènements 381 Démarrage à chaud 381 Situations d'exception 381 Scénario d'exemple 382 7.17.7 Evènement de système de fichiers automatique 383 Déroulement 383 Nom de fichier comme filtre 384 Plusieurs critères de filtrage 384 7.17.8 Prise en charge de GDG Configuration 387 387 7.17.9 Reconnaissance et analyse de la fin du Job 387 7.17.10 Codes retour des Jobs z/OS 388 Automation Engine 7.17.11 Exit JCL Configuration 7.17.12 Include MVS.JOBMD_DEFINITIONS Glossaire xv 389 389 389 391 .1 A 391 .2 B 391 .3 C 392 .4 D 393 .5 E 393 .6 F 394 .7 G 394 .8 H 394 .9 I 394 .10 J 395 .11 L 395 .12 M 395 .13 O 396 .14 P 396 .15 Q 397 .16 R 397 .17 S 397 .18 T 398 .19 U 399 .20 V 400 .21 W 401 1 Chapter 1 Terminologie - Machines, programmes et fichiers 1 Terminologie - Machines, programmes et fichiers Conventions de nom [Conventions de nom] [Résumé des programmes et fichiers] Généralités Des conventions typographiques s'appliquent dans la Documentation pour tous les noms de fichier et de dossier. Etant donné que Windows ne fait pas la différence entre les minuscules et les majuscules, vous pouvez saisir les noms de fichier en minuscules. Généralités sur la syntaxe Pour éviter tout problème, seuls des noms de fichier courts (8.3) sont utilisés sur le CD fourni. Ils possèdent la structure de base suivante : UCZKxxxx Z = objectif K = composants de l'Automation Engine xxxx = attribution individuelle Objectif Explication D Interface Utilisateur S Routine serveur (DLL) X Agent Y Utilitaire Syntaxe d'Automation Engine UCSRVTP UCSRV signifie UC4-Server (= Automation Engine) T = type - "c" pour le processus de communication, "w" pour le processus de travail P = processus Syntaxe pour l'Agent Pour les Agents, l'extension suivante de la syntaxe s'applique : UCXJSSVT Automation Engine SSV = ID et version du système A = Tâche (uniquement pour programme de connexion et CallAPI) ID et version du système Matériel, système d'exploitation, version B2. BS2000 B24 SNI, BS2000 Sockets version 1.3 B25 SNI, BS2000 Sockets version 2,1 * B26 SNI, BS2000 Sockets version 2,3 * *) Il faut faire intervenir l'Agent dont la version Sockets est la plus élevée MP. MPE MP6 HP 3000, MPE version 6.5 et supérieure N.. NSK NS1 Tandem NSK NI6 Machine avec processeurs Itanium OAX Oracle Applications M.. z/OS M25 IBM, z/OS version V2R5 et supérieure O.. OS/400 O41 IBM, OS/400 version V4R1M0 et supérieure PSX PeopleSoft R3X SAP SLX Siebel D.. UNIX - DEC OSF DA4 Alpha - DEC-OSF/1 - Digital UNIX - Tru64 UNIX H.. UNIX - HP-UX HP1 HP-Workstation (9000), HP-UX HI6 Machine rx2600 avec Itanium, HP-UX A.. UNIX - IBM AIX A64 Power PC64, AIX AP6 Power PC, AIX L.. UNIX - Linux LI3 Intel, Linux LI6 Itanium, Linux LX6 Linux (x64) LZ3 zSeries, zLinux LZ6 zSeries, zLinux 64 octets C.. UNIX - SCO CI5 Intel, SCO-UNIX ODT 2 3 Chapter 1 Terminologie - Machines, programmes et fichiers CI7 Intel, SCO Unixware U.. UNIX - Sun OS (Solaris) U64 Sparc64, Solaris US8 Sparc, Solaris UI8 Intel, Solaris SI6 Intel 64 octets (x64), Solaris V.. VMS VA7 Alpha, OpenVMS-Alpha VI8 OpenVMS (IA64) VV7 VAX, VAX/VMS W.. Windows WI3 Plates-formes à 32 bits (x86) WI6 Plates-formes à 64 octets (IA64) WX6, Plates-formes à 64 octets (x64) Tâche Objectif M Programme de connexion C CallAPI Résumé des programmes et fichiers [Conventions de nom] [Résumé des programmes et fichiers] Programmes Programme Objectif ucsrvcp Installation d'Automation Engine pour UNIX, processus de communication ucsrvwp Installation d'Automation Engine pour UNIX, Processus de travail ucsrvcp.exe Installation d'Automation Engine pour Windows, processus de communication ucsrvwp.exe Installation d'Automation Engine pour Windows, Processus de travail UCDJ.EXE Programme de démarrage pour l'Interface Utilisateur UCDJ.JAR Interface Utilisateur UCX... Programmes de l'Agent UCYBARBR.EXE Utilitaire pour la recherche dans les fichiers d'archives UCYBCHNG.EXE Utilitaire pour la modification des données exportées Automation Engine UCYBDBCC.JAR Utilitaire pour copier et supprimer des Clients UCYBDBAR.JAR Utilitaire pour l'archivage de la base de données UCYBDBLD.JAR Utilitaire pour le chargement de la base de données UCYBDBRE.JAR Utilitaire pour la réorganisation de la base de données UCYBDBUN.JAR Utilitaire pour le déchargement de la base de données UCYBDBRR.EXE Utilitaire pour la création d'objets audit UCYBCRYP.EXE Programme pour l'encryptage des mots de passe UCYBSMGR.EXE Service-Manager - Service UCYBSMDI.EXE Service-Manager - Programme de dialogue UCYBSMCL.EXE Service-Manager - Interface de ligne de commande UCS...DLL Routines serveur Fichiers Fichier Objectif UC.MSL Bibliothèque de messages UCX.MSL Bibliothèque de messages pour les Agents hors Windows UC_INI.TXT Contenu de base de données initial pour l'Automation Engine DB.Load UC_DEF.TXT Contenu de base de données par défaut pour une nouvelle installation UC_DDL.SQL DDL pour la création de DB (MS SQL Server) CBLRTSS.DLL Système d'exécution Micro Focus Cobol (version 4.0) ZU*.DLL, UC*.DLL Bibliothèques de fonction UC4 *.OCX Système d'exécution Microsoft Visual Basic (version 6.0) TRANSPRT.TXT, K*.*, R*.*, E*.TXT Modules fonctionnels pour les systèmes SAP : Résumé des ordres de transport, des modules fonctionnels et du protocole d'exportation valides UCYBABR.VBP, BROWSE*.*, TOOBIG.* Microsoft Visual Basic - Code source d'Archive Browser *.JAR Bibliothèques de fonction Java Objets de développement SAP de l'interface L'interface pour SAP Basis Job Scheduling est développée dans ABAP. Elle se compose des objets de développement SAP énumérés dans le tableau. R3X sur SAP Basis version 3.x R3X sur SAP Basis versions 4.0x, 4.5x, 4.6x et 6.10 Classe de développement J2U0 /SBB/UC4 Structures DDIC J_2U* /SBB/UC4* 4 5 Chapter 1 Terminologie - Machines, programmes et fichiers Groupe de fonction J2U3 /SBB/UC4* Modules fonctionnels J_2U_30_* /SBB/UC4* Code retour des Agents sur Windows Les Agents s'exécutant sur la plate-forme Windows fournissent les codes retour suivants : l l l l l 62 (FATAL_ERROR_SOCKETS) - erreur de socket 63 (FATAL_ERROR_NOINIFILE) - fichier INI non disponible 64 (FATAL_ERROR_NOMEMORY) - la demande de mémoire a échoué 65 (FATAL_ERROR_CONFIG) - nom d'Agent ou numéro de port TCP/IP non défini 66 - impossible d'ouvrir le fichier log Automation Engine 6 2 Heure Dans le présent document sont décrites les notions de base qui jouent un rôle important pour l'heure en général. Notions de temps de base L'heure se compose toujours d'une date et d'une heure. L'heure indiquée se rapporte à l'heure locale. Elle est donc dépendante du Fuseau horaire de référence et de la prise en compte éventuelle du passage à l'heure d'été. Los Angeles (PST) New York (EST) UTC Francfort (CEST) Tokyo (TYST) vendredi 3 Mai 2002 04:13:02 vendredi 3 Mai 2002 07:13:02 vendredi 3 Mai 2002 12:13:02 vendredi 3 Mai 2002 13:13:02 vendredi 3 Mai 2002 21:13:02 Date La date désigne la date locale. Elle est donc dépendante du Fuseau horaire de référence et de la prise en compte éventuelle du passage à l'heure d'été. Heure L'heure est l'heure locale. Elle est donc dépendante du Fuseau horaire de référence et de la prise en compte éventuelle du passage à l'heure d'été. UTC - Coordinated Universal Time UTC est la norme horaire internationale et la base de tous les calculs horaires dans l'Automation Engine. UTC se base sur une division de la journée en 24 heures. C'est pourquoi les heures de l'après-midi sont, par exemple, indiquées 16:00 UTC (seize heures, zéro minute). En UTC, il n'y a pas d'heure d'été. C'est pourquoi les indications horaires en UTC sont toujours uniques. GMT - Greenwich Mean Time L'heure du méridien de Greenwich, placé sur la longitude 0, est la base des Fuseaux horaires. Il sert de référence lors de la détermination des décalages par rapport aux autres Fuseaux horaires. TZ - Time Zone/Fuseau horaire Les domaines présentant un décalage horaire par rapport à GMT sont les Fuseaux horaires. La différence ne doit pas forcément être d'une heure entière (60 minutes). En principe, les limites des Fuseaux horaires suivent la longitude. Les Fuseaux horaires peuvent cependant s'écarter de la détermination générale à l'aide de la longitude au sein des frontières politiques de certains pays. 7 Chapter 2 Heure Ligne de changement de date/Date Line La ligne de changement de date s'établit sur la 180e méridien de longitude. Heure normale (heure d'hiver) L'heure normale est l'heure locale attribuée au Fuseau horaire. L'heure normale est parfois appelée "heure d'hiver". DST - Daylight Saving Time/Heure d'été Pour l'heure d'été, l'heure normale est avancée d'un certain nombre d'heures. L'utilisation de l'heure d'été, la date du changement horaire et la différence par rapport à l'heure normale dépendent de chaque pays. De même, l'année est éventuellement décisive quant à l'existence d'un changement à l'heure d'été et la date à laquelle il a lieu. Certains pays sont encore en cours de décision pour prendre en compte ou changer la règle de l'heure d'été. Le passage à l'heure normale ou à l'heure d'été en décalant d'une heure (60 minutes) est le plus répandu. Toutefois, il existe également des pays au sein desquels la différence par rapport à l'heure normale est supérieure ou inférieure à une heure. Le changement à l'heure normale ou à l'heure d'été est inversé entre l'hémisphère nord et l'hémisphère sud. Durant la période où l'heure normale passe à l'heure d'été dans l'hémisphère nord, l'heure d'été passe à l'heure normale dans l'hémisphère sud. Dans l'hémisphère nord, on passe à l'heure d'été au printemps, dans l'hémisphère sud à l'automne. Rubriques connexes : Utilisation des Fuseaux horaires dans l'Automation Engine Automation Engine 3 Informateur de Job de l'Agent Tous les Agents de système d'exploitation possèdent un Agent Job grâce auquel vous pouvez exécuter et surveiller les Jobs. Il est notamment exécuté dans les objets Include HEADER et TRAILER. Ces Includes de Job spéciaux se trouvent dans le Client système 0000. Extrait de l'objet Include HEADER.MVS : //JMLDS EXEC PGM=&UC_JOBMD, // PARM='JNR=&UC_REALNR MNR=&UC_CLIENT PNR=&UC_IP_PORT IPA=&UC_IP_ADR // TYP=S TXT=" Job started" 2>&1' Extrait de l'objet Include TRAILER.MVS : //JMLDE EXEC PGM=&UC_JOBMD,COND=EVEN, // PARM='JNR=&UC_REALNR MNR=&UC_CLIENT PNR=&UC_IP_PORT IPA=&UC_IP_ADR // TYP=E STP=&UC_REPORT_STEPS RET=&RETCODE 2>&1' Attention : pour l'Agent Job z/OS, l'instruction PARM ne doit pas contenir plus de 100 caractères ! Paramètres de démarrage généraux L'Agent Job possède une série de paramètres de démarrage pouvant lui être transmis. Le tableau suivant contient ceux qui s'appliquent à tous les informateurs de Job. Paramètres Description IPA Adresse IP JNR RunID du Job MNR Client PNR Numéro de port RET Code retour TYP Type ("S" pour Agent Job de début, "E" pour Agent Job de fin) Pour l'Agent Job GCOS8, les types suivants s'appliquent également "R" : redémarrage, "A" : fin anormale, "X" : arrêt de l'Agent Job et "J" : rapport de Job du système RSM. TXT Texte affiché au début du rapport de Job et dans la fenêtre de détails à côté du texte de statut. Attention : le paramètre TXT= ne doit pas dépasser 32 caractères. En outre, l'Automation Engine a besoin des 8 premiers caractères. C'est pourquoi vous devez toujours entrer des espaces pour les 8 premiers caractères. Les autres caractères sont à votre disposition pour votre texte. De plus, plusieurs informateurs de Job possèdent des paramètres de démarrage spéciaux : Système Paramètres Description d'exploitation GCOS8 RFN Nom de fichier du rapport de Job 8 9 Chapter 3 Informateur de Job de l'Agent z/OS SNM Numéro de séquence du Job SW Statut de l'Agent Job TIMEOUT Intervalle en secondes après lequel un dépassement de délai se produit pour la connexion entre l'Agent et l'Agent Job (valeur par défaut : 60). STP Journalisation des codes retour des steps "0" - Pas de journalisation (valeur par défaut) "1" - L'Agent Job enregistre les codes retour. OS/400 RETRY Nombre de tentatives de connexion (valeur par défaut : 4) WAIT Durée entre les tentatives de connexion (valeur par défaut : 30 secondes) OUT Journalisation des messages de l'Agent Job "0" - Pas de journalisation (valeur par défaut) "1" - Le rapport de Job contient également les messages de l'Agent Job. UNIX et VMS RETRY Nombre de tentatives de connexion Valeur par défaut : Pour UNIX et VMS 3 TIMEOUT Intervalle en secondes après lequel un dépassement de délai se produit pour la connexion entre l'Agent et l'Agent Job (valeur par défaut : 60). WAIT Durée entre les tentatives de connexion Valeur par défaut : Pour UNIX et VMS 120 secondes UNIX et Windows CMD Commande devant être exécutée sur l'ordinateur de l'Agent. La commande peut également contenir des mots de passe ayant été cryptés via un objet PromptSet. En outre, la variable PromptSet contenant la valeur de la zone de texte PromptSet cryptée doit être indiquée. Les mots de passe sont automatiquement identifiés et décryptés en conséquence par l'Agent Job. Les mots de passe ayant été cryptés via UCYBCRYP.EXE ne sont PAS décryptés par l'Agent Job ! La commande exécutée par l'Agent doit être utilisée dans l'onglet "Script" des Jobs. Exemple pour Windows : &UC_JOBMD CMD="ping localhost" Rubriques connexes : Job - Includes Automation Engine 10 4 Automation Engine et NAT Le NAT (Network Adress Translation) désigne un dispositif (par exemple un routeur) qui convertit une adresse IP en une autre adresse IP. Il existe également le NPT et le NAPT qui permettent de modifier le port ou l'adresse et le port. Pour une connexion d'un Agent ou d'autres clients Automic à l'Automation Engine, les éléments suivants s'appliquent : 1. Il est possible de tout saisir pour l'adresse d'ancrage. Voilà pourquoi elle ne comporte aucun problème de NAP, NPT ou NAPT. 2. Le problème se pose pour le choix de CP puisque les adresses IP et numéros de port des autres CP sont fournis par défaut dans le premier CP. 3. Mais, dans la section TCP/IP du fichier INI de l'Automation Engine, il est possible d'indiquer le paramètre "hostname" avec un nom d'hôte quelconque. Bien entendu, ce nom d'hôte devra alors être correctement résolu par tous les Clients. Ainsi, le NAT ne pose aucun problème. NPT et NAPT ne sont ici pas pris en charge. Pour la connexion d'un Agent à un autre Agent : 1. Le Automation Engine communique à l'Agent l'adresse IP et le numéro de port de l'autre Agent (de Ex1 à Ex2). Si la connexion ne s'établit pas, l'Automation Engine tente d'établir la connexion dans l'autre sens (de Ex2 à Ex1). 2. La section HOST du fichier INI peut permettre la résolution de problèmes de NAT. Ici, le paramètre est le nom AE de l'Agent. Pour la valeur, vous pouvez saisir n'importe quelle adresse IP ou n'importe quel nom DNS. 3. NPT et NAPT avec les modifications de numéro de port ne sont ici pas pris en charge. 11 Chapter 5 Codes d’erreur externes 5 Codes d’erreur externes 5.1 COBOL - Codes d'erreur des fichiers Texte d'origine de la description du compilateur 00 Successful completion 02 Indexed files only. One of two possibilities: - For a READ statement, the key value for the current key is equal to the value of that same key in the next record in the current key of reference. - For a WRITE or REWRITE statement, the record just written created a duplicate key value for at least one alternate record key for which duplicates are allowed. 04 The length of the record being processed does not conform to the fixed file attributes for that file. 05 The referenced optional file is not present at the time the OPEN statement is executed. 07 Sequential files only. For an OPEN or CLOSE statement with the REEL/UNIT phrase the referenced file is a non-reel/unit medium. 10 No next logical record exists. You have reached the end of the file. 14 Relative files only. The number of significant digits in the relative record number is larger than the size of the relative key data item described for that file. 21 Sequentially accessed files only. Indicates a sequence error. The ascending key requirements of successive record key values has been violated, or, the prime record key value has been changed by a COBOL program between successful execution of a READ statement and execution of the next REWRITE statement for that file. 22 Indexed and relative files only. Indicates a duplicate key condition. Attempt has been made to store a record that would create a duplicate key in the indexed or relative file OR a duplicate alternate record key that does not allow duplicates. 23 Indicates no record found. An attempt has been made to access a record, identified by a key, and that record does not exist in the file. Alternatively a START or READ operation has been tried on an optional input file that is not present. 24 Relative and indexed files only. Indicates a boundary violation arising from one of the following conditions: An attempt is made to write beyond the externally defined boundaries of a file. A sequential WRITE operation has been tried on a relative file, but the number of significant digits in the relative record number is larger than the size of the relative key data item described for the file. 30 The I/O statement was unsuccessfully executed as the result of a boundary violation for a sequential file or as the result of an I/O error, such as a data check parity error, or a transmission error. 34 The I/O statement failed because of a boundary violation. This condition indicates that an attempt has been made to write beyond the externally defined boundaries of a sequential file. 35 An OPEN operation with the I-O, INPUT, or EXTEND phrases has been tried on a nonOPTIONAL file that is not present. 37 An OPEN operation has been tried on a file which does not support the open mode specified in the OPEN statement. Automation Engine 12 38 An OPEN operation has been tried on a file previously closed with a lock. 39 A conflict has been detected between the fixed file attributes and the attributes specified for that file in the program. 41 An OPEN operation has been tried on file already opened. 42 A CLOSE operation has been tried on file already closed. 43 Files in sequential access mode. The last I/O statement executed for the file, before the execution of a DELETE or REWRITE statement, was not a READ statement. 44 A boundary violation exists. 46 A sequential READ operation has been tried on a file open in the INPUT or I-O mode but no valid next record has been established. 47 A READ or START operation has been tried on a file not opened INPUT or I-O. 48 A WRITE operation has been tried on a file not opened in the OUTPUT, I-O, or EXTEND mode, or on a file open I-O in the sequential access mode. 49 A DELETE or REWRITE operation has been tried on a file that is not opened I-O. 9/nnnExtended file status code as shown below. RT001 Insufficient buffer space. On OS/2, could indicate that the SWAPPATH has not been set correctly or the SWAPPATH drive is full. Could also indicate an out of memory situation. RT002 File not open when access tried. RT003 Serial mode error. RT004 Illegal file name. RT005 Illegal device specification. RT006 Attempt to write to a file opened for input. RT007 Disk space exhausted. RT008 Attempt to input from a file opened for output. RT009 No room in directory (also, directory does not exist). RT010 File name not supplied. RT012 Attempt to open a file which is already open. RT013 File not found. RT014 Too many files open simultaneously. RT015 Too many indexed files open. RT016 Too many device files open. RT017 Record error: probably zero length. RT018 Read part record error: EOF before EOR or file open in wrong mode. RT019 Rewrite error: open mode or access mode wrong. RT020 Device or resource busy. RT021 File is a directory. RT022 Illegal or impossible access mode for OPEN. RT023 Illegal or impossible access mode for CLOSE. RT024 Disk I/O error. 13 Chapter 5 Codes d’erreur externes RT025 Operating system data error. RT026 Block I/O error. RT027 Device not available. RT028 No space on device. RT029 Attempt to delete open file. RT030 File system is read only. RT031 Not owner of file. RT032 Too many indexed files, or no such process. RT033 Physical I/O error. RT034 Incorrect mode or file descriptor. RT035 Attempt to access a file with incorrect permission. RT036 File already exists. RT037 File access denied. RT038 Disk not compatible. RT039 File not compatible. RT040 Language initialization not set up correctly. RT041 Corrupt index file. RT042 Attempt to write on broken pipe. RT043 File information missing for indexed file. RT045 Attempt to open an NLS file using an incompatible program. RT047 Indexed structure overflow. (Could indicate that you have reached the maximum number of duplicate keys.) RT065 File locked. RT066 Attempt to add duplicate record key to indexed file. RT067 Indexed file not open. RT068 Record locked. RT069 Illegal argument to ISAM module. RT070 Too many indexed files open. RT071 Bad indexed file format. RT072 End of indexed file. RT073 No record found in indexed file. RT074 No current record in indexed file. RT075 Indexed data file name too long. RT077 Internal ISAM module failure. RT078 Illegal key description in indexed file. RT081 Key already exists in indexed file. RT100 Invalid file operation. RT101 Illegal operation on an indexed file. Automation Engine RT102 Sequential file with non-integral number of records. RT104 Null file name used in a file operation. RT105 Memory allocation error. RT129 Attempt to access record zero of relative file. RT135 File must not exist. RT138 File closed with lock - cannot be opened. RT139 Record length or key data inconsistency. RT141 File already open - cannot be opened. RT142 File not open - cannot be closed. RT143 REWRITE/DELETE in sequential mode not preceded by successful READ. RT146 No current record defined for sequential read. RT147 Wrong open mode or access mode for READ/START. RT148 Wrong open mode or access mode for WRITE. RT149 Wrong open mode or access mode for REWRITE/ DELETE. RT150 Program abandoned at user request. RT151 Random read on sequential file. RT152 REWRITE on file not opened I-O. RT158 Attempt to REWRITE to a line-sequential file. RT159 Malformed line sequential-file. RT161 File header not found. RT173 Called program not found. RT180 End-of-file marker error. RT182 Console input or console output open in wrong direction. RT183 Attempt to open line sequential file for I-O. RT188 File name too large. RT193 Error in variable length count. RT194 File size too large. RT195 DELETE/REWRITE not preceded by a READ. RT196 Record number too large in relative or indexed file. RT210 File is closed with lock. RT213 Too many locks. RT218 Malformed MULTIPLE REEL/UNIT file. RT219 Operating system shared file limit exceeded. 5.2 COBOL - Codes d'erreur d'exécution Texte d'origine de la description du compilateur Code Description d'erreur 14 15 Chapter 5 Codes d’erreur externes 001 Insufficient buffer space (Recoverable) -You have tried to open a file directly or indirectly and, although you have not exceeded your system's file limit, something in your system is unable to allocate enough memory space for this operation. -Although you can trap this error you must do STOP RUN as soon as it is reported. 002 File not open when access attempted (Recoverable) -You have tried to access a file without opening it first. -Open the file with the open mode that you need and try the operation again. As this error implies that your program logic contains a mistake, you might want to terminate the run and recode your program. 003 Serial mode error (Recoverable) -You have tried to open a device as a relative or indexed file. You are trying to execute a device, not a program. -Open the device in the correct mode or close any open files, do STOP RUN and recode your program. The name of your program is recognized by the operating system as a valid device. Rename your program. 004 Illegal file name (Recoverable) -A filename contains an illegal character. This could be any character that is not part of the permitted character set or it could be the systemdependent delimiter, which on most systems is the space. -Try the file operation again using the correct filename. 005 Illegal device specification (Recoverable) -Devices to which your COBOL program can write are defined by the operating system. You have tried to write to a device that is not defined by your system. -Try the operation again using a device name that your system recognizes. 006 Attempt to write to a file opened for INPUT (Recoverable) -You have tried to WRITE to a file that is open for input only. -Close the file and open it with a mode such as I-O, which allows you to write to the file. As this error implies that your program logic contains a mistake, you might want to terminate the run and recode your program. 007 Disk space exhausted (Fatal) -The disk is full. -This error can be trapped, but once it has been reported you must do a STOP RUN immediately to terminate your program's run. When your program has terminated, delete any files that you no longer need. Alternatively, if your operating system supports this, put a new disk in a floppy disk drive and redirect your program's file operations to this. 008 Attempt to input from a file opened for OUTPUT (Recoverable) -You have tried to read from a file that is open for output only. -Close the file and open it with a mode such as IO, which allows you to read from the file. As this error implies that your program logic contains a mistake, you might want to terminate the run and recode your program. 009 No room in directory (Recoverable) -The system cannot write to the specified directory for one of the following reasons: -The directory does not exist -The directory is full Your program cannot find the directory -Create the directory if it doesn't exist. If the directory is full, either delete any files that you no longer need or, if your operating system supports this, put a new disk in a floppy disk drive and redirect your program's file operations to it. Alternatively, specify a different drive or directory for your file operations. 010 File name not supplied (Recoverable) -You have tried to open a file that you have declared as an external file, but have not named. -Specify the external filename. 012 Attempt to open a file which is already open (Recoverable) -You have tried to open a file which is already open and so cannot be opened again. -Cancel your second attempt to open the file. If the fact that the file is already open is acceptable to you, continue to run your program. Automation Engine 16 013 File not found (Recoverable) -The operating system has been unable to find a file which you have tried to access in your program. -Ensure that you are in the correct directory or that a path to the file concerned exists. You can then try the file operation again. If the error is the result of a spelling mistake then ask for the correct file and try the file operation again. 014 Too many files open simultaneously (Recoverable) -You have tried to exceed the maximum number of files which you can have open at any one time. This can be a software or an operating system constraint, but you must not violate it. -Close some of the open files which you are not currently accessing, and then try to open the relevant file again. You should then be able to continue to run your program. Depending on your operating system, you might be able to increase the maximum number of files you are allowed to have open. For example, on DOS, add the line FILES=128 to your config.sys file. On Novell, add the lines CACHE Buffers=0 File Handles=128 to your shell.cfg file. See also:/F RTS switch 015 Too many indexed files open (Recoverable) -You have tried to exceed the maximum number of indexed files which you can have open at any one time. This can be a software or an operating system restraint, but you must not violate it. -Close some of the open indexed files which you are not currently accessing, and then try to open the relevant file again. You should then be able to continue to run your program. (Indexed files count as two files, one for data and one for the index.) 016 Too many device files open (Recoverable) -You have tried to exceed the maximum number of device files which you can have open at any one time. This can be a software or an operating system constraint, but you must not violate it. -Close some of the open device files which you are not currently accessing, and then try to open the relevant file again. You should then be able to continue to run your program. 017 Record error: probably zero length (Recoverable) -You have probably tried to access a record that has had no value moved into it. -Although this error is recoverable in the sense that it can be trapped, once it has been reported you must execute a STOP RUN statement immediately and then recode your program to ensure that the COBOL record length is not zero. 018 Read part record error: EOF before EOR or file open in wrong mode (Recoverable) -A part record has been found at the end of a file. Consequently your run-time system treats the data file as a record, and not finding a full record, reports this error. -Ensure that the record size you give when you read from or WRITE to a file is consistent. 019 Rewrite error: open mode or access mode wrong (Recoverable) -You are trying to do a REWRITE to a file that has not been opened with the correct access mode for this operation. -Close the file and reopen it in a mode such as I-O, which allows you to do REWRITE operations on that file. As this error implies that your program logic contains a mistake, you might want to close any open files and then execute a STOP RUN. You can then recode your program to eliminate the logic error. 020 Device or resource busy (Recoverable) -You have tried to open a file that is assigned to a device or resource (for example, a line printer) that is not available at this time. You can trap the error status returned by open and retry the open at regular intervals until it succeeds. 021 File is a directory (Fatal) -You have tried to WRITE to a directory instead of to a file. Alternatively, the attributes are not set up correctly to allow you to access a file. That is, it is marked as read-only or you don't have sufficient rights to open it. -Recode your program so that it writes to a file and not to a directory. You need to either change your file access attributes or recode your program so that it does not violate the existing attributes. 17 Chapter 5 Codes d’erreur externes 022 Illegal or impossible access mode for OPEN (Recoverable) -The mode in which you are trying to open a file violates the General Rule of COBOL for that type of file; for example you might have opened a line sequential file in the I-O mode. -Open the file with a mode that is compatible with that type of file. 023 Illegal or impossible access mode for CLOSE (Recoverable) -The mode in which you are trying to close a file is not possible for that type of file. -Close the file with a new access mode which is compatible with that type of file, or execute a STOP RUN statement and recode your program. 024 Disk input-output error (Recoverable) -You might have performed a read after a WRITE, or there might be either a verification failure or a parity error. -In some circumstances this error is fatal, but if it occurs during a read you can trap it and then do a close on the file before executing a STOP RUN statement. 025 Operating system data error (Fatal) -You are trying to set up terminal characteristics for a device which is not a terminal. -Recode your program. 026 Block I-O error (Fatal) -An error has occurred while you are trying to access a disk. This could be the result of a corrupt disk. -If you have a corrupt disk try to run your program again using your backup copy. 027 Device not available (Recoverable) -You are trying to access a device which either is not attached to your machine or if attached is not on-line. -Attach the device to your machine and ensure that it is on-line. Repeat the file operation. 028 No space on device (Fatal) -You have tried a file operation such as WRITE for which insufficient space is available on your disk. -When your program has terminated you should delete some of the files or directories on your current logged in disk. Ensure that you delete sufficient files on your disk so that you have enough room to carry out successful file operations. 029 Attempt to delete open file (Recoverable) -You have tried to perform a DELETE FD operation on an open file. -Close the file before performing the DELETE FD operation. 030 File system is read-only (Recoverable) -The file system which you are using is readonly, which effectively means that it is write-protected. You have tried to change a file in some way, for example you might have tried to WRITE to a file or to DELETE information in it. -You should abandon your attempt to alter the file unless you can make your own personal copy of it. You should then be able to alter the contents of your copy, but not of the original source. 031 Not owner of file (Recoverable) -You are trying an operation on a file but the file's owner has not given you the necessary permission for that operation. You could for example be trying to alter the access modes for a file, which only the file's owner can do. -You should abandon your tried file operation unless the file's owner gives you the permission necessary to do the operation you want to carry out. 032 Too many indexed files, or no such process (Recoverable) -You have tried to open an indexed file but the number of files that you currently have open is the system limit. Alternatively, you could be trying to use a process id which does not exist, or which your operating system no longer recognizes. -You should close some of the indexed files which you are no longer accessing, and you should then be able to open the file you require. In this case you must rewrite your code so that it uses a process id which your system recognizes. Automation Engine 18 033 Physical I-O error (Fatal) -You have a hardware error of some type. Perhaps you have not put a disk in the relevant drive or you might have tried to WRITE to a disk but the processor detected hardware interface has failed. -You should try to correct the fault in your hardware; for example put a disk in the necessary drive. 034 Incorrect mode or file descriptor (Recoverable) -You are either trying to write to a file which is open for read purposes only, or read a file which is open for write purposes only. -You should close the file and reopen using the correct access mode. As this error implies that your program logic contains a mistake, you might want to close any open files, execute a STOP RUN statement and then recode your program to eliminate the logic error. Shareable files opened INPUT (read-only) by the COBOL system still require write-permission (from the operating system) to enable temporary locking to take place. 035 Attempt to access a file with incorrect permission (Recoverable) -You are trying a file operation which you do not have sufficient permission to achieve. For example you could be trying to write data to a file which has been set up with the read attribute only. -If you are the owner of the file you can alter the attributes of the file so that you have the permission needed to effect the particular file operation you were trying. If you are not the owner of the file you cannot to carry out that operation successfully unless you copy the file and make the changes to the copy only. You cannot alter the source file. 036 File already exists (Recoverable) -You are trying an inappropriate operation on an already existing file. -As this error implies that your program logic contains a mistake, you might like to recode your program to eliminate this mistake. 037 File access denied (Fatal) -Your attempt to access a file has been denied by the operating system. You might have tried to write to a write-protected file or you could have tried to read from an output device. -Alter the access permission on the relevant file. Access can be read-only, if you just want to read the contents of the file without making any changes, or it can be read and write in which case you can alter its contents. 038 Disk not compatible (Fatal) -You have tried to access a disk that is incompatible with the current version of your operating system. This could be because it was created under a previous version of the system or it could have been created under a completely different operating system. You would also receive this error if you tried to load a disk with a name that clashed with a disk that was already loaded. -If the error is a result of a clash of names you can rename one of the disks and then you can load both disks together if this is what you want. 039 File not compatible (Fatal) -You have tried to access a file that is not compatible with the structure of files under the current release of your software. This could be because the file was created either under a different operating system or under a previous version of your current system. -You should create a new copy of the file which has the correct structure. 040 National Language initialization not set up correctly (Fatal) -You have tried to use the additional language variants, but the environment or side file that is required to set up the language either has not been set up correctly, or does not exist, or is invalid. This might be because you have the LANG environment variable set for use by another system in a format not recognized by this COBOL system. -Set up the required environment or side file before you try to run the program again. Use the COBLANG environment variable to set the locale information for the COBOL system. See the chapter NLS Support in your Programmer's Guide to Writing Programs. 19 Chapter 5 Codes d’erreur externes 041 Corrupt index file (Recoverable) -Your run-time system does not recognize the control information for an indexed file and as the index has been corrupted in some way the data in the file is no longer accessible by your system. This error is recoverable in the sense that it can be trapped but should you receive it, you can do little except to close any open files and stop your program's run. -You should rerun your program using the backup copy of that file. If you have added a great deal of information to the file since you last took a backup you might like to rebuild the file using the Rebuild utility, which reads the data (if this has not been corrupted) and builds a new index for it. 042 Attempt to write on broken pipe (Recoverable) -One of the following has occurred: Your program has created a process as a result of a DD_ logical filename mapping assignment (for example, the process might be a line printer spooler). The process was not created properly, or has ended prematurely. This error occurs when your program tries to write to the process. -Your application has terminated abnormally or prematurely, thus breaking the pipe. -You can trap the error status returned by the write operation, then open the file again. 043 File information missing for indexed file (Fatal) -The system has crashed on your program's previous run, while the file was open. Information was probably added to the end of the file, but the directory information was not updated and so that data cannot be accessed by your system. Alternatively, you have copied the indexed file from one disk to another but have copied either only the data part of the file or only the index. -If the error is the result of a crash then whether you can access the necessary data or not is entirely system dependent. If, however, it is the result of a faulty copy you should be able to restore the missing part of the file from the.dat or .idx file. 044 Attempt to OPEN an NLS file in a non-NLS program (Fatal) -The logical filename is preceded by "%NLS%", but the program which OPENS the file has been compiled without the NLS directive set: the OPEN fails. 045 Attempt to OPEN an NLS file using incompatible language definition (Fatal) -The NLS control information for a file in your program does not match the same NLS control information in the header of your index file. Alternatively, your index file has become corrupted. -Rebuild your index file, or rerun your program using the backup copy of that file. If you have added a great deal of information since you last took a backup, you might want to rebuild the file using a utility that is able to read the data, if it is not corrupt, and build a new index for it. 046 NLS support module not found (Fatal) -Your system could not find the National Language Support module COBNLSMG. Alternatively, your system cannot find cobnls.dll (OS/2), cobnls.dle (DOS), or cobnls.dlw (Windows). -Ensure that cobnlsmg.gnt is present in either utils.lbr or in a directory on COBDIR, or, if your program is linked, ensure that cobnlsmg.obj is linked in to it. Ensure that cobnls.dle is present in utils.lbr , or that cobnls.dlw is present in a directory specified in COBDIR, or that cobnls.dll is present on the LIBPATH. 047 Indexed structure overflow (Fatal) -The structure of your indexed file contains a fault. You have probably tried to put another entry in the index when there is no room for it. Alternatively, you have tried to access an old format indexed file, created perhaps using CIS COBOL. -If your index has no room for further entries you should reorganize your file. If you have tried to access an old format indexed file, you can run the Rebuild utility to check the consistency of this indexed file, and to construct a new indexed file if the old one was found to be corrupt. See your Programmer's Guide to File Handling for details of the Rebuild utility. Automation Engine 20 048 Attempt to divide by zero (Fatal) -You are executing a program that is trying to perform a fixed-point divide by zero. Alternatively, if you have COBFSTAT environment variable set to HOSTSTAT, this could be mainframe file status code "90". -Either recode your program so that you can trap the error with an ON SIZE ERROR clause, or run your program without the RTS O switch set, or recompile your program without the CHECKDIV"OSVS" directive set. 048-057 Host file status, not an RTS message -If you have COBFSTAT environment variable set to HOSTSTAT, this is a mainframe file status code "9x", where x is given by subtracting 48 from the error number. 055 Routine table overflow (Fatal) -You have tried to load too many programs simultaneously. Alternatively, if you have COBFSTAT environment variable set to HOSTSTAT, this could be mainframe file status code "97". -Cancel any programs that you are no longer using, or use fewer separate programs. 065 File locked (Recoverable) -You have tried to open a file which has already been locked, or opened for output by another user. Alternatively, you have tried to lock or open for output a file which another user already has open. -Your program can inform the system operator (if there is one) that it is unable to access this file and should wait until the other user has finished using the file and closes it. You should then be able to continue to run your program. 066 Attempt to add duplicate record key to indexed file (Fatal) -You have tried to add a duplicate key for a key which you have not defined as being able to have duplicates. As this error implies that your program logic contains a mistake, you probably should recode. 067 Indexed file not open (Recoverable) -You are trying to access an indexed file which you have not opened. -Open the file in the relevant access mode and then retry the unsuccessful file operation. 068 Record locked (Recoverable) -You have tried to access a record which is currently locked by another user. -Your program can inform the system operator (if there is one) that the record is currently locked, and you should then wait until the other user has released the lock on that record. You should then be able to access the relevant record. You should not continually retry to gain access to the record without operator intervention, as this could result in your application hanging. 069 Illegal argument to isam module (Fatal) -This is the result of an internal system error. Contact Technical Support who will help you find the cause of your error and how it can be rectified. 070 Too many indexed files open (Recoverable) -You are trying to open an indexed file but you have already exhausted the system limit which specifies how many of these files can be opened at any one time. -Close some of the open indexed files which you are not currently accessing. You should then be able to open the indexed file which you require and to continue the program run. 071 Bad indexed file format (Fatal) -You are either using a file which has been corrupted, or there is an internal system error. -If the disk you are using is corrupt, rerun your program using your backup copy of the disk. If this is not the cause of the error then you should contact Technical Support who will help you find the cause of your error and how it can be rectified. 072 End of indexed file (Fatal) -This is the result of an internal system error. -Contact Technical Support who will help you find the cause of your error and how it can be rectified. 21 Chapter 5 Codes d’erreur externes 073 No record found in indexed file (Fatal) -This is the result of an internal system error. Contact Technical Support who will help you find the cause of the error and how it can be rectified. 074 No current record in indexed file (Fatal) -This is the result of an internal system error. Contact Technical Support who will help you find the cause of the error and how it can be rectified. 075 Indexed data file name too long (Fatal) -When creating indexed files, the extension .idx is added to the user-defined filename, and so your filename must not exceed x-4 characters in length, where x is the maximum length of filename. See your Programmer's Guide to File Handling for details. -Rename the file with a shorter filename, that is, one that is less than 10 characters in length. 076 Can't create lock file in /isam directory (Fatal) -For some reason your system is unable to create a lock file in the /isam directory. One reason for this could be that in its previous run your program terminated abnormally (perhaps due to a power failure) leaving some files locked. -You should manually remove all of the files that are still locked from the /isam directory before you can successfully run your program. 077 Internal ISAM module error (Fatal) -This is the result of an internal system error. Contact Technical Support who will help you find the cause of your error and how it can be rectified. 078 Illegal key description in indexed file (Fatal) -This is the result of an internal system error. -Contact Technical Support who will help you find the cause of your error and how it can be rectified. 079 COBCONFIG syntax error (Fatal) -An error exists in the run-time configuration sidefile accessed via the environment variable COBCONFIG. -Check your syntax against your Object COBOL User Guide. You might have used incorrect syntax, or syntax that is not compatible with the type of RTS tuneable you are configuring (this could include assigning an illegal value to the RTS tuneable). 081 Key already exists in indexed file (Fatal) -This is the result of an internal system error. Contact Technical Support who will help you find the cause of your error and how it can be rectified. 082 CALL convention not supported (Fatal) -The CALL convention you have specified is not supported. -See your Object COBOL User Guide for a list of supported CALL conventions. 086 Remote file system failure (Fatal) 099 Illegal operation in SORT/MERGE module (Fatal) -A SORT or MERGE module has received a RELEASE operation outside the Input procedure, or a RETURN operation either outside the Output procedure, or before the Input procedure has terminated correctly. -Recode your program so that RELEASE and RETURN operations are issued by the appropriate procedures. 100 Invalid file operation (Fatal) -You have tried a file operation which violates a general rule of COBOL in some way. The most likely cause of this error is that you have tried a rewrite on a sequential file opened I-O, or on a relative file with access mode sequential also opened I-O, without preceding it with a successful read NEXT. -Recode your program to ensure that the REWRITE statement in error is preceded by a read NEXT. 101 Illegal operation on an indexed file (Fatal) -This is the result of an internal system error. -Contact Technical Support who will help you find the cause of your error and how it can be rectified. Automation Engine 22 102 Sequential file with non-integral number of records (Fatal) -You have either specified an incorrect record length for a sequential file, or the sequential file you are trying to access is corrupt in some way, or the file which you have specified is not a sequential file. -Recode your program so that it specifies the correct type of file, or if the error is the result of a corrupt file, try to run the program again using a backup copy of that file. 103 Parameter cannot be passed BY VALUE (Fatal) 104 Null file name used in a file operation (Fatal) -You specified a data-name for a filename instead of a literal, and the data item contained only spaces when you tried to open the file. -Recode your program specifying the correct filename. 105 Memory allocation error (Fatal) -The run-time system is unable to allocate sufficient memory space to successfully carry out the tried operation, probably because of insufficient memory space on your system. -You should obtain more memory in which to run your program. Refer to your operating system documentation for details of how you can obtain more memory, if this is possible. 106 Dictionary error (Fatal) -This could be the result of a read or write error to file or disk, but it is more likely to be the result of an internal system error. Alternatively, your application might have called many programs without canceling them afterward, so that memory becomes exhausted during Animation. -Contact Technical Support who will help you to find the cause of your error and how it can be rectified. Ensure that as much memory as possible is available during Animation by canceling any program you do not currently need to access. 107 Operation not implemented in this run-time system (Fatal) -You are trying to perform a file operation which your run-time system does not support. -You should recode your program so that it does not try such operations, or you should acquire a version of your system that does support this facility. 108 Failure to initialize data division (Fatal) -The run-time system cannot load your program properly because the data needed to correctly initialize the Data Division has become corrupted. -You should compile your program again to try to obtain good intermediate code. 109 Invalid checksum in run-time system (Recoverable) -The internal information in the run-time system has been altered. The run-time system might have become corrupted, or you might have illegally tried to change the internal run-time system information. 110 Generated code not supported by this RTS (Fatal) -Contact Technical Support who will help you to find the cause of the error and how it can be rectified. 111 Incompatible Class Library and Run-time Environment versions (Fatal) -The version numbers for these components do not match. -Check that you have fully installed both the Class Library and the Run-time Environment from the same version of Object COBOL. If you have more than one version installed, check that your PATH, LIBPATH, and COBDIR environment variables specify an appropriate path for the version you are using. 112 Unable to locate/access the required security key (Recoverable) -The run-time system cannot locate or cannot access the coded security key (dongle) that is required to execute this application. -Connect the security key that was supplied with your COBOL system to the parallel port of your computer, then re-run the application. 114 Attempt to access item beyond bounds of memory (Fatal) -Memory access violation has been detected by your operating system. 115 Unexpected signal (Fatal) -A signal the run-time system was not expecting has been caught. 23 Chapter 5 Codes d’erreur externes 116 Cannot allocate memory (Fatal) -For some reason a part of your run-time system is unable to allocate you sufficient memory to enable you to execute your code. -You should try to reduce memory usage by canceling programs that are not in use, then try the operation that caused this message again. 117 Bad collating sequence (Fatal) -This is an internal system error. -Please contact Technical Support who will help you to find the cause of the error and how it can be rectified. 118 Symbol not found (Fatal) -You are unable to load your object file. You have tried to call a program that has not been specified in the COBPATH environment variable. -Check that your COBPATH has been set up correctly. If not, revise your COBPATH to include the program being called. 119 Symbol redefined (Fatal) -The RTS has detected a symbol (for example, data item, entry point or module name) which is already defined. -You can recode your application to remove the naming duplication. If you are not linking with a non-COBOL function, you can use the -e RTS switch (32-bit RTS only). 120 Symbol string table of zero size (Fatal) -You probably have a malformed object file. Once the program has terminated you must correct your object file. If this does not work, contact Technical Support who will help you to find the specific cause of the error. 121 Symbol is not in TEXT section (Fatal) -You have tried to call a subprogram that is not an executable program. Alternatively, you have used the same name for a called program as for a previously defined data item. -Check that the subprogram being called is an executable one. If required, correct the subprogram's name in the calling program and resubmit it to your COBOL system. Once your program has terminated, recode it to remove the naming duplication. Resubmit your program to your COBOL system. 122 Coblongjmp() called below level of cobsavenv() (Fatal) -You might have returned control to a higher level in the CALL/PERFORM hierarchy than the level at which cobsetjmp was called. Coblongjmp must be called only from the same or from a lower level in the CALL/PERFORM hierarchy as cobsavenv was. See your Object COBOL User Guide for details of cobsavenv and coblongjmp. 123 Unknown relocation type (Fatal) -You are using incompatible versions of the object file and the COBOL run-time library. -Once the program has terminated, resubmit your object file to your COBOL system with the current version of your COBOL run-time library. If this does not work, contact Technical Support who will help you to find the specific cause of the error. 124 Communication failure during I/O request to the central file handler 125 All locks/ current transactions canceled due to exceeding time limit 126 Record size exceeds system limit (Fatal) 129 Attempt to access record zero of relative file (Recoverable) -The value specified in the RELATIVE KEY data item contains the value zero. -You should ensure that the value in the RELATIVE KEY data item is greater than zero, then continue to run your program. 135 File must not exist (Recoverable) -The operating system has been unable to find a file which you have tried to access in your program. -Ensure that you are in the correct directory or that a path to the file concerned exists. You can then try the file operation again. If the error is the result of a spelling mistake then ask for the correct file and try the file operation again. 137 Illegal device specification - not mass storage Automation Engine 24 138 File closed with lock - cannot be opened (Recoverable) -You are trying to open a file which you previously closed with lock, which violates one of the general rules of COBOL programming. -You cannot open the relevant file. As this error implies that your program logic contains a mistake, you might want to close any remaining open files, execute a STOP RUN statement and recode. 139 Record length or key data inconsistency (Recoverable) -A discrepancy exists between the length of a record, or the keys which you have specified, in your current program and its definition in the program in which it was first opened. -Your program has a fault, so you probably should edit your code, then resubmit it to your COBOL system before running it again. 141 File already open - cannot be opened (Recoverable) -You have tried to open a file which is already open and so cannot be opened again. -Cancel your second attempt to open the file and continue to run your program if the fact that the file is already open is acceptable to you. However as this error implies that your program logic contains a mistake, you might want to close any open files, execute a STOP RUN statement and then recode. 142 File not open - cannot be closed (Recoverable) -You have tried to close a file which is not open. -You can abandon your attempt to close the relevant file and continue to run your program. However, as this error implies that your program logic contains a mistake, you might want to close any open files, execute a STOP RUN statement and then recode. 143 Rewrite/delete in sequential mode not preceded by successful read (Recoverable) You have failed to do a successful read on a sequentially accessed file trying a REWRITE or DELETE on some of the information contained in that file. -If the previous read was successful then perform a read on the relevant file before you retry the unsuccessful REWRITE or DELETE operation. If the previous read was also unsuccessful close the file, execute a STOP RUN statement and then recode your program before you next run it. 144 Boundary violation (Recoverable) -You have tried to write a record to a variable length record file, the length of which is not within the defined range for that file. -Recode your program. 146 No current record defined for sequential read (Recoverable) -The file position indicator in your file is undefined owing to a failed read/START or INVALID KEY condition. You have tried to read another record in the file but as the current record is undefined the system cannot find the start of the record for which you have asked. -You should try a START operation, and continue to do so until the file position indicator is updated successfully. 147 Wrong open mode or access mode for read/start (Recoverable) -You have tried to carry out a read or start operation on a file which has not been opened for INPUT or I-O, or which is not open at all. -Open the file for I-O or for INPUT and you should then be able to continue to run your program. However, as this error implies that your program logic contains a mistake, you might want to close any files which are open, execute a STOP RUN statement and then recode. 148 Wrong open mode or access mode for write (Recoverable) -You have tried to write to a file in sequential access mode that you have not opened for OUTPUT or EXTEND, or you have tried to write to a file in random or dynamic access mode that has not been opened INPUT or I-O, or which is not open at all. -Close the file and reopen it with the correct open mode for the file type. However, as this error implies that your program logic contains a mistake, you might want to close any files that are open, execute a STOP RUN statement and then recode. 25 Chapter 5 Codes d’erreur externes 149 Wrong open mode or access mode for rewrite/delete (Recoverable) -You are trying to do a REWRITE or a DELETE on a file that you have not opened for I-O, or which is not open at all. -Close the file and reopen for I-O. However, as this error implies that your program logic contains a mistake, you might want to close any open files, execute a STOP RUN statement and then recode. 151 Random read on sequential file (Recoverable) -You are trying to do a random read on a file which has sequential organization. -Read the file with the correct access mode. As this error implies that your program logic contains a mistake, you might like to close any files which are open, execute a STOP RUN statement and recode. 152 REWRITE on file not opened I-O (Recoverable) -You have tried a REWRITE on a file that is not open I-O. -Close the relevant file and open it for I-O operations. You should then be able to carry out the REWRITE operation successfully. However, as this error implies that your program logic contains a mistake, you might want to close any open files, execute a STOP RUN statement and then recode. 153 Subscript out of range (Fatal) -A subscript which you have used in your program is out of the defined range, that is, it is either less than one or it is greater than the number of occurrences of the item. -You should recode your program. 154 PERFORM nested too deeply (Fatal) -This error usually results if you have used GO TO to jump out of the range of a PERFORM rather than to jump to an EXIT statement at the end of its range. -When your program has terminated you should to recode your program to ensure that the GO TO in question jumps to an EXIT statement at the end of the PERFORM's range. 155 Illegal command line (Fatal) -The run-time system does not recognize as valid the command line format you have specified. Alternatively, the generic command-line interpreter, which must be present if your program is to be run successfully, is not found on your system. Alternatively, you have set an invalid COBSW value. -Rerun your application with a valid command line. Make sure that the interpreter is present to enable your system to pick up the commands correctly and then rerun your program. Reset COBSW to a valid value. 156 Too many parentheses in compute statement (Fatal) -You have coded a COMPUTE statement which is too complex for your system to handle successfully. -You should recode your program. We strongly advise you to break the relevant COMPUTE statement into a number of simpler statements. 157 Not enough program memory: object file too large to load (Recoverable) -Either your program is too large for the available memory space, or the stack is full. -If you have specified the ON OVERFLOW/EXCEPTION clause in the relevant CALL statement, the error is recoverable. Any associated imperative statement is executed before the next instruction. 158 Attempt to REWRITE to a line-sequential file (Recoverable) -You have used the REWRITE statement in conjunction with a file whose organization is line sequential. The REWRITE statement cannot be used with line sequential files. -Close the file in error before executing a STOP RUN statement to ensure that you do not lose any data from it. Recode your program to make the organization of the file to which you want to do a REWRITE either sequential, indexed sequential, or relative. 159 Malformed line-sequential file (Recoverable) -A line-sequential file which you are trying to access is corrupt in some way. -Rerun your program using the backup copy of that file. Automation Engine 26 160 Overlay loading error (Recoverable) -An error has occurred while trying to load the intermediate code for an independent segment. The segment is either missing or corrupted in some way. -If the segment is missing, locate it. If you cannot find it, or if it is present and corrupt, resubmit your program to your COBOL system. 161 Illegal intermediate code (Fatal) -The intermediate code which is currently being processed is not valid code. You are probably trying to execute a corrupted file or one which has not been submitted to your COBOL system successfully. -You should resubmit your source program to your COBOL system, to try to obtain uncorrupted intermediate code. 162 Arithmetic overflow or underflow (Fatal) -You are executing a program that is trying to perform a floating-point divide by zero. -You should recode your program to avoid this illegal operation. 163 Illegal character in numeric field (Fatal) -By default the value which you enter into a numeric or numeric edited field is checked to ensure that it is numeric. You have entered either nonnumeric characters or uninitialized numerics into numeric or numeric edited fields: these are automatically space filled and are thus classified as nonnumeric items. -You must adjust your code so that no invalid data is used. You can locate the invalid numeric data in your code by setting the +F switch on, and animating your program until you receive this error. You might need to use one of the Compiler directives, BADSIGNS, HOST-NUMCOMPARE, SIGNCOMPARE or SPZERO, to resolve invalid data in numeric fields. See your Object COBOL User Guide for details of these directives. 164 Run-Time subprogram not found (Fatal) -You have tried to call a subroutine whose entry address has not been set up in your run-time system. -Check to see that you used a valid call number in the unsuccessful subroutine call. If not, revise your code to contain a call number which your system recognizes. If you did use a valid call number but still received this error you should contact Technical Support. 165 Version number incompatibility (Fatal) -One or more of the run-time support modules is incompatible with the run-time system you are using. The name of the incompatible support module is displayed. Alternatively, the run-time system you are using is incompatible with the version of your COBOL system. Either "RTS" or the name of the run-time system file is displayed: coblib.dll (OS/2), coblib.dle (DOS) or coblib.dlw (Windows). -Reinstall the support module, using your installation disks. Reinstall the run-time system file, using your installation disks. If no support module name is displayed, you have done one of the following: -Used intermediate code which has been produced on a version of your COBOL system that is incompatible with the runtime system you are using. Your RTS, therefore, cannot execute correctly any generated code you are producing or have already produced from this intermediate code. -Tried to execute a file which is not your COBOL system's intermediate or generated code. 166 Recursive COBOL CALL is illegal (Fatal) -You have tried to call a COBOL module that is already active. -You should recode your program. 167 Too many USING items (Fatal) -The list of items which you have supplied in a CALL....USING statement is longer than the run-time system can handle. -Once your program has terminated recode it with group items rather than elementary items before rerunning it. 27 Chapter 5 Codes d’erreur externes 168 Stack overflow (Fatal) -You have nested a PERFORM statement or a series of CALL statements too deeply. Alternatively, if you have specified the CHECKSTACK directive when compiling your program, an incorrect number of parameters might have been used on a call, and as a result the stack has been corrupted. -Edit your program to reduce the number of levels in the nested PERFORM or CALL statement. If the CHECKSTACK directive has been used, determine which call is at fault and edit the source to provide the correct number and size of parameters. 169 Illegal configuration information (Fatal) -You have tried an operation for which your machine is not configured; the most likely cause of this is that Adis is not configured correctly. -Check that Adis is configured correctly. See your Programmer's Guide to Creating User Interfaces for details of how you can reconfigure Adis. 170 System program not found (Fatal) -A system program, for example Adis or ExtFH, is not present on the current logged-in drive. -Ensure that all the system programs are available on the logged-in drive and copy those which are not currently present using your backup system disk. Once all the necessary system programs are available you can run your program. 171 Japanese operations illegal with this RTS (Fatal) -You are trying to perform Japanese operations with a non-Japanese run-time system, or you have used a Japanese version of your COBOL system to produce code which you are now trying to run using a non-Japanese run-time system. -You should resubmit your program using a nonJapanese run-time system, or if you still want your program to perform Japanese operations, you should acquire a Japanese run-time system. 172 Recursive non-MF PERFORM is illegal (Fatal) -You have tried full recursion of a PERFORM statement in a program that was submitted to your COBOL system with the OSVS parameter of the PERFORM-TYPE directive specified. That is, you have tried to end two PERFORMs with the same return address. -You should either resubmit your program to your COBOL system with a parameter other than OSVS specified for the PERFORM-TYPE directive, or recode your program so that each PERFORM has its own unique return address before you resubmit it to your COBOL system with the MF parameter of the PERFORM-TYPE directive specified. 173 Called program file not found in drive/directory (Fatal) -You have tried to call a program which is not present on your current logged-in drive or directory, or in a directory pointed to by the COBDIR environment variable. -Once your program has terminated you should copy the relevant file into your logged-in drive or directory. If insufficient space is available, you should set the COBDIR environment variable to search the directory or drive on which the file is present when your program calls it. Once you have taken these steps, run your program again. 174 Imported file not found (Fatal) -You have tried to load a .dll file which contains references to another .dll file which cannot be found by the operating system. -Locate the missing file and ensure it is located on the default search path for your operating system. 175 Attempt to run intermediate code program which had severe errors in it (Fatal) -You are trying to run a program that produced severe faults when you submitted it to your COBOL system with the run-time switch E turned off. Alternatively, you could try to run the program with the E run-time switch set, though this might not give the desired results. -You should edit your source code to correct all the severe faults, resubmit it to your COBOL system, then run the intermediate code that is produced. When your program is being animated, Animator reports this error and enables you to continue to run the program. See also: E RTS switch Automation Engine 28 176 Illegal intersegment reference (Fatal) -You might have a corrupted file. Alternatively, your code contains a segment reference for the Forward Reference Table which is illegal. -Resubmit your source code to your COBOL system. If you receive this error again, contact Technical Support who will help you to find the specific cause of the error. 177 Attempt to cancel program failed (Fatal) -You have tried to remove a currently executing program or its parents or grandparents, from memory. Alternatively, you have tried to cancel a DLL, either directly or indirectly as an imported DLL, that contains an entry point which has been registered as an EXIT LIST function via the OS/2 API call DosExitList. -Once your program has terminated you need to recode your program to ensure that you do not try to cancel a program (or its parents or grandparents) while it is still being executed. Locate the erroneous DLL and ensure that the EXIT LIST function is removed before you cancel the DLL. If you cannot recode the DLL, you can set the O RTS switch to force a logical cancel on the DLL. See also:D2 RTS switch O RTS switch 178 Error during save (Fatal) -You cannot save the information which your program has generated. This can be caused by several different reasons but one of the most common causes is that you have tried to Build a module that is too large for the available memory space. -If the error is caused by a lack of space you can either delete some of the files which you no longer need on your current disk, or insert a new floppy disk to take the output from your program. You should then be able to rerun your program and save the information given by it. 179 Error during chain (program not found) (Fatal) -You have tried to chain to another program which your system is unable to find. -Once your program has terminated you should copy the relevant file into your logged-in drive or directory. If insufficient space is available, you should set the COBDIR environment variable to search the directory or drive on which the file is present when your program calls it. Once you have taken these steps, run your program again. 180 End-of-file marker error (Fatal) -A file-marker used to indicate that the end-of-file has been reached is missing from one of your files. -You should resubmit your code to your COBOL system, or use a debugger to place the end-of-file marker at the end of the file. You can then rerun your program. 181 Invalid parameter error (Fatal) -A parameter which you have used is not one which is recognized by your system. You have probably used a parameter for a run-time system subprogram which is not in the first 64K of the Data Division. -Revise your code to contain a parameter which is known by your system. That is, ensure that the parameter is in the first 64K of the Data Division. 182 Console input or console output open in wrong direction (Fatal) -You are either trying to read input from the screen or write to the keyboard. -You should recode your program. 183 Attempt to open line sequential file for I-O (Fatal) -You have tried to open a linesequential file in the input-output open mode, but this mode is not supported for files with this organization. -When your program has terminated you should recode your program to ensure that the file with organization line sequential is opened for input, output, or extend. You can then rerun your code. 184 ACCEPT/DISPLAY I-O error (Fatal) -You have either tried to read input from the screen or write to the keyboard, or the ADIS module has not been able to open your terminal's channels for I-O. -Your program logic contains a mistake, so you must recode. 185 File malformed (Recoverable) 29 Chapter 5 Codes d’erreur externes 186 Attempt to open stdin, stdout or stderr with incorrect mode (Recoverable) -You have tried to open either a standard input file with output mode, or some other file in an incorrect mode. 187 Run-time system not found on $COBDIR path (Fatal) -The run-time system cannot be found on the path you have set up in the COBDIR environment variable. Alternatively, you might not have installed your COBOL system correctly. -Ensure that the run-time system is on the path you have set up in the COBDIR environment variable. Alternatively, ensure that your COBOL system has been installed correctly. If it has not, you must reinstall your COBOL system. 188 Filename too large (Fatal) -A filename which you have used has more characters than the maximum number allowed by your operating system. -You should recode your program to check the length of the file in error, and rename it with a shorter filename. You can then run your program again. 189 Intermediate code load error (Fatal) -You are unable to load your intermediate code. You might have tried to load intermediate code that either has not been successfully produced, or has been corrupted in some way. -Try to obtain good intermediate code, for example, by resubmitting (or submitting) your source code to your COBOL system. You should then be able to load your code and run the program successfully. 190 Too many arguments to CALL (Fatal) -A CALL statement in your program cannot be successfully executed because of the number of arguments which you have used with it. -When your program has terminated you can recode it using group items rather than elementary ones. You should then be able to run your program successfully. 191 Terminal type not defined (Fatal) -Your terminal type is undefined, so your operating system is unable to drive your terminal. -Set up the necessary environment for your terminal. 192 Required terminal capability description missing (Fatal) -A compulsory entry, for example cursor movement or clear screen, is missing from your terminal configuration database. -Add the missing entry to your terminal configuration database. 193 Error in variable length count (Fatal) -The intermediate code which is currently being processed is not a valid operation. You are probably trying to execute a corrupt file or one which has not been produced. -You should resubmit your source code to your COBOL system. 194 File size too large (Fatal) -A file which your program is accessing is too large for successful execution to continue. -When your program has terminated you should recode your program spreading the data over more than one file to ensure that no file becomes too large for your operating system to handle. Having recoded your program you can then rerun it. 195 DELETE/REWRITE not preceded by a read (Fatal) -Before a DELETE or a REWRITE statement can be successfully executed in sequential access mode the last inputoutput statement executed for the associated file must have been a successful read. In your code no read statement precedes your tried DELETE or REWRITE. -When your program has terminated, recode your program, making sure that the last inputoutput statement to be executed before the DELETE or REWRITE is a READ statement. 196 Record number too large in relative or indexed file (Fatal) -The relative record key has exceeded the system limit, that is, the file is too large for the system to handle. Alternatively, the record key which you have specified is too large for the system to deal with successfully, or the pointer to the record has been corrupted in some way so that it is either too large or it is not a multiple of the record length. Automation Engine 30 197 Screen handling system initialization error (Fatal) -This error can be caused by one of the following: -Your display adapter is in the wrong mode. -Your screen handling interface has not been correctly initialized because your terminal does not have the required capabilities. -Your terminfo file is corrupted. -Memory has been incorrectly allocated. -If you are using a DOS or OS/2 system, the monitor must be in alphanumeric display mode rather than graphics display mode. You can set the display mode to a valid alphanumeric mode by using the DOS MODE utility and then rerunning your program. If you are using a UNIX-type system, you must check that your terminfo file contains the correct entry for your terminal. If your terminfo file is corrupt, or your screen handling interface has not been correctly initialized, you must advise your system administrator of the problem, and he will take steps to try to correct it. If your memory has been incorrectly allocated, you must rerun your program. 198 Load failure (Fatal) -The system cannot load a program, usually because of insufficient memory. Alternatively your program has run out of memory during the loading or reloading of a file. This occurs more frequently during Animation because of the extra memory required during Animation. -Make more memory available and then rerun your program. Ensure that as much memory as possible is available during Animation by canceling any program you do not currently need to access. 199 Operating System error code lies outside expected range (Fatal) -A system call has returned an unexpected error number which is not documented. -Contact Technical Support who will help you to find the specific cause of this error. 200 Run-time system internal logic error (Fatal) -The amount of memory available on your machine is so low that not even the run-time system can be fully loaded. Alternatively, your run-time system has stopped as a result of an internal logic error from which you cannot recover. -Free some memory and then you should be able to run your program successfully. Contact Technical Support who will help you to find the cause of the error. 201 I-O error in paging system (Fatal) -No room is available in your current directory or on the floppy disk which you are using, for the paging file. -When your program has terminated, delete any files which you no longer need from your directory to make room for the paging file, or insert a new floppy disk. 202 Exported functionality error (Fatal) -You have either caused an internal run-time system error by invalid use of an exported function, or the code produced by a preprocessor in your COBOL system contains errors. -Ensure that all of your external assembler applications call and use run-time system functions correctly before you try to run your program again. If you are using a preprocessor as part of your COBOL system, you should use the software as a standalone preprocessor to isolate the problem areas. 203 CALL parameter not supplied (Fatal) -The item you are trying to access in the Linkage Section of the currently executing program has not been initialized. -Recode your program to ensure that it contains all of the necessary parameters, or check that it is a valid caller. 206 Reading unwritten data from memory (Fatal) -You are trying to read data which has not been written, from the core file. 207 Machine does not exist (Recoverable) -You have tried to access a machine that is not connected to your network, or which is not on-line. -Make sure the machine is connected to the network and is on-line, then try to access it again. 31 Chapter 5 Codes d’erreur externes 208 Error in multi-user system (Fatal) -This is normally caused by an unexpected error occurring in the network or file-sharing facilities. A corrupted network message also causes this error to be returned. -Retry the unsuccessful operation. If the error persists, contact Technical Support who will help you to find the specific cause of this error. 209 Network communication error (Recoverable) -This is normally given if an incorrect checksum has been received in a communications packet. -Your program should continue to execute after you have received this error but results might be undefined. 210 File is closed with lock (Fatal) -You have tried to open a file which you have previously closed with lock. -Recode your program to avoid opening a file which has previously been closed with lock. 211 Program not executable by run-time system (Fatal) -You have tried to run a program that is incompatible with the current version of either your run-time system, your object file or your COBOL run-time library. For example, your run-time system does not run a program linked using a different object file format or COBOL run-time library. -If your object file is incompatible with the current version of either your COBOL run-time library or your run-time system, you should relink with the current version of your COBOL run-time library. 213 Too many locks (Recoverable) -You have either tried to exceed the maximum number of simultaneous record locks per file you can have, or you have exhausted an operating system or network resource, for example dynamic memory. -Execute a COMMIT or an UNLOCK operation on the relevant file and you should then be able to continue to run your program. You should try not to retain a record lock for longer than is necessary. 214 GO TO has not been ALTERed (Fatal) -You have violated one of the general rules of COBOL programming. -Close any files which might be open, execute a STOP RUN statement and then edit your program to avoid such illegal operations. 215 Cannot ANIMATE a program running COMMUNICATIONS (Fatal) -You have tried to animate a program which makes use of the communications module. This cannot be done as both Animator and the communications module need full use of the CRT. -You should run your program without the aid of Animator. 216 Cannot initialize the named communications device (Fatal) -A device driver is probably missing. -Ensure that all communications drivers are loaded before you try to run Communications. 217 Incompatible host for native code file (Fatal) -The .gnt file is not valid for the host processor. -You must resubmit your program to your COBOL system. 218 Malformed MULTIPLE REEL/UNIT file (Fatal) -Either your file header is not correctly formatted, or you are not using a MULTIPLE REEL/UNIT file. -You should try to run your program again using a backup copy of the relevant file. 219 Operating system shared file limit exceeded (Recoverable) -You have tried to exceed your operating system's limit on the number of shared files that you can have open simultaneously. As this figure is operating system dependent, you should consult your Release Notes for details of how many shared files your system permits to be open at any one time. -Close some of the open shared files you are no longer accessing and retry the file operation. Automation Engine 32 220 Attempt to execute more than one SORT or MERGE simultaneously (Fatal) -You have coded your program in such a way that it is trying to execute more than one SORT or MERGE operation at the same time. For example, you might have coded a SORT statement in the input or output procedure of another SORT statement, an operation that is specifically prohibited under the rules of ANSI COBOL. -You should recode your program to ensure that it does not execute more than one SORT or MERGE at any one time. 221 SORT/MERGE error: see status keys (Fatal) -You have tried a SORT/MERGE operation which has been unsuccessful for some reason. You might have had too many files open when you tried a SORT/MERGE operation, or the file which you are trying to access might be locked. -The action you should take depends on the situation in which it occurs. Check the status of each file (USING/ GIVING) defined in the SORT statement. 222 SORT/MERGE error: see status keys (Fatal) -You have tried a SORT/MERGE operation which has been unsuccessful for some reason. You might have had too many files open when you tried a SORT/MERGE operation, or the file which you are trying to access might be locked. -The action you should take depends on the situation in which it occurs. Check the status of each file (USING/ GIVING) defined in the SORT statement. 223 SORT/MERGE error: see status keys (Fatal) -You have tried a SORT/MERGE operation which has been unsuccessful for some reason. You might have had too many files open when you tried a SORT/MERGE operation, or the file which you are trying to access might be locked. Alternatively, you have set the TMP environment variable to point to a directory that does not exist. -The action you should take depends on the situation in which it occurs. Either set TMP to point to a directory that does exist, or unset TMP. 224 External Language Initialization failure 225 Dynamic load error - program component missing (Fatal) -The run-time system cannot locate the root or overlay of a program that is currently loaded in memory. Alternatively, you have insufficient memory to load your program. Alternatively, the run-time system could not find enough file handles to open and, therefore, load the code. -Either the library that contained the program has been canceled, or the program is no longer available on the program search path. Ensure that the program is available either on disk or on an open library. Either free some memory, use XM, or restructure your application so that it uses less memory. Increase your operating system file handles limit. 226 EXTERNAL file definition inconsistent -Two or more programs define the same external file but with different formats. For example, maximum and minimum record lengths might be different. -Make sure that all of your programs define the external file with the same format so that they are consistent. It is useful to have the file definition in a COPY file. 227 EXTERNAL data definition inconsistent (Fatal) -Two or more programs are defining the same external data item, but the first loaded program has defined the size differently from the second or subsequent loaded program. -Make sure that both or all of your programs define the size of the external data item as being the same. 228 Could not allocate memory for EXTERNAL item (Fatal) 33 Chapter 5 Codes d’erreur externes 229 SORT/MERGE module does not support EXTERNAL using/giving files (Recoverable) -You have tried a SORT or MERGE operation which has USING/ GIVING files which are defined as EXTERNAL. The SORT/ MERGE module does not support USING/ GIVING files defined as EXTERNAL. -Recompile your program to use the callable SORT module (EXTSM). 230 Floating Point Support Module not found (Fatal) 235 Error in animator communications channel (Fatal) -Animator has encountered system limits or conflicts resulting in communications errors. Perhaps two logins on the same UNIX system are trying to cross-session animate the same program file. -Copy the animated program file to a different directory and try animation. 236 Animated program has terminated unexpectedly (Fatal) -A program you are animating has terminated without following the standard run-time system shut-down process. The termination was probably either initiated by the user or caused by a severe runtime error. -Run your program without animation to determine if it runs successfully; if so, animate the program without cross-session or intrasession animation. 237 Unable to initialize animated process (Fatal) -Animator has encountered system limits in starting your program. The animated program cannot start because of either insufficient memory or too many processes running on the UNIX system. -Animate your program when the load on the system has reduced. Run the program without animation to determine if it runs successfully; if so, animate the program without crosssession or intrasession animation. Ask your system administrator to expand the number of process slots and virtual memory page maps. 238 STOP RUN encountered during GNT animation (Informational) -Animator has encountered a STOP RUN statement while animating your .gnt code program. -Step or Zoom the animated program, and Animator will terminate the program and its current session. 239 Shared run-time system initialization failure (Informational) -You are calling a COBOL module from a non-COBOL program, and have not initialized the shared run-time system. -Ensure that your application calls the cobinit() function before executing any COBOL modules. 240 Object reference not valid (Fatal) -You have tried to use an object reference that contains an incorrect or non-existent object handle. -Ensure that the object reference uses the correct object handle, and that your program has not previously destroyed the object by sending it a Finalize message. 241 Cannot instantiate an abstract class (Fatal) -You have tried to create an instance of a class that has been declared ABSTRACT. Such classes cannot be instantiated. Ensure that you have specified the correct class name. Check to see if there is a subclass that you should use instead. 242 Could not resolve DoesNotUnderstand message (Fatal) -The run-time system could not resolve the DoesNotUnderstand message. This is usually because you have defined a class in such a way that this method cannot be found. -Check the logic in your program to ensure that it invokes only methods that are supported by the object, or ensure that the object supports the DoesNotUnderstand method. 243 Class could not be loaded (Fatal) -An attempt to load an object class has failed because the class does not contain a valid Class-Control section, or because the class is not defined correctly. -Check the definition of the class. 254 Keyboard interrupt to ANIMATOR during ACCEPT (Fatal) -While using Animator you have terminated your program with a keyboard interrupt. Automation Engine 34 5.3 Messages d'erreur de la pile TCP/IP La suite est une liste de codes d'erreurs possible retournée par la fonction WSAGetLastError accompagnés de leurs explications. Les numéros d'erreurs sont constamment répartis entre toutes les exécutions Windows Sockets conformes. Code Windows Sockets Equivalent Berkeley Erreur Interprétation WSAEINTR EINTR 10004 Comme dans la norme C WSAEBADF EBADF 10009 Comme dans la norme C WSAEACCES EACCES 10013 Comme dans la norme C WSAEDISCON Aucun 10101 Le message s'est terminé sans problème. Uniquement utilisé pour les protocoles de messages. WSAEFAULT EFAULT 10014 Comme dans la norme C WSAEINVAL EINVAL 10022 Comme dans la norme C WSAEMFILE EMFILE 10024 Comme dans la norme C WSAEWOULDBLOCK EWOULDBLOCK 10035 Comme dans BSD WSAEINPROGRESS EINPROGRESS 10036 Ce message d'erreur apparait si une des fonctions Windows Sockets est appelée alors qu'une fonction de blocage s'effectue. WSAEALREADY EALREADY 10037 Comme dans BSD WSAENOTSOCK ENOTSOCK 10038 Comme dans BSD WSAEDESTADDRREQ EDESTADDRREQ 10039 Comme dans BSD WSAEMSGSIZE EMSGSIZE 10040 Comme dans BSD WSAEPROTOTYPE EPROTOTYPE 10041 Comme dans BSD WSAENOPROTOOPT ENOPROTOOPT 10042 Comme dans BSD WSAEPROTONOSUPPORT EPROTONOSUPPORT 10043 Comme dans BSD WSAESOCKTNOSUPPORT ESOCKTNOSUPPORT 10044 Comme dans BSD WSAEOPNOTSUPP EOPNOTSUPP 10045 Comme dans BSD WSAEPFNOSUPPORT EPFNOSUPPORT 10046 Comme dans BSD WSAEAFNOSUPPORT EAFNOSUPPORT 10047 Comme dans BSD WSAEADDRINUSE EADDRINUSE 10048 Comme dans BSD WSAEADDRNOTAVAIL EADDRNOTAVAIL 10049 Comme dans BSD WSAENETDOWN ENETDOWN 10050 Comme dans BSD. Cette erreur peut survenir à n'importe quel moment si l'exécution Windows Sockets détecte une erreur sous-jacente. 35 Chapter 5 Codes d’erreur externes WSAENETUNREACH ENETUNREACH 10051 Comme dans BSD WSAENETRESET ENETRESET 10052 Comme dans BSD WSAECONNABORTED ECONNABORTED 10053 Comme dans BSD WSAECONNRESET ECONNRESET 10054 Comme dans BSD WSAENOBUFS ENOBUFS 10055 Comme dans BSD WSAEISCONN EISCONN 10056 Comme dans BSD WSAENOTCONN ENOTCONN 10057 Comme dans BSD WSAESHUTDOWN ESHUTDOWN 10058 Comme dans BSD WSAETOOMANYREFS ETOOMANYREFS 10059 Comme dans BSD WSAETIMEDOUT ETIMEDOUT 10060 Comme dans BSD WSAECONNREFUSED ECONNREFUSED 10061 Comme dans BSD WSAELOOP ELOOP 10062 Comme dans BSD WSAENAMETOOLONG ENAMETOOLONG 10063 Comme dans BSD WSAEHOSTDOWN EHOSTDOWN 10064 Comme dans BSD WSAEHOSTUNREACH EHOSTUNREACH 10065 Comme dans BSD WSASYSNOTREADY Aucun 10091 Retourné par WSAStartup, indiquant que le soussystème réseau n'est pas utilisable. WSAVERNOTSUPPORTED Aucun 10092 Retourné par WSAStartup, indiquant que les Windows Sockets DLL ne peuvent pas prendre en charge cette application. WSANOTINITIALISED Aucun 10093 Retourné par toutes les fonctions sauf WSAStartup indiquant qu'un démarrage réussi n'a pas encore eu lieu. WSAHOST_NOT_FOUND HOST_NOT_FOUND 11001 Comme dans BSD WSATRY_AGAIN TRY_AGAIN 11002 Comme dans BSD WSANO_RECOVERY NO_RECOVERY 11003 Comme dans BSD WSANO_DATA NO_DATA 11004 Comme dans BSD La première série de définitions est présente afin de résoudre les conflits entre les codes erreurs de la norme C qui pourraient être définis de manière incohérente entre les différents compilateurs C. la deuxième série de définitions fournit des versions Windows Sockets pour des codes erreurs normaux Berkeley Sockets. La troisième série de définitions consiste en des codes erreurs étendus spécifiques de Windows Sockets. La quatrième série d'erreurs est retournée par les fonctions getXbyY et WSAAsyncGetXByY de Windows Sockets et correspond aux erreurs qui seraient retournées dans la Variable h_errno au sein du logiciel Berkeley. Elles correspondent à diverses erreurs qui peuvent être retournées par le Automation Engine 36 Domain Name Service (DNS). Si l'implémentation Windows Sockets n'utilise pas le DNS, elle utilise le code le plus approprié. En général, une application Windows Sockets devrait interpréter WSAHOST_NOT_FOUND et WSANO_DATA comme indiqué que la Clef (nom, adresse, etc.) n'a pas été trouvée alors que WSATRY_AGAIN et WSANO_RECOVERY suggèrent que le nom du service lui-même n'est pas opérationnel. Les nombres d'erreurs proviennent du fichier d'entête WINSOCK.H et sont basés sur le fait que les nombres d'erreurs Windows Sockets sont calculés en ajoutant 10 000 au nombre "normal" d'erreurs Berkeley. Veuillez remarquer que ce tableau n'inclut pas tous les codes erreur définis dans WINSOCK.H. La raison de cela est qu'il ne comprend que les erreurs qui peuvent être rationnellement renvoyées par une implémentation Windows Sockets. D'un autre côté, WINSOCK.H comprend une liste complète de définitions BSD afin d'assurer la compatibilité avec les logiciels portés. 5.4 Codes d’erreur UNIX 5.4.1 Codes d'erreur dans les messages du log de l'Agent Thème Sun OS (Solaris) Codes d'erreur Sparc, Solaris 1 version 4.1 et supérieure Codes d'erreur Sparc, Solaris 2 version 5.5 et supérieure Codes d'erreur Intel, Solaris version 2.4 et supérieure (correspond à SVR4) HP-UX Codes d'erreur HP-Workstation (9000), HP-UX 9 Codes d'erreur HP-Workstation (9000), HP-UX 10 DEC OSF Codes d'erreur Alpha - DEC-OSF/1 - Digital UNIX 4.0 SCO Codes d'erreur Intel, SCO-UNIX ODT 5.* IBM AIX Codes d'erreur Power-PC - AIX 4.1 Remarques Les codes d'erreur des différents systèmes UNIX sont utilisés dans les messages du log de l'Agent. Exemple : "Erreur U2003040 dans programme 'read' (58), socket '6', code d'erreur : ('11' - No more processes)" 37 Chapter 5 Codes d’erreur externes Ce message de log signifie que le code d'erreur 11 est survenu sur le socket 6 (numéro interne) lors de la fonction "read" (lecture de TCP/IP). Le programme a été répété 58 fois, jusqu'à ce que la fonction ait pu être terminée sans erreur. Ces messages ne sont généralement pas importants et ne nécessitent pas d'être respectés. Nous mettons ici à votre disposition tous les codes et textes d'erreur. Pour de plus amples informations, vous pouvez appeler la documentation relative à une fonction dans le système UNIX à l'aide de la fonctionman. Cette dernière contient également la description des codes d'erreur possibles. Exemple : man read 5.4.2 DEC OSF Codes d'erreur Alpha - DEC-OSF/1 - Digital UNIX 4.0 Code d'erreur Texte d'erreur 0 Successful 1 Not owner 2 No such file or directory 3 No such process 4 Interrupted system call 5 I/O error 6 No such device or address 7 Arg list too long 8 Exec format error 9 Bad file number 10 No children 11 Operation would cause deadlock 12 Not enough core 13 Permission denied 14 Bad address 15 Block device required 16 Mount device busy 17 File exists 18 Cross-device link 19 No such device 20 Not a directory 21 Is a directory 22 Invalid argument 23 File table overflow 24 Too many open files 25 Not a typewriter Automation Engine 26 Text file busy 27 File too large 28 No space left on device 29 Illegal seek 30 Read-only file system 31 Too many links 32 Broken pipe 33 Argument too large 34 Result too large 35 Operation would block 36 Operation now in progress 37 Operation already in progress 38 Socket operation on non-socket 39 Destination address required 40 Message too long 41 Protocol wrong type for socket 42 Protocol not available 43 Protocol not supported 44 Socket type not supported 45 Operation not supported on socket 46 Protocol family not supported 47 Address family not supported by protocol family 48 Address already in use 49 Can't assign requested address 50 Network is down 51 Network is unreachable 52 Network dropped connection on reset 53 Software caused connection abort 54 Connection reset by peer 55 No buffer space available 56 Socket is already connected 57 Socket is not connected 58 Can't send after socket shutdown 59 Too many references: can't splice 60 Connection timed out 61 Connection refused 62 Too many levels of symbolic links 63 File name too long 38 39 Chapter 5 Codes d’erreur externes 64 Host is down 65 No route to host 66 Directory not empty 67 Too many processes 68 Too many users 69 Disc quota exceeded 70 Stale NFS file handle 71 Too many levels of remote in path 72 RPC struct is bad 73 RPC version wrong 74 RPC prog. not avail 75 Program version wrong 76 Bad procedure for program 77 No locks available 78 Function not implemented 79 Inappropriate file type or format 80 No msg matches receive request 81 Msg queue id has been removed 82 Out of STREAMS resources 83 System call timed out 84 Next message has wrong type 85 STREAMS protocol error 86 No message on stream head read q 87 fd not associated with a stream 88 Tells open to clone the device 89 Mounting a dirty fs w/o force 90 duplicate package name on install 91 version number mismatch 92 unresolved package name 93 unresolved symbol name 94 operation canceled 95 cannot start operation 97 operation (now) in progress 98 too many timers 99 function not implemented 100 internal AIO operation complete 101 Reserved 102 Reserved Automation Engine 103 Value too large to be stored in data type 116 Invalid wide character 5.4.3 HP-UX Codes d'erreur HP-Workstation (9000), HP-UX 9 Code d'erreur Texte d'erreur 1 Not super-user 2 No such file or directory 3 No such process 4 interrupted system call 5 I/O error 6 No such device or address 7 Arg list too long 8 Exec format error 9 Bad file number 10 No children 11 No more processes 12 Not enough core 13 Permission denied 14 Bad address 15 Block device required 16 Mount device busy 17 File exists 18 Cross-device link 19 No such device 20 Not a directory 21 Is a directory 22 Invalid argument 23 File table overflow 24 Too many open files 25 Not a typewriter 26 Text file busy 27 File too large 28 No space left on device 29 Illegal seek 30 Read only file system 31 Too many links 40 41 Chapter 5 Codes d’erreur externes 32 Broken pipe 35 No message of desired type 36 Identifier removed 37 Channel number out of range 38 Level 2 not synchronized 39 Level 3 halted 40 Level 3 reset 41 Link number out of range 42 Protocol driver not attached 43 No CSI structure available 44 Level 2 halted 45 A deadlock would occur 46 System record lock table was full 47 Illegal byte sequence 50 Machine is not on the network 51 no data (for no delay io) 52 timer expired 53 out of streams resources 54 Device not a stream 55 Package not installed 57 the link has been severed 58 advertise error 59 srmount error 60 Communication error on send 61 Protocol error 64 multihop attempted 66 Cross mount point (not really error) 67 trying to read unreadable message 68 For Sun compatibilty, will not occur. 69 Disc quota exceeded 70 Stale NFS file handle 71 Too many levels of remote in path 99 Unexpected Error 215 symbol does not exist in executable 216 Socket operation on non-socket 217 Destination address required 218 Message too long 219 Protocol wrong type for socket Automation Engine 220 Protocol not available 221 Protocol not supported 222 Socket type not supported 223 Operation not supported 224 Protocol family not supported 225 Address family not supported by 226 Address already in use 227 Can't assign requested address 228 Network is down 229 Network is unreachable 230 Network dropped connection on 231 Software caused connection abort 232 Connection reset by peer 233 No buffer space available 234 Socket is already connected 235 Socket is not connected 236 Can't send after socket shutdown 237 Too many references: can't splice 238 Connection timed out 239 Connection refused 240 Remote peer released connection 241 Host is down 242 No route to host 244 Operation already in progress 245 Operation now in progress 246 Operation would block 247 Directory not empty 248 File name too long 249 Too many levels of symbolic links 250 No message of desired type 251 Function not implemented Codes d'erreur HP-Workstation (9000), HP-UX 10 Code d'erreur Texte d'erreur 1 Not super-user 2 No such file or directory 3 No such process 4 interrupted system call 42 43 Chapter 5 Codes d’erreur externes 5 I/O error 6 No such device or address 7 Arg list too long 8 Exec format error 9 Bad file number 10 No children 11 No more processes 12 Not enough core 13 Permission denied 14 Bad address 15 Block device required 16 Mount device busy 17 File exists 18 Cross-device link 19 No such device 20 Not a directory 21 Is a directory 22 Invalid argument 23 File table overflow 24 Too many open files 25 Not a typewriter 26 Text file busy 27 File too large 28 No space left on device 29 Illegal seek 30 Read only file system 31 Too many links 32 Broken pipe 33 Math arg out of domain of func 34 Math result not representable 35 No message of desired type 36 Identifier removed 37 Channel number out of range 38 Level 2 not synchronized 39 Level 3 halted 40 Level 3 reset 41 Link number out of range 42 Protocol driver not attached Automation Engine 43 No CSI structure available 44 Level 2 halted 45 A deadlock would occur 46 System record lock table was full 47 Illegal byte sequence 50 Machine is not on the network 51 no data (for no delay io) 52 timer expired 53 out of streams resources 54 Device not a stream 55 Package not installed 57 the link has been severed 58 advertise error 59 srmount error 60 Communication error on send 61 Protocol error 64 multihop attempted 66 Cross mount point (not really error) 67 trying to read unreadable message 68 For Sun compatibilty, will not occur. 69 Disc quota exceeded 70 Stale NFS file handle 71 Too many levels of remote in path 72 Value too large to be stored in data type 215 symbol does not exist in executable 216 Socket operation on non-socket 217 Destination address required 218 Message too long 219 Protocol wrong type for socket 220 Protocol not available 221 Protocol not supported 222 Socket type not supported 223 Operation not supported 224 Protocol family not supported 225 Address family not supported by 226 Address already in use 227 Can't assign requested address 228 Network is down 44 45 Chapter 5 Codes d’erreur externes 229 Network is unreachable 230 Network dropped connection on reset 231 Software caused connection abort 232 Connection reset by peer 233 No buffer space available 234 Socket is already connected 235 Socket is not connected 236 Can't send after socket shutdown 237 Too many references: can't splice 238 Connection timed out 239 Connection refused 240 Remote peer released connection 241 Host is down 242 No route to host 244 Operation already in progress 245 Operation now in progress 246 Operation would block 247 Directory not empty 248 File name too long 249 Too many levels of symbolic links 251 Function not implemented 252 Function not implemented 5.4.4 IBM AIX Codes d'erreur Power-PC - AIX 4.1 Code d'erreur Texte d'erreur 1 Operation not permitted 2 No such file or directory 3 No such process 4 interrupted system call 5 I/O error 6 No such device or address 7 Arg list too long 8 Exec format error 9 Bad file descriptor 10 No child processes 11 Resource temporarily unavailable Automation Engine 12 Not enough space 13 Permission denied 14 Bad address 15 Block device required 16 Resource busy 17 File exists 18 Improper link 19 No such device 20 Not a directory 21 Is a directory 22 Invalid argument 23 Too many open files in system 24 Too many open files 25 Inappropriate I/O control operation 26 Text file busy 27 File too large 28 No space left on device 29 Invalid seek 30 Read only file system 31 Too many links 32 Broken pipe 33 Domain error within math function 34 Result too large 35 No message of desired type 36 Identifier removed 37 Channel number out of range 38 Level 2 not synchronized 39 Level 3 halted 40 Level 3 reset 41 Link number out of range 42 Protocol driver not attached 43 No CSI structure available 44 Level 2 halted 45 Resource deadlock avoided 46 Device not ready 47 Write-protected media 48 Unformatted media 49 No locks available 46 47 Chapter 5 Codes d’erreur externes 50 no connection 52 no filesystem 53 old, currently unused AIX errno 54 Operation would block 55 Operation now in progress 56 Operation already in progress 57 Socket operation on non-socket 58 Destination address required 59 Message too long 60 Protocol wrong type for socket 61 Protocol not available 62 Protocol not supported 63 Socket type not supported 64 Operation not supported on socket 65 Protocol family not supported 66 Address family not supported by protocol family 67 Address already in use 68 Can't assign requested address 69 Network is down 70 Network is unreachable 71 Network dropped connection on reset 72 Software caused connection abort 73 Connection reset by peer 74 No buffer space available 75 Socket is already connected 76 Socket is not connected 77 Can't send after socket shutdown 78 Connection timed out 79 Connection refused 80 Host is down 81 No route to host 82 restart the system call 83 Too many processes 84 Too many users 85 Too many levels of symbolic links 86 File name too long 87 Directory not empty 88 Disc quota exceeded Automation Engine 89 - 92 reserved for future use compatible with AIX PS/2 93 Item is not local to host 94 - 108 reserved for future use compatible with AIX PS/2 109 Function not implemented POSIX 110 media surface error 111 I/O completed, but needs relocation 112 no attribute found 113 security authentication denied 114 not a trusted program 115 Too many references: can't splice 116 Invalid wide character 117 asynchronous i/o cancelled 118 temp out of streams resources 119 I_STR ioctl timed out 120 wrong message type at stream head 121 STREAMS protocol error 122 no message ready at stream head 123 fd is not a stream 124 POSIX threads unsupported value 125 multihop is not allowed 126 the link has been severed 127 value too large to be stored in data type 5.4.5 Sun OS (Solaris) Codes d'erreur Sparc, Solaris 1 version 4,1 et supérieure Code d'erreur Texte d'erreur 1 Not owner 2 No such file or directory 3 No such process 4 Interrupted system call 5 I/O error 6 No such device or address 7 Arg list too long 8 Exec format error 9 Bad file number 10 No children 11 No more processes 48 49 Chapter 5 Codes d’erreur externes 12 Not enough core 13 Permission denied 14 Bad address 15 Block device required 16 Mount device busy 17 File exists 18 Cross-device link 19 No such device 20 Not a directory 21 Is a directory 22 Invalid argument 23 File table overflow 24 Too many open files 25 Not a typewriter 26 Text file busy 27 File too large 28 No space left on device 29 Illegal seek 30 Read-only file system 31 Too many links 32 Broken pipe 33 Argument too large 34 Result too large 35 Operation would block 36 Operation now in progress 37 Operation already in progress 38 Socket operation on non-socket 39 Destination address required 40 Message too long 41 Protocol wrong type for socket 42 Protocol not available 43 Protocol not supported 44 Socket type not supported 45 Operation not supported on socket 46 Protocol family not supported 47 Address family not supported by protocol family 48 Address already in use 49 Can't assign requested address Automation Engine 50 Network is down 51 Network is unreachable 52 Network dropped connection on reset 53 Software caused connection abort 54 Connection reset by peer 55 No buffer space available 56 Socket is already connected 57 Socket is not connected 58 Can't send after socket shutdown 59 Too many references: can't splice 60 Connection timed out 61 Connection refused 62 Too many levels of symbolic links 63 File name too long 64 Host is down 65 No route to host 66 Directory not empty 67 Too many processes 68 Too many users 69 Disc quota exceeded 70 Stale NFS file handle 71 Too many levels of remote in path 72 Device is not a stream 73 Timer expired 74 Out of streams resources 75 No message of desired type 76 Trying to read unreadable message 77 Identifier removed 78 Deadlock condition. 79 No record locks available 80 Machine is not on the network 81 Object is remote 82 the link has been severed 83 advertise error 84 srmount error 85 Communication error on send 86 Protocol error 87 multihop attempted 50 51 Chapter 5 Codes d’erreur externes 88 Cross mount point (not an error) 89 Remote address changed 90 function not implemented Codes d'erreur Sparc, Solaris 2 version 5.5 et supérieure Code d'erreur Texte d'erreur 1 Not super-user 2 No such file or directory 3 No such process 4 interrupted system call 5 I/O error 6 No such device or address 7 Arg list too long 8 Exec format error 9 Bad file number 10 No children 11 Resource temporarily unavailable 12 Not enough core 13 Permission denied 14 Bad address 15 Block device required 16 Mount device busy 17 File exists 18 Cross-device link 19 No such device 20 Not a directory 21 Is a directory 22 Invalid argument 23 File table overflow 24 Too many open files 25 Inappropriate ioctl for device 26 Text file busy 27 File too large 28 No space left on device 29 Illegal seek 30 Read only file system 31 Too many links 32 Broken pipe Automation Engine 33 Math arg out of domain of func 34 Math result not representable 35 No message of desired type 36 Identifier removed 37 Channel number out of range 38 Level 2 not synchronized 39 Level 3 halted 40 Level 3 reset 41 Link number out of range 42 Protocol driver not attached 43 No CSI structure available 44 Level 2 halted 45 Deadlock condition. 46 No record locks available 47 Operation canceled 48 Operation not supported 49 Disc quota exceeded 50 invalid exchange 51 invalid request descriptor 52 exchange full 53 no anode 54 invalid request code 55 invalid slot 56 file locking deadlock error 57 bad font file fmt 60 Device not a stream 61 no data (for no delay io) 62 timer expired 63 out of streams resources 64 Machine is not on the network 65 Package not installed 66 The object is remote 67 the link has been severed 68 advertise error 69 srmount error 70 Communication error on send 71 Protocol error 74 multihop attempted 52 53 Chapter 5 Codes d’erreur externes 77 trying to read unreadable message 78 path name is too long 79 value too large to be stored in data type 80 given log. name not unique 81 f.d. invalid for this operation 82 Remote address changed 83 Can't access a needed shared lib. 84 Accessing a corrupted shared lib. 85 .lib section in a.out corrupted. 86 Attempting to link in too many libs. 87 Attempting to exec a shared library. 88 Illegal byte sequence. 89 Unsupported file system operation 90 Symbolic link loop 91 Restartable system call 92 if pipe/FIFO, don't sleep in stream head 93 directory not empty 94 Too many users (for UFS) 95 Socket operation on non-socket 96 Destination address required 97 Message too long 98 Protocol wrong type for socket 99 Protocol not available 120 Protocol not supported 121 Socket type not supported 122 Operation not supported on socket 123 Protocol family not supported 124 Address family not supported by 125 Address already in use 126 Can't assign requested address 127 Network is down 128 Network is unreachable 129 Network dropped connection because 130 Software caused connection abort 131 Connection reset by peer 132 No buffer space available 133 Socket is already connected 134 Socket is not connected Automation Engine 135 - 142 XENIX 143 Can't send after socket shutdown 144 Too many references: can't splice 145 Connection timed out 146 Connection refused 147 Host is down 148 No route to host 149 operation already in progress 150 operation now in progress 151 Stale NFS file handle Codes d'erreur Intel, Solaris version 2.4 et supérieure Code d'erreur Texte d'erreur 1 Not super-user 2 No such file or directory 3 No such process 4 interrupted system call 5 I/O error 6 No such device or address 7 Arg list too long 8 Exec format error 9 Bad file number 10 No children 11 Resource temporarily unavailable 12 Not enough core 13 Permission denied 14 Bad address 15 Block device required 16 Mount device busy 17 File exists 18 Cross-device link 19 No such device 20 Not a directory 21 Is a directory 22 Invalid argument 23 File table overflow 24 Too many open files 25 Inappropriate ioctl for device 54 55 Chapter 5 Codes d’erreur externes 26 Text file busy 27 File too large 28 No space left on device 29 Illegal seek 30 Read only file system 31 Too many links 32 Broken pipe 33 Math arg out of domain of func 34 Math result not representable 35 No message of desired type 36 Identifier removed 37 Channel number out of range 38 Level 2 not synchronized 39 Level 3 halted 40 Level 3 reset 41 Link number out of range 42 Protocol driver not attached 43 No CSI structure available 44 Level 2 halted 45 Deadlock condition. 46 No record locks available 47 Operation canceled 48 Operation not supported 50 invalid exchange 51 invalid request descriptor 52 exchange full 53 no anode 54 invalid request code 55 invalid slot 56 file locking deadlock error 57 bad font file fmt 60 Device not a stream 61 no data (for no delay io) 62 timer expired 63 out of streams resources 64 Machine is not on the network 65 Package not installed 66 The object is remote Automation Engine 67 the link has been severed 68 advertise error 69 srmount error 70 Communication error on send 71 Protocol error 74 multihop attempted 77 trying to read unreadable message 78 path name is too long 79 value too large to be stored in data type 80 given log. name not unique 81 f.d. invalid for this operation 82 Remote address changed 83 Can't access a needed shared lib. 84 Accessing a corrupted shared lib. 85 .lib section in a.out corrupted. 86 Attempting to link in too many libs. 87 Attempting to exec a shared library. 88 Illegal byte sequence. 89 Unsupported file system operation 90 Symbolic link loop 91 Restartable system call 92 if pipe/FIFO, don't sleep in stream head 93 directory not empty 94 Too many users (for UFS) 95 Socket operation on non-socket 96 Destination address required 97 Message too long 98 Protocol wrong type for socket 99 Protocol not available 120 Protocol not supported 121 Socket type not supported 122 Operation not supported on socket 123 Protocol family not supported 124 Address family not supported by 125 Address already in use 126 Can't assign requested address 127 Network is down 128 Network is unreachable 56 57 Chapter 5 Codes d’erreur externes 129 Network dropped connection because of reset 130 Software caused connection abort 131 Connection reset by peer 132 No buffer space available 133 Socket is already connected 134 Socket is not connected 135 - 142 XENIX 143 Can't send after socket shutdown 144 Too many references: can't splice 145 Connection timed out 146 Connection refused 147 Host is down 148 No route to host 149 operation already in progress 150 operation now in progress 5.5 Codes d’erreur Windows 5.5.1 Win32 - Codes d'erreur (0-999) Le tableau suivant contient les messages d'erreur Win32. Code Description Nom 0 The operation completed successfully. ERROR_ SUCCESS 1 Incorrect function. ERROR_ INVALID_ FUNCTION 2 The system cannot find the file specified. ERROR_FILE_ NOT_FOUND 3 The system cannot find the path specified. ERROR_PATH_ NOT_FOUND 4 The system cannot open the file. ERROR_TOO_ MANY_OPEN_ FILES 5 Access is denied. ERROR_ ACCESS_ DENIED 6 The handle is invalid. ERROR_ INVALID_ HANDLE Automation Engine 58 7 The storage control blocks were destroyed. ERROR_ ARENA_ TRASHED 8 Not enough storage is available to process this command. ERROR_NOT_ ENOUGH_ MEMORY 9 The storage control block address is invalid. ERROR_ INVALID_BLOCK 10 The environment is incorrect. ERROR_BAD_ ENVIRONMENT 11 An attempt was made to load a program with an incorrect format. ERROR_BAD_ FORMAT 12 The access code is invalid. ERROR_ INVALID_ ACCESS 13 The data is invalid. ERROR_ INVALID_DATA 14 Not enough storage is available to complete this operation. ERROR_ OUTOFMEMORY 15 The system cannot find the drive specified. ERROR_ INVALID_DRIVE 16 The directory cannot be removed. ERROR_ CURRENT_ DIRECTORY 17 The system cannot move the file to a different disk drive. ERROR_NOT_ SAME_DEVICE 18 There are no more files. ERROR_NO_ MORE_FILES 19 The media is write protected. ERROR_WRITE_ PROTECT 20 The system cannot find the device specified. ERROR_BAD_ UNIT 21 The device is not ready. ERROR_NOT_ READY 22 The device does not recognize the command. ERROR_BAD_ COMMAND 23 Data error (cyclic redundancy check). ERROR_CRC 24 The program issued a command but the command length is incorrect. ERROR_BAD_ LENGTH 25 The drive cannot locate a specific area or track on the disk. ERROR_SEEK 26 The specified disk or diskette cannot be accessed. ERROR_NOT_ DOS_DISK 27 The drive cannot find the sector requested. ERROR_ SECTOR_NOT_ FOUND 59 Chapter 5 Codes d’erreur externes 28 The printer is out of paper. ERROR_OUT_ OF_PAPER 29 The system cannot write to the specified device. ERROR_WRITE_ FAULT 30 The system cannot read from the specified device. ERROR_READ_ FAULT 31 A device attached to the system is not functioning. ERROR_GEN_ FAILURE 32 The process cannot access the file because it is being used by another process. ERROR_ SHARING_ VIOLATION 33 The process cannot access the file because another process has locked a portion of the file. ERROR_LOCK_ VIOLATION 34 The wrong diskette is in the drive. Insert %2 (Volume Serial Number: %3) into drive %1. ERROR_ WRONG_DISK 36 Too many files opened for sharing. ERROR_ SHARING_ BUFFER_ EXCEEDED 38 Reached the end of the file. ERROR_ HANDLE_EOF 39 The disk is full. ERROR_ HANDLE_DISK_ FULL 50 The network request is not supported. ERROR_NOT_ SUPPORTED 51 The remote computer is not available. ERROR_REM_ NOT_LIST 52 A duplicate name exists on the network. ERROR_DUP_ NAME 53 The network path was not found. ERROR_BAD_ NETPATH 54 The network is busy. ERROR_ NETWORK_ BUSY 55 The specified network resource or device is no longer available. ERROR_DEV_ NOT_EXIST 56 The network BIOS command limit has been reached. ERROR_TOO_ MANY_CMDS 57 A network adapter hardware error occurred. ERROR_ADAP_ HDW_ERR 58 The specified server cannot perform the requested operation. ERROR_BAD_ NET_RESP 59 An unexpected network error occurred. ERROR_ UNEXP_NET_ ERR Automation Engine 60 60 The remote adapter is not compatible. ERROR_BAD_ REM_ADAP 61 The printer queue is full. ERROR_ PRINTQ_FULL 62 Space to store the file waiting to be printed is not available on the server. ERROR_NO_ SPOOL_SPACE 63 Your file waiting to be printed was deleted. ERROR_PRINT_ CANCELLED 64 The specified network name is no longer available. ERROR_ NETNAME_ DELETED 65 Network access is denied. ERROR_ NETWORK_ ACCESS_ DENIED 66 The network resource type is not correct. ERROR_BAD_ DEV_TYPE 67 The network name cannot be found. ERROR_BAD_ NET_NAME 68 The name limit for the local computer network adapter card was exceeded. ERROR_TOO_ MANY_NAMES 69 The network BIOS session limit was exceeded. ERROR_TOO_ MANY_SESS 70 The remote server has been paused or is in the process of being started. ERROR_ SHARING_ PAUSED 71 No more connections can be made to this remote computer at this ERROR_REQ_ time because there are already as many connections as the computer NOT_ACCEP can accept. 72 The specified printer or disk device has been paused. ERROR_REDIR_ PAUSED 80 The file exists. ERROR_FILE_ EXISTS 82 The directory or file cannot be created. ERROR_ CANNOT_MAKE 83 Fail on INT 24. ERROR_FAIL_I24 84 Storage to process this request is not available. ERROR_OUT_ OF_ STRUCTURES 85 The local device name is already in use. ERROR_ ALREADY_ ASSIGNED 86 The specified network password is not correct. ERROR_ INVALID_ PASSWORD 61 Chapter 5 Codes d’erreur externes 87 The parameter is incorrect. ERROR_ INVALID_ PARAMETER 88 A write fault occurred on the network. ERROR_NET_ WRITE_FAULT 89 The system cannot start another process at this time. ERROR_NO_ PROC_SLOTS 100 Cannot create another system semaphore. ERROR_TOO_ MANY_ SEMAPHORES 101 The exclusive semaphore is owned by another process. ERROR_EXCL_ SEM_ALREADY_ OWNED 102 The semaphore is set and cannot be closed. ERROR_SEM_ IS_SET 103 The semaphore cannot be set again. ERROR_TOO_ MANY_SEM_ REQUESTS 104 Cannot request exclusive semaphores at interrupt time. ERROR_ INVALID_AT_ INTERRUPT_ TIME 105 The previous ownership of this semaphore has ended. ERROR_SEM_ OWNER_DIED 106 Insert the diskette for drive %1. ERROR_SEM_ USER_LIMIT 107 The program stopped because an alternate diskette was not inserted. ERROR_DISK_ CHANGE 108 The disk is in use or locked by another process. ERROR_DRIVE_ LOCKED 109 The pipe has been ended. ERROR_ BROKEN_PIPE 110 The system cannot open the device or file specified. ERROR_OPEN_ FAILED 111 The file name is too long. ERROR_ BUFFER_ OVERFLOW 112 There is not enough space on the disk. ERROR_DISK_ FULL 113 No more internal file identifiers available. ERROR_NO_ MORE_ SEARCH_ HANDLES Automation Engine 62 114 The target internal file identifier is incorrect. ERROR_ INVALID_ TARGET_ HANDLE 117 The IOCTL call made by the application program is not correct. ERROR_ INVALID_ CATEGORY 118 The verify-on-write switch parameter value is not correct. ERROR_ INVALID_ VERIFY_ SWITCH 119 The system does not support the command requested. ERROR_BAD_ DRIVER_LEVEL 120 This function is not supported on this system. ERROR_CALL_ NOT_ IMPLEMENTED 121 The semaphore timeout period has expired. ERROR_SEM_ TIMEOUT 122 The data area passed to a system call is too small. ERROR_ INSUFFICIENT_ BUFFER 123 The filename, directory name, or volume label syntax is incorrect. ERROR_ INVALID_NAME 124 The system call level is not correct. ERROR_ INVALID_LEVEL 125 The disk has no volume label. ERROR_NO_ VOLUME_LABEL 126 The specified module could not be found. ERROR_MOD_ NOT_FOUND 127 The specified procedure could not be found. ERROR_PROC_ NOT_FOUND 128 There are no child processes to wait for. ERROR_WAIT_ NO_CHILDREN 129 The %1 application cannot be run in Win32 mode. ERROR_CHILD_ NOT_COMPLETE 130 Attempt to use a file handle to an open disk partition for an operation other than raw disk I/O. ERROR_ DIRECT_ ACCESS_ HANDLE 131 An attempt was made to move the file pointer before the beginning of the file. ERROR_ NEGATIVE_ SEEK 132 The file pointer cannot be set on the specified device or file. ERROR_SEEK_ ON_DEVICE 133 A JOIN or SUBST command cannot be used for a drive that contains ERROR_IS_ previously joined drives. JOIN_TARGET 63 Chapter 5 Codes d’erreur externes 134 An attempt was made to use a JOIN or SUBST command on a drive that has already been joined. ERROR_IS_ JOINED 135 An attempt was made to use a JOIN or SUBST command on a drive that has already been substituted. ERROR_IS_ SUBSTED 136 The system tried to delete the JOIN of a drive that is not joined. ERROR_NOT_ JOINED 137 The system tried to delete the substitution of a drive that is not substituted. ERROR_NOT_ SUBSTED 138 The system tried to join a drive to a directory on a joined drive. ERROR_JOIN_ TO_JOIN 139 The system tried to substitute a drive to a directory on a substituted drive. ERROR_SUBST_ TO_SUBST 140 The system tried to join a drive to a directory on a substituted drive. ERROR_JOIN_ TO_SUBST 141 The system tried to SUBST a drive to a directory on a joined drive. ERROR_SUBST_ TO_JOIN 142 The system cannot perform a JOIN or SUBST at this time. ERROR_BUSY_ DRIVE 143 The system cannot join or substitute a drive to or for a directory on the ERROR_SAME_ same drive. DRIVE 144 The directory is not a subdirectory of the root directory. ERROR_DIR_ NOT_ROOT 145 The directory is not empty. ERROR_DIR_ NOT_EMPTY 146 The path specified is being used in a substitute. ERROR_IS_ SUBST_PATH 147 Not enough resources are available to process this command. ERROR_IS_ JOIN_PATH 148 The path specified cannot be used at this time. ERROR_PATH_ BUSY 149 An attempt was made to join or substitute a drive for which a directory ERROR_IS_ on the drive is the target of a previous substitute. SUBST_TARGET 150 System trace information was not specified in your CONFIG.SYS file, or tracing is disallowed. ERROR_ SYSTEM_TRACE 151 The number of specified semaphore events for DosMuxSemWait is not correct. ERROR_ INVALID_ EVENT_COUNT 152 DosMuxSemWait did not execute; too many semaphores are already ERROR_TOO_ set. MANY_ MUXWAITERS 153 The DosMuxSemWait list is not correct. ERROR_ INVALID_LIST_ FORMAT 154 The volume label you entered exceeds the label character limit of the target file system. ERROR_LABEL_ TOO_LONG Automation Engine 64 155 Cannot create another thread. ERROR_TOO_ MANY_TCBS 156 The recipient process has refused the signal. ERROR_ SIGNAL_ REFUSED 157 The segment is already discarded and cannot be locked. ERROR_ DISCARDED 158 The segment is already unlocked. ERROR_NOT_ LOCKED 159 The address for the thread ID is not correct. ERROR_BAD_ THREADID_ ADDR 160 The argument string passed to DosExecPgm is not correct. ERROR_BAD_ ARGUMENTS 161 The specified path is invalid. ERROR_BAD_ PATHNAME 162 A signal is already pending. ERROR_ SIGNAL_ PENDING 164 No more threads can be created in the system. ERROR_MAX_ THRDS_ REACHED 167 Unable to lock a region of a file. ERROR_LOCK_ FAILED 170 The requested resource is in use. ERROR_BUSY 173 A lock request was not outstanding for the supplied cancel region. ERROR_ CANCEL_ VIOLATION 174 The file system does not support atomic changes to the lock type. ERROR_ ATOMIC_ LOCKS_NOT_ SUPPORTED 180 The system detected a segment number that was not correct. ERROR_ INVALID_ SEGMENT_ NUMBER 182 The operating system cannot run %1. ERROR_ INVALID_ ORDINAL 183 Cannot create a file when that file already exists. ERROR_ ALREADY_ EXISTS 186 The flag passed is not correct. ERROR_ INVALID_FLAG_ NUMBER 65 Chapter 5 Codes d’erreur externes 187 The specified system semaphore name was not found. ERROR_SEM_ NOT_FOUND 188 The operating system cannot run %1. ERROR_ INVALID_ STARTING_ CODESEG 189 The operating system cannot run %1. ERROR_ INVALID_ STACKSEG 190 The operating system cannot run %1. ERROR_ INVALID_ MODULETYPE 191 Cannot run %1 in Win32 mode. ERROR_ INVALID_EXE_ SIGNATURE 192 The operating system cannot run %1. ERROR_EXE_ MARKED_ INVALID 193 %1 is not a valid Win32 application. ERROR_BAD_ EXE_FORMAT 194 The operating system cannot run %1. ERROR_ ITERATED_ DATA_ EXCEEDS_64k 195 The operating system cannot run %1. ERROR_ INVALID_ MINALLOCSIZE 196 The operating system cannot run this application program. ERROR_ DYNLINK_ FROM_INVALID_ RING 197 The operating system is not presently configured to run this application. ERROR_IOPL_ NOT_ENABLED 198 The operating system cannot run %1. ERROR_ INVALID_ SEGDPL 199 The operating system cannot run this application program. ERROR_ AUTODATASEG_ EXCEEDS_64k 200 The code segment cannot be greater than or equal to 64K. ERROR_ RING2SEG_ MUST_BE_ MOVABLE 201 The operating system cannot run %1. ERROR_RELOC_ CHAIN_XEEDS_ SEGLIM Automation Engine 66 202 The operating system cannot run %1. ERROR_ INFLOOP_IN_ RELOC_CHAIN 203 The system could not find the environment option that was entered. ERROR_ ENVVAR_NOT_ FOUND 205 No process in the command subtree has a signal handler. ERROR_NO_ SIGNAL_SENT 206 The filename or extension is too long. ERROR_ FILENAME_ EXCED_RANGE 207 The ring 2 stack is in use. ERROR_RING2_ STACK_IN_USE 208 The global filename characters, * or ?, are entered incorrectly or too many global filename characters are specified. ERROR_META_ EXPANSION_ TOO_LONG 209 The signal being posted is not correct. ERROR_ INVALID_ SIGNAL_ NUMBER 210 The signal handler cannot be set. ERROR_ THREAD_1_ INACTIVE 212 The segment is locked and cannot be reallocated. ERROR_ LOCKED 214 Too many dynamic-link modules are attached to this program or dynamic-link module. ERROR_TOO_ MANY_ MODULES 215 Cannot nest calls to LoadModule. ERROR_ NESTING_NOT_ ALLOWED 216 The image file %1 is valid, but is for a machine type other than the current machine. ERROR_EXE_ MACHINE_ TYPE_ MISMATCH 230 The pipe state is invalid. ERROR_BAD_ PIPE 231 All pipe instances are busy. ERROR_PIPE_ BUSY 232 The pipe is being closed. ERROR_NO_ DATA 233 No process is on the other end of the pipe. ERROR_PIPE_ NOT_ CONNECTED 234 More data is available. ERROR_MORE_ DATA 67 Chapter 5 Codes d’erreur externes 240 The session was canceled. ERROR_VC_ DISCONNECTED 254 The specified extended attribute name was invalid. ERROR_ INVALID_EA_ NAME 255 The extended attributes are inconsistent. ERROR_EA_ LIST_ INCONSISTENT 258 The wait operation timed out. WAIT_TIMEOUT 259 No more data is available. ERROR_NO_ MORE_ITEMS 266 The copy functions cannot be used. ERROR_ CANNOT_COPY 267 The directory name is invalid. ERROR_ DIRECTORY 275 The extended attributes did not fit in the buffer. ERROR_EAS_ DIDNT_FIT 276 The extended attribute file on the mounted file system is corrupt. ERROR_EA_ FILE_CORRUPT 277 The extended attribute table file is full. ERROR_EA_ TABLE_FULL 278 The specified extended attribute handle is invalid. ERROR_ INVALID_EA_ HANDLE 282 The mounted file system does not support extended attributes. ERROR_EAS_ NOT_ SUPPORTED 288 Attempt to release mutex not owned by caller. ERROR_NOT_ OWNER 298 Too many posts were made to a semaphore. ERROR_TOO_ MANY_POSTS 299 Only part of a ReadProcessMemory or WriteProcessMemory request ERROR_ was completed. PARTIAL_COPY 300 The oplock request is denied. ERROR_ OPLOCK_NOT_ GRANTED 301 An invalid oplock acknowledgment was received by the system. ERROR_ INVALID_ OPLOCK_ PROTOCOL 317 The system cannot find message text for message number 0x%1 in the message file for %2. ERROR_MR_ MID_NOT_ FOUND 487 Attempt to access invalid address. ERROR_ INVALID_ ADDRESS Automation Engine 534 Arithmetic result exceeded 32 bits. ERROR_ ARITHMETIC_ OVERFLOW 535 There is a process on other end of the pipe. ERROR_PIPE_ CONNECTED 536 Waiting for a process to open the other end of the pipe. ERROR_PIPE_ LISTENING 994 Access to the extended attribute was denied. ERROR_EA_ ACCESS_ DENIED 995 The I/O operation has been aborted because of either a thread exit or an application request. ERROR_ OPERATION_ ABORTED 996 Overlapped I/O event is not in a signaled state. ERROR_IO_ INCOMPLETE 997 Overlapped I/O operation is in progress. ERROR_IO_ PENDING 998 Invalid access to memory location. ERROR_ NOACCESS 999 Error performing inpage operation. ERROR_ SWAPERROR 68 5.5.2 Win32 - Codes d'erreur (1 000-1 999) Le tableau suivant contient les messages d'erreur Win32. Code Description Nom 1001 Recursion too deep; the stack overflowed. ERROR_STACK_ OVERFLOW 1002 The window cannot act on the sent message. ERROR_INVALID_ MESSAGE 1003 Cannot complete this function. ERROR_CAN_NOT_ COMPLETE 1004 Invalid flags. ERROR_INVALID_ FLAGS 1005 The volume does not contain a recognized file system. Please make sure that all required file system drivers are loaded and that the volume is not corrupted. ERROR_ UNRECOGNIZED_ VOLUME 1006 The volume for a file has been externally altered so that the opened ERROR_FILE_ file is no longer valid. INVALID 1007 The requested operation cannot be performed in full-screen mode. ERROR_ FULLSCREEN_ MODE 1008 An attempt was made to reference a token that does not exist. ERROR_NO_ TOKEN 1009 The configuration registry database is corrupt. ERROR_BADDB 69 Chapter 5 Codes d’erreur externes 1010 The configuration registry key is invalid. ERROR_BADKEY 1011 The configuration registry key could not be opened. ERROR_ CANTOPEN 1012 The configuration registry key could not be read. ERROR_ CANTREAD 1013 The configuration registry key could not be written. ERROR_ CANTWRITE 1014 One of the files in the registry database had to be recovered by use ERROR_ of a log or alternate copy. The recovery was successful. REGISTRY_ RECOVERED 1015 The registry is corrupted. The structure of one of the files that ERROR_ contains registry data is corrupted, or the system's image of the file REGISTRY_ in memory is corrupted, or the file could not be recovered because CORRUPT the alternate copy or log was absent or corrupted. 1016 An I/O operation initiated by the registry failed unrecoverably. The registry could not read in, or write out, or flush, one of the files that contain the system's image of the registry. 1017 The system has attempted to load or restore a file into the registry, ERROR_NOT_ but the specified file is not in a registry file format. REGISTRY_FILE 1018 Illegal operation attempted on a registry key that has been marked for deletion. ERROR_KEY_ DELETED 1019 System could not allocate the required space in a registry log. ERROR_NO_LOG_ SPACE 1020 Cannot create a symbolic link in a registry key that already has subkeys or values. ERROR_KEY_HAS_ CHILDREN 1021 Cannot create a stable subkey under a volatile parent key. ERROR_CHILD_ MUST_BE_ VOLATILE 1022 A notify change request is being completed and the information is not being returned in the caller's buffer. The caller now needs to enumerate the files to find the changes. ERROR_NOTIFY_ ENUM_DIR 1051 A stop control has been sent to a service that other running services are dependent on. ERROR_ DEPENDENT_ SERVICES_ RUNNING 1052 The requested control is not valid for this service. ERROR_INVALID_ SERVICE_ CONTROL 1053 The service did not respond to the start or control request in a timely fashion. ERROR_SERVICE_ REQUEST_ TIMEOUT 1054 A thread could not be created for the service. ERROR_SERVICE_ NO_THREAD 1055 The service database is locked. ERROR_SERVICE_ DATABASE_ LOCKED ERROR_ REGISTRY_IO_ FAILED Automation Engine 70 1056 An instance of the service is already running. ERROR_SERVICE_ ALREADY_ RUNNING 1057 The account name is invalid or does not exist. ERROR_INVALID_ SERVICE_ ACCOUNT 1058 The service cannot be started, either because it is disabled or because it has no enabled devices associated with it. ERROR_SERVICE_ DISABLED 1059 Circular service dependency was specified. ERROR_ CIRCULAR_ DEPENDENCY 1060 The specified service does not exist as an installed service. ERROR_SERVICE_ DOES_NOT_EXIST 1061 The service cannot accept control messages at this time. ERROR_SERVICE_ CANNOT_ACCEPT_ CTRL 1062 The service has not been started. ERROR_SERVICE_ NOT_ACTIVE 1063 The service process could not connect to the service controller. ERROR_FAILED_ SERVICE_ CONTROLLER_ CONNECT 1064 An exception occurred in the service when handling the control request. ERROR_ EXCEPTION_IN_ SERVICE 1065 The database specified does not exist. ERROR_ DATABASE_DOES_ NOT_EXIST 1066 The service has returned a service-specific error code. ERROR_SERVICE_ SPECIFIC_ERROR 1067 The process terminated unexpectedly. ERROR_ PROCESS_ ABORTED 1068 The dependency service or group failed to start. ERROR_SERVICE_ DEPENDENCY_ FAIL 1069 The service did not start due to a logon failure. ERROR_SERVICE_ LOGON_FAILED 1070 After starting, the service hung in a start-pending state. ERROR_SERVICE_ START_HANG 1071 The specified service database lock is invalid. ERROR_INVALID_ SERVICE_LOCK 1072 The specified service has been marked for deletion. ERROR_SERVICE_ MARKED_FOR_ DELETE 1073 The specified service already exists. ERROR_SERVICE_ EXISTS 71 Chapter 5 Codes d’erreur externes 1074 The system is currently running with the last-known-good configuration. ERROR_ALREADY_ RUNNING_LKG 1075 The dependency service does not exist or has been marked for deletion. ERROR_SERVICE_ DEPENDENCY_ DELETED 1076 The current boot has already been accepted for use as the lastknown-good control set. ERROR_BOOT_ ALREADY_ ACCEPTED 1077 No attempts to start the service have been made since the last boot. ERROR_SERVICE_ NEVER_STARTED 1078 The name is already in use as either a service name or a service display name. ERROR_ DUPLICATE_ SERVICE_NAME 1079 The account specified for this service is different from the account ERROR_ specified for other services running in the same process. DIFFERENT_ SERVICE_ ACCOUNT 1080 Failure actions can only be set for Win32 services, not for drivers. ERROR_CANNOT_ DETECT_DRIVER_ FAILURE 1081 This service runs in the same process as the service control manager. Therefore, the service control manager cannot take action if this service's process terminates unexpectedly. ERROR_CANNOT_ DETECT_ PROCESS_ABORT 1082 No recovery program has been configured for this service. ERROR_NO_ RECOVERY_ PROGRAM 1083 The executable program that this service is configured to run in does not implement the service. ERROR_SERVICE_ NOT_IN_EXE 1100 The physical end of the tape has been reached. ERROR_END_OF_ MEDIA 1101 A tape access reached a filemark. ERROR_ FILEMARK_ DETECTED 1102 The beginning of the tape or a partition was encountered. ERROR_ BEGINNING_OF_ MEDIA 1103 A tape access reached the end of a set of files. ERROR_ SETMARK_ DETECTED 1104 No more data is on the tape. ERROR_NO_DATA_ DETECTED 1105 Tape could not be partitioned. ERROR_ PARTITION_ FAILURE 1106 When accessing a new tape of a multivolume partition, the current ERROR_INVALID_ block size is incorrect. BLOCK_LENGTH Automation Engine 72 1107 Tape partition information could not be found when loading a tape. ERROR_DEVICE_ NOT_PARTITIONED 1108 Unable to lock the media eject mechanism. ERROR_UNABLE_ TO_LOCK_MEDIA 1109 Unable to unload the media. ERROR_UNABLE_ TO_UNLOAD_ MEDIA 1110 The media in the drive may have changed. ERROR_MEDIA_ CHANGED 1111 The I/O bus was reset. ERROR_BUS_ RESET 1112 No media in drive. ERROR_NO_ MEDIA_IN_DRIVE 1113 No mapping for the Unicode character exists in the target multibyte code page. ERROR_NO_ UNICODE_ TRANSLATION 1114 A dynamic link library (DLL) initialization routine failed. ERROR_DLL_INIT_ FAILED 1115 A system shutdown is in progress. ERROR_ SHUTDOWN_IN_ PROGRESS 1116 Unable to abort the system shutdown because no shutdown was in ERROR_NO_ progress. SHUTDOWN_IN_ PROGRESS 1117 The request could not be performed because of an I/O device error. ERROR_IO_ DEVICE 1118 No serial device was successfully initialized. The serial driver will unload. ERROR_SERIAL_ NO_DEVICE 1119 Unable to open a device that was sharing an interrupt request (IRQ) with other devices. At least one other device that uses that IRQ was already opened. ERROR_IRQ_BUSY 1120 A serial I/O operation was completed by another write to the serial port. (The IOCTL_SERIAL_XOFF_COUNTER reached zero.) ERROR_MORE_ WRITES 1121 A serial I/O operation completed because the timeout period expired. (The IOCTL_SERIAL_XOFF_COUNTER did not reach zero.) ERROR_ COUNTER_ TIMEOUT 1122 No ID address mark was found on the floppy disk. ERROR_FLOPPY_ ID_MARK_NOT_ FOUND 1123 Mismatch between the floppy disk sector ID field and the floppy disk controller track address. ERROR_FLOPPY_ WRONG_ CYLINDER 1124 The floppy disk controller reported an error that is not recognized by ERROR_FLOPPY_ the floppy disk driver. UNKNOWN_ ERROR 1125 The floppy disk controller returned inconsistent results in its registers. ERROR_FLOPPY_ BAD_REGISTERS 73 Chapter 5 Codes d’erreur externes 1126 While accessing the hard disk, a recalibrate operation failed, even after retries. ERROR_DISK_ RECALIBRATE_ FAILED 1127 While accessing the hard disk, a disk operation failed even after retries. ERROR_DISK_ OPERATION_ FAILED 1128 While accessing the hard disk, a disk controller reset was needed, ERROR_DISK_ but even that failed. RESET_FAILED 1129 Physical end of tape encountered. ERROR_EOM_ OVERFLOW 1130 Not enough server storage is available to process this command. ERROR_NOT_ ENOUGH_ SERVER_MEMORY 1131 A potential deadlock condition has been detected. ERROR_ POSSIBLE_ DEADLOCK 1132 The base address or the file offset specified does not have the proper alignment. ERROR_MAPPED_ ALIGNMENT 1140 An attempt to change the system power state was vetoed by another application or driver. ERROR_SET_ POWER_STATE_ VETOED 1141 The system BIOS failed an attempt to change the system power state. ERROR_SET_ POWER_STATE_ FAILED 1142 An attempt was made to create more links on a file than the file system supports. ERROR_TOO_ MANY_LINKS 1150 The specified program requires a newer version of Windows. ERROR_OLD_WIN_ VERSION 1151 The specified program is not a Windows or MS-DOS program. ERROR_APP_ WRONG_OS 1152 Cannot start more than one instance of the specified program. ERROR_SINGLE_ INSTANCE_APP 1153 The specified program was written for an earlier version of Windows. ERROR_RMODE_ APP 1154 One of the library files needed to run this application is damaged. ERROR_INVALID_ DLL 1155 No application is associated with the specified file for this operation. ERROR_NO_ ASSOCIATION 1156 An error occurred in sending the command to the application. ERROR_DDE_FAIL 1157 One of the library files needed to run this application cannot be found. ERROR_DLL_NOT_ FOUND 1158 The current process has used all of its system allowance of handles for Window Manager objects. ERROR_NO_ MORE_USER_ HANDLES 1159 The message can be used only with synchronous operations. ERROR_ MESSAGE_SYNC_ ONLY Automation Engine 74 1160 The indicated source element has no media. ERROR_SOURCE_ ELEMENT_EMPTY 1161 The indicated destination element already contains media. ERROR_ DESTINATION_ ELEMENT_FULL 1162 The indicated element does not exist. ERROR_ILLEGAL_ ELEMENT_ ADDRESS 1163 The indicated element is part of a magazine that is not present. ERROR_ MAGAZINE_NOT_ PRESENT 1164 The indicated device requires reinitialization due to hardware errors. ERROR_DEVICE_ REINITIALIZATION_ NEEDED 1165 The device has indicated that cleaning is required before further operations are attempted. ERROR_DEVICE_ REQUIRES_ CLEANING 1166 The device has indicated that its door is open. ERROR_DEVICE_ DOOR_OPEN 1167 The device is not connected. ERROR_DEVICE_ NOT_CONNECTED 1168 Element not found. ERROR_NOT_ FOUND 1169 There was no match for the specified key in the index. ERROR_NO_ MATCH 1170 The property set specified does not exist on the object. ERROR_SET_NOT_ FOUND 1171 The point passed to GetMouseMovePointsEx is not in the buffer. ERROR_POINT_ NOT_FOUND 1172 The tracking (workstation) service is not running. ERROR_NO_ TRACKING_ SERVICE 1173 The Volume ID could not be found. ERROR_NO_ VOLUME_ID 1174 The specified Very Large Memory (64-bit) operation is invalid. ERROR_INVALID_ VLM_OPERATION 1175 Unable to remove the file to be replaced. ERROR_UNABLE_ TO_REMOVE_ REPLACED 1176 Unable to move the replacement file to the file to be replaced. The file to be replaced has retained its original name. ERROR_UNABLE_ TO_MOVE_ REPLACEMENT 1177 Unable to move the replacement file to the file to be replaced. The file to be replaced has been renamed using the backup name. ERROR_UNABLE_ TO_MOVE_ REPLACEMENT_2 75 Chapter 5 Codes d’erreur externes 1178 The volume change journal is being deleted. ERROR_JOURNAL_ DELETE_IN_ PROGRESS 1179 The volume change journal service is not active. ERROR_JOURNAL_ NOT_ACTIVE 1180 A file was found, but it may not be the correct file. ERROR_ POTENTIAL_FILE_ FOUND 1181 The journal entry has been deleted from the journal. ERROR_JOURNAL_ ENTRY_DELETED 1200 The specified device name is invalid. ERROR_BAD_ DEVICE 1201 The device is not currently connected but it is a remembered connection. ERROR_ CONNECTION_ UNAVAIL 1202 An attempt was made to remember a device that had previously been remembered. ERROR_DEVICE_ ALREADY_ REMEMBERED 1203 No network provider accepted the given network path. ERROR_NO_NET_ OR_BAD_PATH 1204 The specified network provider name is invalid. ERROR_BAD_ PROVIDER 1205 Unable to open the network connection profile. ERROR_CANNOT_ OPEN_PROFILE 1206 The network connection profile is corrupted. ERROR_BAD_ PROFILE 1207 Cannot enumerate a noncontainer. ERROR_NOT_ CONTAINER 1208 An extended error has occurred. ERROR_ EXTENDED_ ERROR 1209 The format of the specified group name is invalid. ERROR_INVALID_ GROUPNAME 1210 The format of the specified computer name is invalid. ERROR_INVALID_ COMPUTERNAME 1211 The format of the specified event name is invalid. ERROR_INVALID_ EVENTNAME 1212 The format of the specified domain name is invalid. ERROR_INVALID_ DOMAINNAME 1213 The format of the specified service name is invalid. ERROR_INVALID_ SERVICENAME 1214 The format of the specified network name is invalid. ERROR_INVALID_ NETNAME 1215 The format of the specified share name is invalid. ERROR_INVALID_ SHARENAME Automation Engine 76 1216 The format of the specified password is invalid. ERROR_INVALID_ PASSWORDNAME 1217 The format of the specified message name is invalid. ERROR_INVALID_ MESSAGENAME 1218 The format of the specified message destination is invalid. ERROR_INVALID_ MESSAGEDEST 1219 The credentials supplied conflict with an existing set of credentials. ERROR_SESSION_ CREDENTIAL_ CONFLICT 1220 An attempt was made to establish a session to a network server, ERROR_REMOTE_ but there are already too many sessions established to that server. SESSION_LIMIT_ EXCEEDED 1221 The workgroup or domain name is already in use by another computer on the network. ERROR_DUP_ DOMAINNAME 1222 The network is not present or not started. ERROR_NO_ NETWORK 1223 The operation was canceled by the user. ERROR_ CANCELLED 1224 The requested operation cannot be performed on a file with a usermapped section open. ERROR_USER_ MAPPED_FILE 1225 The remote system refused the network connection. ERROR_ CONNECTION_ REFUSED 1226 The network connection was gracefully closed. ERROR_ GRACEFUL_ DISCONNECT 1227 The network transport endpoint already has an address associated ERROR_ with it. ADDRESS_ ALREADY_ ASSOCIATED 1228 An address has not yet been associated with the network endpoint. ERROR_ ADDRESS_NOT_ ASSOCIATED 1229 An operation was attempted on a nonexistent network connection. ERROR_ CONNECTION_ INVALID 1230 An invalid operation was attempted on an active network connection. ERROR_ CONNECTION_ ACTIVE 1231 The remote network is not reachable by the transport. ERROR_ NETWORK_ UNREACHABLE 1232 The remote system is not reachable by the transport. ERROR_HOST_ UNREACHABLE 1233 The remote system does not support the transport protocol. ERROR_ PROTOCOL_ UNREACHABLE 77 Chapter 5 Codes d’erreur externes 1234 No service is operating at the destination network endpoint on the remote system. ERROR_PORT_ UNREACHABLE 1235 The request was aborted. ERROR_ REQUEST_ ABORTED 1236 The network connection was aborted by the local system. ERROR_ CONNECTION_ ABORTED 1237 The operation could not be completed. A retry should be performed. ERROR_RETRY 1238 A connection to the server could not be made because the limit on the number of concurrent connections for this account has been reached. ERROR_ CONNECTION_ COUNT_LIMIT 1239 Attempting to log in during an unauthorized time of day for this account. ERROR_LOGIN_ TIME_ RESTRICTION 1240 The account is not authorized to log in from this station. ERROR_LOGIN_ WKSTA_ RESTRICTION 1241 The network address could not be used for the operation requested. ERROR_ INCORRECT_ ADDRESS 1242 The service is already registered. ERROR_ALREADY_ REGISTERED 1243 The specified service does not exist. ERROR_SERVICE_ NOT_FOUND 1244 The operation being requested was not performed because the user has not been authenticated. ERROR_NOT_ AUTHENTICATED 1245 The operation being requested was not performed because the user has not logged on to the network. The specified service does not exist. ERROR_NOT_ LOGGED_ON 1246 Continue with work in progress. ERROR_CONTINUE 1247 An attempt was made to perform an initialization operation when initialization has already been completed. ERROR_ALREADY_ INITIALIZED 1248 No more local devices. ERROR_NO_ MORE_DEVICES 1249 The specified site does not exist. ERROR_NO_ SUCH_SITE 1250 A domain controller with the specified name already exists. ERROR_DOMAIN_ CONTROLLER_ EXISTS 1251 This operation is supported only when you are connected to the server. ERROR_ONLY_IF_ CONNECTED 1300 Not all privileges referenced are assigned to the caller. ERROR_NOT_ALL_ ASSIGNED 1301 Some mapping between account names and security IDs was not done. ERROR_SOME_ NOT_MAPPED Automation Engine 78 1302 No system quota limits are specifically set for this account. ERROR_NO_ QUOTAS_FOR_ ACCOUNT 1303 No encryption key is available. A well-known encryption key was returned. ERROR_LOCAL_ USER_SESSION_ KEY 1304 The Windows NT password is too complex to be converted to a ERROR_NULL_LM_ LAN Manager password. The LAN Manager password returned is a PASSWORD NULL string. 1305 The revision level is unknown. ERROR_ UNKNOWN_ REVISION 1306 Indicates two revision levels are incompatible. ERROR_ REVISION_ MISMATCH 1307 This security ID may not be assigned as the owner of this object. ERROR_INVALID_ OWNER 1308 This security ID may not be assigned as the primary group of an object. ERROR_INVALID_ PRIMARY_GROUP 1309 An attempt has been made to operate on an impersonation token by a thread that is not currently impersonating a client. ERROR_NO_ IMPERSONATION_ TOKEN 1310 The group may not be disabled. ERROR_CANT_ DISABLE_ MANDATORY 1311 There are currently no logon servers available to service the logon request. ERROR_NO_ LOGON_SERVERS 1312 A specified logon session does not exist. It may already have been ERROR_NO_ terminated. SUCH_LOGON_ SESSION 1313 A specified privilege does not exist. ERROR_NO_ SUCH_PRIVILEGE 1314 A required privilege is not held by the client. ERROR_ PRIVILEGE_NOT_ HELD 1315 The name provided is not a properly formed account name. ERROR_INVALID_ ACCOUNT_NAME 1316 The specified user already exists. ERROR_USER_ EXISTS 1317 The specified user does not exist. ERROR_NO_ SUCH_USER 1318 The specified group already exists. ERROR_GROUP_ EXISTS 1319 The specified group does not exist. ERROR_NO_ SUCH_GROUP 79 Chapter 5 Codes d’erreur externes 1320 Either the specified user account is already a member of the specified group, or the specified group cannot be deleted because it contains a member. ERROR_MEMBER_ IN_GROUP 1321 The specified user account is not a member of the specified group account. ERROR_MEMBER_ NOT_IN_GROUP 1322 The last remaining administration account cannot be disabled or deleted. ERROR_LAST_ ADMIN 1323 Unable to update the password. The value provided as the current password is incorrect. ERROR_WRONG_ PASSWORD 1324 Unable to update the password. The value provided for the new password contains values that are not allowed in passwords. ERROR_ILL_ FORMED_ PASSWORD 1325 Unable to update the password because a password update rule has been violated. ERROR_ PASSWORD_ RESTRICTION 1326 Logon failure: unknown user name or bad password. ERROR_LOGON_ FAILURE 1327 Logon failure: user account restriction. ERROR_ ACCOUNT_ RESTRICTION 1328 Logon failure: account logon time restriction violation. ERROR_INVALID_ LOGON_HOURS 1329 Logon failure: user not allowed to log on to this computer. ERROR_INVALID_ WORKSTATION 1330 Logon failure: the specified account password has expired. ERROR_ PASSWORD_ EXPIRED 1331 Logon failure: account currently disabled. ERROR_ ACCOUNT_ DISABLED 1332 No mapping between account names and security IDs was done. ERROR_NONE_ MAPPED 1333 Too many local user identifiers (LUIDs) were requested at one time. ERROR_TOO_ MANY_LUIDS_ REQUESTED 1334 No more local user identifiers (LUIDs) are available. ERROR_LUIDS_ EXHAUSTED 1335 The subauthority part of a security ID is invalid for this particular use. ERROR_INVALID_ SUB_AUTHORITY 1336 The access control list (ACL) structure is invalid. ERROR_INVALID_ ACL 1337 The security ID structure is invalid. ERROR_INVALID_ SID 1338 The security descriptor structure is invalid. ERROR_INVALID_ SECURITY_DESCR 1340 The inherited access control list (ACL) or access control entry (ACE) could not be built. ERROR_BAD_ INHERITANCE_ACL Automation Engine 80 1341 The server is currently disabled. ERROR_SERVER_ DISABLED 1342 The server is currently enabled. ERROR_SERVER_ NOT_DISABLED 1343 The value provided was an invalid value for an identifier authority. ERROR_INVALID_ ID_AUTHORITY 1344 No more memory is available for security information updates. ERROR_ ALLOTTED_ SPACE_ EXCEEDED 1345 The specified attributes are invalid, or incompatible with the attributes for the group as a whole. ERROR_INVALID_ GROUP_ ATTRIBUTES 1346 Either a required impersonation level was not provided, or the provided impersonation level is invalid. ERROR_BAD_ IMPERSONATION_ LEVEL 1347 Cannot open an anonymous level security token. ERROR_CANT_ OPEN_ ANONYMOUS 1348 The validation information class requested was invalid. ERROR_BAD_ VALIDATION_ CLASS 1349 The type of the token is inappropriate for its attempted use. ERROR_BAD_ TOKEN_TYPE 1350 Unable to perform a security operation on an object that has no associated security. ERROR_NO_ SECURITY_ON_ OBJECT 1351 Configuration information could not be read from the domain controller, either because the machine is unavailable, or access has been denied. ERROR_CANT_ ACCESS_DOMAIN_ INFO 1352 The security account manager (SAM) or local security authority (LSA) server was in the wrong state to perform the security operation. ERROR_INVALID_ SERVER_STATE 1353 The domain was in the wrong state to perform the security operation. ERROR_INVALID_ DOMAIN_STATE 1354 This operation is only allowed for the Primary Domain Controller of ERROR_INVALID_ the domain. DOMAIN_ROLE 1355 The specified domain did not exist. ERROR_NO_ SUCH_DOMAIN 1356 The specified domain already exists. ERROR_DOMAIN_ EXISTS 1357 An attempt was made to exceed the limit on the number of domains per server. ERROR_DOMAIN_ LIMIT_EXCEEDED 1358 Unable to complete the requested operation because of either a catastrophic media failure or a data structure corruption on the disk. ERROR_ INTERNAL_DB_ CORRUPTION 81 Chapter 5 Codes d’erreur externes 1359 The security account database contains an internal inconsistency. ERROR_ INTERNAL_ERROR 1360 Generic access types were contained in an access mask which should already be mapped to nongeneric types. ERROR_GENERIC_ NOT_MAPPED 1361 A security descriptor is not in the right format (absolute or selfrelative). ERROR_BAD_ DESCRIPTOR_ FORMAT 1362 The requested action is restricted for use by logon processes only. ERROR_NOT_ The calling process has not registered as a logon process. LOGON_PROCESS 1363 Cannot start a new logon session with an ID that is already in use. ERROR_LOGON_ SESSION_EXISTS 1364 A specified authentication package is unknown. ERROR_NO_ SUCH_PACKAGE 1365 The logon session is not in a state that is consistent with the requested operation. ERROR_BAD_ LOGON_SESSION_ STATE 1366 The logon session ID is already in use. ERROR_LOGON_ SESSION_ COLLISION 1367 A logon request contained an invalid logon type value. ERROR_INVALID_ LOGON_TYPE 1368 Unable to impersonate using a named pipe until data has been read ERROR_CANNOT_ from that pipe. IMPERSONATE 1369 The transaction state of a registry subtree is incompatible with the requested operation. ERROR_RXACT_ INVALID_STATE 1370 An internal security database corruption has been encountered. ERROR_RXACT_ COMMIT_FAILURE 1371 Cannot perform this operation on built-in accounts. ERROR_SPECIAL_ ACCOUNT 1372 Cannot perform this operation on this built-in special group. ERROR_SPECIAL_ GROUP 1373 Cannot perform this operation on this built-in special user. ERROR_SPECIAL_ USER 1374 The user cannot be removed from a group because the group is currently the user's primary group. ERROR_ MEMBERS_ PRIMARY_GROUP 1375 The token is already in use as a primary token. ERROR_TOKEN_ ALREADY_IN_USE 1376 The specified local group does not exist. ERROR_NO_ SUCH_ALIAS 1377 The specified account name is not a member of the local group. ERROR_MEMBER_ NOT_IN_ALIAS 1378 The specified account name is already a member of the local group. ERROR_MEMBER_ IN_ALIAS 1379 The specified local group already exists. ERROR_ALIAS_ EXISTS Automation Engine 82 1380 Logon failure: the user has not been granted the requested logon type at this computer. ERROR_LOGON_ NOT_GRANTED 1381 The maximum number of secrets that may be stored in a single system has been exceeded. ERROR_TOO_ MANY_SECRETS 1382 The length of a secret exceeds the maximum length allowed. ERROR_SECRET_ TOO_LONG 1383 The local security authority database contains an internal inconsistency. ERROR_ INTERNAL_DB_ ERROR 1384 During a logon attempt, the user's security context accumulated too many security IDs. ERROR_TOO_ MANY_CONTEXT_ IDS 1385 Logon failure: the user has not been granted the requested logon type at this computer. ERROR_LOGON_ TYPE_NOT_ GRANTED 1386 A cross-encrypted password is necessary to change a user password. ERROR_NT_ CROSS_ ENCRYPTION_ REQUIRED 1387 A new member could not be added to a local group because the member does not exist. ERROR_NO_ SUCH_MEMBER 1388 A new member could not be added to a local group because the member has the wrong account type. ERROR_INVALID_ MEMBER 1389 Too many security IDs have been specified. ERROR_TOO_ MANY_SIDS 1390 A cross-encrypted password is necessary to change this user password. ERROR_LM_ CROSS_ ENCRYPTION_ REQUIRED 1391 Indicates an ACL contains no inheritable components. ERROR_NO_ INHERITANCE 1392 The file or directory is corrupted and unreadable. ERROR_FILE_ CORRUPT 1393 The disk structure is corrupted and unreadable. ERROR_DISK_ CORRUPT 1394 There is no user session key for the specified logon session. ERROR_NO_ USER_SESSION_ KEY 1395 The service being accessed is licensed for a particular number of connections. No more connections can be made to the service at this time because there are already as many connections as the service can accept. ERROR_LICENSE_ QUOTA_ EXCEEDED 1396 Logon Failure: The target account name is incorrect. ERROR_WRONG_ TARGET_NAME 1397 Mutual Authentication failed. The server's password is out of date at the domain controller. ERROR_MUTUAL_ AUTH_FAILED 83 Chapter 5 Codes d’erreur externes 1398 There is a time difference between the client and server. ERROR_TIME_ SKEW 1400 Invalid window handle. ERROR_INVALID_ WINDOW_HANDLE 1401 Invalid menu handle. ERROR_INVALID_ MENU_HANDLE 1402 Invalid cursor handle. ERROR_INVALID_ CURSOR_HANDLE 1403 Invalid accelerator table handle. ERROR_INVALID_ ACCEL_HANDLE 1404 Invalid hook handle. ERROR_INVALID_ HOOK_HANDLE 1405 Invalid handle to a multiple-window position structure. ERROR_INVALID_ DWP_HANDLE 1406 Cannot create a top-level child window. ERROR_TLW_ WITH_WSCHILD 1407 Cannot find window class. ERROR_CANNOT_ FIND_WND_CLASS 1408 Invalid window; it belongs to other thread. ERROR_WINDOW_ OF_OTHER_ THREAD 1409 Hot key is already registered. ERROR_HOTKEY_ ALREADY_ REGISTERED 1410 Class already exists. ERROR_CLASS_ ALREADY_EXISTS 1411 Class does not exist. ERROR_CLASS_ DOES_NOT_EXIST 1412 Class still has open windows. ERROR_CLASS_ HAS_WINDOWS 1413 Invalid index. ERROR_INVALID_ INDEX 1414 Invalid icon handle. ERROR_INVALID_ ICON_HANDLE 1415 Using private DIALOG window words. ERROR_PRIVATE_ DIALOG_INDEX 1416 The list box identifier was not found. ERROR_LISTBOX_ ID_NOT_FOUND 1417 No wildcards were found. ERROR_NO_ WILDCARD_ CHARACTERS 1418 Thread does not have a clipboard open. ERROR_ CLIPBOARD_NOT_ OPEN 1419 Hot key is not registered. ERROR_HOTKEY_ NOT_REGISTERED Automation Engine 84 1420 The window is not a valid dialog window. ERROR_WINDOW_ NOT_DIALOG 1421 Control ID not found. ERROR_ CONTROL_ID_ NOT_FOUND 1422 Invalid message for a combo box because it does not have an edit control. ERROR_INVALID_ COMBOBOX_ MESSAGE 1423 The window is not a combo box. ERROR_WINDOW_ NOT_COMBOBOX 1424 Height must be less than 256. ERROR_INVALID_ EDIT_HEIGHT 1425 Invalid device context (DC) handle. ERROR_DC_NOT_ FOUND 1426 Invalid hook procedure type. ERROR_INVALID_ HOOK_FILTER 1427 Invalid hook procedure. ERROR_INVALID_ FILTER_PROC 1428 Cannot set nonlocal hook without a module handle. ERROR_HOOK_ NEEDS_HMOD 1429 This hook procedure can only be set globally. ERROR_GLOBAL_ ONLY_HOOK 1430 The journal hook procedure is already installed. ERROR_JOURNAL_ HOOK_SET 1431 The hook procedure is not installed. ERROR_HOOK_ NOT_INSTALLED 1432 Invalid message for single-selection list box. ERROR_INVALID_ LB_MESSAGE 1433 LB_SETCOUNT sent to non-lazy list box. ERROR_ SETCOUNT_ON_ BAD_LB 1434 This list box does not support tab stops. ERROR_LB_ WITHOUT_ TABSTOPS 1435 Cannot destroy object created by another thread. ERROR_ DESTROY_ OBJECT_OF_ OTHER_THREAD 1436 Child windows cannot have menus. ERROR_CHILD_ WINDOW_MENU 1437 The window does not have a system menu. ERROR_NO_ SYSTEM_MENU 1438 Invalid message box style. ERROR_INVALID_ MSGBOX_STYLE 1439 Invalid system-wide (SPI_*) parameter. ERROR_INVALID_ SPI_VALUE 85 Chapter 5 Codes d’erreur externes 1440 Screen already locked. ERROR_SCREEN_ ALREADY_LOCKED 1441 All handles to windows in a multiple-window position structure must have the same parent. ERROR_HWNDS_ HAVE_DIFF_ PARENT 1442 The window is not a child window. ERROR_NOT_ CHILD_WINDOW 1443 Invalid GW_* command. ERROR_INVALID_ GW_COMMAND 1444 Invalid thread identifier. ERROR_INVALID_ THREAD_ID 1445 Cannot process a message from a window that is not a multiple document interface (MDI) window. ERROR_NON_ MDICHILD_ WINDOW 1446 Popup menu already active. ERROR_POPUP_ ALREADY_ACTIVE 1447 The window does not have scroll bars. ERROR_NO_ SCROLLBARS 1448 Scroll bar range cannot be greater than 0x7FFF. ERROR_INVALID_ SCROLLBAR_ RANGE 1449 Cannot show or remove the window in the way specified. ERROR_INVALID_ SHOWWIN_ COMMAND 1450 Insufficient system resources exist to complete the requested service. ERROR_NO_ SYSTEM_ RESOURCES 1451 Insufficient system resources exist to complete the requested service. ERROR_ NONPAGED_ SYSTEM_ RESOURCES 1452 Insufficient system resources exist to complete the requested service. ERROR_PAGED_ SYSTEM_ RESOURCES 1453 Insufficient quota to complete the requested service. ERROR_ WORKING_SET_ QUOTA 1454 Insufficient quota to complete the requested service. ERROR_ PAGEFILE_QUOTA 1455 The paging file is too small for this operation to complete. ERROR_ COMMITMENT_ LIMIT 1456 A menu item was not found. ERROR_MENU_ ITEM_NOT_FOUND 1457 Invalid keyboard layout handle. ERROR_INVALID_ KEYBOARD_ HANDLE Automation Engine 86 1458 Hook type not allowed. ERROR_HOOK_ TYPE_NOT_ ALLOWED 1459 This operation requires an interactive window station. ERROR_ REQUIRES_ INTERACTIVE_ WINDOWSTATION 1460 This operation returned because the timeout period expired. ERROR_TIMEOUT 1461 Invalid monitor handle. ERROR_INVALID_ MONITOR_HANDLE 1500 The event log file is corrupted. ERROR_ EVENTLOG_FILE_ CORRUPT 1501 No event log file could be opened, so the event logging service did not start. ERROR_ EVENTLOG_CANT_ START 1502 The event log file is full. ERROR_LOG_FILE_ FULL 1503 The event log file has changed between read operations. ERROR_ EVENTLOG_FILE_ CHANGED 1601 Failure accessing installation service. ERROR_INSTALL_ SERVICE_FAILURE 1602 User cancelled installation. ERROR_INSTALL_ USEREXIT 1603 Fatal error during installation. ERROR_INSTALL_ FAILURE 1604 Installation suspended, incomplete. ERROR_INSTALL_ SUSPEND 1605 Product is not installed. ERROR_ UNKNOWN_ PRODUCT 1606 Feature ID not registered. ERROR_ UNKNOWN_ FEATURE 1607 Component ID not registered. ERROR_ UNKNOWN_ COMPONENT 1608 Unknown property. ERROR_ UNKNOWN_ PROPERTY 1609 Handle is in an invalid state. ERROR_INVALID_ HANDLE_STATE 1610 Configuration data corrupt. ERROR_BAD_ CONFIGURATION 1611 Component qualifier not present. ERROR_INDEX_ ABSENT 87 Chapter 5 Codes d’erreur externes 1612 Install source unavailable. ERROR_INSTALL_ SOURCE_ABSENT 1613 Database version unsupported. ERROR_INSTALL_ PACKAGE_ VERSION 1614 Product is uninstalled. ERROR_ PRODUCT_ UNINSTALLED 1615 SQL query syntax invalid or unsupported. ERROR_BAD_ QUERY_SYNTAX 1616 Record field does not exist. ERROR_INVALID_ FIELD 1617 The device has been removed. ERROR_DEVICE_ REMOVED 1618 An installation is in progress. ERROR_INSTALL_ ALREADY_ RUNNING 1619 Installation package could not be opened. ERROR_INSTALL_ PACKAGE_OPEN_ FAILED 1620 Installation package invalid. ERROR_INSTALL_ PACKAGE_INVALID 1621 Could not initialize installer user interface. ERROR_INSTALL_ UI_FAILURE 1622 Error opening installation log file. ERROR_INSTALL_ LOG_FAILURE 1623 Product language not supported by system. ERROR_INSTALL_ LANGUAGE_ UNSUPPORTED 1624 Error applying transform to install package. ERROR_INSTALL_ TRANSFORM_ FAILURE 1625 Install package signature not accepted. ERROR_INSTALL_ PACKAGE_ REJECTED 1626 Function could not be executed. ERROR_ FUNCTION_NOT_ CALLED 1627 Function failed during execution. ERROR_ FUNCTION_FAILED 1628 Invalid or unknown table specified. ERROR_INVALID_ TABLE 1629 Data supplied is of wrong type. ERROR_ DATATYPE_ MISMATCH Automation Engine 88 1630 Data of this type is not supported. ERROR_ UNSUPPORTED_ TYPE 1631 Unable to create requested object. ERROR_CREATE_ FAILED 1632 Temp folder is full or inaccessible. ERROR_INSTALL_ TEMP_ UNWRITABLE 1633 Product platform not supported. ERROR_INSTALL_ PLATFORM_ UNSUPPORTED 1634 Component not used on this computer. ERROR_INSTALL_ NOTUSED 1635 Patch package could not be opened. ERROR_PATCH_ PACKAGE_OPEN_ FAILED 1636 Patch package invalid. ERROR_PATCH_ PACKAGE_INVALID 1637 Patch package unsupported. ERROR_PATCH_ PACKAGE_ UNSUPPORTED. 1638 Invalid command line argument. ERROR_INVALID_ COMMAND_LINE 1700 The string binding is invalid. RPC_S_INVALID_ STRING_BINDING 1701 The binding handle is not the correct type. RPC_S_WRONG_ KIND_OF_BINDING 1702 The binding handle is invalid. RPC_S_INVALID_ BINDING 1703 The RPC protocol sequence is not supported. RPC_S_PROTSEQ_ NOT_SUPPORTED 1704 The RPC protocol sequence is invalid. RPC_S_INVALID_ RPC_PROTSEQ 1705 The string universal unique identifier (UUID) is invalid. RPC_S_INVALID_ STRING_UUID 1706 The endpoint format is invalid. RPC_S_INVALID_ ENDPOINT_ FORMAT 1707 The network address is invalid. RPC_S_INVALID_ NET_ADDR 1708 No endpoint was found. RPC_S_NO_ ENDPOINT_FOUND 1709 The timeout value is invalid. RPC_S_INVALID_ TIMEOUT 1710 The object universal unique identifier (UUID) was not found. RPC_S_OBJECT_ NOT_FOUND 89 Chapter 5 Codes d’erreur externes 1711 The object universal unique identifier (UUID) has already been registered. RPC_S_ALREADY_ REGISTERED 1712 The type universal unique identifier (UUID) has already been registered. RPC_S_TYPE_ ALREADY_ REGISTERED 1713 The RPC server is already listening. RPC_S_ALREADY_ LISTENING 1714 No protocol sequences have been registered. RPC_S_NO_ PROTSEQS_ REGISTERED 1715 The RPC server is not listening. RPC_S_NOT_ LISTENING 1716 The manager type is unknown. RPC_S_ UNKNOWN_MGR_ TYPE 1717 The interface is unknown. RPC_S_ UNKNOWN_IF 1718 There are no bindings. RPC_S_NO_ BINDINGS 1719 There are no protocol sequences. RPC_S_NO_ PROTSEQS 1720 The endpoint cannot be created. RPC_S_CANT_ CREATE_ ENDPOINT 1721 Not enough resources are available to complete this operation. RPC_S_OUT_OF_ RESOURCES 1722 The RPC server is unavailable. RPC_S_SERVER_ UNAVAILABLE 1723 The RPC server is too busy to complete this operation. RPC_S_SERVER_ TOO_BUSY 1724 The network options are invalid. RPC_S_INVALID_ NETWORK_ OPTIONS 1725 There are no remote procedure calls active on this thread. RPC_S_NO_CALL_ ACTIVE 1726 The remote procedure call failed. RPC_S_CALL_ FAILED 1727 The remote procedure call failed and did not execute. RPC_S_CALL_ FAILED_DNE 1728 A remote procedure call (RPC) protocol error occurred. RPC_S_ PROTOCOL_ ERROR 1730 The transfer syntax is not supported by the RPC server. RPC_S_ UNSUPPORTED_ TRANS_SYN Automation Engine 90 1732 The universal unique identifier (UUID) type is not supported. RPC_S_ UNSUPPORTED_ TYPE 1733 The tag is invalid. RPC_S_INVALID_ TAG 1734 The array bounds are invalid. RPC_S_INVALID_ BOUND 1735 The binding does not contain an entry name. RPC_S_NO_ ENTRY_NAME 1736 The name syntax is invalid. RPC_S_INVALID_ NAME_SYNTAX 1737 The name syntax is not supported. RPC_S_ UNSUPPORTED_ NAME_SYNTAX 1739 No network address is available to use to construct a universal unique identifier (UUID). RPC_S_UUID_NO_ ADDRESS 1740 The endpoint is a duplicate. RPC_S_ DUPLICATE_ ENDPOINT 1741 The authentication type is unknown. RPC_S_ UNKNOWN_ AUTHN_TYPE 1742 The maximum number of calls is too small. RPC_S_MAX_ CALLS_TOO_SMALL 1743 The string is too long. RPC_S_STRING_ TOO_LONG 1744 The RPC protocol sequence was not found. RPC_S_PROTSEQ_ NOT_FOUND 1745 The procedure number is out of range. RPC_S_ PROCNUM_OUT_ OF_RANGE 1746 The binding does not contain any authentication information. RPC_S_BINDING_ HAS_NO_AUTH 1747 The authentication service is unknown. RPC_S_ UNKNOWN_ AUTHN_SERVICE 1748 The authentication level is unknown. RPC_S_ UNKNOWN_ AUTHN_LEVEL 1749 The security context is invalid. RPC_S_INVALID_ AUTH_IDENTITY 1750 The authorization service is unknown. RPC_S_ UNKNOWN_ AUTHZ_SERVICE 1751 The entry is invalid. EPT_S_INVALID_ ENTRY 91 Chapter 5 Codes d’erreur externes 1752 The server endpoint cannot perform the operation. EPT_S_CANT_ PERFORM_OP 1753 There are no more endpoints available from the endpoint mapper. EPT_S_NOT_ REGISTERED 1754 No interfaces have been exported. RPC_S_NOTHING_ TO_EXPORT 1755 The entry name is incomplete. RPC_S_ INCOMPLETE_ NAME 1756 The version option is invalid. RPC_S_INVALID_ VERS_OPTION 1757 There are no more members. RPC_S_NO_MORE_ MEMBERS 1758 There is nothing to unexport. RPC_S_NOT_ALL_ OBJS_ UNEXPORTED 1759 The interface was not found. RPC_S_ INTERFACE_NOT_ FOUND 1760 The entry already exists. RPC_S_ENTRY_ ALREADY_EXISTS 1761 The entry is not found. RPC_S_ENTRY_ NOT_FOUND 1762 The name service is unavailable. RPC_S_NAME_ SERVICE_ UNAVAILABLE 1763 The network address family is invalid. RPC_S_INVALID_ NAF_ID 1764 The requested operation is not supported. RPC_S_CANNOT_ SUPPORT 1765 No security context is available to allow impersonation. RPC_S_NO_ CONTEXT_ AVAILABLE 1766 An internal error occurred in a remote procedure call (RPC). RPC_S_INTERNAL_ ERROR 1767 The RPC server attempted an integer division by zero. RPC_S_ZERO_ DIVIDE 1768 An addressing error occurred in the RPC server. RPC_S_ADDRESS_ ERROR 1769 A floating-point operation at the RPC server caused a division by zero. RPC_S_FP_DIV_ ZERO 1770 A floating-point underflow occurred at the RPC server. RPC_S_FP_ UNDERFLOW 1771 A floating-point overflow occurred at the RPC server. RPC_S_FP_ OVERFLOW Automation Engine 92 1772 The list of RPC servers available for the binding of auto handles has been exhausted. RPC_X_NO_MORE_ ENTRIES 1773 Unable to open the character translation table file. RPC_X_SS_CHAR_ TRANS_OPEN_FAIL 1774 The file containing the character translation table has fewer than 512 bytes. RPC_X_SS_CHAR_ TRANS_SHORT_ FILE 1775 A null context handle was passed from the client to the host during RPC_X_SS_IN_ a remote procedure call. NULL_CONTEXT 1777 The context handle changed during a remote procedure call. RPC_X_SS_ CONTEXT_ DAMAGED 1778 The binding handles passed to a remote procedure call do not match. RPC_X_SS_ HANDLES_ MISMATCH 1779 The stub is unable to get the remote procedure call handle. RPC_X_SS_ CANNOT_GET_ CALL_HANDLE 1780 A null reference pointer was passed to the stub. RPC_X_NULL_REF_ POINTER 1781 The enumeration value is out of range. RPC_X_ENUM_ VALUE_OUT_OF_ RANGE 1782 The byte count is too small. RPC_X_BYTE_ COUNT_TOO_ SMALL 1783 The stub received bad data. RPC_X_BAD_ STUB_DATA 1784 The supplied user buffer is not valid for the requested operation. ERROR_INVALID_ USER_BUFFER 1785 The disk media is not recognized. It may not be formatted. ERROR_ UNRECOGNIZED_ MEDIA 1786 The workstation does not have a trust secret. ERROR_NO_ TRUST_LSA_ SECRET 1787 The SAM database on the Windows NT Server does not have a computer account for this workstation trust relationship. ERROR_NO_ TRUST_SAM_ ACCOUNT 1788 The trust relationship between the primary domain and the trusted domain failed. ERROR_TRUSTED_ DOMAIN_FAILURE 1789 The trust relationship between this workstation and the primary domain failed. ERROR_TRUSTED_ RELATIONSHIP_ FAILURE 1790 The network logon failed. ERROR_TRUST_ FAILURE 93 Chapter 5 Codes d’erreur externes 1791 A remote procedure call is already in progress for this thread. RPC_S_CALL_IN_ PROGRESS 1792 An attempt was made to logon, but the network logon service was not started. ERROR_ NETLOGON_NOT_ STARTED 1793 The user's account has expired. ERROR_ ACCOUNT_ EXPIRED 1794 The redirector is in use and cannot be unloaded. ERROR_ REDIRECTOR_ HAS_OPEN_ HANDLES 1795 The specified printer driver is already installed. ERROR_PRINTER_ DRIVER_ ALREADY_ INSTALLED 1796 The specified port is unknown. ERROR_ UNKNOWN_PORT 1797 The printer driver is unknown. ERROR_ UNKNOWN_ PRINTER_DRIVER 1798 The print processor is unknown. ERROR_ UNKNOWN_ PRINTPROCESSOR 1799 The specified separator file is invalid. ERROR_INVALID_ SEPARATOR_FILE 1800 The specified priority is invalid. ERROR_INVALID_ PRIORITY 1801 The printer name is invalid. ERROR_INVALID_ PRINTER_NAME 1802 The printer already exists. ERROR_PRINTER_ ALREADY_EXISTS 1803 The printer command is invalid. ERROR_INVALID_ PRINTER_ COMMAND 1804 The specified datatype is invalid. ERROR_INVALID_ DATATYPE 1805 The environment specified is invalid. ERROR_INVALID_ ENVIRONMENT 1806 There are no more bindings. RPC_S_NO_MORE_ BINDINGS 1807 The account used is an interdomain trust account. Use your global ERROR_ user account or local user account to access this server. NOLOGON_ INTERDOMAIN_ TRUST_ACCOUNT Automation Engine 94 1808 The account used is a computer account. Use your global user account or local user account to access this server. ERROR_ NOLOGON_ WORKSTATION_ TRUST_ACCOUNT 1809 The account used is a server trust account. Use your global user account or local user account to access this server. ERROR_ NOLOGON_ SERVER_TRUST_ ACCOUNT 1810 The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain. ERROR_DOMAIN_ TRUST_ INCONSISTENT 1811 The server is in use and cannot be unloaded. ERROR_SERVER_ HAS_OPEN_ HANDLES 1812 The specified image file did not contain a resource section. ERROR_ RESOURCE_DATA_ NOT_FOUND 1813 The specified resource type cannot be found in the image file. ERROR_ RESOURCE_TYPE_ NOT_FOUND 1814 The specified resource name cannot be found in the image file. ERROR_ RESOURCE_ NAME_NOT_ FOUND 1815 The specified resource language ID cannot be found in the image file. ERROR_ RESOURCE_LANG_ NOT_FOUND 1816 Not enough quota is available to process this command. ERROR_NOT_ ENOUGH_QUOTA 1817 No interfaces have been registered. RPC_S_NO_ INTERFACES 1818 The remote procedure call was cancelled. RPC_S_CALL_ CANCELLED 1819 The binding handle does not contain all required information. RPC_S_BINDING_ INCOMPLETE 1820 A communications failure occurred during a remote procedure call. RPC_S_COMM_ FAILURE 1821 The requested authentication level is not supported. RPC_S_ UNSUPPORTED_ AUTHN_LEVEL 1822 No principal name registered. RPC_S_NO_ PRINC_NAME 1823 The error specified is not a valid Windows RPC error code. RPC_S_NOT_RPC_ ERROR 1824 A UUID that is valid only on this computer has been allocated. RPC_S_UUID_ LOCAL_ONLY 95 Chapter 5 Codes d’erreur externes 1825 A security package specific error occurred. RPC_S_SEC_PKG_ ERROR 1826 Thread is not canceled. RPC_S_NOT_ CANCELLED 1827 Invalid operation on the encoding/decoding handle. RPC_X_INVALID_ ES_ACTION 1828 Incompatible version of the serializing package. RPC_X_WRONG_ ES_VERSION 1829 Incompatible version of the RPC stub. RPC_X_WRONG_ STUB_VERSION 1830 The RPC pipe object is invalid or corrupted. RPC_X_INVALID_ PIPE_OBJECT 1831 An invalid operation was attempted on an RPC pipe object. RPC_X_WRONG_ PIPE_ORDER 1832 Unsupported RPC pipe version. RPC_X_WRONG_ PIPE_VERSION 1898 The group member was not found. RPC_S_GROUP_ MEMBER_NOT_ FOUND 1899 The endpoint mapper database entry could not be created. EPT_S_CANT_ CREATE 1900 The object universal unique identifier (UUID) is the nil UUID. RPC_S_INVALID_ OBJECT 1901 The specified time is invalid. ERROR_INVALID_ TIME 1902 The specified form name is invalid. ERROR_INVALID_ FORM_NAME 1903 The specified form size is invalid. ERROR_INVALID_ FORM_SIZE 1904 The specified printer handle is already being waited on ERROR_ALREADY_ WAITING 1905 The specified printer has been deleted. ERROR_PRINTER_ DELETED 1906 The state of the printer is invalid. ERROR_INVALID_ PRINTER_STATE 1907 The user must change his password before he logs on the first time. ERROR_ PASSWORD_ MUST_CHANGE 1908 Could not find the domain controller for this domain. ERROR_DOMAIN_ CONTROLLER_ NOT_FOUND 1909 The referenced account is currently locked out and may not be logged on to. ERROR_ ACCOUNT_ LOCKED_OUT 1910 The object exporter specified was not found. OR_INVALID_OXID 1911 The object specified was not found. OR_INVALID_OID Automation Engine 96 1912 The object resolver set specified was not found. OR_INVALID_SET 1913 Some data remains to be sent in the request buffer. RPC_S_SEND_ INCOMPLETE 1914 Invalid asynchronous remote procedure call handle. RPC_S_INVALID_ ASYNC_HANDLE 1915 Invalid asynchronous RPC call handle for this operation. RPC_S_INVALID_ ASYNC_CALL 1916 The RPC pipe object has already been closed. RPC_X_PIPE_ CLOSED 1917 The RPC call completed before all pipes were processed. RPC_X_PIPE_ DISCIPLINE_ ERROR 1918 No more data is available from the RPC pipe. RPC_X_PIPE_ EMPTY 1919 No site name is available for this machine. ERROR_NO_ SITENAME 1920 The file can not be accessed by the system. ERROR_CANT_ ACCESS_FILE 1921 The name of the file cannot be resolved by the system. ERROR_CANT_ RESOLVE_ FILENAME 1922 The entry is not of the expected type. RPC_S_ENTRY_ TYPE_MISMATCH 1923 Not all object UUIDs could be exported to the specified entry. RPC_S_NOT_ALL_ OBJS_EXPORTED 1924 Interface could not be exported to the specified entry. RPC_S_ INTERFACE_NOT_ EXPORTED 1925 The specified profile entry could not be added. RPC_S_PROFILE_ NOT_ADDED 1926 The specified profile element could not be added. RPC_S_PRF_ELT_ NOT_ADDED 1927 The specified profile element could not be removed. RPC_S_PRF_ELT_ NOT_REMOVED 1928 The group element could not be added. RPC_S_GRP_ELT_ NOT_ADDED 1929 The group element could not be removed. RPC_S_GRP_ELT_ NOT_REMOVED 5.5.3 Win32 - Codes d'erreur (2 000-5 999) Le tableau suivant contient les messages d'erreur Win32. Code Description Nom 2000 The pixel format is invalid. ERROR_INVALID_PIXEL_FORMAT 97 Chapter 5 Codes d’erreur externes 2001 The specified driver is invalid. ERROR_BAD_DRIVER 2002 The window style ERROR_INVALID_WINDOW_STYLE or class attribute is invalid for this operation. 2003 The requested ERROR_METAFILE_NOT_SUPPORTED metafile operation is not supported. 2004 The requested transformation operation is not supported. 2005 The requested ERROR_CLIPPING_NOT_SUPPORTED clipping operation is not supported. 2010 The specified ERROR_INVALID_CMM color management module is invalid. 2011 The specified color profile is invalid. 2012 The specified tag ERROR_TAG_NOT_FOUND was not found. 2013 A required tag is not present. 2014 The specified tag ERROR_DUPLICATE_TAG is already present. 2015 The specified ERROR_PROFILE_NOT_ASSOCIATED_WITH_ color profile is not DEVICE associated with any device. 2016 The specified color profile was not found. ERROR_PROFILE_NOT_FOUND 2017 The specified color space is invalid. ERROR_INVALID_COLORSPACE 2018 Image Color Management is not enabled. ERROR_ICM_NOT_ENABLED 2019 There was an error while deleting the color transform. ERROR_DELETING_ICM_XFORM ERROR_TRANSFORM_NOT_SUPPORTED ERROR_INVALID_PROFILE ERROR_TAG_NOT_PRESENT Automation Engine 2020 The specified ERROR_INVALID_TRANSFORM color transform is invalid. 2021 The specified transform does not match the bitmap's color space. ERROR_COLORSPACE_MISMATCH 2022 The specified named color index is not present in the profile. ERROR_INVALID_COLORINDEX 2108 The network ERROR_CONNECTED_OTHER_PASSWORD connection was made successfully, but the user had to be prompted for a password other than the one originally specified. 2202 The specified username is invalid. ERROR_BAD_USERNAME 2250 This network connection does not exist. ERROR_NOT_CONNECTED 2401 This network ERROR_OPEN_FILES connection has files open or requests pending. 2402 Active connections still exist. ERROR_ACTIVE_CONNECTIONS 2404 The device is in use by an active process and cannot be disconnected. ERROR_DEVICE_IN_USE 3000 The specified print monitor is unknown. ERROR_UNKNOWN_PRINT_MONITOR 3001 The specified printer driver is currently in use. ERROR_PRINTER_DRIVER_IN_USE 3002 The spool file was ERROR_SPOOL_FILE_NOT_FOUND not found. 98 99 Chapter 5 Codes d’erreur externes 3003 A StartDocPrinter ERROR_SPL_NO_STARTDOC call was not issued. 3004 An AddJob call was not issued. ERROR_SPL_NO_ADDJOB 3005 The specified print processor has already been installed. ERROR_PRINT_PROCESSOR_ALREADY_ INSTALLED 3006 The specified print monitor has already been installed. ERROR_PRINT_MONITOR_ALREADY_INSTALLED 3007 The specified ERROR_INVALID_PRINT_MONITOR print monitor does not have the required functions. 3008 The specified print monitor is currently in use. ERROR_PRINT_MONITOR_IN_USE 3009 The requested operation is not allowed when there are jobs queued to the printer. ERROR_PRINTER_HAS_JOBS_QUEUED 3010 The requested operation is successful. Changes will not be effective until the system is rebooted. ERROR_SUCCESS_REBOOT_REQUIRED 3011 The requested operation is successful. Changes will not be effective until the service is restarted. ERROR_SUCCESS_RESTART_REQUIRED 3012 No printers were found. ERROR_PRINTER_NOT_FOUND 4000 WINS encountered an error while processing the command. ERROR_WINS_INTERNAL Automation Engine 4001 The local WINS can not be deleted. ERROR_CAN_NOT_DEL_LOCAL_WINS 4002 The importation from the file failed. ERROR_STATIC_INIT 4003 The backup failed. Was a full backup done before? ERROR_INC_BACKUP 4004 The backup ERROR_FULL_BACKUP failed. Check the directory to which you are backing the database. 4005 The name does not exist in the WINS database. 4006 Replication with a ERROR_RPL_NOT_ALLOWED nonconfigured partner is not allowed. 4100 The DHCP client ERROR_DHCP_ADDRESS_CONFLICT has obtained an IP address that is already in use on the network. The local interface will be disabled until the DHCP client can obtain a new address. 4200 The GUID passed was not recognized as valid by a WMI data provider. ERROR_WMI_GUID_NOT_FOUND 4201 The instance name passed was not recognized as valid by a WMI data provider. ERROR_WMI_INSTANCE_NOT_FOUND 4202 The data item ID passed was not recognized as valid by a WMI data provider. ERROR_WMI_ITEMID_NOT_FOUND ERROR_REC_NON_EXISTENT 100 101 Chapter 5 Codes d’erreur externes 4203 The WMI request ERROR_WMI_TRY_AGAIN could not be completed and should be retried. 4204 The WMI data ERROR_WMI_DP_NOT_FOUND provider could not be located. 4205 The WMI data provider references an instance set that has not been registered. ERROR_WMI_UNRESOLVED_INSTANCE_REF 4206 The WMI data block or event notification has already been enabled. ERROR_WMI_ALREADY_ENABLED 4207 The WMI data ERROR_WMI_GUID_DISCONNECTED block is no longer available. 4208 The WMI data service is not available. ERROR_WMI_SERVER_UNAVAILABLE 4209 The WMI data provider failed to carry out the request. ERROR_WMI_DP_FAILED 4210 The WMI MOF ERROR_WMI_INVALID_MOF information is not valid. 4211 The WMI ERROR_WMI_INVALID_REGINFO registration information is not valid. 4212 The WMI data block or event notification has already been disabled. 4213 The WMI data ERROR_WMI_READ_ONLY item or data block is read only. 4214 The WMI data ERROR_WMI_SET_FAILURE item or data block could not be changed. ERROR_WMI_ALREADY_DISABLED Automation Engine 4300 The media ERROR_INVALID_MEDIA identifier does not represent a valid medium. 4301 The library ERROR_INVALID_LIBRARY identifier does not represent a valid library. 4302 The media pool ERROR_INVALID_MEDIA_POOL identifier does not represent a valid media pool. 4303 The drive and medium are not compatible or exist in different libraries. 4304 The medium ERROR_MEDIA_OFFLINE currently exists in an offline library and must be online to perform this operation. 4305 The operation cannot be performed on an offline library. 4306 The library, drive, ERROR_EMPTY or media pool is empty. 4307 The library, drive, ERROR_NOT_EMPTY or media pool must be empty to perform this operation. 4308 No media is currently available in this media pool or library. ERROR_MEDIA_UNAVAILABLE 4309 A resource required for this operation is disabled. ERROR_RESOURCE_DISABLED 4310 The media ERROR_INVALID_CLEANER identifier does not represent a valid cleaner. ERROR_DRIVE_MEDIA_MISMATCH ERROR_LIBRARY_OFFLINE 102 103 Chapter 5 Codes d’erreur externes 4311 The drive cannot be cleaned or does not support cleaning. ERROR_UNABLE_TO_CLEAN 4312 The object ERROR_OBJECT_NOT_FOUND identifier does not represent a valid object. 4313 Unable to read from or write to the database. ERROR_DATABASE_FAILURE 4314 The database is full. ERROR_DATABASE_FULL 4315 The medium is ERROR_MEDIA_INCOMPATIBLE not compatible with the device or media pool. 4316 The resource required for this operation does not exist. ERROR_RESOURCE_NOT_PRESENT 4317 The operation identifier is not valid. ERROR_INVALID_OPERATION 4318 The media is not ERROR_MEDIA_NOT_AVAILABLE mounted or ready for use. 4319 The device is not ready for use. 4320 The operator or ERROR_REQUEST_REFUSED administrator has refused the request. 4321 The drive ERROR_INVALID_DRIVE_OBJECT identifier does not represent a valid drive. 4322 Library is full. No slot is available for use. ERROR_LIBRARY_FULL 4323 The transport cannot access the medium. ERROR_MEDIUM_NOT_ACCESSIBLE 4324 Unable to load the ERROR_UNABLE_TO_LOAD_MEDIUM medium into the drive. ERROR_DEVICE_NOT_AVAILABLE Automation Engine 104 4325 Unable to retrieve ERROR_UNABLE_TO_INVENTORY_DRIVE status about the drive. 4326 Unable to retrieve ERROR_UNABLE_TO_INVENTORY_SLOT status about the slot. 4327 Unable to retrieve ERROR_UNABLE_TO_INVENTORY_TRANSPORT status about the transport. 4328 Cannot use the ERROR_TRANSPORT_FULL transport because it is already in use. 4329 Unable to open or ERROR_CONTROLLING_IEPORT close the inject/eject port. 4330 Unable to eject the media because it is in a drive. 4331 A cleaner slot is ERROR_CLEANER_SLOT_SET already reserved. 4332 A cleaner slot is not reserved. 4333 The cleaner ERROR_CLEANER_CARTRIDGE_SPENT cartridge has performed the maximum number of drive cleanings. 4334 Unexpected on- ERROR_UNEXPECTED_OMID medium identifier. 4335 The last remaining item in this group or resource cannot be deleted. 4336 The message ERROR_MESSAGE_EXCEEDS_MAX_SIZE provided exceeds the maximum size allowed for this parameter. 4337 The volume contains system or paging files. ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA ERROR_CLEANER_SLOT_NOT_SET ERROR_CANT_DELETE_LAST_ITEM ERROR_VOLUME_CONTAINS_SYS_FILES 105 Chapter 5 Codes d’erreur externes 4338 The media type ERROR_INDIGENOUS_TYPE cannot be removed from this library since at least one drive in the library reports it can support this media type. 4339 This offline media ERROR_NO_SUPPORTING_DRIVES cannot be mounted on this system since no enabled drives are present which can be used. 4350 The remote storage service was not able to recall the file. 4351 The remote ERROR_REMOTE_STORAGE_NOT_ACTIVE storage service is not operational at this time. 4352 The remote storage service encountered a media error. ERROR_REMOTE_STORAGE_MEDIA_ERROR 4390 The file or directory is not a reparse point. ERROR_NOT_A_REPARSE_POINT 4391 The reparse point ERROR_REPARSE_ATTRIBUTE_CONFLICT attribute cannot be set because it conflicts with an existing attribute. 4392 The data present in the reparse point buffer is invalid. 4393 The tag present in ERROR_REPARSE_TAG_INVALID the reparse point buffer is invalid. 4394 There is a ERROR_REPARSE_TAG_MISMATCH mismatch between the tag specified in the request and the tag present in the reparse point. ERROR_FILE_OFFLINE ERROR_INVALID_REPARSE_DATA Automation Engine 5001 The cluster resource cannot be moved to another group because other resources are dependent on it. ERROR_DEPENDENT_RESOURCE_EXISTS 5002 The cluster resource dependency cannot be found. ERROR_DEPENDENCY_NOT_FOUND 5003 The cluster ERROR_DEPENDENCY_ALREADY_EXISTS resource cannot be made dependent on the specified resource because it is already dependent. 5004 The cluster resource is not online. ERROR_RESOURCE_NOT_ONLINE 5005 A cluster node is not available for this operation. ERROR_HOST_NODE_NOT_AVAILABLE 5006 The cluster resource is not available. ERROR_RESOURCE_NOT_AVAILABLE 5007 The cluster resource could not be found. ERROR_RESOURCE_NOT_FOUND 5008 The cluster is being shut down. ERROR_SHUTDOWN_CLUSTER 5009 A cluster node ERROR_CANT_EVICT_ACTIVE_NODE cannot be evicted from the cluster while it is online. 5010 The object already exists. 5011 The object is ERROR_OBJECT_IN_LIST already in the list. 5012 The cluster group ERROR_GROUP_NOT_AVAILABLE is not available for any new requests. 5013 The cluster group ERROR_GROUP_NOT_FOUND could not be found. ERROR_OBJECT_ALREADY_EXISTS 106 107 Chapter 5 Codes d’erreur externes 5014 The operation could not be completed because the cluster group is not online. ERROR_GROUP_NOT_ONLINE 5015 The cluster node is not the owner of the resource. ERROR_HOST_NODE_NOT_RESOURCE_OWNER 5016 The cluster node is not the owner of the group. ERROR_HOST_NODE_NOT_GROUP_OWNER 5017 The cluster ERROR_RESMON_CREATE_FAILED resource could not be created in the specified resource monitor. 5018 The cluster ERROR_RESMON_ONLINE_FAILED resource could not be brought online by the resource monitor. 5019 The operation could not be completed because the cluster resource is online. 5020 The cluster ERROR_QUORUM_RESOURCE resource could not be deleted or brought offline because it is the quorum resource. 5021 The cluster could ERROR_NOT_QUORUM_CAPABLE not make the specified resource a quorum resource because it is not capable of being a quorum resource. 5022 The cluster software is shutting down. ERROR_RESOURCE_ONLINE ERROR_CLUSTER_SHUTTING_DOWN Automation Engine 108 5023 The group or resource is not in the correct state to perform the requested operation. ERROR_INVALID_STATE 5024 The properties ERROR_RESOURCE_PROPERTIES_STORED were stored but not all changes will take effect until the next time the resource is brought online. 5025 The cluster could ERROR_NOT_QUORUM_CLASS not make the specified resource a quorum resource because it does not belong to a shared storage class. 5026 The cluster resource could not be deleted since it is a core resource. 5027 The quorum ERROR_QUORUM_RESOURCE_ONLINE_FAILED resource failed to come online. 5028 The quorum log could not be created or mounted successfully. ERROR_QUORUMLOG_OPEN_FAILED 5029 The cluster log is corrupt. ERROR_CLUSTERLOG_CORRUPT 5030 The record could not be written to the cluster log since it exceeds the maximum size. ERROR_CLUSTERLOG_RECORD_EXCEEDS_ MAXSIZE 5031 The cluster log exceeds its maximum size. ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE 5032 No checkpoint ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND record was found in the cluster log. ERROR_CORE_RESOURCE 109 Chapter 5 Codes d’erreur externes 5033 The minimum ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE required disk space needed for logging is not available. 5035 A cluster network ERROR_NETWORK_NOT_AVAILABLE is not available for this operation. 5036 A cluster node is not available for this operation. ERROR_NODE_NOT_AVAILABLE 5037 All cluster nodes must be running to perform this operation. ERROR_ALL_NODES_NOT_AVAILABLE 5038 A cluster resource failed. ERROR_RESOURCE_FAILED 5039 The cluster node is not valid. ERROR_CLUSTER_INVALID_NODE 5040 The cluster node already exists. ERROR_CLUSTER_NODE_EXISTS 5041 A node is in the ERROR_CLUSTER_JOIN_IN_PROGRESS process of joining the cluster. 5042 The cluster node was not found. ERROR_CLUSTER_NODE_NOT_FOUND 5043 The cluster local node information was not found. ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND 5044 The cluster network already exists. ERROR_CLUSTER_NETWORK_EXISTS 5045 The cluster network was not found. ERROR_CLUSTER_NETWORK_NOT_FOUND 5046 The cluster ERROR_CLUSTER_NETINTERFACE_EXISTS network interface already exists. 5047 The cluster ERROR_CLUSTER_NETINTERFACE_NOT_ network interface FOUND was not found. 5048 The cluster request is not valid for this object. ERROR_CLUSTER_INVALID_REQUEST Automation Engine 110 5049 The cluster network provider is not valid. ERROR_CLUSTER_INVALID_NETWORK_ PROVIDER 5050 The cluster node is down. ERROR_CLUSTER_NODE_DOWN 5051 The cluster node is not reachable. ERROR_CLUSTER_NODE_UNREACHABLE 5052 The cluster node is not a member of the cluster. ERROR_CLUSTER_NODE_NOT_MEMBER 5053 A cluster join ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS operation is not in progress. 5054 The cluster network is not valid. ERROR_CLUSTER_INVALID_NETWORK 5056 The cluster node is up. ERROR_CLUSTER_NODE_UP 5057 The cluster IP address is already in use. ERROR_CLUSTER_IPADDR_IN_USE 5058 The cluster node is not paused. ERROR_CLUSTER_NODE_NOT_PAUSED 5059 No cluster security context is available. ERROR_CLUSTER_NO_SECURITY_CONTEXT 5060 The cluster network is not configured for internal cluster communication. ERROR_CLUSTER_NETWORK_NOT_INTERNAL 5061 The cluster node is already up. ERROR_CLUSTER_NODE_ALREADY_UP 5062 The cluster node is already down. ERROR_CLUSTER_NODE_ALREADY_DOWN 5063 The cluster network is already online. ERROR_CLUSTER_NETWORK_ALREADY_ ONLINE 5064 The cluster network is already offline. ERROR_CLUSTER_NETWORK_ALREADY_ OFFLINE 5065 The cluster node is already a member of the cluster. ERROR_CLUSTER_NODE_ALREADY_MEMBER 111 Chapter 5 Codes d’erreur externes 5066 The cluster network is the only one configured for internal cluster communication between two or more active cluster nodes. The internal communication capability cannot be removed from the network. ERROR_CLUSTER_LAST_INTERNAL_NETWORK 5067 One or more ERROR_CLUSTER_NETWORK_HAS_ cluster resources DEPENDENTS depend on the network to provide service to clients. The client access capability cannot be removed from the network. 5068 This operation ERROR_INVALID_OPERATION_ON_QUORUM cannot be performed on the cluster resource as it the quorum resource. You may not bring the quorum resource offline or modify its possible owners list. 5069 The cluster quorum resource is not allowed to have any dependencies. ERROR_DEPENDENCY_NOT_ALLOWED 5070 The cluster node is paused. ERROR_CLUSTER_NODE_PAUSED 5071 The cluster ERROR_NODE_CANT_HOST_RESOURCE resource cannot be brought online. The owner node cannot run this resource. Automation Engine 112 5072 The cluster node is not ready to perform the requested operation. ERROR_CLUSTER_NODE_NOT_READY 5073 The cluster node is shutting down. ERROR_CLUSTER_NODE_SHUTTING_DOWN 5074 The cluster join operation was aborted. ERROR_CLUSTER_JOIN_ABORTED 5075 The cluster join ERROR_CLUSTER_INCOMPATIBLE_VERSIONS operation failed due to incompatible software versions between the joining node and its sponsor. 5076 This resource ERROR_CLUSTER_MAXNUM_OF_RESOURCES_ cannot be created EXCEEDED because the cluster has reached the limit on the number of resources it can monitor. 5077 The system configuration changed during the cluster join or form operation. The join or form operation was aborted. ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED 5078 The specified resource type was not found. ERROR_CLUSTER_RESOURCE_TYPE_NOT_ FOUND 5079 The specified ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED node does not support a resource of this type. This may be due to version inconsistencies or due to the absence of the resource DLL on this node. 113 Chapter 5 Codes d’erreur externes 5080 The specified resource name is supported by this resource DLL. This may be due to a bad (or changed) name supplied to the resource DLL. ERROR_CLUSTER_RESNAME_NOT_FOUND 5081 No authentication ERROR_CLUSTER_NO_RPC_PACKAGES_ package could be REGISTERED registered with the RPC server. 5082 You cannot bring ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST the group online because the owner of the group is not in the preferred list for the group. To change the owner node for the group, move the group. 5083 The join operation ERROR_CLUSTER_DATABASE_SEQMISMATCH failed because the cluster database sequence number has changed or is incompatible with the locker node. This may happen during a join operation if the cluster database was changing during the join. 5084 The resource ERROR_RESMON_INVALID_STATE monitor will not allow the fail operation to be performed while the resource is in its current state. This may happen if the resource is in a pending state. Automation Engine 114 5.5.4 Win32 - Codes d'erreur (6 000-11 999) Le tableau suivant contient les messages d'erreur Win32. Code Description Nom 6000 The specified file could not be encrypted. ERROR_ENCRYPTION_ FAILED 6001 The specified file could not be decrypted. ERROR_DECRYPTION_ FAILED 6002 The specified file is encrypted and the user does not have the ability to decrypt it. ERROR_FILE_ENCRYPTED 6003 There is no encryption recovery policy configured for this system. ERROR_NO_RECOVERY_ POLICY 6004 The required encryption driver is not loaded for this system. ERROR_NO_EFS 6005 The file was encrypted with a different encryption driver than is currently loaded. ERROR_WRONG_EFS 6006 There are no EFS keys defined for the user. ERROR_NO_USER_KEYS 6007 The specified file is not encrypted. ERROR_FILE_NOT_ ENCRYPTED 6008 The specified file is not in the defined EFS export format. ERROR_NOT_EXPORT_ FORMAT 6009 The specified file is read only. ERROR_FILE_READ_ONLY 6118 The list of servers for this workgroup is not currently available ERROR_NO_BROWSER_ SERVERS_FOUND 7001 The specified session name is invalid. ERROR_CTX_WINSTATION_ NAME_INVALID 7002 The specified protocol driver is invalid. ERROR_CTX_INVALID_PD 7003 The specified protocol driver was not found in the system path. ERROR_CTX_PD_NOT_ FOUND 7004 The specified terminal connection driver was not found ERROR_CTX_WD_NOT_ in the system path. FOUND 7005 A registry key for event logging could not be created for this session. ERROR_CTX_CANNOT_ MAKE_EVENTLOG_ENTRY 7006 A service with the same name already exists on the system. ERROR_CTX_SERVICE_ NAME_COLLISION 7007 A close operation is pending on the session. ERROR_CTX_CLOSE_ PENDING 7008 There are no free output buffers available. ERROR_CTX_NO_OUTBUF 7009 The MODEM.INF file was not found. ERROR_CTX_MODEM_INF_ NOT_FOUND 7010 The modem name was not found in MODEM.INF. ERROR_CTX_INVALID_ MODEMNAME 115 Chapter 5 Codes d’erreur externes 7011 The modem did not accept the command sent to it. Verify that the configured modem name matches the attached modem. ERROR_CTX_MODEM_ RESPONSE_ERROR 7012 The modem did not respond to the command sent to it. ERROR_CTX_MODEM_ Verify that the modem is properly cabled and powered RESPONSE_TIMEOUT on. 7013 Carrier detect has failed or carrier has been dropped due to disconnect. ERROR_CTX_MODEM_ RESPONSE_NO_CARRIER 7014 Dial tone not detected within the required time. Verify that the phone cable is properly attached and functional. ERROR_CTX_MODEM_ RESPONSE_NO_DIALTONE 7015 Busy signal detected at remote site on callback. ERROR_CTX_MODEM_ RESPONSE_BUSY 7016 Voice detected at remote site on callback. ERROR_CTX_MODEM_ RESPONSE_VOICE 7017 Transport driver error ERROR_CTX_TD_ERROR 7022 The specified session cannot be found. ERROR_CTX_WINSTATION_ NOT_FOUND 7023 The specified session name is already in use. ERROR_CTX_WINSTATION_ ALREADY_EXISTS 7024 The requested operation cannot be completed because the terminal connection is currently busy processing a connect, disconnect, reset, or delete operation. ERROR_CTX_WINSTATION_ BUSY 7025 An attempt has been made to connect to a session whose video mode is not supported by the current client. ERROR_CTX_BAD_VIDEO_ MODE 7035 The application attempted to enable DOS graphics mode. DOS graphics mode is not supported. ERROR_CTX_GRAPHICS_ INVALID 7037 Your interactive logon privilege has been disabled. Please contact your administrator. ERROR_CTX_LOGON_ DISABLED 7038 The requested operation can be performed only on the system console. This is most often the result of a driver or system DLL requiring direct console access. ERROR_CTX_NOT_ CONSOLE 7040 The client failed to respond to the server connect message. ERROR_CTX_CLIENT_ QUERY_TIMEOUT 7041 Disconnecting the console session is not supported. ERROR_CTX_CONSOLE_ DISCONNECT 7042 Reconnecting a disconnected session to the console is not supported. ERROR_CTX_CONSOLE_ CONNECT 7044 The request to shadow another session was denied. ERROR_CTX_SHADOW_ DENIED 7045 The requested session access is denied. ERROR_CTX_WINSTATION_ ACCESS_DENIED 7049 The specified terminal connection driver is invalid. ERROR_CTX_INVALID_WD Automation Engine 116 7050 The requested session cannot be shadowed. This may be because the session is disconnected or does not currently have a user logged on. Also, you cannot shadow a session from the system console or shadow the system console. ERROR_CTX_SHADOW_ INVALID 7051 The requested session is not configured to allow shadowing. ERROR_CTX_SHADOW_ DISABLED 7052 Your request to connect to this Terminal Server has been rejected. Your Terminal Server client license number is currently being used by another user. Please call your system administrator to obtain a new copy of the Terminal Server client with a valid, unique license number. ERROR_CTX_CLIENT_ LICENSE_IN_USE 7053 Your request to connect to this Terminal Server has been rejected. Your Terminal Server client license number has not been entered for this copy of the Terminal Server client. Please call your system administrator for help in entering a valid, unique license number for this Terminal Server client. ERROR_CTX_CLIENT_ LICENSE_NOT_SET 7054 The system has reached its licensed logon limit. Please try again later. ERROR_CTX_LICENSE_ NOT_AVAILABLE 7055 The client you are using is not licensed to use this system. Your logon request is denied. ERROR_CTX_LICENSE_ CLIENT_INVALID 7056 The system license has expired. Your logon request is denied. ERROR_CTX_LICENSE_ EXPIRED 8001 The file replication service API was called incorrectly. FRS_ERR_INVALID_API_ SEQUENCE 8002 The file replication service cannot be started. FRS_ERR_STARTING_ SERVICE 8003 The file replication service cannot be stopped. FRS_ERR_STOPPING_ SERVICE 8004 The file replication service API terminated the request. FRS_ERR_INTERNAL_API 8005 The file replication service terminated the request. FRS_ERR_INTERNAL 8006 The file replication service cannot be contacted. FRS_ERR_SERVICE_COMM 8007 The file replication service cannot satisfy the request because the user is not a member of the Administrators group. FRS_ERR_INSUFFICIENT_ PRIV 8008 The file replication service cannot satisfy the request because authenticated RPC is not available. FRS_ERR_ AUTHENTICATION 8009 The file replication service cannot satisfy the request because the user is not a member of Administrators group on the domain controller. FRS_ERR_PARENT_ INSUFFICIENT_PRIV 8010 The file replication service cannot satisfy the request because authenticated RPC is not available on the domain controller. FRS_ERR_PARENT_ AUTHENTICATION 117 Chapter 5 Codes d’erreur externes 8011 The file replication service cannot communicate with the file replication service on the domain controller. FRS_ERR_CHILD_TO_ PARENT_COMM 8012 The file replication service on the domain controller cannot communicate with the file replication service on this computer. FRS_ERR_PARENT_TO_ CHILD_COMM 8013 The file replication service cannot populate the system FRS_ERR_SYSVOL_ volume because of an internal error. POPULATE 8014 The file replication service cannot populate the system FRS_ERR_SYSVOL_ volume because of an internal timeout. POPULATE_TIMEOUT 8015 The file replication service cannot process the request. The system volume is busy with a previous request. FRS_ERR_SYSVOL_IS_ BUSY 8016 The file replication service cannot stop replicating the system volume because of an internal error. FRS_ERR_SYSVOL_ DEMOTE 8017 The file replication service detected an invalid parameter. FRS_ERR_INVALID_ SERVICE_PARAMETER 8200 An error occurred while installing the Windows NT directory service. For more information, see the event log. ERROR_DS_NOT_ INSTALLED 8201 The directory service evaluated group memberships locally. ERROR_DS_MEMBERSHIP_ EVALUATED_LOCALLY 8202 The specified directory service attribute or value does not exist. ERROR_DS_NO_ ATTRIBUTE_OR_VALUE 8203 The attribute syntax specified to the directory service is invalid. ERROR_DS_INVALID_ ATTRIBUTE_SYNTAX 8204 The attribute type specified to the directory service is not defined. ERROR_DS_ATTRIBUTE_ TYPE_UNDEFINED 8205 The specified directory service attribute or value already exists. ERROR_DS_ATTRIBUTE_ OR_VALUE_EXISTS 8206 The directory service is busy. ERROR_DS_BUSY 8207 The directory service is unavailable. ERROR_DS_UNAVAILABLE 8208 The directory service was unable to allocate a relative identifier. ERROR_DS_NO_RIDS_ ALLOCATED 8209 The directory service has exhausted the pool of relative identifiers. ERROR_DS_NO_MORE_ RIDS 8210 The requested operation could not be performed ERROR_DS_INCORRECT_ because the directory service is not the master for that ROLE_OWNER type of operation. 8211 The directory service was unable to initialize the subsystem that allocates relative identifiers. ERROR_DS_RIDMGR_INIT_ ERROR 8212 The requested operation did not satisfy one or more constraints associated with the class of the object. ERROR_DS_OBJ_CLASS_ VIOLATION 8213 The directory service can perform the requested operation only on a leaf object. ERROR_DS_CANT_ON_ NON_LEAF Automation Engine 118 8214 The directory service cannot perform the requested operation on the RDN attribute of an object. ERROR_DS_CANT_ON_RDN 8215 The directory service detected an attempt to modify the object class of an object. ERROR_DS_CANT_MOD_ OBJ_CLASS 8216 The requested cross-domain move operation could not ERROR_DS_CROSS_DOM_ be performed. MOVE_ERROR 8217 Unable to contact the global catalog server. 8218 The policy object is shared and can only be modified at ERROR_SHARED_POLICY the root. 8219 The policy object does not exist. ERROR_POLICY_OBJECT_ NOT_FOUND 8220 The requested policy information is only in the directory service. ERROR_POLICY_ONLY_IN_ DS 8221 A domain controller promotion is currently active. ERROR_PROMOTION_ ACTIVE 8222 A domain controller promotion is not currently active ERROR_NO_PROMOTION_ ACTIVE 8224 An operations error occurred. ERROR_DS_OPERATIONS_ ERROR 8225 A protocol error occurred. ERROR_DS_PROTOCOL_ ERROR 8226 The time limit for this request was exceeded. ERROR_DS_TIMELIMIT_ EXCEEDED 8227 The size limit for this request was exceeded. ERROR_DS_SIZELIMIT_ EXCEEDED 8228 The administrative limit for this request was exceeded. ERROR_DS_ADMIN_LIMIT_ EXCEEDED 8229 The compare response was false. ERROR_DS_COMPARE_ FALSE 8230 The compare response was true. ERROR_DS_COMPARE_ TRUE 8231 The requested authentication method is not supported by the server. ERROR_DS_AUTH_ METHOD_NOT_SUPPORTED 8232 A more secure authentication method is required for this server. ERROR_DS_STRONG_ AUTH_REQUIRED 8233 Inappropriate authentication. ERROR_DS_ INAPPROPRIATE_AUTH 8234 The authentication mechanism is unknown. ERROR_DS_AUTH_ UNKNOWN 8235 A referral was returned from the server. ERROR_DS_REFERRAL 8236 The server does not support the requested critical extension. ERROR_DS_UNAVAILABLE_ CRIT_EXTENSION ERROR_DS_GC_NOT_ AVAILABLE 119 Chapter 5 Codes d’erreur externes 8237 This request requires a secure connection. ERROR_DS_ CONFIDENTIALITY_ REQUIRED 8238 Inappropriate matching. ERROR_DS_ INAPPROPRIATE_ MATCHING 8239 A constraint violation occurred. ERROR_DS_CONSTRAINT_ VIOLATION 8240 There is no such object on the server. ERROR_DS_NO_SUCH_ OBJECT 8241 There is an alias problem. ERROR_DS_ALIAS_ PROBLEM 8242 An invalid dn syntax has been specified. ERROR_DS_INVALID_DN_ SYNTAX 8243 The object is a leaf object. ERROR_DS_IS_LEAF 8244 There is an alias dereferencing problem. ERROR_DS_ALIAS_DEREF_ PROBLEM 8245 The server is unwilling to process the request. ERROR_DS_UNWILLING_ TO_PERFORM 8246 A loop has been detected. ERROR_DS_LOOP_DETECT 8247 There is a naming violation. ERROR_DS_NAMING_ VIOLATION 8248 The result set is too large. ERROR_DS_OBJECT_ RESULTS_TOO_LARGE 8249 The operation affects multiple DSAs ERROR_DS_AFFECTS_ MULTIPLE_DSAS 8250 The server is not operational. ERROR_DS_SERVER_ DOWN 8251 A local error has occurred. ERROR_DS_LOCAL_ERROR 8252 An encoding error has occurred. ERROR_DS_ENCODING_ ERROR 8253 A decoding error has occurred. ERROR_DS_DECODING_ ERROR 8254 The search filter cannot be recognized. ERROR_DS_FILTER_ UNKNOWN 8255 One or more parameters are illegal. ERROR_DS_PARAM_ ERROR 8256 The specified method is not supported. ERROR_DS_NOT_ SUPPORTED 8257 No results were returned. ERROR_DS_NO_RESULTS_ RETURNED 8258 The specified control is not supported by the server. ERROR_DS_CONTROL_ NOT_FOUND 8259 A referral loop was detected by the client. ERROR_DS_CLIENT_LOOP Automation Engine 120 8260 The preset referral limit was exceeded. ERROR_DS_REFERRAL_ LIMIT_EXCEEDED 8301 The root object must be the head of a naming context. The root object cannot have an instantiated parent. ERROR_DS_ROOT_MUST_ BE_NC 8302 The add replica operation cannot be performed. The naming context must be writable in order to create the replica. ERROR_DS_ADD_REPLICA_ INHIBITED 8303 A reference to an attribute that is not defined in the schema occurred. ERROR_DS_ATT_NOT_DEF_ IN_SCHEMA 8304 The maximum size of an object has been exceeded. ERROR_DS_MAX_OBJ_ SIZE_EXCEEDED 8305 An attempt was made to add an object to the directory with a name that is already in use. ERROR_DS_OBJ_STRING_ NAME_EXISTS 8306 An attempt was made to add an object of a class that does not have an RDN defined in the schema. ERROR_DS_NO_RDN_ DEFINED_IN_SCHEMA 8307 An attempt was made to add an object using an RDN that is not the RDN defined in the schema. ERROR_DS_RDN_DOESNT_ MATCH_SCHEMA 8308 None of the requested attributes were found on the objects. ERROR_DS_NO_ REQUESTED_ATTS_FOUND 8309 The user buffer is too small. ERROR_DS_USER_ BUFFER_TO_SMALL 8310 The attribute specified in the operation is not present on the object. ERROR_DS_ATT_IS_NOT_ ON_OBJ 8311 Illegal modify operation. Some aspect of the modification is not permitted. ERROR_DS_ILLEGAL_MOD_ OPERATION 8312 The specified object is too large. ERROR_DS_OBJ_TOO_ LARGE 8313 The specified instance type is not valid. ERROR_DS_BAD_ INSTANCE_TYPE 8314 The operation must be performed at the master DSA. The DNS root attribute is missing on the crossreference object. ERROR_DS_MASTERDSA_ REQUIRED 8315 The object class attribute must be specified. ERROR_DS_OBJECT_ CLASS_REQUIRED 8316 A required attribute is missing. ERROR_DS_MISSING_ REQUIRED_ATT 8317 An attempt was made to modify an object to include an attribute that is not legal for its class ERROR_DS_ATT_NOT_DEF_ FOR_CLASS 8318 The specified attribute is already present on the object. ERROR_DS_ATT_ALREADY_ EXISTS 8320 The specified attribute is not present, or has no values. ERROR_DS_CANT_ADD_ ATT_VALUES 8321 An attribute's single value constraint has been violated. ERROR_DS_SINGLE_ VALUE_CONSTRAINT 121 Chapter 5 Codes d’erreur externes 8322 An attribute's range constraint has been violated. ERROR_DS_RANGE_ CONSTRAINT 8323 The specified value already exists. ERROR_DS_ATT_VAL_ ALREADY_EXISTS 8324 The attribute cannot be removed because it is not present on the object. ERROR_DS_CANT_REM_ MISSING_ATT 8325 The attribute value cannot be removed because it is not present on the object. ERROR_DS_CANT_REM_ MISSING_ATT_VAL 8326 The specified root object cannot be a subref. ERROR_DS_ROOT_CANT_ BE_SUBREF 8327 Chaining is not permitted. ERROR_DS_NO_CHAINING 8328 Chained evaluation is not permitted. ERROR_DS_NO_CHAINED_ EVAL 8329 The operation could not be performed because the object's parent is either uninstantiated or deleted. ERROR_DS_NO_PARENT_ OBJECT 8330 Having a parent that is an alias is not permitted. Aliases are leaf objects. ERROR_DS_PARENT_IS_ AN_ALIAS 8331 The object and parent must be of the same type, either ERROR_DS_CANT_MIX_ both masters or both replicas. MASTER_AND_REPS 8332 The operation cannot be performed because child objects exist. This operation can only be performed on a leaf object. ERROR_DS_CHILDREN_ EXIST 8333 Directory object not found. ERROR_DS_OBJ_NOT_ FOUND 8334 The aliased object is missing. ERROR_DS_ALIASED_OBJ_ MISSING 8335 The object name has bad syntax. ERROR_DS_BAD_NAME_ SYNTAX 8336 It is not permitted for an alias to refer to another alias. ERROR_DS_ALIAS_POINTS_ TO_ALIAS 8337 The alias cannot be dereferenced. ERROR_DS_CANT_DEREF_ ALIAS 8338 The operation is out of scope. ERROR_DS_OUT_OF_ SCOPE 8340 The DSA object cannot be deleted. ERROR_DS_CANT_ DELETE_DSA_OBJ 8341 A directory service error has occurred. ERROR_DS_GENERIC_ ERROR 8342 The operation can only be performed on an internal master DSA object. ERROR_DS_DSA_MUST_ BE_INT_MASTER 8343 The object must be of class DSA. ERROR_DS_CLASS_NOT_ DSA 8344 Insufficient access rights to perform the operation. ERROR_DS_INSUFF_ ACCESS_RIGHTS Automation Engine 122 8345 The object cannot be added because the parent is not on the list of possible superiors. ERROR_DS_ILLEGAL_ SUPERIOR 8346 Access to the attribute is not permitted because the attribute is owned by the Security Accounts Manager (SAM). ERROR_DS_ATTRIBUTE_ OWNED_BY_SAM 8347 The name has too many parts. ERROR_DS_NAME_TOO_ MANY_PARTS 8348 The name is too long. ERROR_DS_NAME_TOO_ LONG 8349 The name value is too long. ERROR_DS_NAME_VALUE_ TOO_LONG 8350 The directory service encountered an error parsing a name. ERROR_DS_NAME_ UNPARSEABLE 8351 The directory service cannot get the attribute type for a ERROR_DS_NAME_TYPE_ name. UNKNOWN 8352 The name does not identify an object; the name identifies a phantom. ERROR_DS_NOT_AN_ OBJECT 8353 The security descriptor is too short. ERROR_DS_SEC_DESC_ TOO_SHORT 8354 The security descriptor is invalid. ERROR_DS_SEC_DESC_ INVALID 8355 Failed to create name for deleted object. ERROR_DS_NO_DELETED_ NAME 8356 The parent of a new subref must exist. ERROR_DS_SUBREF_ MUST_HAVE_PARENT 8357 The object must be a naming context. ERROR_DS_NCNAME_ MUST_BE_NC 8358 It is not permitted to add an attribute which is owned by the system. ERROR_DS_CANT_ADD_ SYSTEM_ONLY 8359 The class of the object must be structural; you cannot instantiate an abstract class. ERROR_DS_CLASS_MUST_ BE_CONCRETE 8360 The schema object could not be found. ERROR_DS_INVALID_DMD 8361 A local object with this GUID (dead or alive) already exists. ERROR_DS_OBJ_GUID_ EXISTS 8362 The operation cannot be performed on a back link. ERROR_DS_NOT_ON_ BACKLINK 8363 The cross reference for the specified naming context could not be found. ERROR_DS_NO_ CROSSREF_FOR_NC 8364 The operation could not be performed because the directory service is shutting down. ERROR_DS_SHUTTING_ DOWN 8365 The directory service request is invalid. ERROR_DS_UNKNOWN_ OPERATION 8366 The role owner attribute could not be read. ERROR_DS_INVALID_ ROLE_OWNER 123 Chapter 5 Codes d’erreur externes 8367 The requested FSMO operation failed. The current FSMO holder could not be reached. ERROR_DS_COULDNT_ CONTACT_FSMO 8368 Modification of a DN across a naming context is not permitted. ERROR_DS_CROSS_NC_ DN_RENAME 8369 The attribute cannot be modified because it is owned by the system. ERROR_DS_CANT_MOD_ SYSTEM_ONLY 8370 Only the replicator can perform this function. ERROR_DS_REPLICATOR_ ONLY 8371 The specified class is not defined. ERROR_DS_OBJ_CLASS_ NOT_DEFINED 8372 The specified class is not a subclass. ERROR_DS_OBJ_CLASS_ NOT_SUBCLASS 8373 The name reference is invalid. ERROR_DS_NAME_ REFERENCE_INVALID 8374 A cross reference already exists. ERROR_DS_CROSS_REF_ EXISTS 8375 It is not permitted to delete a master cross reference. ERROR_DS_CANT_DEL_ MASTER_CROSSREF 8376 Subtree notifications are only supported on NC heads. ERROR_DS_SUBTREE_ NOTIFY_NOT_NC_HEAD 8377 Notification filter is too complex. ERROR_DS_NOTIFY_ FILTER_TOO_COMPLEX 8378 Schema update failed: duplicate RDN. ERROR_DS_DUP_RDN 8379 Schema update failed: duplicate OID ERROR_DS_DUP_OID 8380 Schema update failed: duplicate MAPI identifier. ERROR_DS_DUP_MAPI_ID 8381 Schema update failed: duplicate schema-id GUID. ERROR_DS_DUP_SCHEMA_ ID_GUID 8382 Schema update failed: duplicate LDAP display name. ERROR_DS_DUP_LDAP_ DISPLAY_NAME 8383 Schema update failed: range-lower less than range upper ERROR_DS_SEMANTIC_ ATT_TEST 8384 Schema update failed: syntax mismatch ERROR_DS_SYNTAX_ MISMATCH 8385 Schema deletion failed: attribute is used in mustcontain ERROR_DS_EXISTS_IN_ MUST_HAVE 8386 Schema deletion failed: attribute is used in maycontain ERROR_DS_EXISTS_IN_ MAY_HAVE 8387 Schema update failed: attribute in may-contain does not exist ERROR_DS_ NONEXISTENT_MAY_HAVE 8388 Schema update failed: attribute in must-contain does not exist ERROR_DS_ NONEXISTENT_MUST_ HAVE 8389 Schema update failed: class in aux-class list does not exist or is not an auxiliary class ERROR_DS_AUX_CLS_ TEST_FAIL Automation Engine 124 8390 Schema update failed: class in poss-superiors does not exist ERROR_DS_ NONEXISTENT_POSS_SUP 8391 Schema update failed: class in subclassof list does not exist or does not satisfy hierarchy rules ERROR_DS_SUB_CLS_ TEST_FAIL 8392 Schema update failed: Rdn-Att-Id has wrong syntax ERROR_DS_BAD_RDN_ ATT_ID_SYNTAX 8393 Schema deletion failed: class is used as auxiliary class ERROR_DS_EXISTS_IN_ AUX_CLS 8394 Schema deletion failed: class is used as sub class ERROR_DS_EXISTS_IN_ SUB_CLS 8395 Schema deletion failed: class is used as poss superior ERROR_DS_EXISTS_IN_ POSS_SUP 8396 Schema update failed in recalculating validation cache. ERROR_DS_ RECALCSCHEMA_FAILED 8397 The tree deletion is not finished. ERROR_DS_TREE_DELETE_ NOT_FINISHED 8398 The requested delete operation could not be performed. ERROR_DS_CANT_DELETE 8399 Cannot read the governs class identifier for the schema record. ERROR_DS_ATT_SCHEMA_ REQ_ID 8400 The attribute schema has bad syntax. ERROR_DS_BAD_ATT_ SCHEMA_SYNTAX 8401 The attribute could not be cached. ERROR_DS_CANT_CACHE_ ATT 8402 The class could not be cached. ERROR_DS_CANT_CACHE_ CLASS 8403 The attribute could not be removed from the cache. ERROR_DS_CANT_ REMOVE_ATT_CACHE 8404 The class could not be removed from the cache. ERROR_DS_CANT_ REMOVE_CLASS_CACHE 8405 The distinguished name attribute could not be read. ERROR_DS_CANT_ RETRIEVE_DN 8406 A required subref is missing. ERROR_DS_MISSING_ SUPREF 8407 The instance type attribute could not be retrieved. ERROR_DS_CANT_ RETRIEVE_INSTANCE 8408 An internal error has occurred. ERROR_DS_CODE_ INCONSISTENCY 8409 A database error has occurred. ERROR_DS_DATABASE_ ERROR 8410 The attribute GOVERNSID is missing. ERROR_DS_GOVERNSID_ MISSING 8411 An expected attribute is missing. ERROR_DS_MISSING_ EXPECTED_ATT 125 Chapter 5 Codes d’erreur externes 8412 The specified naming context is missing a cross reference. ERROR_DS_NCNAME_ MISSING_CR_REF 8413 A security checking error has occurred. ERROR_DS_SECURITY_ CHECKING_ERROR 8414 The schema is not loaded. ERROR_DS_SCHEMA_NOT_ LOADED 8415 Schema allocation failed. ERROR_DS_SCHEMA_ ALLOC_FAILED 8416 Failed to obtain the required syntax for the attribute schema. ERROR_DS_ATT_SCHEMA_ REQ_SYNTAX 8417 The global catalog verification failed. The global catalog is not available or does not support the operation. Some part of the directory is currently not available. ERROR_DS_GCVERIFY_ ERROR 8418 The replication operation failed because of a schema mismatch between the servers involved. ERROR_DS_DRA_SCHEMA_ MISMATCH 8419 The DSA object could not be found. ERROR_DS_CANT_FIND_ DSA_OBJ 8420 The naming context could not be found. ERROR_DS_CANT_FIND_ EXPECTED_NC 8421 The naming context could not be found in the cache. ERROR_DS_CANT_FIND_ NC_IN_CACHE 8422 The child object could not be retrieved. ERROR_DS_CANT_ RETRIEVE_CHILD 8423 The modification was not permitted for security reasons. ERROR_DS_SECURITY_ ILLEGAL_MODIFY 8424 The operation cannot replace the hidden record. ERROR_DS_CANT_ REPLACE_HIDDEN_REC 8425 The hierarchy file is invalid. ERROR_DS_BAD_ HIERARCHY_FILE 8426 The attempt to build the hierarchy table failed. ERROR_DS_BUILD_ HIERARCHY_TABLE_FAILED 8427 The directory configuration parameter is missing from the registry. ERROR_DS_CONFIG_ PARAM_MISSING 8428 The attempt to count the address book indices failed. ERROR_DS_COUNTING_ AB_INDICES_FAILED 8429 The allocation of the hierarchy table failed. ERROR_DS_HIERARCHY_ TABLE_MALLOC_FAILED 8430 The directory service encountered an internal failure. ERROR_DS_INTERNAL_ FAILURE 8431 The directory service encountered an unknown failure. ERROR_DS_UNKNOWN_ ERROR 8432 A root object requires a class of 'top'. ERROR_DS_ROOT_ REQUIRES_CLASS_TOP Automation Engine 126 8433 This directory server is shutting down, and cannot ERROR_DS_REFUSING_ take ownership of new floating single-master operation FSMO_ROLES roles. 8434 The directory service is missing mandatory configuration information, and is unable to determine the ownership of floating single-master operation roles. ERROR_DS_MISSING_ FSMO_SETTINGS 8435 The directory service was unable to transfer ownership of one or more floating single-master operation roles to other servers. ERROR_DS_UNABLE_TO_ SURRENDER_ROLES 8436 The replication operation failed. ERROR_DS_DRA_GENERIC 8437 An invalid parameter was specified for this replication operation. ERROR_DS_DRA_INVALID_ PARAMETER 8438 The Windows NT directory service is too busy to complete the replication operation at this time. ERROR_DS_DRA_BUSY 8439 The distinguished name specified for this replication operation is invalid. ERROR_DS_DRA_BAD_DN 8440 The naming context specified for this replication operation is invalid. ERROR_DS_DRA_BAD_NC 8441 The distinguished name specified for this replication operation already exists. ERROR_DS_DRA_DN_ EXISTS 8442 The replication system encountered an internal error. ERROR_DS_DRA_ INTERNAL_ERROR 8443 The replication operation encountered a database inconsistency. ERROR_DS_DRA_ INCONSISTENT_DIT 8444 The server specified for this replication operation could ERROR_DS_DRA_ not be contacted. CONNECTION_FAILED 8445 The replication operation encountered an object with an invalid instance type. ERROR_DS_DRA_BAD_ INSTANCE_TYPE 8446 The replication operation failed to allocate memory. ERROR_DS_DRA_OUT_OF_ MEM 8447 The replication operation encountered an error with the mail system. ERROR_DS_DRA_MAIL_ PROBLEM 8448 The replication reference information for the target server already exists. ERROR_DS_DRA_REF_ ALREADY_EXISTS 8449 The replication reference information for the target server does not exist. ERROR_DS_DRA_REF_ NOT_FOUND 8450 The naming context cannot be removed because it is replicated to another server. ERROR_DS_DRA_OBJ_IS_ REP_SOURCE 8451 The replication operation encountered a database error. ERROR_DS_DRA_DB_ ERROR 8452 The naming context is in the process of being removed ERROR_DS_DRA_NO_ or is not replicated from the specified server. REPLICA 8453 Replication access was denied. ERROR_DS_DRA_ACCESS_ DENIED 127 Chapter 5 Codes d’erreur externes 8454 The requested operation is not supported by this version of the Windows NT directory service. ERROR_DS_DRA_NOT_ SUPPORTED 8455 The replication remote procedure call was cancelled. ERROR_DS_DRA_RPC_ CANCELLED 8456 The source server is currently rejecting replication requests. ERROR_DS_DRA_SOURCE_ DISABLED 8457 The destination server is currently rejecting replication requests. ERROR_DS_DRA_SINK_ DISABLED 8458 The replication operation failed due to a collision of object names. ERROR_DS_DRA_NAME_ COLLISION 8459 The replication source has been reinstalled. ERROR_DS_DRA_SOURCE_ REINSTALLED 8460 The replication operation failed because a required parent object is missing. ERROR_DS_DRA_MISSING_ PARENT 8461 The replication operation was preempted. ERROR_DS_DRA_ PREEMPTED 8462 The replication synchronization attempt was abandoned because of a lack of updates. ERROR_DS_DRA_ ABANDON_SYNC 8463 The replication operation was terminated because the system is shutting down. ERROR_DS_DRA_ SHUTDOWN 8464 The replication synchronization attempt failed as the destination partial attribute set is not a subset of source partial attribute set. ERROR_DS_DRA_ INCOMPATIBLE_PARTIAL_ SET 8465 The replication synchronization attempt failed because a master replica attempted to sync from a partial replica. ERROR_DS_DRA_SOURCE_ IS_PARTIAL_REPLICA 8466 The server specified for this replication operation was contacted, but that server was unable to contact an additional server needed to complete the operation. ERROR_DS_DRA_EXTN_ CONNECTION_FAILED 8467 A schema mismatch is detected between the source and the build used during a replica install. The replica cannot be installed. ERROR_DS_INSTALL_ SCHEMA_MISMATCH 8468 Schema update failed: An attribute with the same link identifier already exists. ERROR_DS_DUP_LINK_ID 8469 Name translation: Generic processing error. ERROR_DS_NAME_ERROR_ RESOLVING 8470 Name translation: Could not find the name or insufficient right to see name. ERROR_DS_NAME_ERROR_ NOT_FOUND 8471 Name translation: Input name mapped to more than one output name. ERROR_DS_NAME_ERROR_ NOT_UNIQUE 8472 Name translation: Input name found, but not the associated output format. ERROR_DS_NAME_ERROR_ NO_MAPPING 8473 Name translation: Unable to resolve completely, only the domain was found. ERROR_DS_NAME_ERROR_ DOMAIN_ONLY Automation Engine 128 8474 Name translation: Unable to perform purely syntactical mapping at the client without going out to the wire. ERROR_DS_NAME_ERROR_ NO_SYNTACTICAL_ MAPPING 8475 Modification of a constructed att is not allowed. ERROR_DS_ CONSTRUCTED_ATT_MOD 8476 The OM-Object-Class specified is incorrect for an attribute with the specified syntax. ERROR_DS_WRONG_OM_ OBJ_CLASS 8477 The replication request has been posted; waiting for reply. ERROR_DS_DRA_REPL_ PENDING 8478 The requested operation requires a directory service, and none was available. ERROR_DS_DS_REQUIRED 8479 The LDAP display name of the class or attribute contains non-ASCII characters. ERROR_DS_INVALID_LDAP_ DISPLAY_NAME 8480 The requested search operation is only supported for base searches. ERROR_DS_NON_BASE_ SEARCH 8481 The search failed to retrieve attributes from the database. ERROR_DS_CANT_ RETRIEVE_ATTS 8482 The schema update operation tried to add a backward link attribute that has no corresponding forward link. ERROR_DS_BACKLINK_ WITHOUT_LINK 8483 Source and destination of a cross domain move do not agree on the object's epoch number. Either source or destination does not have the latest version of the object. ERROR_DS_EPOCH_ MISMATCH 8484 Source and destination of a cross domain move do not agree on the object's current name. Either source or destination does not have the latest version of the object. ERROR_DS_SRC_NAME_ MISMATCH 8485 Source and destination of a cross domain move operation are identical. Caller should use local move operation instead of cross domain move operation. ERROR_DS_SRC_AND_ DST_NC_IDENTICAL 8486 Source and destination for a cross domain move are not in agreement on the naming contexts in the forest. Either source or destination does not have the latest version of the Partitions container. ERROR_DS_DST_NC_ MISMATCH 8487 Destination of a cross domain move is not authoritative for the destination naming context. ERROR_DS_NOT_ AUTHORITIVE_FOR_DST_ NC 8488 Source and destination of a cross domain move do not agree on the identity of the source object. Either source or destination does not have the latest version of the source object. ERROR_DS_SRC_GUID_ MISMATCH 8489 Object being moved across domains is already known to be deleted by the destination server. The source server does not have the latest version of the source object. ERROR_DS_CANT_MOVE_ DELETED_OBJECT 8490 Another operation which requires exclusive access to the PDC PSMO is already in progress. ERROR_DS_PDC_ OPERATION_IN_PROGRESS 129 Chapter 5 Codes d’erreur externes 8491 A cross domain move operation failed such that the two versions of the moved object exist - one each in the source and destination domains. The destination object needs to be removed to restore the system to a consistent state. ERROR_DS_CROSS_ DOMAIN_CLEANUP_REQD 8492 This object may not be moved across domain boundaries either because cross domain moves for this class are disallowed, or the object has some special characteristics, eg: trust account or restricted RID, which prevent its move. ERROR_DS_ILLEGAL_ XDOM_MOVE_OPERATION 8493 Can't move objects with memberships across domain boundaries as once moved, this would violate the membership conditions of the account group. Remove the object from any account group memberships and retry. ERROR_DS_CANT_WITH_ ACCT_GROUP_ MEMBERSHPS 8494 A naming context head must be the immediate child of another naming context head, not of an interior node. ERROR_DS_NC_MUST_ HAVE_NC_PARENT 8495 The directory cannot validate the proposed naming context name because it does not hold a replica of the naming context above the proposed naming context. ERROR_DS_CR_ IMPOSSIBLE_TO_VALIDATE 8496 Destination of a cross domain move must be in native mode. ERROR_DS_DST_DOMAIN_ NOT_NATIVE 8497 The operation can not be performed because the server does not have an infrastructure container in the domain of interest. ERROR_DS_MISSING_ INFRASTRUCTURE_ CONTAINER 8498 Cross domain move of account groups is not allowed. ERROR_DS_CANT_MOVE_ ACCOUNT_GROUP 8499 Cross domain move of resource groups is not allowed. ERROR_DS_CANT_MOVE_ RESOURCE_GROUP 8500 The search flags for the attribute are invalid. The ANR bit is valid only on attributes of Unicode or Teletex strings. ERROR_DS_INVALID_ SEARCH_FLAG 8501 Tree deletions starting at an object which has an NC head as a descendant are not allowed. ERROR_DS_NO_TREE_ DELETE_ABOVE_NC 8502 The directory service failed to lock a tree in preparation ERROR_DS_COULDNT_ for a tree deletion because the tree was in use. LOCK_TREE_FOR_DELETE 8503 The directory service failed to identify the list of objects to delete while attempting a tree deletion. ERROR_DS_COULDNT_ IDENTIFY_OBJECTS_FOR_ TREE_DELETE 8504 Security Accounts Manager initialization failed because of the following error: %1. ERROR_DS_SAM_INIT_ FAILURE Error Status: 0x%2. Click OK to shut down the system, then select Safe Mode during reboot. For more information, check the event log. 8505 Only an administrator can modify the membership list of an administrative group. ERROR_DS_SENSITIVE_ GROUP_VIOLATION Automation Engine 130 8506 Cannot change the primary group ID of a domain controller account. ERROR_DS_CANT_MOD_ PRIMARYGROUPID 9001 DNS server unable to interpret format. DNS_ERROR_RCODE_ FORMAT_ERROR 9002 DNS server failure. DNS_ERROR_RCODE_ SERVER_FAILURE 9003 DNS name does not exist. DNS_ERROR_RCODE_ NAME_ERROR 9004 DNS request not supported by name server. DNS_ERROR_RCODE_NOT_ IMPLEMENTED 9005 DNS operation refused. DNS_ERROR_RCODE_ REFUSED 9006 DNS name that ought not exist, does exist. DNS_ERROR_RCODE_ YXDOMAIN 9007 DNS RR set that ought not exist, does exist. DNS_ERROR_RCODE_ YXRRSET 9008 DNS RR set that ought to exist, does not exist. DNS_ERROR_RCODE_ NXRRSET 9009 DNS server not authoritative for zone. DNS_ERROR_RCODE_ NOTAUTH 9010 DNS name in update or prereq is not in zone. DNS_ERROR_RCODE_ NOTZONE 9016 DNS signature failed to verify. DNS_ERROR_RCODE_ BADSIG 9017 DNS bad key. DNS_ERROR_RCODE_ BADKEY 9018 DNS signature validity expired. DNS_ERROR_RCODE_ BADTIME 9501 No records found for given DNS query. DNS_INFO_NO_RECORDS 9502 Bad DNS packet. DNS_ERROR_BAD_PACKET 9503 No DNS packet. DNS_ERROR_NO_PACKET 9504 DNS error, check rcode. DNS_ERROR_RCODE 9505 Unsecured DNS packet. DNS_ERROR_UNSECURE_ PACKET 9551 Invalid DNS type. DNS_ERROR_INVALID_ TYPE 9552 Invalid IP address. DNS_ERROR_INVALID_IP_ ADDRESS 9553 Invalid property. DNS_ERROR_INVALID_ PROPERTY 9554 Try DNS operation again later. DNS_ERROR_TRY_AGAIN_ LATER 9555 Record for given name and type is not unique. DNS_ERROR_NOT_UNIQUE 131 Chapter 5 Codes d’erreur externes 9556 DNS name does not comply with RFC specifications. DNS_ERROR_NON_RFC_ NAME 9557 DNS name is a fully-qualified DNS name. DNS_STATUS_FQDN 9558 DNS name is dotted (multi-label). DNS_STATUS_DOTTED_ NAME 9559 DNS name is a single-part name. DNS_STATUS_SINGLE_ PART_NAME 9601 DNS zone does not exist. DNS_ERROR_ZONE_DOES_ NOT_EXIST 9602 DNS zone information not available. DNS_ERROR_NO_ZONE_ INFO 9603 Invalid operation for DNS zone. DNS_ERROR_INVALID_ ZONE_OPERATION 9604 Invalid DNS zone configuration. DNS_ERROR_ZONE_ CONFIGURATION_ERROR 9605 DNS zone has no start of authority (SOA) record. DNS_ERROR_ZONE_HAS_ NO_SOA_RECORD 9606 DNS zone has no name server (NS) record. DNS_ERROR_ZONE_HAS_ NO_NS_RECORDS 9607 DNS zone is locked. DNS_ERROR_ZONE_ LOCKED 9608 DNS zone creation failed. DNS_ERROR_ZONE_ CREATION_FAILED 9609 DNS zone already exists. DNS_ERROR_ZONE_ ALREADY_EXISTS 9610 DNS automatic zone already exists. DNS_ERROR_AUTOZONE_ ALREADY_EXISTS 9611 Invalid DNS zone type. DNS_ERROR_INVALID_ ZONE_TYPE 9612 Secondary DNS zone requires master IP address. DNS_ERROR_ SECONDARY_REQUIRES_ MASTER_IP 9613 DNS zone not secondary. DNS_ERROR_ZONE_NOT_ SECONDARY 9614 Need secondary IP address. DNS_ERROR_NEED_ SECONDARY_ADDRESSES 9615 WINS initialization failed. DNS_ERROR_WINS_INIT_ FAILED 9616 Need WINS servers. DNS_ERROR_NEED_WINS_ SERVERS 9617 NBTSTAT initialization call failed. DNS_ERROR_NBSTAT_ INIT_FAILED 9618 Invalid delete of start of authority (SOA) DNS_ERROR_SOA_ DELETE_INVALID Automation Engine 132 9651 Primary DNS zone requires datafile. DNS_ERROR_PRIMARY_ REQUIRES_DATAFILE 9652 Invalid datafile name for DNS zone. DNS_ERROR_INVALID_ DATAFILE_NAME 9653 Failed to open datafile for DNS zone. DNS_ERROR_DATAFILE_ OPEN_FAILURE 9654 Failed to write datafile for DNS zone. DNS_ERROR_FILE_ WRITEBACK_FAILED 9655 Failure while reading datafile for DNS zone. DNS_ERROR_DATAFILE_ PARSING 9701 DNS record does not exist. DNS_ERROR_RECORD_ DOES_NOT_EXIST 9702 DNS record format error. DNS_ERROR_RECORD_ FORMAT 9703 Node creation failure in DNS. DNS_ERROR_NODE_ CREATION_FAILED 9704 Unknown DNS record type. DNS_ERROR_UNKNOWN_ RECORD_TYPE 9705 DNS record timed out. DNS_ERROR_RECORD_ TIMED_OUT 9706 Name not in DNS zone. DNS_ERROR_NAME_NOT_ IN_ZONE 9707 CNAME loop detected. DNS_ERROR_CNAME_LOOP 9708 Node is a CNAME DNS record. DNS_ERROR_NODE_IS_ CNAME 9709 A CNAME record already exists for given name. DNS_ERROR_CNAME_ COLLISION 9710 Record only at DNS zone root. DNS_ERROR_RECORD_ ONLY_AT_ZONE_ROOT 9711 DNS record already exists. DNS_ERROR_RECORD_ ALREADY_EXISTS 9712 Secondary DNS zone data error. DNS_ERROR_ SECONDARY_DATA 9713 Could not create DNS cache data. DNS_ERROR_NO_CREATE_ CACHE_DATA 9714 DNS name does not exist. DNS_ERROR_NAME_DOES_ NOT_EXIST 9715 Could not create pointer (PTR) record. DNS_WARNING_PTR_ CREATE_FAILED 9716 DNS domain was undeleted. DNS_WARNING_DOMAIN_ UNDELETED 9717 The Windows NT directory service is unavailable. DNS_ERROR_DS_ UNAVAILABLE 133 Chapter 5 Codes d’erreur externes 9718 DNS zone already exists in Windows NT directory service. DNS_ERROR_DS_ZONE_ ALREADY_EXISTS 9719 DNS server not creating or reading the boot file for the directory service integrated DNS zone. DNS_ERROR_NO_ BOOTFILE_IF_DS_ZONE 9751 DNS AXFR (zone transfer) complete. DNS_INFO_AXFR_ COMPLETE 9752 DNS zone transfer failed. DNS_ERROR_AXFR 9753 Added local WINS server. DNS_INFO_ADDED_LOCAL_ WINS 9801 Secure update call needs to continue update request. DNS_STATUS_CONTINUE_ NEEDED 9851 TCP/IP network protocol not installed. DNS_ERROR_NO_TCPIP 9852 No DNS servers configured for local system. DNS_ERROR_NO_DNS_ SERVERS 10004 A blocking operation was interrupted by a call to WSACancelBlockingCall. WSAEINTR 10009 The file handle supplied is not valid. WSAEBADF 10013 An attempt was made to access a socket in a way forbidden by its access permissions. WSAEACCES 10014 The system detected an invalid pointer address in attempting to use a pointer argument in a call. WSAEFAULT 10022 An invalid argument was supplied. WSAEINVAL 10024 Too many open sockets. WSAEMFILE 10035 A non-blocking socket operation could not be completed immediately. WSAEWOULDBLOCK 10036 A blocking operation is currently executing. WSAEINPROGRESS 10037 An operation was attempted on a non-blocking socket that already had an operation in progress. WSAEALREADY 10038 An operation was attempted on something that is not a WSAENOTSOCK socket. 10039 A required address was omitted from an operation on a WSAEDESTADDRREQ socket. 10040 A message sent on a datagram socket was larger than WSAEMSGSIZE the internal message buffer or some other network limit, or the buffer used to receive a datagram into was smaller than the datagram itself. 10041 A protocol was specified in the socket function call WSAEPROTOTYPE that does not support the semantics of the socket type requested. 10042 An unknown, invalid, or unsupported option or level was specified in a getsockopt or setsockopt call. WSAENOPROTOOPT 10043 The requested protocol has not been configured into the system, or no implementation for it exists. WSAEPROTONOSUPPORT Automation Engine 134 10044 The support for the specified socket type does not exist in this address family. WSAESOCKTNOSUPPORT 10045 The attempted operation is not supported for the type of object referenced. WSAEOPNOTSUPP 10046 The protocol family has not been configured into the system or no implementation for it exists. WSAEPFNOSUPPORT 10047 An address incompatible with the requested protocol was used. WSAEAFNOSUPPORT 10048 Only one usage of each socket address (protocol/network address/port) is normally permitted. WSAEADDRINUSE 10049 The requested address is not valid in its context. WSAEADDRNOTAVAIL 10050 A socket operation encountered a dead network. WSAENETDOWN 10051 A socket operation was attempted to an unreachable network. WSAENETUNREACH 10052 The connection has been broken due to keep-alive activity detecting a failure while the operation was in progress. WSAENETRESET 10053 An established connection was aborted by the software in your host machine. WSAECONNABORTED 10054 An existing connection was forcibly closed by the remote host. WSAECONNRESET 10055 An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full. WSAENOBUFS 10056 A connect request was made on an already connected socket. WSAEISCONN 10057 A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied. WSAENOTCONN 10058 A request to send or receive data was disallowed because the socket had already been shut down in that direction with a previous shutdown call. WSAESHUTDOWN 10059 Too many references to some kernel object. WSAETOOMANYREFS 10060 A connection attempt failed because the connected WSAETIMEDOUT party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. 10061 No connection could be made because the target machine actively refused it. WSAECONNREFUSED 10062 Cannot translate name. WSAELOOP 10063 Name component or name was too long. WSAENAMETOOLONG 10064 A socket operation failed because the destination host was down. WSAEHOSTDOWN 135 Chapter 5 Codes d’erreur externes 10065 A socket operation was attempted to an unreachable host. WSAEHOSTUNREACH 10066 Cannot remove a directory that is not empty. WSAENOTEMPTY 10067 A Windows Sockets implementation may have a limit on the number of applications that may use it simultaneously. WSAEPROCLIM 10068 Ran out of quota. WSAEUSERS 10069 Ran out of disk quota. WSAEDQUOT 10070 File handle reference is no longer available. WSAESTALE 10071 Item is not available locally. WSAEREMOTE 10091 WSAStartup cannot function at this time because the underlying system it uses to provide network services is currently unavailable. WSASYSNOTREADY 10092 The Windows Sockets version requested is not supported. WSAVERNOTSUPPORTED 10093 Either the application has not called WSAStartup, or WSAStartup failed. WSANOTINITIALISED 10101 Returned by WSARecv or WSARecvFrom to indicate the remote party has initiated a graceful shutdown sequence. WSAEDISCON 10102 No more results can be returned by WSALookupServiceNext. WSAENOMORE 10103 A call to WSALookupServiceEnd was made while this call was still processing. The call has been canceled. WSAECANCELLED 10104 The procedure call table is invalid. WSAEINVALIDPROCTABLE 10105 The requested service provider is invalid. WSAEINVALIDPROVIDER 10106 The requested service provider could not be loaded or initialized. WSAEPROVIDERFAILEDINIT 10107 A system call that should never fail has failed. WSASYSCALLFAILURE 10108 No such service is known. The service cannot be found in the specified name space. WSASERVICE_NOT_FOUND 10109 The specified class was not found. WSATYPE_NOT_FOUND 10110 No more results can be returned by WSALookupServiceNext. WSA_E_NO_MORE 10111 A call to WSALookupServiceEnd was made while this call was still processing. The call has been canceled. WSA_E_CANCELLED 10112 A database query failed because it was actively refused. WSAEREFUSED 11001 No such host is known. WSAHOST_NOT_FOUND 11002 This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server. WSATRY_AGAIN Automation Engine 136 11003 A non-recoverable error occurred during a database lookup. WSANO_RECOVERY 11004 The requested name is valid and was found in the database, but it does not have the correct associated data being resolved for. WSANO_DATA 11005 At least one reserve has arrived. WSA_QOS_RECEIVERS 11006 At least one path has arrived. WSA_QOS_SENDERS 11007 There are no senders. WSA_QOS_NO_SENDERS 11008 There are no receivers. WSA_QOS_NO_RECEIVERS 11009 Reserve has been confirmed. WSA_QOS_REQUEST_ CONFIRMED 11010 Error due to lack of resources. WSA_QOS_ADMISSION_ FAILURE 11011 Rejected for administrative reasons - bad credentials. WSA_QOS_POLICY_ FAILURE 11012 Unknown or conflicting style. WSA_QOS_BAD_STYLE 11013 Problem with some part of the filterspec or providerspecific buffer in general. WSA_QOS_BAD_OBJECT 11014 Problem with some part of the flowspec. WSA_QOS_TRAFFIC_CTRL_ ERROR 11015 General QOS error. WSA_QOS_GENERIC_ ERROR 137 Chapter 6 Prise en charge SNMP 6 Prise en charge SNMP 6.1 Généralités sur SNMP SNMP (Simple Network Management Protocol) est une norme industrielle pour la surveillance et le contrôle de systèmes, d'appareils et de composants dans un environnement de réseau. Elle a été définie par l'IETF (Internet Engineering Task Force). En tant que communauté d'intérêts, l'IEFT s'occupe des problèmes de TCT/IP et d'Internet. Lors de la surveillance et du contrôle d'unités de réseau, on fait généralement la distinction entre la gestion SNMP et les Agents SNMP. L'Agent SNMP s'exécute sur la machine dont les systèmes, les appareils ou les composants sont surveillés et contrôlés. Network Management Station (NMS) est une machine qui affiche à l'aide d'une application les informations actuelles des unités de réseau surveillées et qui peut également modifier les paramètres de ces unités de réseau. Les Agents NMS et SNMP communiquent via le protocole de réseau TCP/IP. Deux types de communication sont utilisés. D'une part, Network Management Station interroge l'état des unités de réseau surveillées auprès des Agents SNMP ou définit de nouveaux paramètres. D'autre part, l'Agent SNMP envoie des modifications d'état des unités de réseau surveillées à Network Management Station. L'annonce d'une telle modification de statut s'appelle "interruption" ou "interruption SNMP". Afin de pouvoir reconnaître au niveau mondial de manière incontestable les systèmes, appareils et composants, un espace d'adresse MIB (Management Information Base) a été convenu. Dans la MIB, il existe pour chaque unité de réseau à surveiller une ID de MIB. L'ID de MIB se compose d'une suite de numéros séparés par des points. La MIB mondiale représente une énorme arborescence avec des ramifications vers chacun des composants et systèmes. SNMP fonctionne sur la base d'UDP (User Datagram Protocol). Ce protocole simple n'utilise aucune surveillance des erreurs ni aucune confirmation des informations transmises. SNMP utilise par défaut le port 161 pour les interrogations des Agents SNMP et le port 162 comme destinataire d'interruption. 6.2 Automation Engine et SNMP Les différents statuts qui apparaissent dans le système AE peuvent être surveillés par SNMP. C'est le cas, par exemple, pour la disponibilité d'Automation Engine et des Agents, des objets Alerte actifs ou des Tâches bloquantes. L'illustration suivante vous montre l'interaction entre l'Automation Engine et SNMP : Automation Engine 138 Si vous activez la connexion SNMP dans le Automation Engine, les valeurs pertinentes pour la surveillance du système AE sont envoyées au sous-agent SNMP. Ce dernier enregistre les informations reçues dans sa MIB et la met à disposition de l'Agent maître SNMP. Le contenu de la MIB est protégé en écriture, c'est-à-dire que le sous-agent SNMP n'autorise aucune modification de valeur par la commande SNMP SET. Il existe deux façons pour les applications telles que HP OpenView Operations d'accéder aux informations : l l Les applications demandent les informations à des intervalles périodiques par l'intermédiaire de l'Agent maître SNMP. Ce dernier communique avec le sous-agent SNMP pour obtenir les valeurs. Des Evènements particulièrement importants qui se produisent dans le système AE déclenchent des interruptions SNMP. Le sous-agent SNMP les transfère immédiatement à l'Agent maître SNMP afin que les applications puissent être directement averties. Dans certaines situations, le Automation Engine génère des interruptions prédéfinies. Vous pouvez également envoyer vous-même des interruptions en utilisant l'application de Script :SEND_SNMP_ TRAP. Dans le fichier INI du sous-agent SNMP, il est possible de configurer si la MIB est pleine et/ou si des interruptions doivent être envoyées. Par défaut, les deux Tâches sont exécutées. Si vous ne souhaitez utiliser que les interruptions, il est judicieux de désactiver le remplissage de la MIB. L'utilisation inutile de performance est ainsi évitée. Le paramètre de configuration se nomme processing= et se trouve à la section [SNMP]. 139 Chapter 6 Prise en charge SNMP Mode Agent maître sous UNIX Sous UNIX, le sous-agent SNMP est également capable d'agir en tant qu'Agent maître SNMP. Cela présente l'avantage de vous éviter la configuration du service SNMP. Rubriques connexes : Structure de la MIB Installation du sous-agent SNMP (UNIX) Installation du sous-agent SNMP (Windows) Glossaire et FAQ du sous-agent SNMP Conditions préalables - check-list 6.3 Mode Agent sous UNIX Le sous-agent SNMP peut être exécuté sous UNIX en tant que maître ou en tant que sous-agent. Définissez le mode voulu dans le fichier INI avec le paramètre role= de la section [SNMP]. Agent maître (conseillé) Avantages : l l l Inutile d'installer Net-SNMP Meilleure performances Mise en évidence plus facile des erreurs Inconvénients : l l l Seule la surveillance de l'Automation Engine est démarrée Aucune autre MIB disponible La Variable SNMPCONFPATH doit être définie. Elle contient le répertoire du fichier ucsnmp1.conf (p. ex : "export SNMPCONFPATH=./") Automation Engine 140 Dans le fichier ucsnmp1.conf, il est possible d'indiquer le même paramètre que dans le fichier de configuration de l'Agent net-SNMP (snmpd.conf). Les paramètres suivants sont utilisés par le sous-agent SNMP et possèdent la fonctionnalité : l l l l l trapcommunity trapsink rocommunity rwcommunity master Vous trouverez l'explication des différents paramètres dans la description de snmp.conf du netSNMP. Exemple de fichier ucsnmp1.conf : trapsink host1 trapsink host2 rocommunity public master agentx En mode Agent maître, aucun autre sous-agent ne peut établir de connexion au sous-agent SNMP. Sous-agent Le sous-agent SNMP fonctionne avec un Agent maître existant : l Un Agent maître compatible AgentX doit être démarré. 141 Chapter 6 Prise en charge SNMP l l Le moyen de communication standard est le fichier de socket local présent dans le répertoire /var/agentx/master. Ce fichier est créé par l'Agent maître. Le sous-agent SNMP doit en posséder les droits d'accès. Le fichier de configuration snmpd.conf contient quelques paramètres : Exemple de fichier ucsnmp1.conf : trapsink rocommunity local public HP-UX Le sous-agent SNMP doit être exécuté en mode Agent maître sous HP-UX. L'Agent maître natif d'un système HP-UX est EMANATE. Le sous-agent SNMP utilise l'interface naaagt pour communiquer avec lui. Elle sert de proxy SNMP. Le sous-agent SNMP redirige la requête SNMP vers un autre port UDP via un OID enregistré. Le port par défaut utilisé par naaagt est 8161. Le sous-agent SNMP doit donc utiliser un port autre que 161. De plus amples informations relatives à la configuration de l'interface sont disponibles dans la documentation sur naaagt Rubriques connexes : L'Automation Engine et SNMP 6.4 FAQ et glossaire du sous-agent SNMP Vous trouverez ici la foire aux questions et les termes importants concernant le sous-agent SNMP. Automation Engine 142 Termes importants : l l l l SNMP : Simple Network Management Protocol MIB : Management Information Base. Enregistre les informations dans une structure arborescente. La MIB fait partie des sous-agents SNMP. Agent maître : service SNMP qui communique avec des sous-agents SNMP afin de demander des informations à la MIB et de les transférer aux applications. Sous-agent : enregistre des informations dans la MIB et les met à disposition dans l'Agent maître. Questions fréquemment posées : Qu'est-ce qu'un OID ? Chaque élément d'information de la MIB possède un OID (Object Identifier) unique destiné à lire le contenu. Les OID comportent une suite de nombres séparés par des points. Ils sont uniques au niveau mondial. La MIB du sous-agent SNMP possède l'OID "1.3.6.1.4.1.2562.1.1". Chaque contenu de la MIB dispose également d'un numéro ajouté à l'OID de la MIB. La structure arborescente de la MIB crée des OID représentant la structure. Exemple : L'OID de la version de l'agent AE est : "1.3.6.1.4.1.2562.1.1.1.1.0 " L'OID se compose des parties suivantes : 1.3.6.1.4.1.2562.1.1 : MIB 1 : Groupe Agent 1.1.0 : version de l'agent AE Qu'est-ce qu'une interruption ? Une interruption est un message asynchrone envoyé par l'Automation Engine au sous-agent SNMP. Les interruptions ne sont pas enregistrées dans la MIB mais transférées directement à l'Agent maître. Les applications reçoivent ainsi immédiatement les informations importantes. Comment envoyer une interruption ? Dans certaines situations, l'Automation Engine envoie des interruptions prédéfinies. Mais l'instruction de script :SEND_SNMP_TRAP vous permet d'envoyer vos propres interruptions. Pourquoi les interruptions n'apparaissent-elles pas dans la table MIB ? Les interruptions sont directement transférées à l'Agent maître. Un enregistrement dans la MIB n'est donc pas nécessaire. Pourquoi les interruptions n'apparaissent-elles pas ? Cela peut avoir différentes causes : l l l Vérifiez la valeur du paramètre processing= dans le fichier INI du sous-agent SNMP. La valeur "1" signifie qu'aucune interruption ne peut être envoyée à l'Agent maître. L'ordinateur sur lequel l'Agent maître est exécuté doit être indiqué comme destination d'interruption. Sous Windows, il faut entrer le nom de l'ordinateur dans le service SNMP de Windows. Sous UNIX, il doit être indiqué dans le fichier snmpd.conf ou ucsnmp1.conf. Le community name que vous avez indiqué dans le fichier INI du sous-agent SNMP pour le paramètre community= doit correspondre à celui de l'Agent maître. Qu'est-ce que Net-SNMP ? 143 Chapter 6 Prise en charge SNMP Net-SNMP est un Serveur SNMP Open source sous UNIX. Quelle versions de SNMP sont prises en charge par le sous-agent SNMP ? Pour UNIX : SNMP V1, SNMP V2c et SNMP V3 Pour Windows : SNMP V1 et SNMP V2c Comment installer le sous-agent SNMP ultérieurement ? Les instructions d'installation (UNIX et Windows) décrivent les étapes d'une installation ultérieure. Comment savoir si le sous-agent SNMP a été correctement installé ? Utilisez pour cela l'outil SNMP qui se trouve sur le CD, dans le fichier snmptools.zip du répertoire Tools\no_supp. Il permet de lire la MIB, de recevoir et d'envoyer des interruptions, etc. Attention : nous ne prenons PAS en charge l'outil SNMP ! Pourquoi le sous-agent SNMP ne réagit-il pas aux demandes de l'Agent-maître ? Cela peut avoir différentes causes : l l Le sous-agent SNMP n'est pas démarré ou le service SNMP n'est pas en cours d'exécution. Le community name que vous avez indiqué dans le fichier INI du sous-agent SNMP pour le paramètre community= doit correspondre à celui de l'Agent maître. Pourquoi la table MIB n'est-elle pas complète ? La structure arborescente de la MIB est créée dynamiquement. Si par exemple il n'y a pas de Tâche bloquée ou d'objet Alerte actif, le sous-agent SNMP ne crée aucune structure pour ces domaines. Si l'Automation Engine n'est pas actif, seuls l'Agent Data Group et l'Agent Work Group sont créés et remplis avec les valeurs. Quelles configurations dois-je effectuer sur le Serveur SNMP (Net-SNMP, Service SNMP de Windows ou mode Agent-maître) ? l l l l l Entrez un community name. Il doit posséder au moins le droit de lecture. Indiquez la destination des interruptions (nom d'hôte ou adresse IP). Vérifiez si le réseau autorise l'accès au port UDP 161. Si vous souhaitez recevoir des interruptions, l'accès au port UDP 162 doit également être autorisé. Qu'est-ce qu'un community name ? Un community name est un Groupe auquel vous pouvez attribuer des droits d'accès. Son nom par défaut est "public". Comment effectuer le suivi des Job par SNMP ? L'Automation Engine ne prend en charge aucune connexion directe des Jobs à SNMP. Mais l'instruction de script :SEND_SNMP_TRAP vous permet d'effectuer le suivi des Jobs. Exemple : :SET :SET :SET :SET :SET &NOM# = SYS_ACT_ME_NAME() &ID# = SYS_ACT_ME_NR() &JPNOM# = SYS_ACT_PARENT_NAME() &CLIENT# = SYS_ACT_CLIENT() &STATUT# = GET_UC_OBJECT_STATUS() Automation Engine 144 :IF &STATUT# < "1900" : PRINT &STATUT# : PRINT "Client : &CLIENT#, JOBNAME : &NOM#" : PRINT &NOM# : SEND_SNMP_TRAP 801450, "&CLIENT#", "&NOM#",, "Problèmes dans le contrôle du déroulement !" :ENIDF La fonction script GET_UC_OBJECT_STATUS vous permet de savoir avec quel statut un Job s'est terminé et de réagir ensuite de façon appropriée. La solution peut être appliquée sous forme de script ou d'objet Include réutilisable. Rubriques connexes : L'Automation Engine et SNMP 6.5 Installation 6.5.1 Installation du sous-Agent SNMP (UNIX) Le document suivant contient les instructions d'installation UNIX pour le sous-agent SNMP. Attention : le sous-agent SNMP doit être installé sur un ordinateur contenant au moins un des processus de travail de l'Automation Engine ! Prérequis l l Le sous-agent SNMP et Net-SNMP doivent être installés et activés sur l'ordinateur sur lequel l'Automation Engine est exécuté. Exception faite de HP-UX : le sous-agent SNMP doit être ici utilisé comme Agent maître SNMP si vous souhaitez utiliser EMANATE via naaagt. (Configuration de naaagt http://docs.hp.com/en/B2355-90692/naaagt.1M.html) Fichiers fournis Les données du sous-agent SNMP se trouvent dans le sous-dossier correspondant de la plateforme sur IMAGE:SNMP\UNIX. Nom du fichier Description ucsnmp1 Sous-Agent SNMP. ucsnmp1.ini Fichier INI du sous-agent SNMP UC4Vers2-MIB.mib Description de la MIB ucsnmp1.conf Fichier de configuration pour le mode Agent maître naaacnf Fichier de configuration pour l'interface naaagt (seulement HP-UX) 145 Chapter 6 Prise en charge SNMP Installation 1. l l Installation des fichiers Décompressez le fichier TAR du sous-agent SNMP. Copiez les fichiers décompressés dans un répertoire quelconque ou dans le dossier de l'Automation Engine. 2. l l l Configuration des fichiers INI Activez la connexion SNMP dans le fichier INI de l'Automation Engine UCSRV.INI avec le paramètre snmp=1 (section [GLOBAL]). Définissez également les paramètres snmp= et snmpreconnect= (section [TCP/IP]). Terminez et redémarrez ensuite les processus de communication et de travail de l'Automation Engine sur tous les ordinateurs. Si le fichier INI de l'Automation Engine est déjà adapté, un redémarrage n'est pas nécessaire. Adaptez les paramètres du fichier INI du sous-agent SNMP. 3. l l l l l Le mode Agent maître doit impérativement être défini sur HP-UX. Sur toutes les autres plateformes, vous pouvez choisir d'exécuter le sous-agent SNMP en tant qu'Agent maître ou non. Configurez le mode Agent maître dans le fichier INI du sous-agent SNMP avec le paramètre role=1. Adaptez les fichiers de configuration fournis naacnf et ucsnmp1.conf. La Variable SNMPCONFPATH doit être définie. Elle contient le répertoire dans lequel se trouve le fichier ucsnmp1.conf (par exemple : "export SNMPCONFPATH=./"). Les variables d'environnement MIB et MIBDIR ne doivent pas être définies. 4. l l Mode Agent maître Démarrage du sous-agent SNMP Démarrez le sous-agent SNMP en indiquant le fichier INI. Le sous-agent SNMP doit impérativement être démarré sous l'utilisateur racine, car sinon l'Automation Engine ne pourra pas établir de connexion ! Exemple : ./ucsnmp1 -i /home/UC4/Server/ucsnmp1.ini & Les paramètres de démarrage suivants s'appliquent : Paramètres de démarrage Description -i Chemin et nom du fichier INI Chemin et nom du fichier INI devant être utilisé Le fichier INI est recherché par défaut dans le dossier dans lequel se trouve le sous-agent SNMP. -h Affiche les paramètres disponibles et leur utilisation -v Affiche la version du sous-agent SNMP Automation Engine Paramètres de démarrage Description -crtini Chemin et nom du fichier INI Crée un fichier INI standard 146 Le fichier INI est enregistré par défaut dans le dossier dans lequel se trouve le sous-agent SNMP. L'ordre dans lequel l'Automation et le sous-agent SNMP sont démarrés n'a aucune importance. Tenez compte à ce sujet des remarques suivantes : l l l l Si le sous-agent SNMP a été démarré en premier, l'Automation Engine pourra immédiatement se connecter au sous-agent SNMP lors du démarrage. Si l'Automation Engine fonctionne déjà avec une connexion SNMP active (UCSRV.INI), cette dernière tentera d'atteindre le sous-agent SNMP à intervalles réguliers (snmpreconnect=). Le service SNMP peut également être démarré ultérieurement lorsque l'Automation Engine est en cours. Attention : les interruptions et tous les Evènements SNMP ne peuvent être envoyés au sous-agent SNMP que si la connexion SNMP est active. Si la reconnexion n'est pas encore effectuée, les Evènements affichés jusqu'ici seront perdus ! L'intervalle de temps dans lequel la reconnexion est effectuée doit être défini dans le fichier INI de l'Automation Engine via le paramètre snmpreconnect= (valeur par défaut : 500 secondes) Au démarrage de l'Agent SNMP, des messages s'affichent. Il ne s'agit pas d'erreurs, mais d'avertissements. Une restriction de la fonctionnalité n'est donc pas indiquée. Par exemple, le message suivant apparaît toujours et peut être ignoré : "No log handling enabled - turning on stderr logging" 6.5.2 Sous-Agent SNMP pour UNIX Structure du fichier ucsnmp1.ini Section/paramètre Description [SNMP] community= Community name SNMP Valeur par défaut : "public" La désignation est définie dans l'Agent maître. Entrez-y le même community name. Le community name est disponible dans le fichier snmp.conf ou dans le fichier ucsnmp1.conf si vous exploitez le sousagent SNMP en tant qu'Agent maître (voir les instructions d'installation). 147 Chapter 6 Prise en charge SNMP Section/paramètre Description medium= Moyen de transport utilisé pour la communication entre l'Automation Engine et le sous-agent SNMP. Valeur possible : "tcp" (valeur par défaut), "pipe" "tcp" - communication via socket "pipe" - communication via pipe (compatibilité vers le bas du sousagent SNMP : paramètre uniquement pour les systèmes AE des versions 5.00A et 6.00A) stream_port= Numéro de port recevant la connexion de l'Automation Engine vers le sous-agent SNMP. Attention, vous devez définir le même numéro de port dans le fichier INI de l'Automation Engine sous le paramètre snmp= (section [TCP/IP]) ! snmp_string= Si role=0 est défini, le chemin vers l'AgentX-Socket peut être défini ici pour Net-SNMP. processing= Mode du sous-agent SNMP Valeurs autorisées : "1", "2" et "3" (valeur par défaut) "1" : la MIB est remplie, mais les interruptions ne sont pas envoyées "2" : la MIB n'est pas remplie, mais les interruptions sont envoyées "3" : la MIB est remplie et les interruptions sont envoyées. role= Rôle du sous-agent SNMP Valeurs autorisées : "0" (valeur par défaut) et "1" "0" : le sous-agent SNMP est démarré en tant que sous-agent. "1" : le sous-agent SNMP est démarré en tant qu'Agent maître. En mode Agent maître, aucun autre sous-agent ne peut établir de connexion au mode. Attention : le mode Agent maître est absolument nécessaire sur HPUX pour pouvoir établir une connexion avec EMANATE via naaagent. [LOG] snmp= stream= mib= Indicateur de trace pour l'édition de messages de trace à partir du module qui lit les données de la table MIB et les envoie au réseau. Valeurs autorisées : "0" à "9" Valeur par défaut : "1" Les indicateurs de trace ne doivent être définis qu'après accord définitif du support ! Automation Engine Section/paramètre Description stream= Indicateur de trace pour l'édition de messages de trace à partir du module qui lit les données de la table MIB et les envoie au réseau. 148 Valeurs autorisées : "0" à "9" Valeur par défaut : "1" Les indicateurs de trace ne doivent être définis qu'après accord définitif du support ! mib= Indicateur de trace pour l'édition de messages de trace à partir du module qui lit les données de la table MIB et les envoie au réseau. Valeurs autorisées : "0" à "9" Valeur par défaut : "1" Les indicateurs de trace ne doivent être définis qu'après accord définitif du support ! file= Chemin et nom du fichier log. Les caractères numériques servent de caractère de remplacement pour une numérotation croissante. Au démarrage du sous-agent SNMP, les fichiers log sont renommés de telle manière que le fichier log actuel ait toujours le numéro "00". Le fichier log est créé par défaut dans le dossier à partir duquel est démarré le sous-agent SNMP. Exemple de fichier INI [SNMP] community=public medium=tcp stream_port=2200 snmp_string=/var/agentx/master processing=3 role=0 lib_path=. [LOG] snmp=1 stream=1 mib=1 file=ucsnmp_##.log Rubriques connexes : Conseils d'adaptation des fichiers de configuration 6.5.3 Installation du sous-Agent SNMP (Windows) Le document suivant contient les instructions d'installation Windows pour le sous-agent SNMP. 149 Chapter 6 Prise en charge SNMP Prérequis l l Le sous-agent SNMP et le service SNMP Windows doivent être installés et activés sur la machine sur laquelle s'exécute Automation Engine. Si le sous-agent SNMP ne peut pas démarrer sous Windows Vista ou Windows Server 2008 et que dans le log d'évènement Windows, le message d'erreur "SNMP Extension Agent has terminated. Event 2020, EvntAgnt" est journalisé, le patch Windows KB950923 doit être installé. Fichiers fournis Les données du sous-agent SNMP se trouvent dans le sous-dossier correspondant de la plateforme sur IMAGE:SNMP\WINDOWS. Nom du fichier Description UCSNMP1.DLL Sous-Agent SNMP. UCSNMP1.INI Fichier INI du sous-agent SNMP UC4VERS2-MIB.MIB Description de la MIB Installation Le sous-agent SNMP peut être mis en place lors de l'installation d'Automation Engine ou ultérieurement. 1. l l Installation des fichiers Exécutez le programme d'installation du sous-agent SNMP. Une autre possibilité consiste à copier manuellement la bibliothèque UCSNMP1.DLL et le fichier INI UCSNMP1.INI dans le répertoire %WINDIR%\System32. Enregistrez la bibliothèque dans la base de données du registre : [HKEY_LOCAL_MACHINE\SOFTWARE\AE\SnmpAgent\Vers1] "Pathname"="UCSnmp1.dll" [HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents] "10"="SOFTWARE\\AE\\SnmpAgent\\Vers1" 2. l l Configuration des fichiers INI Activez la connexion SNMP dans le fichier INI de l'Automation Engine UCSRV.INI avec le paramètre snmp=1 (section [GLOBAL]). Définissez également les paramètres snmp= et snmpreconnect= (section [TCP/IP]). Terminez et redémarrez ensuite les processus de communication et de travail de l'Automation Engine sur tous les ordinateurs. Si le fichier INI de l'Automation Engine est déjà adapté, un redémarrage n'est pas nécessaire. Automation Engine l l l Configurez le service Windows SNMP. Adaptez les paramètres du fichier INI du sous-agent SNMP. Le sous-agent SNMP utilise le chemin des Variables d'environnement système UC_SNMP_ INI de Windows afin d'accéder aux fichiers INI. Si la Variable requise n'est pas disponible, elle est recherchée dans le répertoire d'installation du sous-agent SNMP. Au cas où le fichier INI ne serait pas inclus, les valeurs par défaut des paramètres sont acceptées. 3. l 150 Démarrage du sous-agent SNMP Redémarrez le service Windows SNMP. Le sous-agent SNMP est automatiquement démarré par le service SNMP de Windows. L'ordre dans lequel l'Automation Engine et le sous-agent SNMP sont démarrés n'a aucune importance. Tenez compte à ce sujet des remarques suivantes : l l l l Si le sous-agent SNMP a été démarré en premier, l'Automation Engine pourra immédiatement se connecter au sous-agent SNMP lors du démarrage. Si l'Automation Engine fonctionne déjà avec une connexion SNMP active (UCSRV.INI), cette dernière tentera d'atteindre le sous-agent SNMP à intervalles réguliers (snmpreconnect=). Le service SNMP peut également être démarré ultérieurement lorsque l'Automation Engine est en cours. Attention : les interruptions et tous les Evènements SNMP ne peuvent être envoyés au sous-agent SNMP que si la connexion SNMP est active. Si la reconnexion n'est pas encore effectuée, les Evènements affichés jusqu'ici seront perdus ! L'intervalle de temps dans lequel la reconnexion est effectuée doit être défini dans le fichier INI de l'Automation Engine via le paramètre snmpreconnect= (valeur par défaut : 500 secondes) La version des interruptions SNMP est déterminée par l'Agent maître (service Windows). 6.5.4 Sous-Agent SNMP pour Windows Structure du fichier ucsnmp1.ini Section/paramètre Description [SNMP] community= Community name SNMP Valeur par défaut : "public" La désignation est définie dans l'Agent maître. Entrez-y le même community name. Le paramétrage du community name est disponible dans les propriétés du services SNMP de Windows. 151 Chapter 6 Prise en charge SNMP Section/paramètre Description medium= Moyen de transport utilisé pour la communication entre l'Automation Engine et le sous-agent SNMP. Valeur possible : "tcp" (valeur par défaut), "pipe" "tcp" - communication via socket "pipe" - communication via pipe (compatibilité vers le bas du sousagent SNMP : paramètre uniquement pour les systèmes AE des versions 5.00A et 6.00A) stream_port= Numéro de port recevant la connexion de l'Automation Engine vers le sous-agent SNMP. Attention, vous devez définir le même numéro de port dans le fichier INI de l'Automation Engine sous le paramètre snmp= (section [TCP/IP]) ! processing= Mode du sous-agent SNMP Valeurs autorisées : "1", "2" et "3" (valeur par défaut) "1" : la MIB est remplie, mais les interruptions ne sont pas envoyées "2" : la MIB n'est pas remplie, mais les interruptions sont envoyées "3" : la MIB est remplie et les interruptions sont envoyées. [LOG] snmp= Indicateur de trace pour l'édition de messages de trace à partir du module qui lit les données de la table MIB et les envoie au réseau. Valeurs autorisées : "0" à "9" Valeur par défaut : "1" Les indicateurs de trace ne doivent être définis qu'après accord définitif du support ! stream= Indicateur de trace pour l'édition de messages de trace à partir du module qui lit les données de la table MIB et les envoie au réseau. Valeurs autorisées : "0" à "9" Valeur par défaut : "1" Les indicateurs de trace ne doivent être définis qu'après accord définitif du support ! mib= Indicateur de trace pour l'édition de messages de trace à partir du module qui lit les données de la table MIB et les envoie au réseau. Valeurs autorisées : "0" à "9" Valeur par défaut : "1" Les indicateurs de trace ne doivent être définis qu'après accord définitif du support ! Automation Engine Section/paramètre Description file= Chemin et nom du fichier log. 152 Les caractères numériques servent de caractère de remplacement pour une numérotation croissante. Au démarrage du sous-agent SNMP, les fichiers log sont renommés de telle manière que le fichier log actuel ait toujours le numéro "00". Le fichier log est créé par défaut dans le dossier à partir duquel est démarré le sous-agent SNMP. Exemple de fichier INI [SNMP] community=public medium=tcp stream_port=2200 processing=3 [LOG] snmp=1 stream=1 mib=1 file=ucsnmp_##.log Rubriques connexes : Conseils d'adaptation des fichiers de configuration 6.5.5 Configuration du service SNMP de Windows La description suivante explique la configuration du service SNMP de Windows. Prérequis l Le service SNMP de Windows doit être installé. Déroulement l l Ouvrez les propriétés du service SNMP de Windows. Allez dans l'onglet "Interruptions". Entrez un community name et ajoutez l'ordinateur sur lequel la gestion SNMP est installée. 153 Chapter 6 Prise en charge SNMP l Allez dans l'onglet "Sécurité". Ajoutez le droit de lecture du community name. Automation Engine 154 Rubriques connexes : Installation du sous-Agent SNMP (Windows) 6.6 MIB 6.6.1 Structure de la MIB La branche enregistrée de l'arborescence de la MIB est la suivante pour la société Automic et son produit Automic 1.3.6.1.4.1.2562.1.1 = iso.org.dod.internet.private.enterprises.sbb.uc4.vers1. Cette adresse est donc la racine de la sous-arborescence de l'Automation Engine. 155 Chapter 6 Prise en charge SNMP Les ID MIB, identifiant les informations de l'Automation Engine, sont indiqués sous une forme "relative". L'ID MIB 3.10.0 représente l'adresse complète 1.3.6.1.4.1.2562.1.1.3.10.0. La sous-arborescence de l'Automation Engine dans la MIB se structure en plusieurs groupes fonctionnels. ID MIB Description 1 Agent Data Group 2 Agent Control Group 3 Agent Work Group 4 System Group 5 Client Group 6 Server Group 7 Executor Group 8 Blocking Point Group 9 CallOperator Group à partir de la version 8.00A, la plupart des éléments UC4 font l'objet d'une nouvelle terminologie. Les descriptions dans la MIB n'ont cependant pas été modifiées, pour éviter toute incompatibilité. 6.6.2 Agent Data Group ID MIB 1 Descripteur Agent Data Group Durée de vie Ce groupe est toujours disponible. Relations Sous-agent SNMP. Description Ce groupe sert à décrire le sous-agent SNMP. ID MIB 1.1.0 Descripteur agentVersion Type DisplayString (SIZE (0.0,5)) Description Version du sous-agent SNMP. Automation Engine ID MIB 1.2.0 Descripteur agentStartTime Type DisplayString (SIZE (0.0,30)) Description Heure de début du sous-agent SNMP au format "AAAAMMJJ HHMMSS". ID MIB 1.3.0 Descripteur agentNumberOfServerTasks Type INTEGER Description Nombre actuel de processus serveur actifs. ID MIB 1.4.0 Descripteur agentConnectCounter Type Counter Description Nombre de processus serveur qui avaient déjà une connexion au sous-agent SNMP (valeur historique). 6.6.3 Agent Control Group ID MIB 2 Descripteur Agent Control Group N'est pas encore utilisé à l'heure actuelle. 6.6.4 Agent Work Group L'Agent Work Group ne concerne pas les Agents mais le sous-agent SNMP. ID MIB 3 Descripteur Agent Work Group Durée de vie Ce groupe est toujours disponible. Relations système AE, désigné agentWorkSysID. Description Ce groupe sert de domaine de travail pour la génération d'interruptions SNMP. Il contient les valeurs de la dernière interruption générée. 156 157 Chapter 6 Prise en charge SNMP ID MIB 3.1.0 Descripteur agentWorkSysID Type DisplayString (SIZE (0.00,8)) Description Variable de travail pour la génération d'interruptions (interne au sous-agent). ID MIB 3.2.0 Descripteur agentWorkObject Type DisplayString (SIZE (0.0,255)) Description Variable de travail pour la génération d'interruptions (interne au sous-agent). ID MIB 3.3.0 Descripteur agentWorkString1 Type DisplayString (SIZE (0.0,255)) Description Variable de travail pour la génération d'interruptions (interne au sous-agent). ID MIB 3.4.0 Descripteur agentWorkString2 Type DisplayString (SIZE (0.0,255)) Description Variable de travail pour la génération d'interruptions (interne au sous-agent). ID MIB 3.5.0 Descripteur agentWorkString3 Type DisplayString (SIZE (0.0,255)) Description Variable de travail pour la génération d'interruptions (interne au sous-agent). ID MIB 3.6.0 Descripteur agentWorkString4 Type DisplayString (SIZE (0.0,255)) Description Variable de travail pour la génération d'interruptions (interne au sous-agent). ID MIB 3.7.0 Descripteur agentWorkString5 Type DisplayString (SIZE (0.0,255)) Description Variable de travail pour la génération d'interruptions (interne au sous-agent). Automation Engine ID MIB 3.8.0 Descripteur agentWorkInteger1 Type INTEGER Description Variable de travail pour la génération d'interruptions (interne au sous-agent). ID MIB 3.9.0 Descripteur agentWorkInteger2 Type INTEGER Description Variable de travail pour la génération d'interruptions (interne au sous-agent). ID MIB 3.10.0 Descripteur agentWorkInteger3 Type INTEGER Description Variable de travail pour la génération d'interruptions (interne au sous-agent). ID MIB 3.11.0 Descripteur agentWorkInteger4 Type INTEGER Description Variable de travail pour la génération d'interruptions (interne au sous-agent). ID MIB 3.12.0 Descripteur agentWorkInteger5 Type INTEGER Description Variable de travail pour la génération d'interruptions (interne au sous-agent). 6.6.5 System Group ID MIB 4 Descripteur System Group Durée de vie Le système AE démarre lorsque le premier processus de service de ce système démarre. Même si tous les serveurs AE sont inactifs, le système AE reste dans la MIB jusqu'au nouveau chargement du sous-agent SNMP. Relations Sous-agent SNMP. Description Ce groupe contient la description des systèmes AE. Il existe une entrée dans les tables suivantes pour chaque système AE. 158 159 Chapter 6 Prise en charge SNMP ID MIB 4.1 Descripteur systemTable Type SEQUENCE OF SystemEntry Index (sysSysID) Description Cette table contient tous les systèmes AE démarrés. ID MIB 4.1.1 Descripteur systemEntry Type SystemEntry Description Contient tous les systèmes AE connectés tant que le sous-agent SNMP est actif sur cette machine. ID MIB 4.1.1.1 Descripteur sysSysID Type DisplayString (SIZE (0.0,8)) Description Nom du système AE. Valeur du paramètre "system=" lue dans le fichier INI d'Automation Engine. ID MIB 4.1.1.2 Descripteur sysStartTime Type DisplayString (SIZE (0..19)) Description Heure de début du premier processus de serveur de ce système. ID MIB 4.1.1.3 Descripteur sysDbmsName Type DisplayString (SIZE (0.0,30)) Description Nom de produit de la base de données (Oracle 7, Microsoft SQL Server 7, etc.). ID MIB 4.1.1.4 Descripteur sysDbVersion Type DisplayString (SIZE (0.0,30)) Description Version de la base de données. Automation Engine ID MIB 4.1.1.5 Descripteur sysDbName Type DisplayString (SIZE (0.0,30)) Description Nom de la base de données qui est fournie avec le logiciel de base de données. ID MIB 4.1.1.6 Descripteur sysEMS Type INTEGER Contenu 1 = BMC Patrol 2 = HP NNM 3 = BMC Patrol + HP NNM 4 = Tivoli 5 = BMC Patrol + Tivoli 6 = BMC Patrol + HP NNM 7 = tous Description Barre de bits pour l'affichage des licences disponibles. 160 6.6.6 Client Group ID MIB 5 Descripteur Client Group Description Ce groupe contient la description des Clients de tous les systèmes AE. Il existe une entrée dans la table suivante pour chaque Client d'un système existant. ID MIB 5.1 Descripteur ClientTable Type SEQUENCE OF ClientEntry Index (cliSysID, cliClient) Description Cette table contient tous les Clients existants. ID MIB 5.1.1 Descripteur ClientEntry Type ClientEntry Durée de vie Si un processus de serveur démarre, une entrée est créée dans le tableau pour chaque Client. Si un Client est rajouté ou supprimé, ou si le statut (cliState) d'un Client se modifie, la table est supprimée et reconstruite avec les Clients existants. Relations AE System cliSysID 161 Chapter 6 Prise en charge SNMP ID MIB 5.1.1.1 Descripteur cliSysID Type DisplayString (SIZE (0.00,8)) Description Nom du système AE auquel le Client appartient. ID MIB 5.1.1.2 Descripteur cliClient Type INTEGER (0..9999) Description Numéro du Client. ID MIB 5.1.1.3 Descripteur cliLastModifyTime Type DisplayString (SIZE (0.00,19)) Description Marque horaire du dernier rafraîchissement de l'entrée de la table. ID MIB 5.1.1.4 Descripteur cliState Type INTEGER {run(1), stop(2)} Contenu 1 = acktif 2 = arrêté Description Indique si le traitement automatique des Tâches est actif (statut système GO) ou s'il a été arrêté (statut système STOP). ID MIB 5.1.1.5 Descripteur cliMonitoring Type INTEGER {yes(1), no(2)} Contenu 1 = surveillance des activités du Client 2 = aucune surveillance des activités du Client Description Indique si les activités du Client sont surveillées. Dans le cas d'un Client productif, toutes les Alertes actives et tous les Workflows bloqués sont surveillés. ID MIB 5.1.1.6 Descripteur cliInfo Type DisplayString N'est pas encore utilisé à l'heure actuelle. Automation Engine 162 6.6.7 Server Group ID MIB 6 Descripteur Server Group Durée de vie Il existe une entrée dans le tableau suivant pour chaque processus de serveur d'un système AE disponible. Les processus de serveur arrêtés restent également (statut = STOPPED) dans la MIB jusqu'à ce que le sous-agent SNMP soit chargé à nouveau sur la machine. Description Ce groupe contient la description des processus de service de tous les systèmes AE. ID MIB 6.1 Descripteur serverInstanceTable Type SEQUENCE OF serverInstancEntry Index (srvSysID, srvName) Description Ce tableau contient tous les processus de services existants. ID MIB 6.1.1 Descripteur serverInstanceEntry Type ServerInstanceEntry Durée de vie Si un processus de serveur démarre, une entrée est créée dans le tableau pour celui-ci. Cette entrée n'est plus supprimée. Relations système AE coSysID et Client coClient. ID MIB 6.1.1.1 Descripteur srvSysID Type DisplayString (SIZE (0.0,8)) Description Nom du système AE auquel appartient le processus de service. Valeur du paramètre "system=" lue dans le fichier INI d'Automation Engine. ID MIB 6.1.1.2 Descripteur srvName Type DisplayString (SIZE (0.0,8)) Description Nom du processus de travail primaire. 163 Chapter 6 Prise en charge SNMP ID MIB 6.1.1.3 Descripteur srvLastModifyTime Type DisplayString (SIZE (0..19)) Description Marque horaire du dernier rafraîchissement de l'entrée de la table. ID MIB 6.1.1.4 Descripteur srvVersion Type DisplayString (SIZE (0.0,5)) Description Version du moteur d'utilisation AE. ID MIB 6.1.1.5 Descripteur srvStartTime Type DisplayString (SIZE (0..19)) Description Point de démarrage du processus serveur. ID MIB 6.1.1.6 Descripteur srvState Type INTEGER {run(1), ended(2), abnormal(3)} Contenu 1 = actif 2 = terminé normalement 3 = interrompu ou aucune connexion au sous-agent SNMP Description Statut du processus serveur. ID MIB 6.1.1.7 Descripteur srvSrvConnect Type INTEGER Description Nombre de processus serveurs connectés au processus de travail primaire (les entrées n'existent que dans les processus de travail primaires). ID MIB 6.1.1.8 Descripteur srvExeConnect Type INTEGER Description Nombre d'Agents connectés au Automation Engine. ID MIB 6.1.1.9 Automation Engine Descripteur srvDiaConnect Type INTEGER Description Nombre d'Interfaces Utilisateur connectées aux processus de communication. ID MIB 164 6.1.1.10 Descripteur srvBusyMin Type INTEGER (0.0,100) Description Utilisation moyenne du processus serveur en pourcentage au cours de la dernière minute avant le rafraîchissement (valeur statistique). ID MIB 6.1.1.11 Descripteur srvBusy10Min Type INTEGER (0.0,100) Description Utilisation moyenne du processus serveur en pourcentage au cours des 10 dernières minutes avant le rafraîchissement (valeur statistique). ID MIB 6.1.1.12 Descripteur SrvBusyHour Type INTEGER (0.0,100) Description Utilisation moyenne du processus serveur en pourcentage au cours de la dernière heure avant le rafraîchissement (valeur statistique). ID MIB 6.1.1.13 Descripteur SrvRunMode Type INTEGER {primary(1), normal(3), cp(4)} Contenu 1 = Processus de travail primaire 3 = Processus de travail 4 = Processus de communication Description Indique le mode dans lequel travaille le processus serveur. ID MIB 6.1.1.14 Descripteur SrvDBState Type INTEGER {online(1), offline(2)} Contenu 1 = le Automation Engine est connecté avec la base de données 2 = le Automation Engine n'est pas connecté à la base de données Description Indique si le Automation Engine est connecté à la base de données. 165 Chapter 6 Prise en charge SNMP ID MIB 6.1.1.15 Descripteur SrvDBState Type INTEGER (1) Contenu 1 = SDB fonctionne correctement Description Informe sur la disponibilité de la base de données de statuts (SDB). 6.6.8 Executor Group ID MIB 7 Descripteur Executor Group Durée de vie Il existe une entrée dans la table suivante pour chaque Agent d'un système AE. S'il existe plusieurs processus AutomationEngine au sein du système, alors des entrées d'Agent sont faites pour chacun de ces processus AutomationEngine. Description Ce groupe contient la description des Agents de tous les systèmes AE. ID MIB 7.1 Descripteur exekutorTable Type SEQUENCE OF exekutorEntry Index (exeSysID, exeSrvName, exeName, exeType) Description Cette table contient tous les Agents. ID MIB 7.1.1 Descripteur exekutorEntry Type ExekutorEntry Durée de vie Si un processus serveur démarre, une entrée est créée dans le tableau pour chaque Agent connu du système. Si des Agents sont rajoutés ou supprimés, ou si leur statut est modifié (exeState), alors la table est entièrement supprimée et reconstruite pour chaque Agent existant dans le système. Relations système AEexeSysID et processus serveur exeSrvName. ID MIB 7.1.1.1 Descripteur exeSysID Type DisplayString (SIZE (0.0,8)) Description Nom du système AE avec lequel l'Agent a établi la connexion AE. Valeur du paramètre "system=" lue dans le fichier INI d'Automation Engine. Automation Engine ID MIB 7.1.1.2 Descripteur exeSrvName Type DisplayString (SIZE (0.0,8)) Description Nom du processus de travail primaire auquel l'Agent est connecté. ID MIB 7.1.1.3 Descripteur exeName Type DisplayString (SIZE (0.0,8)) Description Nom de l'Agent. Valeur du paramètre "name=" lue dans le fichier INI de l'Agent. ID MIB 7.1.1.4 Descripteur exeType Type DisplayString (SIZE (0.0,8)) Description Type de l'Agent (EX_JOB). ID MIB 7.1.1.5 Descripteur exeLastModifyTime Type DisplayString (SIZE (0..19)) Description Marque horaire du dernier rafraîchissement de l'entrée de la table. ID MIB 7.1.1.6 Descripteur exeHost Type DisplayString (SIZE (0.0,8)) Description Nom de l'Agent. Valeur du paramètre "name=" lue dans le fichier INI de l'Agent. ID MIB 7.1.1.7 Descripteur exeVersion Type DisplayString (SIZE (0.0,5)) Description Version de l'Agent. ID MIB 7.1.1.8 Descripteur exeHardware Type DisplayString (SIZE (0.0,20)) 166 167 Chapter 6 Prise en charge SNMP Description ID MIB Type de CPU que l'Agent détermine à partir des variables d'environnement. 7.1.1.9 Descripteur exeSoftware Type DisplayString (SIZE (0.0,20)) Description Système d'exploitation que l'Agent détermine à partir des variables d'environnement. ID MIB 7.1.1.10 Descripteur exeSoftwareVers Type DisplayString (SIZE (0.0,20)) Description Version du système d'exploitation que l'Agent détermine à partir des variables d'environnement. ID MIB 7.1.1.11 Descripteur exeJCLTyp Type DisplayString (SIZE (0.0,8)) Description Job Control Language (JCL) utilisé pour la génération des Jobs. Valeur du paramètre "UC_HOST_JCL_VAR" à partir du fichier INI de l'Agent. ID MIB 7.1.1.12 Descripteur exeConnTime Type DisplayString (SIZE (0..19)) Description Marque horaire du dernier établissement d'une connexion de l'Agent avec le Automation Engine. ID MIB 7.1.1.13 Descripteur exeState Type INTEGER {run(1), ended(2), lost(3), timeout(4)} Contenu 1 = actif 2 = terminé normalement ou pas encore démarré 3 = connexion au Automation Engine interrompue 4 = aucune réponse malgré la connexion existante 5 = objet Agent supprimé Description Marque horaire du dernier établissement d'une connexion de l'Agent avec le Automation Engine. Automation Engine ID MIB 7.1.1.14 Descripteur exeLastPing Type DisplayString (SIZE (0..19)) Description Marque horaire du dernier signe de vie de l'Agent. ID MIB 168 7.1.1.15 Descripteur exeMonitoring Type INTEGER {yes(1), no(2)} Contenu 1 = la disponibilité de l'Agent est surveillée. 2 = la disponibilité de l'Agent n'est pas surveillée. Description Montre si la disponibilité de l'Agent est surveillée. Une surveillance est importante dans un Agent de production. ID MIB 7.1.1.16 Descripteur exeInfo Type DisplayString Description N'est pas encore utilisé à l'heure actuelle. 6.6.9 Blocking Point Group ID MIB 8 Descripteur Blocking Point Group Durée de vie Il existe une entrée dans la table suivante pour chaque tâche bloquante. L'entrée de la table existe tant que le blocage n'est pas éliminé ou que le Workflow n'est pas interrompu. Description Ce groupe contient la description de toutes les tâches bloquées. La description contient des informations sur la tâche à l'origine du blocage et sur le Workflow qui s'en est retrouvé bloqué. ID MIB 8.1 Descripteur blockingPointsTable Type SEQUENCE OF blockingPointEntry Index (blkSysID, blkClient, blkJPRunNr, blkJPLNR) Description Cette table contient toutes les tâches bloquantes dans les systèmes AE. ID MIB 8.1.1 169 Chapter 6 Prise en charge SNMP Descripteur blockingPointEntry Type BlockingPointEntry Durée de vie L'entrée est créée lorsqu'une tâche est bloquée et est conservée jusqu'à poursuite ou interruption de la tâche. Durée de vie système AE dans blkSysID ID MIB 8.1.1.1 Descripteur blkSysID Type DisplayString (SIZE (0.00,8)) Description Nom du système AE dans lequel le blocage est survenu. ID MIB 8.1.1.2 Descripteur blkClient Type INTEGER (0..9999) Description Numéro du Client dans lequel le blocage est survenu. ID MIB 8.1.1.3 Descripteur blkJPRunNr Type INTEGER Description Numéro courant (RunID) du Workflow dans lequel le blocage est survenu. ID MIB 8.1.1.4 Descripteur blkJPLNR Type INTEGER Description Numéro de la ligne dans laquelle se trouve la tâche bloquante au sein du Workflow. ID MIB 8.1.1.5 Descripteur blkLastModifyTime Type DisplayString (SIZE (0.00,19)) Description Marque horaire du dernier rafraîchissement de l'entrée de la table. ID MIB 8.1.1.6 Descripteur blkJPName Type DisplayString (SIZE (0.00,200)) Automation Engine Description Nom du Workflow bloqué. ID MIB 8.1.1.7 Descripteur blkObjTyp Type DisplayString (SIZE (0.00,8)) Description Type d'objet de la Tâche qui a déclenché le blocage. ID MIB 8.1.1.8 Descripteur blkObjName Type DisplayString (SIZE (0.00,200)) Description Nom de la tâche qui a déclenché le blocage. ID MIB 8.1.1.9 Descripteur blkObjRunNr Type INTEGER Description Numéro courant (RunID) de la tâche qui a déclenché le blocage. 6.6.10 CallOperator Group ID MIB 9 Descripteur CallOperator Group Durée de vie L'entrée de la table reste tant que l'Alerte n'a pas été confirmée. Description Cette table contient tous les objets Alerte actifs. ID MIB 9.1 Descripteur callOperatorTable Type SEQUENCE OF CallOperatorEntry Index (coSysID, coClient, coRunNr) Description Cette table contient tous les objets Alerte actifs. ID MIB 9.1.1 Descripteur callOperatorEntry Type CallOperatorEntry 170 171 Chapter 6 Prise en charge SNMP Durée de vie L'envoi d'une interruption d'Alerte à l'Automation Engine génère une entrée. La modification du statut de l'Alerte actualise l'entrée. L'entrée est supprimée lorsque l'Alerte est confirmée. Relations système AE coSysID et Client coClient. ID MIB 9.1.1.1 Descripteur coSysID Type DisplayString (SIZE (0.0,8)) Description Nom du système AE dans lequel l'objet Alerte a été activé. ID MIB 9.1.1.2 Descripteur coClient Type INTEGER (0..9999) Description Numéro du Client dans lequel l'objet Alerte a été activé. ID MIB 9.1.1.3 Descripteur coRunNr Type INTEGER Description Numéro courant (RunID) de l'objet Alerte. ID MIB 9.1.1.4 Descripteur coLastModifyTime Type DisplayString (SIZE (0..19)) Description Marque horaire du dernier rafraîchissement de l'entrée de la table. ID MIB 9.1.1.5 Descripteur coName Type DisplayString (SIZE (0.0,200)) Description Nom de l'objet Alerte. ID MIB 9.1.1.6 Descripteur coTyp Type INTEGER {question(1), message(2), alarm(3)} Contenu 1 = Requête 2 = Alerte 3 = Alarme Automation Engine Description 172 Type d'Alerte ID MIB 9.1.1.7 Descripteur coText Type DisplayString (SIZE (0.0,255)) Description Texte du message d'Alerte. ID MIB 9.1.1.8 Descripteur coState Type INTEGER Contenu 1542 = informé - exécution de l'Alerte 1556 = escaladé - Alerte escaladée 1553 = accepté - Alerte acceptée Description Statut actuel de l'Alerte 6.6.11 Interruptions SNMP générées Pour notifier activement le système de gestion des changements de statut ou des statuts particuliers de l'Automation Engine, le Automation Engine génère des interruptions SNMP utilisant des codes d'interruptions clairement définis. Le Automation Engine pour Windows peut, outre l'interruption, générer un Evènement qui s'affiche dans le protocole d'application de l'affichage d'évènements de Windows. Pour ce faire, le paramètre snmp=2 doit être défini dans le fichier INI d'Automation Engine. Résumé des interruptions Code d'interruption Description 3400 Démarrage d'un processus serveur 3401 Fin d'un processus serveur 3410 Interruption d'un processus serveur 3536 Grave erreur lors de l'accès à la base de données 3538 Connexion à la base de données à nouveau établie 11603 Fermeture d'un Agent 11604 Démarrage à froid d'un Agent 11622 Démarrage à chaud d'un Agent 11650 Coupure de la connexion à un Agent 11652 L'Agent SAP n'est plus connecté au système SAP 11662 L'Agent SAP a rétabli la connexion au système SAP 11801 Erreur système d'un processus serveur. 173 Chapter 6 Prise en charge SNMP 11818 Le serveur primaire a changé 801450 Message d'une Alerte xxxxxx Interruptions SNMP définies par l'Utilisateur Description des interruptions Chacune des interruptions SNMP ainsi que les paramètres correspondants sont décrits ci-après. Code d'interruption 3400 Description Démarrage d'un processus serveur AgentWorkSysID Nom du système AE AgentWorkObject "Nom du système AE"."Nom du processus serveur" AgentWorkInteger1 Statut du processus serveur : 1 = actif AgentWorkInteger2 Mode actuel du processus serveur : 1 = primaire 3 = normal 4 = processus de communication Code d'interruption 3401 Description Fin d'un processus de travail ou de dialogue (quelle que soit l'origine), c'est à dire fin normale du processus de travail primaire. AgentWorkSysID Nom du système AE AgentWorkObject "Nom du système AE"."Nom du processus serveur" AgentWorkInteger1 Statut du processus serveur : 2 = terminé normalement AgentWorkInteger2 Mode actuel du processus serveur : 1 = primaire 3 = normal 4 = processus de communication Code d'interruption 3410 Description Interruption du processus de travail primaire (PWP). Remarque En plus de l'interruption, un Evènement est toujours généré dans le protocole d'application de l'affichage d'évènements de Windows. Cette entrée est effectuée dans le protocole d'application, que snmp=2 ait été défini ou non dans le fichier INI d'Automation Engine. AgentWorkSysID Nom du système AE AgentWorkObject "Nom du système AE"."Nom du processus serveur" Automation Engine AgentWorkInteger1 Statut du processus serveur : 2 = signal d'interruption reçu 3 = autre interruption AgentWorkInteger2 Mode actuel du processus serveur : 1 = primaire 3 = normal 4 = processus de communication Code d'interruption 3536 Description Grave erreur lors de l'accès à la base de données. Aucun accès n'est plus possible. Remarque Cette interruption est envoyée toutes les 10 secondes jusqu'à ce que la base de données soit à nouveau connectée. AgentWorkSysID Nom du système AE AgentWorkObject "Nom du système AE"."Nom du processus serveur" AgentWorkString1 Texte d'erreur des pilotes ODBC Code d'interruption 3538 Description Connexion à la base de données à nouveau établie AgentWorkSysID Nom du système AE AgentWorkObject "Nom du système AE"."Nom du processus serveur" Code d'interruption 11603 Description Fermeture d'un Agent AgentWorkSysID Nom du système AE AgentWorkObject "Nom du système AE"."Nom du processus serveur"."Nom de l'Agent"."Type d'Agent" AgentWorkString1 Nom de l'Agent AgentWorkInteger1 Mode d'exécution du processus serveur : 1 = primaire 3 = normal 4 = processus de communication Code d'interruption 11604 Description Démarrage à froid d'un Agent AgentWorkSysID Nom du système AE 174 175 Chapter 6 Prise en charge SNMP AgentWorkObject "Nom du système AE"."Nom du processus serveur"."Nom de l'Agent"."Type d'Agent" AgentWorkString1 Nom de l'Agent AgentWorkInteger1 Mode d'exécution du processus serveur : 1 = primaire 3 = normal 4 = processus de communication Code d'interruption 11622 Description Démarrage à chaud d'un Agent AgentWorkSysID Nom du système AE AgentWorkObject "Nom du système AE"."Nom du processus serveur"."Nom de l'Agent"."Type d'Agent" AgentWorkString1 Nom de l'Agent Code d'interruption 11650 Description Coupure de la connexion à un Agent AgentWorkSysID Nom du système AE AgentWorkObject "Nom du système AE"."Nom du processus serveur"."Nom de l'Agent"."Type d'Agent" AgentWorkString1 Nom de l'Agent AgentWorkInteger1 Mode d'exécution du processus serveur : 1 = primaire 3 = normal 4 = processus de communication Code d'interruption 11652 Description L'Agent SAP n'est plus connecté au système SAP. AgentWorkSysID Nom du système AE AgentWorkObject "Nom du système AE"."Nom du processus serveur"."Nom de l'Agent"."Type d'Agent" AgentWorkString1 Nom de l'Agent AgentWorkInteger1 Mode d'exécution du processus serveur : 1 = primaire 3 = normal 4 = processus de communication Automation Engine Code d'interruption 11662 Description La connexion de l'Agent SAP au système SAP a été rétablie. AgentWorkSysID Nom du système AE AgentWorkObject "Nom du système AE"."Nom du processus serveur"."Nom de l'Agent"."Type d'Agent" AgentWorkString1 Nom de l'Agent AgentWorkInteger1 Mode d'exécution du processus serveur : 1 = primaire 3 = normal 4 = processus de communication Code d'interruption 11801 Description Erreur système du processus serveur AgentWorkSysID Nom du système AE AgentWorkObject "Nom du système AE"."Nom du processus serveur"."Nom de la fonction kernel" AgentWorkString1 Texte du message d'erreur AgentWorkInteger1 Numéro du message d'erreur Code d'interruption 11818 Description Le processus de travail primaire a changé Remarque A partir de la version 3.01C de l'Automation Engine AgentWorkSysID Nom du système AE AgentWorkObject "Nom du système AE"."Nom du processus serveur" AgentWorkInteger1 Ancien mode AgentWorkInteger2 Nouveau mode Code d'interruption 801450 Description Message d'une Alerte AgentWorkSysID Nom du système AE AgentWorkObject "Nom du système AE"."Client"."RunID" AgentWorkString1 Nom de l'objet Alerte AgentWorkString2 Texte du message d'Alerte. 176 177 Chapter 6 Prise en charge SNMP AgentWorkInteger1 Statut de la Tâche Alerte (comme dans le fichier de message UC.MSL): 1542 = informé 1553 = accepté 1556 = escaladé 1800 = ENDED_NOT_OK - interrompu 1850 = ENDED_CANCEL - terminé par une interruption 1852 = rejeté 1856 = ENDED_ESCALATED - arrêt forcé par escalade 1900 = ENDED_OK - terminé avec code retour "0" 1901 = confirmé Outre les interruptions SNMP générées par le système, l'instruction de Script :SEND_SNMP_ TRAP permet de générer des interruptions définies par l'Utilisateur. Les codes d'interruption générés par l'Automation Engine et par Connect for HP OpenView NNM (codes d'interruption : 10000 - 10010) ne doivent pas être utilisés comme interruptions SNMP définies par l'Utilisateur ! Code d'interruption xxxxxx Description Interruptions SNMP définies par l'Utilisateur AgentWorkSysID Nom du système AE AgentWorkObject "Nom du système AE"."Nom du processus serveur" AgentWorkString1 Défini par l'Utilisateur AgentWorkString2 Défini par l'Utilisateur AgentWorkString3 Défini par l'Utilisateur AgentWorkString4 Défini par l'Utilisateur AgentWorkString5 Défini par l'Utilisateur AgentWorkInteger1 Défini par l'Utilisateur AgentWorkInteger2 Défini par l'Utilisateur AgentWorkInteger3 Défini par l'Utilisateur AgentWorkInteger4 Défini par l'Utilisateur AgentWorkInteger5 Défini par l'Utilisateur 6.7 Licence Net-SNMP Various copyrights apply to this package, listed in various separate parts below. Please make sure that you read all the parts. Up until 2001, the project was based at UC Davis, and the first part covers all code written during this time. From 2001 onwards, the project has been based at SourceForge, and Networks Associates Technology, Inc hold the copyright on behalf of the wider Net-SNMP community, covering all derivative work done since then. An additional copyright section has been added as Part 3 below also under a BSD license for the work contributed by Cambridge Broadband Ltd. to the project since 2001. An additional copyright section has been added as Part 4 below also under a BSD license for the work contributed by Sun Microsystems, Inc. to the project since 2003. Code has been contributed to this project by many people over the years it has been in development, and a full list of contributors can be found in the README file under the THANKS section. ---- Part 1: CMU/UCD copyright notice: (BSD like) ----- Automation Engine 178 Copyright 1989, 1991, 1992 by Carnegie Mellon University Derivative Work - 1996, 1998-2000 Copyright 1996, 1998-2000 The Regents of the University of California All Rights Reserved Permission to use, copy, modify and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appears in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of CMU and The Regents of the University of California not be used in advertising or publicity pertaining to distribution of the software without specific written permission. CMU AND THE REGENTS OF THE UNIVERSITY OF CALIFORNIA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL CMU OR THE REGENTS OF THE UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM THE LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ---- Part 2: Networks Associates Technology, Inc copyright notice (BSD) ----Copyright (c) 2001-2003, Networks Associates Technology, Inc All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: l l l Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the Networks Associates Technology, Inc nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---- Part 3: Cambridge Broadband Ltd. copyright notice (BSD) ----Portions of this code are copyright (c) 2001-2003, Cambridge Broadband Ltd. All rights reserved. 179 Chapter 6 Prise en charge SNMP Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: l l l Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. The name of Cambridge Broadband Ltd. may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---- Part 4: Sun Microsystems, Inc. copyright notice (BSD) ----Copyright © 2003 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A. All rights reserved. Use is subject to license terms below. This distribution may include materials developed by third parties. Sun, Sun Microsystems, the Sun logo and Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: l l l Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the Sun Microsystems, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING Automation Engine 180 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---- Part 5: Sparta, Inc copyright notice (BSD) ----Copyright (c) 2003-2006, Sparta, Inc All rights reserved Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: l l l Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Sparta, Inc nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---- Part 6: Cisco/BUPTNIC copyright notice (BSD) ----Copyright (c) 2004, Cisco, Inc and Information Network Center of Beijing University of Posts and Telecommunications. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: l l l Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Cisco, Inc, Beijing University of Posts and Telecommunications, nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 181 Chapter 6 Prise en charge SNMP PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---- Part 7: Fabasoft R&D Software GmbH & Co KG copyright notice (BSD) ----Copyright (c) Fabasoft R&D Software GmbH & Co KG, 2003 [email protected] Author: Bernhard Penz Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: l l l Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. The name of Fabasoft R&D Software GmbH & Co KG or any of its subsidiaries, brand or product names may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Automation Engine 182 7 L'Automation Engine et les systèmes cible 7.1 L'Automation Engine et BS2000 7.1.1 archive de texte BS2000 Situation de départ Le problème du transport des fichiers BS2000 par d'autres moyens qu'un support de données BS2000 s'est déjà souvent posé. C'est ainsi qu'entrent en ligne de compte des moyens d'informatique personnelle comme les disquettes, les CD et en particulier le transfert électronique. C'est devenu entre temps chose possible avec les fichiers texte (SAM, longueur maximale de l'enregistrement : 255), étant donné qu'on peut partir du principe que dans toute installation BS2000, le transfert de fichiers texte entre un PC et BS2000 (au pire avec le transfert de fichiers EDT) existe. Les fichiers binaires (bibliothèques LMS, programmes, etc.) posent en l'occurrence un problème. FTP permet certes le transfert de programmes en mode binaire ; ils sont cependant d'une taille supérieure (2 pages PAM) et continuent de fonctionner. Les bibliothèques LMS ne peuvent, tout comme les fichiers ISAM et similaires, être transférés, étant donné que le FCB n'est pas rétabli. En outre, FTP est payant dans BS2000 (TCP/IP-AP). Dans UC4, ce thème revêt une grande importance étant donné que les fichiers BS2000 sont fournis sur CD. La solution : archive de texte BS2000 Intégration dans BS2-TOOLS La reprise des fichiers dans une archive de texte et la décompression d'une archive de texte sont mis en œuvre dans BS2-TOOLS version 2.00W et supérieure. l l Acceptation d'un fichier quelconque, et en particulier d'un fichier binaire, dans une archive de texte. Code d'action "C+" devant le fichier binaire. Sélection de l'archive de texte cible à l'aide de la touche K3. "Overwrite=E" pour l'extension de l'archive de texte (plusieurs fichiers dans une archive de texte). Le procédé peut prendre un peu de temps dans le cas de fichiers volumineux ! Décompression d'une archive de texte : Le code d'action "TAR" avant une archive de texte crée les fichiers dans l'ID utilisateur personnel. 183 Chapter 7 L'Automation Engine et les systèmes cible Programme BS2-TAR Ce programme décompresse une archive de texte dans l'ID utilisateur personnel. Le programme est requis pour toutes les livraisons sous forme d'archive de texte. Le programme BS2-TAR est libre de licence (logiciel gratuit), il est donc désormais fourni dans la MUSTERLIB avec tous les systèmes existants. Par conséquent, il peut être obtenu auprès de tous les distributeurs. Les fichiers .tar fournis dont le nom contient "NK4" correspondent aux pubsets NK4 et peuvent également être décompressés à l'aide du programme BS-TAR. Décompression d'une archive de texte : /FILE fichier_sortie, LINK=TAR /EXEC BS2-TAR CD AE fourni Le dossier IMAGE:TOOLS\BS2_TAR contient le programme BS2-TAR sous deux formes : 1) BS2-TAR.BIN Le fichier BS2-TAR.BIN contient le programme BS2-TAR. Celui-ci a été transféré via FTP, en mode binaire, sur le CD et peut à nouveau être transféré dans BS2000 via FTP. FTP OPEN Ordinateur BS2000 userid (TSOS) mot de passe account BIN PUT BS2-TAR.BIN BYE Dans BS2000 : /CAT BS2-TAR.BIN,BS2-TAR,STATE=U,SHARE=YES,ACCESS=READ 2) BS2-TAR.TAR La dernière version du programme BS2-TAR au format .tar. BS2-TAR doit déjà être installé sur votre machine BS2000. Le fichier est transféré, avec un Transfert de Fichier quelconque en mode texte, dans BS2000 puis y est décompressé avec BS2-TAR. /FILE BS2-TAR.TAR,LINK=TAR /EXEC BS2-TAR 7.1.2 Moteur/Agent d'automatisation AE - BCIN pour établissement de la connexion Pour une connexion TCP/IP d'un Agent BS2000 avec d'autres composants, leur adresse IP doit être connue dans BS2000. Automation Engine l 184 La communication entre un Automation Engine et un Agent BS2000 s'effectue via une connexion TCP/IP. Dans ce cadre, des informations et des protocoles internes sont échangés. L'adresse IP du Serveur doit être annoncée au BS2000 à l'aide de /BCIN ! l Si un Transfert de Fichier est initié par/vers un Agent BS2000, les Agents concernés établissent entre eux une connexion TCP/IP. BS2000 doit connaître le partenaire de Transfert de Fichier de l'Agent BS2000. Définissez l'adresse IP de l'hôte (machine du partenaire de Transfert de Fichier) à l'aide de /BCIN. 7.1.3 Agent BS2000 - Prise en charge du Transfert de Fichier L'Agent BS2000 prend en charge toutes les fonctions de Transfert de Fichier comme le Transfert de Fichiers texte et binaires ou le Transfert de Fichier avec des caractères génériques. Attributs de fichier pour la destination Lors de la définition d'un objet Transfert de Fichier, il est possible de spécifier dans l'onglet "Transfert de Fichier" des attributs de fichier pour la destination du transfert de fichiers. Tous les attributs de fichier correspondant aux commandes de fichier sont possibles. Ils sont entrés dans une zone de texte distincte et la séparation de plusieurs attributs de fichier se fait au moyen de virgules. Les attributs suivants sont créés par défaut : Mode texte : FCB=SAM,LINK=UCEXSAM,SPACE=(300,300) Mode binaire : SPACE=(300,300),BLKSIZE=STD,BLKCTRL=NO,FCB=PAM Les attributs explicitement indiqués remplacent les valeurs par défaut ou sont ajoutés à la commande. Si vous indiquez un attribut vous-même, la commande de fichier par défaut est remplacée dans l'Agent. Si vous indiquez SPACE=, le résultat serait par exemple un fichier SAM avec RECFORM=FIX. Dans ce cas, vous devriez également utiliser l'attribut RECFORM s'il vous faut par exemple RECFORM=V. Avec FT-BS2000 de Siemens, vous pouvez également créer des fichiers ISAM. En voici un exemple dans ce qui suit : FCB=ISAM,BLKCTRL=DATA,RECFORM=V,KEYPOS=5,KEYLEN=8 Exemple RECSIZE=50,VOLUME=PRIVATE,SPACE=(100,100) 185 Chapter 7 L'Automation Engine et les systèmes cible Conserver les attributs originaux Pour reprendre les attributs des fichiers source pour les fichiers cible, utilisez l'option "Conserver les attributs originaux" dans l'onglet Transfert de Fichier. Le système ne tient compte de ce paramètre uniquement lorsque les Agents source et cible présentent la version 9.00A de l'Automation Engine ou supérieure (nouveau protocole de Transfert de Fichier). De plus, la source doit correspondre à la plateforme cible. Pour le Transfert de fichier BS2000, les attributs de fichier suivants peuvent être conservés: Attributs du Catalogue de Macro l l l l l l l l l l l l l l Attributs du Fichier de Macro ACCESS ACLPROT BACKUP BASACL CCS DESTROY EXDATE GROUPAR GUARDS LARGE OTHERAR OWNERAR RETPD SHARE l l l l l l l l l l BLKCTRL BLKSIZE DUPEKY FCBTYPE KEYLEN KEYPOS RECFORM RECSIZE RETPD SPACE Lorsque vous utilisez ces paramètres, aucun autre attribut supplémentaire ne doit être indiqué dans le Transfert de fichier pour le fichier cible. Sinon, une erreur se produit. Eléments de bibliothèque en tant que source et cible Les éléments des bibliothèques LMS (PLAM) peuvent être la source et la cible d'un Transfert de Fichier. l l l Les éléments de bibliothèque peuvent être transférés entre deux bibliothèques LMS. Un élément de bibliothèque peut être transféré en tant que fichier dans un système cible quelconque. Des fichiers texte de systèmes cible quelconques peuvent être transférés dans une bibliothèque LMS. Il faut spécifier l'élément sous la forme suivante : *LIB(bibliothèque,élément(version),type) La version de l'élément est facultative. Si la version n'a pas été spécifiée, la version la plus élevée est lue (source) ou un élément de version "@" est écrit (cible). Exemples *LIB($RS.LMS.LIB,MEIN.ELEMENT,S) *LIB($RS.LMS.LIB,MEIN.*,S) Automation Engine 186 Limitations lors du Transfert de Fichiers PAM Attention aux limitations suivantes : l l L'Agent BS2000 est l'expéditeur de fichiers : si le fichier PAM existe au format NK et ne présente aucune marque de fin, la dernière page est ignorée. L'Agent BS2000 est le destinataire de fichiers : lors de l'écriture d'un fichier PAM, une marque de fin (un bloc logique supplémentaire) est rajoutée. Ce bloc peut perturber certaines structures de fichier, ce qui peut dans certains cas rendre le fichier inutilisable. 7.1.4 Utilitaire pour la Tâche RFC Parmi les fichiers fournis avec l'Agent BS2000 se trouve également l'utilitaire pour la Tâche RFC UCYBRFC?. Le fichier INI de l'Agent contient la section "[RFC]" avec le paramètre "LOGON". Si le paramètre est défini sur "1", dans le cas d'un Transfert de Fichier avec ID utilisateur entré, l'Agent crée un Job batch sous l'ID utilisateur entré. Dans ce Job batch, l'utilitaire UCYBRFC? est exécuté. Il se connecte par TCP/IP via le port qui a été défini avec le paramètre du même nom (également dans la section [RFC]). Grâce à cette connexion, l'Agent peut alors vérifier les droits d'accès au fichier par rapport à l'Utilisateur entré. Etant donné que cette méthode entraîne une perte de performance de l'Agent, les Tâches RFC sont maintenues pour d'autres Transferts de Fichiers. Ce n'est que lorsqu'une Tâche RFC ne reçoit plus de demandes pendant un certain temps (définissable avec le paramètre TIMEOUT=), qu'elle se termine d'elle-même. Le fichier UCYBRFC? doit être partageable lorsque le mécanisme RFC est activé. 7.1.5 Agent - Numéros de port définis librement Les numéros de port libres sont généralement attribués dans le DCSOF avec le paramètre "Freeport". Par défaut, le premier numéro de port libre est le 4096. L'Agent BS2000 ne fonctionne pas avec un numéro de port fixe, qui serait par exemple enregistré dans son fichier INI. Lors de l'établissement de la connexion de l'Agent au Automation Engine, l'Agent demande un numéro de port libre. Le système d'exploitation lui assigne le premier numéro de port libre. Si l'Agent BS2000 est chargé automatiquement après des tests réussis lors du démarrage de l'hôte, veillez à ce que sa demande de numéro de port libre n'entre pas en conflit avec d'autres applications. Exemple : Lors de tests, on obtient la configuration suivante : 1. Une application qui utilise le numéro de port 4096 via la commande /BCMAP est déjà en cours d'exécution. 2. L'Agent BS2000 est démarré manuellement et utilise le numéro de port libre suivant, par exemple 4097. 3. Résultat : l'application et l'Agent fonctionnent correctement. 187 Chapter 7 L'Automation Engine et les systèmes cible Après les tests, l'Agent BS2000 est démarré automatiquement ; il est donc chargé avant cette application. 1. L'Agent BS2000 utilise le premier numéro de port libre 4096. 2. L'application à laquelle ce numéro de port a été assigné via la commande /BCMAP ne peut être démarrée. 7.1.6 Commande de console BS2000 La création, la configuration et le traitement d'une séquence de données sont un processus complexe au cours duquel les fonctions et les instructions de script ainsi que des objets spéciaux interagissent. L'exemple suivant montre les définitions nécessaires dans les objets impliqués et à quoi les scripts font référence. L'exemple est intentionnellement succinct et facile pour clarifier le principe en dépit de sa complexité. Il doit montrer comment poser une commande de console BS2000 avec un Job et comment le résultat est affiché ligne par ligne dans son protocole d'activation. Pour poser une commande de console BS2000, l'utilitaire de l'Automation Engine UCYEBXXZ doit être installé sur l'hôte. Job: SC.PROCESS.BS2000UCON Dans le script de ce Job, la fonction PREP_PROCESS est appelée afin de préparer le traitement de la séquence de données. Les paramètres suivants sont ainsi transmis : l l Nom de la machine sur laquelle un Job d'Evènement doit être exécuté, ici "C70". Type du Job Evènement devant être exécuté, ici : "BS2000UCON". La saisie "BS2000UCON" entraîne l'exécution du Job "EVENT.BS2000UCON". Par défaut, les Jobs Evènements "EVENT.BS2000CMD", "EVENT.BS2000UCON", "EVENT.UNIXCMD", "EVENT.UNIXFS" et "EVENT.WINCMD" sont fournis dans le Client "0000". Ils peuvent être utilisés directement ou en tant que modèles pour des Jobs Evènement personnels. Automation Engine l l l 188 Le troisième paramètre de la fonction a été omis. Cela signifie qu'avec la valeur par défaut "*" comme Filtre, toutes les lignes générées par la commande de console sont prises en compte. La Variable de script "&CMD" du Job d'Evènement est renseignée avec la valeur "BCDISP DISP=O". Le Job d'Evènement doit poser cette commande dans la console et ainsi énumérer toutes les applications ouvertes. Le Job "EVENT.BS2000UCON" est ensuite démarré. Job: EVENT.BS2000UCON Ce Job est le Job "EVENT.BS2000UCON" fourni par défaut dans le Client "0000". Il est important que la case à cocher "Dialogue des attributs" soit sélectionnée dans l'onglet Attributs de ce Job. Cela permet de lire l'objet Include "ATTRDIA.BS2000" qui provoque normalement le dialogue des attributs. Include: ATTRDIA.BS2000 189 Chapter 7 L'Automation Engine et les systèmes cible Cela permet de renseigner tous les attributs figurant dans le script de l'Include. Le dialogue des attributs n'est pas affiché, car la transmission des contenus de la Variable se fait en interne. Job: EVENT.BS2000UCON Il est désormais possible de procéder à une connexion du Job et d'exécuter la commande de console. l l L'utilitaire UC4 "UCYEBXXZ" est démarré sous l'ID "$UC4". L'utilitaire tente d'établir une des connexions de console indiquées. Automation Engine l l 190 La commande "BCDISP DISP=O" est exécutée une fois une connexion établie avec succès. Le message de fin de la commande de console ou la durée "Temps dépassé" définie sur 120 secondes terminent la connexion. Pour chaque Transfert de Fichier, le fichier en sortie est transféré au Automation Engine et il est à disposition en tant que séquence de données. Le Job "EVENT.BS2000UCON" est terminé. Job: SC.PROCESS.BS2000UCON La fonction PREP_PROCESS renvoie une valeur qui est une référence aux données de gestion de la séquence de données à traiter. Cette valeur est passée à l'instruction :PROCESS comme paramètre de démarrage. :PROCESS et :ENDPROCESS forment une boucle de processus qui va s'exécuter ici jusqu'à ce que la fin de la séquence de données soit atteinte. A chaque cycle de la boucle, une nouvelle ligne de cette séquence de données est lue dans la mémoire de travail. La fonction GET_PROCESS_LINE peut calculer, avec la valeur actuelle, le contenu des lignes de la séquence de données. Dans l'exemple, la ligne de console respective est affichée dans le protocole d'activation. L'instruction :STOP interrompt l'exécution du Job et affiche ce protocole d'activation. 7.1.7 Commande de système d'exploitation BS2000 La création, la configuration et le traitement d'une séquence de données sont un processus complexe au cours duquel les fonctions et les instructions de script ainsi que des objets spéciaux interagissent. L'exemple suivant montre les définitions nécessaires dans les objets impliqués et à quoi les scripts font référence. L'exemple est intentionnellement succinct et facile pour clarifier le principe en dépit de sa complexité. Il doit montrer comment poser une commande BS2000 avec un Job sous l'ID "UC4" et comment le résultat est affiché ligne par ligne dans son protocole d'activation. 191 Chapter 7 L'Automation Engine et les systèmes cible Job: SC.PROCESS.BS2000CMD Dans le script de ce Job, la fonction PREP_PROCESS est appelée afin de préparer le traitement de la séquence de données. Les paramètres suivants sont ainsi transmis : l l l l l Nom de la machine sur laquelle un Job d'Evènement doit être exécuté, ici "C70". Type du Job Evènement devant être exécuté, ici : "BS2000CMD". La saisie "BS2000CMD" entraîne l'exécution du Job "EVENT.BS2000CMD". Par défaut, les Jobs Evènements "EVENT.BS2000CMD", "EVENT.BS2000UCON", "EVENT.UNIXCMD", "EVENT.UNIXFS" et "EVENT.WINCMD" sont fournis dans le Client "0000". Ils peuvent être utilisés directement ou en tant que modèles pour des Jobs Evènement personnels. Le troisième paramètre de la fonction a été omis. Cela signifie qu'avec la valeur par défaut "*" comme Filtre, toutes les lignes générées sont prises en compte. La Variable de script "&CMD" du Job d'Evènement est renseignée avec la valeur "/STA P". Le Job d'Evènement doit poser cette commande avec l'objet Login "UC4ADMIN". Le Job "EVENT.BS2000CMD" est ensuite démarré. Job: EVENT.BS2000CMD Automation Engine Ce Job est le Job "EVENT.BS2000CMD" fourni par défaut dans le Client "0000". Il est important que la case à cocher "Dialogue des attributs" soit sélectionnée dans l'onglet Attributs de ce Job. Cela permet de lire l'objet Include "ATTRDIA.BS2000" qui provoque normalement le dialogue des attributs. Include: ATTRDIA.BS2000 Cela permet de renseigner tous les attributs figurant dans le script de l'Include. Le dialogue des attributs n'est pas affiché, car la transmission des contenus de la Variable se fait en interne. 192 193 Chapter 7 L'Automation Engine et les systèmes cible Job: EVENT.BS2000CMD Il est désormais possible de procéder à une connexion du Job et d'exécuter la commande. l l La commande "/STA P" à exécuter est lue dans la Variable de script "&CMD". Le SYSOUT est redirigé dans un fichier en sortie et la commande est exécutée. Pour chaque Transfert de Fichier, le fichier en sortie est transféré au Automation Engine et il est à disposition en tant que séquence de données. Le Job "EVENT.BS2000CMD" est terminé. Job: SC.PROCESS.BS2000CMD La fonction PREP_PROCESS renvoie une valeur qui est une référence aux données de gestion de la séquence de données à traiter. Cette valeur est passée à l'instruction :PROCESS comme paramètre de démarrage. :PROCESS et :ENDPROCESS forment une boucle de processus qui va s'exécuter ici jusqu'à ce que la fin de la Automation Engine 194 séquence de données soit atteinte. A chaque cycle de la boucle, une nouvelle ligne de cette séquence de données est lue dans la mémoire de travail. La fonction GET_PROCESS_LINE peut calculer, avec la valeur actuelle, le contenu des lignes de la séquence de données. Dans l'exemple, la ligne respective est affichée dans le protocole d'activation. L'instruction :STOP interrompt l'exécution du Job et affiche ce protocole d'activation. 7.2 L'Automation Engine et les bases de données 7.2.1 Agent de base de données Un Agent pouvant établir une connexion aux bases de données fait partie des composants. Il vous permet d'exécuter des instructions SQL dans ces bases de données sans exécuter d'outil externe de ligne de commande. Cela améliore la sécurité et simplifie l'administration de la base de données. Outre les instructions SQL typiques, comme SELECT ou UPDATE, l'Agent peut également exécuter des commandes spécifiques à votre base de données et des procédures enregistrées dans la base de données. L'objet Job contient un éditeur convivial vous permettant de formuler les instructions. Il vous montre, en outre, les tables de la base de données et ses colonnes. Le résultat des instructions SQL est enregistré dans le rapport de Job et peut être lu précisément avec le script PREP_PROCESS_REPORT. Si une erreur se produit pendant l'exécution du Job, ou si ce dernier est interrompu, l'Agent annule alors par défaut toutes les instructions SQL jusqu'au dernier COMMIT. L'objet Job vous offre de nombreuses possibilités de paramétrage vous permettant de configurer l'exécution des instructions SQL. Agent for Databases prend actuellement en charge Oracle, MSSQL, DB2 et MySQL, entre autres. Rubriques connexes : Onglet Forme 7.2.2 Connexion aux bases de données Oracle L'Agent de base de données peut se connecter soit à une instance de base de données unique, soit à des nœuds RAC. Connexion à une instance Oracle unique Cette connexion est celle par défaut. L'Agent de base de données ne peut se connecter qu'à une seule instance de base de données. L'objet Job contient les données de connexion nécessaires. Le paramètre useOraClient= du Fichier INI de l'Agent de base de données (section [SQL]) doit être mis sur 0. 195 Chapter 7 L'Automation Engine et les systèmes cible Connexions RAC L'Agent de base de données peut se connecter à des nœuds RAC Oracle. Le fichier Oracle namens tnsnames.ora contient les données de connexion correspondantes. Le champ "Serveur" de l'onglet "SQL" de l'objet Job n'a pas besoin d'être rempli. Effectuez les étapes suivantes après l'installation de l'Agent de base de données : 1. Définissez sur 1 le paramètre useOraClient= du fichier INI de l'Agent de base de données. 2. Installez sur l'hôte de l'Agent de base de données le Client ou Oracle Instant Client. Ce dernier est fourni sous différentes formes. L'Agent de base de données requiert le package "Basic". 3. Vous devez définir deux Variables d'environnement si vous utilisez Oracle Instant Client. Entrez pour la Variable d'environnement PATH (Windows) ou LD_LIBRARY_PATH (UNIX) le répertoire d'installation d'Oracle Instant Client. La Variable d'environnement TNS_ADMIN doit inclure le répertoire dans lequel se trouve le fichier tnsnames.ora. Exemple de fichier tnsnames.ora : APPL_DB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver01)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver02)(PORT = 1521)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = APPLDB.CUSTOMER.COM) ) ) Entrez "APPL_DB" dans le champ "Base de données" de l'objet Job. 7.2.3 Sybase - Procédures enregistrées L'exécution de procédures enregistrées requiert une commande supplémentaire. Utilisez pour cela les lignes de commande suivantes : execute sp_procxmode 'procedure name','anymode'; execute procedure name; Le message d'erreur suivant est affiché si vous essayez d'exécuter une telle procédure directement. "Stored procedure 'procedure name' may be run only in unchained transaction mode. The 'SET CHAINED OFF' command will cause the current session to use unchained transaction mode." La commande "SET CHAINED OFF" ne peut être exécutée à cause du pilote JDBC. Utilisez la commande sp_procxmode. 7.2.4 Procédures enregistrées par MS SQL Server Avec l'Agent de base de données, il est possible d'exécuter des procédures enregistrées pour MS SQL. RETURN L'instruction RETURN peut renvoyer un chiffre. Ce code retour peut être repris, comme indiqué dans l'exemple de script suivant, dans le rapport de Job. Le nom de la procédure enregistrée est Automation Engine 196 ANGTEST. SQL_SET_STATEMENT_TERMINATOR TERM='!'; DECLARE @result int; EXEC @result = ANGTEST; select @result;! Etant donné que le point virgule se trouve au sein de l'instruction, un autre séparateur est automatiquement sélectionné. Le Job se termine normalement indépendamment du code retour. Si vous souhaitez modifier le statut de fin du Job, vous pouvez lire le code retour dans le rapport de Job et y réagir avec :MODIFY_STATE. PRINT L'instruction PRINT permet d'afficher des messages pour les utilisateurs. DBCC CHECKDB en est un exemple. Ces messages sont repris dans le rapport de Job. L'exécution du Job se poursuit normalement. RAISE ERROR Entraîne une interruption du Job. Le message d'erreur est repris dans le rapport d'activation. Rubriques connexes : Onglet "Forme" Onglet Script PREP_PROCESS_REPORT 7.2.5 ILM - Partition-Key Turnaround Lorsque le partitionnement de la base de données est utilisé via IML, une situation particulière survient lorsque le nombre maximal de RunID (tâches, enregistrements statistiques) est atteint. Ce maximum est plus ou moins vite atteint en fonction du nombre de tâches démarrées régulièrement. Afin de résoudre ce problème, une procédure spéciale est exécutée dans ce cas : le Partition-Key Turnaround. Généralités Les entrées statistiques (tâches exécutées) sont enregistrées dans le tableau AH et les RunID sont indiqués dans la colonne AH_Idnr. Les valeurs de cette colonne sont techniquement des chiffres à 32 bits avec une valeur maximale de 2.147.483.647. La tranche de numéros au-dessous de 1 000 000 est réservée aux traitements spéciaux. La plage de valeurs autorisée ou possible pour les RunID des entrées statistiques s'étend donc de 1 000 000 à 2 147 483 647. Sur les systèmes AE avec un nombre réduit de tâches exécutées régulièrement, cette limite n'est pratiquement jamais atteinte. Lorsque le nombre d'activités exécutées au quotidien est important (~1 000 000), cette limite peut être atteinte après quelques années. 197 Chapter 7 L'Automation Engine et les systèmes cible Changement de partition Vous trouverez ici des informations générales sur ILM et le changement de partition. Un certain nombre de partitions est conservé en ligne dans la base de données. Vous pouvez configurer cette valeur avec le paramètre ONLINE_PARTITIONS de la variable UC_ILM_ SETTINGS. Lors de l'utilisation d'ILM avec l'Automation Engine, chaque partition possède une valeur clé maximale. Cependant, la partition actuelle est ouverte vers le haut et ne dispose pas de valeur limite fixe. Pour cela, une valeur virtuelle spécifique de la partition est utilisée: NULL pour le serveur MS SQL et MAXVALUE pour les bases de données Oracle. Lors d'un changement de partition, une nouvelle partition est ajoutée dans la partie supérieure et l'ancienne partition y est supprimée. La suppression directe est possible dans Oracle, le serveur MS SQL nécessite une table de Staging. Mode Partition-Key Turnaround La consommation RunID maximale des anciennes partitions est calculée constamment et automatiquement, puis enregistrée dans la variable UC_ILM_SETTINGS sous la clé MAX_ ENTRIES. Lorsqu'un changement de partition doit être exécuté, il est vérifié qu'à partir du RunID supérieur actuel moins de 3x MAX_ENTRIES soient nécessaires pour atteindre la valeur maximale. Si tel est le cas, le mode Partition-Key Turnaround est activé. Si ce mode spécial est actif, les partitions suivantes sont réinsérées dans la zone inférieure (à partir de 1 000 000) et la numérotation recommande du début. Ce mode spécial est actif jusqu'à ce que toutes les partitions aient été supprimées de la tranche de numéros supérieure et qu'une plage de valeurs continue jusqu'à 2 147 483 647 soit à nouveau disponible. Le partitionnement d'Oracle est très différent des bases de données du serveur MS SQL, tout comme le mode Partition-Key Turnaround. La procédure est ainsi décrite par type de base de données. Oracle Scénario de sortie suivant : Consommation maximale (MAX_ENTRIES): 1 000 000 RunID supérieur actuel attribué : 2.145.000.000 Partitions en ligne : 4 Partition Limite supérieure P11 2.142.483.647 P12 2.143.483.647 P13 2.144.483.647 P14 MAXVALUE Automation Engine 198 P11 suffit de 1 000 000 à 2 142 483 647 d'un point de vue technique, mais uniquement de 2 141 483 647 à 2 142 483 647 d'un point de vue logique, car seuls les enregistrements sont décrits dans cette zone de l'Automation Engine. Il est maintenant nécessaire d'effectuer un changement de partition. L'espace disponible entre le RunID supérieur actuel (2 145 000 000) et la valeur maximale (2 147 483 647) est inférieur à 3x MAX_ENTRIES (1 000 000). Il est donc nécessaire de basculer en mode Partition-Key Turnaround. L'ancienne partition est alors divisée (P11) afin d'ajouter une nouvelle partition (P15) dans la tranche de numéros inférieure (commençant à partir de 1 000 000). La triple consommation maximale est définie comme limite supérieure de la nouvelle partition. Dans notre cas, la limite supérieure de la nouvelle partition P15 s'élève à 4 000 000. Après insertion de P15, l'ancienne partition P11 est supprimée et seulement 4 partitions sont à nouveau disponibles. Cette procédure est répétée lors du prochain changement de partition : La triple consommation maximale est à nouveau utilisée comme limite supérieure de la nouvelle partition et calculée à partir de la limite supérieure de P15. L'ancienne partition actuelle P12 est alors divisée à 7 000 000 et permet de créer la nouvelle partition P16. La partition P12 est ensuite supprimée. Cette procédure est répétée jusqu'à ce qu'il n'y ait plus aucune partition dans la tranche de numéros supérieure. Dans notre cas, cela nécessite un autre changement de partition (P17). Lorsque la partition ouverte vers le haut (P14) est ensuite supprimée, aucune division de partition n'est exécutée, mais une nouvelle partition ouverte vers le haut (P18) est ajoutée. Le mode Partition-Key Turnaround est ensuite désactivé avant de repasser en mode normal. Les RunID sont alors à nouveau attribués à partir de la plage inférieure. 199 Chapter 7 L'Automation Engine et les systèmes cible Les conditions suivantes s'appliquent alors : l l l Lorsque le mode Partition-Key Turnaround est actif, un changement de partition doit encore être effectué. Les anciennes partitions doivent être supprimées afin de les retirer de tranche de numéros supérieure et de pouvoir rebasculer en mode normal. La consommation RunID doit également être surveillée afin de ne pas dépasser la limite de triple consommation maximale. Si cette limite n'est pas suffisante, un changement de partition préalable doit être exécuté au moment opportun. Serveur SQL Scénario de sortie suivant : Consommation maximale (MAX_ENTRIES): 1 000 000 RunID supérieur actuel attribué : 2.145.000.000 Partitions en ligne : 4 Partition Limite supérieure P1 2.142.483.647 P12 2.143.483.647 P13 2.144.483.647 P14 NULL En définissant la limite inférieure du serveur MS SQL, la partition inférieure P1 est vide. Certes, elle peut être utilisée d'un point de vue technique, mais elle est logiquement vide puisque non utilisée par l'Automation Engine. Elle n'est pas non plus affichée dans la Supervision Système. La partition inférieure logique est donc P12. La dernière partition P14 est ouverte vers le haut. Automation Engine 200 Il est maintenant nécessaire d'effectuer un changement de partition. Etant donné que l'espace disponible entre le RunID supérieur attribué et la limite maximale est inférieur à 3x MAX_ENTRIES, le mode Partition-Key Turnaround est activé. Etant donné qu'une limite inférieure est définie pour le serveur MS SQL, la partition inférieure P1 est divisée à 1 000 000 afin de rajouter une partition dans la plage inférieure. La plage inférieure à 1 000 000 reste attribuée à la partition P1 et donc inutilisée. La partition issue de la division (P15) hérite de la limite supérieure de l'ancienne partition inférieure. P15 suffit de 1 000 000 à 2 142 483 647 d'un point de vue technique. Cette valeur limite ne cessera cependant de varier à la suite des changements de partition suivants. L'ancienne partition P12 est ensuite supprimée et P15 devient automatiquement la limite supérieure. P15 se situe à présent entre 1 000 000 et 2 143 483 647. Lors du changement de partition suivant, la partition 15 est divisée : La consommation maximale réelle (1 000 000) calculée à partir de la limite supérieure de P1 est alors attribuée comme limite supérieure de P15. La limite supérieure de P15 s'élève alors à 2 000 000. L'ancienne partition P13 est alors supprimée. La nouvelle partition P16 se situe entre 2 000 000 et 2 144 483 647 d'un point de vue technique, car elle hérite de la limite supérieure de P13. La situation actuelle se résume comme suit : Après le dernier changement de partition, la consommation maximale réelle est attribuée à P16 et divisée à 3 000 000. La partition P14 est supprimée et la nouvelle partition P17 est désormais ouverte vers le haut. Le mode Partition-Key Turnaround prend fin et nous revenons au mode normal. Les particularités suivantes s'appliquent au serveur MS SQL : 201 Chapter 7 L'Automation Engine et les systèmes cible l veuillez noter que des changements de partition réguliers sont exécutés lorsque vous approchez la valeur maximale de RunId (2.147.483.647). 7.3 L'Automation Engine et GCOS 8 7.3.1 Agent GCOS8 - Prise en charge du Transfert de Fichier L'agent GCOS prend en charge le Transfert de fichiers pour les fichiers avec un format déterminé et des attributs spécifiques. Format de fichier GFRC [GFRC] [UFF séquentiel] [UFF relatif] [UFF indexé] l l l Organisation séquentielle des fichiers Mode d'accès séquentiel Modes de traitement : entrée, sortie ou extension Syntaxe Mode d'entrée : GFRC=code média[,RSZ=longueur de l'enregistrement] Mode de sortie : GFRC=code média[,RSZ=longueur de l'enregistrement][,VLREC_NO/VLREC_SEG] Attribut de fichier (attributs UFAS) Description GFRC=code média Force l'organisation des fichiers au format GFRC séquentiel. Valeurs autorisées pour le code média : l l l l l "00" : aucun Media conversion Record ou aucun Printer slew controls ; "01" : Binary card image ; "02" : BCD card image ; "06" : GFRC Format ASCII (format utilisé par le Time Sharing System) ; "10" : Time Sharing System information Record. RSZ=longueur Nombre maximal de caractères pour les enregistrements lus ou écrits. de Si la plate-forme de destination est GCOS8, la valeur par défaut est 80 pour les l'enregistrement enregistrements non-partitionnés et 84 pour les enregistrements partitionnés. Dans tous les autres cas, les valeurs standard suivantes s'appliquent : l l l l Code média 0 : 16384 Code média 2 : 1272 Code média 6 : 16384 Code média 10 : 1272 Automation Engine VLREC_NO Force l'utilisation d'enregistrements de longueur fixe. VLREC_SEG Longueur d'enregistrement variable, partitionnée en un ou plusieurs blocs physiques. 202 Exemple GFRC=06,RSZ=70 Format de fichier séquentiel UFF [GFRC] [UFF séquentiel] [UFF relatif] [UFF indexé] l l l l Organisation séquentielle des fichiers Mode d'accès séquentiel Modes de traitement : entrée, sortie ou extension par défaut, longueur d'enregistrement variable. Syntaxe Mode d'entrée : UFF_SEQ[,RSZ=longueur de l'enregistrement] Mode de sortie : UFF_SEQ[,RSZ=longueur de l'enregistrement][,VLREC_NO/VLREC_SEG][,CISZ=taille] Attribut de fichier (attributs UFAS) Description UFF_SEQ Force l'organisation des fichiers au format UFF séquentiel. RSZ=longueur Nombre maximal de caractères pour les enregistrements lus ou écrits. La de valeur influence la taille de l'intervalle de contrôle (CI) sélectionnée pour les l'enregistrement Fichiers de sortie. Si la taille maximale de l'enregistrement est de 2000 ou moins, une taille CI de 1K est utilisée. Les tailles d'enregistrement supérieures à 2000 provoquent la création de CI d'une longueur de mot de 4K. La valeur par défaut est 80. VLREC_NO Force l'utilisation d'enregistrements de longueur fixe. VLREC_SEG Longueur d'enregistrement variable, partitionnée en un ou plusieurs blocs physiques. CISZ=taille Définit la taille de l'intervalle de contrôle (en octets). Exemple UFF_SEQ,RSZ=100 203 Chapter 7 L'Automation Engine et les systèmes cible Format de fichier relatif UFF [GFRC] [UFF séquentiel] [UFF relatif] [UFF indexé] l l l l Organisation relative des fichiers Mode d'accès séquentiel ou libre Modes de traitement : entrée, sortie ou extension longueur de l'enregistrement fixe. Syntaxe Mode d'entrée : UFF_REL[,RSZ=longueur de l'enregistrement] Mode de sortie : UFF_REL[,RSZ=longueur de l'enregistrement][,CISZ=taille] Attribut de fichier (attributs UFAS) Description UFF_REL Force l'organisation des fichiers au format UFF relatif. RSZ=longueur de l'enregistrement Nombre maximal de caractères pour les enregistrements lus ou écrits. La valeur par défaut est 80. CISZ=taille Définit la taille de l'intervalle de contrôle (en octets). Exemple UFF_REL,RSZ=120,CISZ=8192 Format de fichier indexé UFF [GFRC] [UFF séquentiel] [UFF relatif] [UFF indexé] l l l l Organisation indexée des fichiers Mode d'accès séquentiel ou libre Modes de traitement : entrée, sortie ou extension longueur de l'enregistrement fixe. Le nom du fichier et celui du fichier d'index doivent être spécifiés en les séparant par un pointvirgule. Syntaxe Mode d'entrée : UFF_IND[,KEY=(doublons,décalage,longueur)][,KNR=numéro de clé][,RSZ=longueur de l'enregistrement] Mode de sortie : UFF_IND,KEY=(doublons,décalage,longueur)[,RSZ=longueur de l'enregistrement][,CISZ=taille] Automation Engine Attribut de fichier (attributs UFAS) Description UFF_IND Force l'organisation des fichiers au format UFF indexé. 204 RSZ=longueur Nombre maximal de caractères pour les enregistrements lus ou écrits. La de valeur par défaut est 80. l'enregistrement KEY= ( doublons , décalage ,longueur) Définit une clé pour les fichiers indexés : l l l Doublons - indique si des clés doubles pour la définition des clés sont permises. Valeurs autorisées : "0" - La clé ne contient pas de doublons. "1" - La clé peut contenir des doublons. Décalage - décalage de la clé en enregistrements (octets). Longueur - longueur de la clé (octets). Il est permis de définir plus d'une clé. La première entrée est la clé primaire. Définissez le paramètre Dupliquer sur 0 pour ne permettre aucune duplication de clé. La deuxième entrée jusqu'à la nième entrée représentent les n-1 clés changeantes. Cet attribut est obligatoire. KNR=numéro de clé Définit la clé qui est utilisée comme clé de référence lors de la recherche de l'enregistrement à lire. Cette entrée correspond à l'élément de tableau (base 1) de la définition des clés dans la structure KEY_DESC, qui est utilisée pour ouvrir le fichier. La valeur par défaut est 1, c'est-à-dire la clé primaire. CISZ=taille Définit la taille de l'intervalle de contrôle (en octets). Exemple UFF_IND,KEY=(0,0,20) Rubriques connexes : Onglet "Transfert de Fichier" : 7.3.2 Surveillance d'une fin anormale de l'Agent Job Dans la description suivante, il faut trouver les inscriptions sur l'Agent GCOS8 et reconnaître la fin anormale d'un Agent Job. L'Agent GCOS8 travaille avec trois informateurs de Job qui lui communiquent le statut des Jobs : 1. Informateur de démarrage (pour le démarrage du Job) 2. Informateur de fin (pour la fin du Job) 3. Informateur de rapport (pour le rapport de Job) L'informateur de rapport est généré par le système RSM, si un tel système est utilisé. Les Jobs de GCOS8 ne sont terminés que lorsque la création du rapport de Job est terminée. Le système RSM 205 Chapter 7 L'Automation Engine et les systèmes cible cherche ce dernier dans le SYSOUT. Une Alerte est ensuite envoyée à l'Agent pour que le rapport de Job puisse être transféré dans le système AE. Comme vous le voyez, les programmes informateurs sont de la plus haute importance pour l'exécution du Job. L'Automation Engine vous donne la possibilité de réagir à une fermeture anormale de l'Agent Job. Le Program Switch Word (PSW) est utilisé pour la notification d'une fin anormale de l'Agent Job. Il s'agit d'une zone mémoire de 36 bits de long. Les bits de 0 à 17 sont réservés au système GCOS. Les autres bits entre 18 et 35 peuvent être utilisés à votre gré. L'Agent Job utilise exactement un bit pour afficher son statut. Le paramètre SW=numéro de bit vous permet de déterminer le bit en question. Auparavant, vous devez définir le bit sélectionné avec l'instruction JCL $SET. Avec cette configuration, l'Agent Job vérifie si le bit se trouve dans le statut ON et le met sur OFF, dès qu'il se termine normalement. S'il reste dans le statut ON, c'est que l'Agent Job s'est terminé anormalement. Assurez-vous que le bit sélectionné n'est pas déjà utilisé pour d'autres applications ! Déroulement Dans les descriptions qui suivent, nous avons utilisé le bit 18. Vous pouvez, cependant, choisir à cette fin n'importe quel bit situé entre 18 et 35 et qui n'est pas encore occupé. Pour activer la surveillance des informateurs de Job, procédez comme suit. Pour l'informateur de démarrage : 1. Ouvrez l'objet Include d'en-tête nommé HEADER.GCOS8. 2. Insérez l'instruction $SET ainsi que le paramètre d'Agent Job SW=. Dans l'illustration, les emplacements décrits sont entourés en rouge pour les mettre en évidence. 3. L'emplacement où le statut du bit est vérifié est également entouré. S'il est défini comme auparavant, l'informateur de démarrage a été terminé anormalement. Le Job est interrompu comme réaction à cela. Vous pouvez, bien entendu, insérer d'autres instructions. Automation Engine Pour l'informateur de fin : 1. Ouvrez l'objet Include de queue nommé TRAILER.GCOS8. 2. La configuration est exactement la même que pour l'informateur de démarrage. Insérez l'instruction $SET ainsi que le paramètre d'Agent Job SW=. Dans l'illustration, les emplacements décrits sont entourés en rouge pour les mettre en évidence. 206 207 Chapter 7 L'Automation Engine et les systèmes cible Pour l'informateur de rapport : Reportez-vous à la documentation RSM pour savoir comment adapter l'informateur de rapport. 7.4 L'Automation Engine et J2EE/JMX 7.4.1 Agent JMX/Java EE Java Management Extensions (JMX) est une technologie qui configure des instruments pour contrôler et surveiller des applications, appareils et réseaux. Automation Engine offre la possibilité d'intégrer des applications Java dans des processus métiers à l'aide d'un Agent pour JMX. La connexion est établie via un serveur MBean grâce auquel vous pouvez accéder aux MBeans à l'aide de fonctions. En principe, on distingue deux méthodes d'établissement de la connexion. L'Agent JMX/Java EE peut s'exécuter d'un côté comme application web au sein de la Java Virtual Machine et accéder au serveur MBean de la même machine. Automation Engine 208 D'un autre côté, il est possible de configurer un Job de manière à ce qu'il puisse atteindre les serveurs MBean se trouvant sur d'autres machines à l'aide du JMX Remote API (JSR 160). Dans l'objet Job, il est possible de spécifier l'URL du serveur MBean. Les machines des serveurs MBean doivent dans ce cas-là disposer d'un serveur de connexion. Dans l'onglet Hôte des Jobs JMX, il est possible de paramétrer la connexion au serveur MBean. Si l'Agent JMX pour SAP est utilisé, il crée en plus un fichier log au format SAP. Il l'enregistre automatiquement dans le répertoire d'installation de l'Agent, dans le sous-dossier "log". Vous pouvez tout simplement poursuivre le traitement de ce fichier avec les outils SAP. Rubriques connexes : UC4-JCL pour JMX 7.4.2 Création de MBeans à partir des services web Mode d'emploi pour la création de MBeans sur la base de services web. 209 Chapter 7 L'Automation Engine et les systèmes cible Ce mode d'emploi présuppose des connaissances de Java et des services web. Attention : L'Automation Engine n'offre aucune prise en charge des services web, ni des MBeans ! Généralités Automation Engine prend en charge les services Web via l'utilisation de MBeans avec l'Agent JMX. De nombreux éditeurs offrent la plupart du temps, au lieu de MBeans, les services web qui permettent d'accéder à leurs applications. Ce mode d'emploi vous montre, étape par étape, comment créer un MBean à partir d'un service web existant. Nous utilisons comme exemple le service web "CurrencyConvertor", qui met à disposition Generic Objects Technologies Ltd. Il offre les derniers cours de conversion du change. Il vous faut : l l l un Agent JMX un accès au service web (WDSL, URL, paramètres) Apache Axis (disponible gratuitement) Attention : il n'est possible de créer des MBeans que pour les services web synchrones ! Les services web asynchrones sont d'une utilisation bien plus complexe et nécessitent une manipulation individuelle. Testez exhaustivement le MBean créé ! Installation 1. l Téléchargez les fichiers d'Apache Axis de http://ws.apache.org/axis. Installez Apache Axis comme indiqué dans la documentation. 2. l Configurer Apache Axis Générer les classes Java pour l'exécution des services web Démarrez l'outil "WSDL2Java" d'Apache Axis. Il s'agit d'un générateur-enveloppeur de services web. Vous pouvez, par exemple, utiliser Eclipse comme environnement de développement. Saisissez l'adresse WSDL "http://www.webservicex.com/CurrencyConvertor.asmx?wsdl" comme paramètre de saisie. Automation Engine l Les classes Java suivantes sont alors créées : 3. l l 210 Créer un MBean pour l'utilisation des classes Java Au cours de cette étape, vous créez un MBean qui utilise les classes Java générées pour exécuter le service web via JMX. Quelques remarques introductives sur les directives de programmation de MBeans : l Un modèle MBean standard se compose d'une interface et d'une classe qui le mettent en œuvre. l L'interface possède le même nom que la classe plus le suffixe "MBean". Dans l'exemple suivant, la classe s'appelle "Converter" et l'interface "ConverterMBean.java". Créez les deux fichiers, par exemple dans un package nommé "com.uc4.ws". Le code complet pour l'interface et la classe est le suivant : ConverterMBean.java : package com.uc4.ws; import java.rmi.RemoteException; 211 Chapter 7 L'Automation Engine et les systèmes cible import javax.xml.rpc.ServiceException; public interface ConverterMBean { double convertCurrency(String fromCurrency, String toCurrency) throws ServiceException, RemoteException, IllegalArgumentException; } Converter.java : package com.uc4.ws; import import import import import java.rmi.RemoteException; javax.xml.rpc.ServiceException; NET.webserviceX.www.Currency; NET.webserviceX.www.CurrencyConvertorLocator; NET.webserviceX.www.CurrencyConvertorSoap; public class Converter implements ConverterMBean { public double convertCurrency(String fromCurrency, String toCurrency) throws ServiceException, RemoteException, IllegalArgumentException { CurrencyConvertorLocator locator = new CurrencyConvertorLocator (); CurrencyConvertorSoap soap = locator.getCurrencyConvertorSoap(); return soap.conversionRate( Currency.fromString(fromCurrency), Currency.fromString(toCurrency)); } } La méthode "convertCurrency" contient l'exécution du service web et utilise les classes Java générées. Elle crée une instance du localisateur de service et appelle la méthode "getCurrencyConvertorSoap" pour recevoir une souche SOAP. Ce modèle (localisateursouche) est décrit dans la documentation d'Apache Axis. La souche procède à l'appel du service web. Les paramètres sont convertis de "java.lang.String" à des objets "NET.webserviceX.www.Currency", étant donné que seuls des types de données simples peuvent être utilisés dans MBeans. Le résultat, c'est-à-dire le cours du change actuel, est renvoyé. 4. l Créer un fichier JAR pour le MBean et les classes Java Créez, à l'aide d'un script Ant, un fichier JAR commun pour les deux fichiers du MBean et des classes Java générées. Dans l'exemple qui suit, un fichier nommé "exampleMBean.jar" est généré. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <project name="uc4" default="exampleMBean.jar"> <property name="classes_dir" value="bin" /> <target name="exampleMBean.jar" description="Web Service MBean"> <jar jarfile="exampleMBean.jar" basedir="${classes_dir}"/> </target> </project> Automation Engine 212 Dans un environnement de développement comme Eclipse, il ne vous faut pas de script Ant et vous pouvez créer le fichier JAR directement à l'aide d'une commande de menu. 5. l Démarrer l'Agent JMX avec le MBean Enregistrez le fichier JAR créé ainsi que les fichiers JAR d'Apache Axis dans le chemin de classe de l'Agent JMX. L'appel pour démarrer l'Agent JMX est le suivant sous Windows : Java -cp axis.jar;commons-discovery-0.2.jar;commons-logging1.0.4.jar; wsdl4j-1.5.1.jar;saaj.jar;exampleMBean.jar;ucxjjmx.jar;jaxrpc.jar com/uc4/ex/jmx/UCXJMX Sous UNIX, le point-virgule ";" doit être remplacé par un deux-points ":". L'Agent JMX ne requiert aucun Serveur d'application et peut s'exécuter de manière autonome. Une implémentation JMX est cependant nécessaire à l'exécution. Pour garantir cela, il suffit d'installer Java version 5. Cette version contient les packages JMX nécessaires de version 1.2. Utilisation 1. l l l Créer le Job JMX Identifiez-vous au système AE à l'aide de l'Interface Utilisateur. Créez un Job JMX et sélectionnez, dans son onglet Attributs, l'Agent JMX qui contient le MBean. N'oubliez pas non plus de sélectionner un objet Login adapté. Allez dans l'onglet Forme. Cliquez sur le bouton pour insérer une nouvelle ligne. Pour que le MBean puisse être utilisé, il doit tout d'abord être enregistré auprès du Serveur MBean. Dans la catégorie "Serveur Mbean", sélectionnez donc la fonction "Enregistrer un Mbean" à l'aide d'un double-clic. La fonction JMX_CREATE_MBEAN crée une instance du MBean et l'enregistre dans le Serveur MBean local. l l Dans le champ "Classe", saisissez le nom de classe complet du MBean. Dans notre exemple, il s'agit de "com.uc4.ws.Converter". Dans le champ "Nom d'objet", vous devez entrer la désignation devant être assignée au MBean. Cette désignation doit être unique dans le Serveur MBean. La désignation se compose de deux parties séparées par deux-points ":". La première partie indique le nom de domaine et la seconde les propriétés-clés. Dans notre exemple, il s'agit de "com.uc4:name=CurrencyConverter". Le nom de domaine peut contenir tout caractère sauf ":", "*" et "?". Pour éviter les collisions entre MBeans et d'autres éditeurs, il est recommandé d'utiliser l'inverse du nom DNS de votre société pour le nom de domaine. Les propriétés clés permettent d'assigner au MBean un nom unique dans le domaine. Elles sont séparées par une virgule ",". Une propriété clé se compose comme suit : propriété=valeur. La propriété ne doit correspondre à aucun attribut du MBean. Le nombre de propriétés clés n'est pas limité et l'ordre n'a pas non plus d'importance. Une propriété clé peut contenir tout caractère sauf des guillemets, des virgules, ":", "=", "*" et "?". Saisissez au moins une propriété clé. 213 Chapter 7 L'Automation Engine et les systèmes cible l l Activez le paramètre "Termine normalement si déjà enregistré". Enregistrez le Job JMX et exécutez-le. Cela a pour effet d'enregistrer le MBean dans le Serveur MBean. Il s'affiche désormais dans le navigateur MBean, comme on peut le voir à l'étape suivante. 2. l Utiliser le MBean Il est possible d'utiliser le MBean grâce aux opérations qu'il offre. Cliquez sur le bouton dans l'onglet Forme du Job JMX pour insérer une nouvelle ligne. Dans la catégorie "Opérations", sélectionnez la fonction "Appeler une Opération" en effectuant un double-clic. La fonction JMX_INVOKE exécute une opération d'un MBean. l l l l l Cliquez sur le bouton "Afficher..." pour ouvrir le navigateur MBean. Sélectionnez, à gauche, le MBean "CurrencyConverter". Le tableau de droite affiche les opérations JMX qui sont à la disposition du MBean. Mettez en surbrillance l'opération "convertCurrency" et cliquez sur OK. Les champs "Nom Mbean" et "Opération" sont remplis automatiquement avec la valeur correcte. Saisissez, dans le champ "Paramètres", deux codes de monnaie séparés par une virgule. "USD,EUR" a par exemple pour effet la fourniture par le MBean du cours du change du dollar en euro. Exécutez le Job JMX. Le cours du change est généré dans le rapport. Lisez le rapport avec la fonction script PREP_PROCESS_REPORT pour utiliser les valeurs fournies par les MBeans dans d'autres traitements ultérieurs. Les Exemples contiennent la description des étapes requises. Automation Engine 214 7.4.3 Agent Java EE/JMX et IBM WebSphere L'Agent Java EE/JMX peut être utilisé de plusieurs façons. Déployé dans IBM WebSphere : 1. Avec SOAP ou 2. RMI Rubriques connexes : Configuration de l'Agent pour Java EE/JMX (IBM WebSphere) avec SOAP Connector Configuration de l'Agent pour Java EE/JMX (IBM WebSphere) avec RMI Connector 7.4.4 Envoi de messages SOAP à l'aide de MBeans Voici un exemple de message SOAP pour consulter les cours des actions. <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1:getQuote soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:xmethods-delayed-quotes"> <symbol xsi:type="xsd:string">IBM</symbol> </ns1:getQuote></soapenv:Body> </soapenv:Envelope> Le message SOAP doit être envoyé avec l'action SOAP suivante : "urn:xmethods-delayedquotes#getQuote" L'URL du service web est : http://services.xmethods.net/soap Un MBean peut être utilisé pour l'envoi de ce message SOAP. Le MBean nécessite au moins Java version 5. Ajoutez tout d'abord le MBean au chemin de classe de l'Agent : 1. Copiez le fichier soapmbean.jar dans le répertoire de l'Agent JMX. 2. Démarrez l'Agent JMX avec le fichier soapmbean.jar dans le chemin de classe. java -cp soapmbean.jar;ucxjjmx.jar com/uc4/ex/jmx/UCXJMX Créez un Job JMX et ajoutez la ligne suivante dans l'onglet "Script" : JMX_CREATE_MBEAN EXISTS=»IGNORE»,CLASSNAME=»com.automic.ex.jmx.soap.SOAP",NAME="automic .com:name=SOAP" Démarrez le Job. Dans le navigateur MBean, un MBean du nom de "SOAP" est affiché. Il faut ensuite définir le JCL pour l'utilisation du MBean SOAP : JMX_CREATE_MBEAN EXISTS="IGNORE",CLASSNAME="com.uc4.ex.jmx.soap.SOAP",NAME="automic.com :name=SOAP" JMX_COMPOSITE_ADD KEY="1",VALUE='<?xml version="1.0" encoding="UTF8"?>',NAME="s" JMX_COMPOSITE_ADD KEY="2",VALUE='<soapenv:Envelope 215 Chapter 7 L'Automation Engine et les systèmes cible xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ',NAME="s" JMX_COMPOSITE_ADD KEY="3",VALUE='xmlns:xsd="http://www.w3.org/2001/XMLSchema" ',NAME="s" JMX_COMPOSITE_ADD KEY="4",VALUE='xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">',NAME="s" JMX_COMPOSITE_ADD KEY="5",VALUE="<soapenv:Body><ns1:getQuote ",NAME="s" JMX_COMPOSITE_ADD KEY="6",VALUE='soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/ encoding/" ',NAME="s" JMX_COMPOSITE_ADD KEY="7",VALUE='xmlns:ns1="urn:xmethods-delayedquotes">',NAME="s" JMX_COMPOSITE_ADD KEY="8",VALUE='<symbol xsi:type="xsd:string">IBM</symbol>',NAME="s" JMX_COMPOSITE_ADD KEY="9",VALUE="</ns1:getQuote></soapenv:Body></soapenv:Envelope>",NAME ="s" JMX_INVOKE OPERATIONNAME=»sendSOAP»,MBEAN=»automic.com:name=SOAP",PARAMS='s,"urn: xmethods-delayed-quotes#getQuote",http://services.xmethods.net/soap' La première ligne de script charge le MBean s'il ne l'a pas encore été. Les instructions JMX_ COMPOSITE_ADD contiennent le message SOAP ligne par ligne. Le paramètre KEY= contient les numéros de ligne. Une fois le message SOAP assemblé, il est transmis comme premier paramètre à l'opération "sendSOAP" (JMX_INVOKE). Le deuxième paramètre contient l'action SOAP et le troisième paramètre contient l'URL à laquelle la requête SOAP doit être envoyée. Exécutez le Job. Le rapport de Job affiche le message réponse. Vous pouvez utiliser l'instruction XPath pour lire une seule valeur. Pour ce faire, insérez une nouvelle ligne de script avec l'élément de script JMX_COMPOSITE_ADD contenant pour KEY= l'instruction "XPATH" et pour VALUE= la valeur recherchée (voir la deuxième ligne du script). Le script ressemble alors à ce qui suit : JMX_CREATE_MBEAN EXISTS=»IGNORE»,CLASSNAME=»com.uc4.ex.jmx.soap.SOAP»,NAME=»automic.com :name=SOAP" JMX_COMPOSITE_ADD KEY="XPATH",VALUE="//Result",NAME="s" JMX_COMPOSITE_ADD KEY="1",VALUE='<?xml version="1.0" encoding="UTF8"?>',NAME="s" JMX_COMPOSITE_ADD KEY="2",VALUE='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ',NAME="s" JMX_COMPOSITE_ADD KEY="3",VALUE='xmlns:xsd="http://www.w3.org/2001/XMLSchema" ',NAME="s" JMX_COMPOSITE_ADD KEY="4",VALUE='xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">',NAME="s" JMX_COMPOSITE_ADD KEY="5",VALUE="<soapenv:Body><ns1:getQuote ",NAME="s" JMX_COMPOSITE_ADD KEY="6",VALUE='soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/ encoding/" ',NAME="s" JMX_COMPOSITE_ADD KEY="7",VALUE='xmlns:ns1="urn:xmethods-delayedquotes">',NAME="s" JMX_COMPOSITE_ADD KEY="8",VALUE='<symbol xsi:type="xsd:string">IBM</symbol>',NAME="s" JMX_COMPOSITE_ADD KEY="9",VALUE="</ns1:getQuote></soapenv:Body></soapenv:Envelope>",NAME ="s" JMX_INVOKE Automation Engine 216 OPERATIONNAME=»sendSOAP»,MBEAN=»automic.com:name=SOAP",PARAMS='s,"urn: xmethods-delayed-quotes#getQuote",http://services.xmethods.net/soap' Sur la base du script d'exemple, le rapport de Job affiche maintenant une valeur. Vous pouvez également compléter des parties du message SOAP à l'aide de Variables de script. Dans l'exemple suivant, une valeur est lue avec un masque :READ : Onglet Pré-script : :READ &SYMBOL#,"IBM,SAP,ORCL","Please choose one","IBM" Onglet Script : La Variable de script &SYMBOL# est utilisée à la ligne 10 : JMX_CREATE_MBEAN EXISTS=»IGNORE»,CLASSNAME=»com.uc4.ex.jmx.soap.SOAP»,NAME=»automic.com :name=SOAP" JMX_COMPOSITE_ADD KEY="XPATH",VALUE="//Result",NAME="s" JMX_COMPOSITE_ADD KEY="1",VALUE='<?xml version="1.0" encoding="UTF8"?>',NAME="s" JMX_COMPOSITE_ADD KEY="2",VALUE='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ',NAME="s" JMX_COMPOSITE_ADD KEY="3",VALUE='xmlns:xsd="http://www.w3.org/2001/XMLSchema" ',NAME="s" JMX_COMPOSITE_ADD KEY="4",VALUE='xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">',NAME="s" JMX_COMPOSITE_ADD KEY="5",VALUE="<soapenv:Body><ns1:getQuote ",NAME="s" JMX_COMPOSITE_ADD KEY="6",VALUE='soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/ encoding/" ',NAME="s" JMX_COMPOSITE_ADD KEY="7",VALUE='xmlns:ns1="urn:xmethods-delayedquotes">',NAME="s" JMX_COMPOSITE_ADD KEY="8",VALUE='<symbol xsi:type="xsd:string">&SYMBOL#</symbol>',NAME="s" JMX_COMPOSITE_ADD KEY="9",VALUE="</ns1:getQuote></soapenv:Body></soapenv:Envelope>",NAME ="s" JMX_INVOKE OPERATIONNAME=»sendSOAP»,MBEAN=»automic.com:name=SOAP",PARAMS='s,"urn: xmethods-delayed-quotes#getQuote",http://services.xmethods.net/soap' 7.5 L'Automation Engine et Micro Focus JES 7.5.1 Jobs dans Micro Focus JES Un composant du Serveur Micro Focus Enterprise (MF ES) est l'option de transaction de grand système (MTO). Ce moteur JES permet d'exécuter des Jobs z/OS (Jobs JES) de manière inchangée sous Windows et Unix. Automation Engine offre la possibilité de démarrer les Jobs dans Micro Focus JES et d'exécuter ainsi les fichiers JCL. Ceux-ci sont enregistrés dans le système de fichiers du Serveur. Le démarrage de Job se produit à l'aide du programme CLI CASSUB. 217 Chapter 7 L'Automation Engine et les systèmes cible Un Agent pour Windows exécute les Jobs dans MF JES. Création d'un Job 1. Cliquez sur le bouton de la barre d'outils. Une fenêtre répertoriant tous les types d'objet disponibles s'ouvre. Les objets pour chacune des plateformes y sont également affichés. Choisissez JOBS.WIN. 2. Donnez à l'objet Job un nom approprié et ouvrez-le. Allez dans l'onglet Attributs. 3. Un Agent Windows est responsable de l'exécution du Job. Pour "Host", sélectionnez l'Agent qui s'exécute sur l'ordinateur sur lequel se trouve MF ES. 4. L'Agent a besoin des informations de connexion pour l'exécution du Job. Celles-ci sont enregistrées sous la forme d'un objet Login. Pour "Login", sélectionnez le Login correspondant. 5. Allez dans l'onglet "Windows". Le rapport de Job créé peut être enregistré dans la base de données ou en tant que fichier distinct. Utilisez les options en haut à gauche de l'onglet pour déterminer comment doit être traité le rapport de Job. 6. Pour le type, sélectionnez impérativement l'option COM. 7. Pour la commande, saisissez le chemin du programme CASSUB. Utilisez les paramètres de démarrage -r et -j pour indiquer l'environnement du Serveur JCL et le chemin complet du fichier JCL. Le nom de région du Serveur JCL est la désignation du service MF MTO. Cette valeur est disponible dans MF Enterprise Server Administration. 8. Enregistrez et fermez l'objet Job une fois la configuration terminée. L'objet Job peut désormais être associé à votre traitement. Automation Engine 218 Architecture Le démarrage de Job via CASSUB permet de démarrer le Job dans le Serveur Micro Focus Enterprise. Lors du démarrage et pendant l'exécution, un exit destiné à l'écriture des fichiers de synchronisation pour l'Agent (fichiers *.log-, *.inf- et *.can) est exécuté. Variables d'Agent dans Micro Focus JES Les Variables d'environnement suivantes sont disponibles dans l'environnement utilisateur sous lequel le Serveur JES est démarré : Variable d'environnement Description UC4_MF_JES_ OUTPUT= Chemin dans lequel l'exit doit écrire les fichiers de contrôle pour l'Agent ou communique avec l'Agent (*.log, *.inf, *.can) Attention : la Variable_MF_JES_OUTPUT ne contient qu'un seul chemin qui est défini par un antislash "\" final. Sinon, la communication entre l'Agent et l'exit ne fonctionne pas. Exemples : Configuration correcte : UC_MF_JES_OUTPUT = c:\ae\Agent\Microfocus\temp\ Configuration incorrecte : UC_MF_JES_OUTPUT = c:\ae\Agent\Microfocus\temp Configuration incorrecte : UC_MF_JES_OUTPUT = c:\ae\temp\;c:\temp 219 Chapter 7 L'Automation Engine et les systèmes cible UC4_MF_TRACE= Trace écrite par l'exit avec Open Extend dans le fichier de trace indiqué dans l'Automation Engine_MF_TRACE_FILE Valeurs possibles : Y = l'exit écrit une trace N = l'exit n'écrit aucune trace UC4_MF_TRACE_ FILE= Nom de fichier complet du fichier de trace UC4_MF_DELAY= Délai d'attente en secondes de l'EXIT quand le fichier *.INF est introuvable. Attention : la valeur par défaut est de 500 ms ! Il est important de régler ce paramètre au minimum, parce qu'il n'agit pas seulement sur les Jobs démarrés avec l'Automation Engine, mais sur TOUS les Jobs JES. S'il y a dans l'Automation Engine des Jobs ne se terminant pas, l'exit est si rapide que l'Agent n'a pas le temps de créer le fichier *.INF après le démarrage de Job. Celui-ci peut cependant être créé après le démarrage de Job parce que seul le démarrage de Job donne l'ID Job. Il est recommandé de définir la valeur à 100. Exemple de fichier de trace d'exit JES 2007.12.14/13:53:58.95->MFJUXIT ???????? 2007.12.14/13:53:58.95->MFJUXIT 2007.12.14/13:53:58.95->MFJUXIT 2007.12.14/13:53:58.95->MFJUXIT 2007.12.14/13:53:58.95->MFJUXIT 000005000 2007.12.14/13:53:59.11->MFJUXIT JCLTEST 2007.12.14/13:53:59.17->MFJUXIT JCLTEST 2007.12.14/13:53:59.20->MFJUXIT JCLTEST 2007.12.14/13:53:59.20->MFJUXIT JCLTEST 2007.12.14/13:53:59.23->MFJUXIT JCLTEST 2007.12.14/13:53:59.23->MFJUXIT JCLTEST 2007.12.14/13:53:59.25->MFJUXIT JCLTEST 2007.12.14/13:53:59.26->MFJUXIT JCLTEST 2007.12.14/13:53:59.26->MFJUXIT JCLTEST 2007.12.14/13:53:59.26->MFJUXIT JCLTEST 2007.12.14/13:53:59.30->MFJUXIT JCLTEST 2007.12.14/13:53:59.31->MFJUXIT EC = 01 Jobnum = 01406 Jobname = UC4_MF_JES_OUTPUT = C:\ae\ UC4_MF_TRACE_FILE = c:\trc.txt UC4_MF_DELAY = 5000 UC4_MF_DELAY (converted to number) = EC = 25 Jobnum = 01406 Jobname = EC = 03 Jobnum = 01406 Jobname = EC = 08 Jobnum = 01406 Jobname = EC = 09 Jobnum = 01406 Jobname = EC = 10 Jobnum = 01406 Jobname = EC = 08 Jobnum = 01406 Jobname = EC = 09 Jobnum = 01406 Jobname = EC = 10 Jobnum = 01406 Jobname = EC = 08 Jobnum = 01406 Jobname = EC = 09 Jobnum = 01406 Jobname = EC = 10 Jobnum = 01406 Jobname = EC = 08 Jobnum = 01406 Jobname = Automation Engine JCLTEST 2007.12.14/13:53:59.31->MFJUXIT JCLTEST 2007.12.14/13:53:59.33->MFJUXIT JCLTEST 2007.12.14/13:53:59.34->MFJUXIT JCLTEST 2007.12.14/13:53:59.34->MFJUXIT ms 2007.12.14/13:54:05.26->MFJUXIT JCLTEST 220 EC = 09 Jobnum = 01406 Jobname = EC = 10 Jobnum = 01406 Jobname = EC = 05 Jobnum = 01406 Jobname = inf-file not found waiting 000005000 EC = 02 Jobnum = 01406 Jobname = Le Serveur Micro Focus Enterprise est destiné à la gestion, les Jobs sont gérés, démarrés et arrêtés dans le système cible JES. L'exemple suivant décrit le démarrage d'un Job JES en mode batch sans Agent, CASSUB est posé manuellement : C:\Documents and Settings\Ni\My Documents\Micro Focus\Net Express 5.0\WORKAREA>cassub -lUC4 -jC:\es-jcldemo\jclbatch.jcl JCLCM0901I JOB01407 ???????? Event-Job-ready action is: 0 (Continue). 12:59:10 JCLCM0925I JOB01407 JCLTEST Event-job-stmt-info action is: 0 (Continue). 12:59 :10 JCLCM0187I JOB01407 JCLTEST JOB SUBMITTED (JOBNAME=JCLTEST,JOBNUM=01407) 12:59 :10 JCLCM0180I JOB01407 JCLTEST Job ready for execution. 12:59:10 Processed "C:\es-jcldemo\jclbatch.jcl" C:\Documents and Settings\Ni\My Documents\Micro Focus\Net Express 5.0\WORKAREA> L'exit crée le fichier *.inf pour l'Agent, celui-ci le vérifie et l'écrit dans le fichier log. Cela ne se produit pas lorsqu'un Job est démarré en mode batch. 221 Chapter 7 L'Automation Engine et les systèmes cible 7.6 L'Automation Engine et MPE 7.6.1 Agent – Interaction entre l'Automation Engine et MPE L'Agent MPE interagit avec le système AE via une interface TCP/IP. Il dispose des fonctionnalités suivantes : l l l traitement de Jobs, exécution de Transferts de Fichiers, Traitement d'Evènements Traitement de Jobs Dans l'Automation Engine, les Jobs sont définis et gérés comme des objets à l'aide d'onglets. Le JCL se trouve dans l'onglet Script. Il peut être muni d'une logique complexe à l'aide de scripts de l'Automation Engine. Les caractères "!" et ":" du script AE introduisant des lignes de commentaires et des instructions de script, le caractère "#" peut être utilisé à la place comme caractère Prompt dans JCL. Les lignes JCL peuvent également commencer avec l'instruction de script :DATA. Les caractères "!" et ":" peuvent ainsi être conservés comme caractères Prompt. Rubrique connexe: Manuel Utilisateur – Job et Job – Exécution. Un Job est démarré dans l'Automation Engine à l'aide de mécanismes de contrôle comme les Workflows ou les Schedules, ou encore manuellement. Un Job exécutable est alors généré dans Le Automation Engine et transféré à l'Agent MPE par Transfert de Fichier. Rubriques connexes : Interne AE – Exécution des objets L'Agent MPE lit le Job et le transfère à la file d'attente MPE. Le Job annonce à l'Agent le début et la fin de l'exécution, lequel transmet à son tour ces informations au Automation Engine. L'Agent surveille à intervalles réguliers le statut du Job. Si un Job est perdu (par Fatal Error, ABORTJOB), ce mécanisme permet de constater la fin. Le code retour du Job est disponible dans l'Automation Engine. Le rapport de Job ($STDLIST) est enregistré dans le fichier indiqué par Le Automation Engine. Si cela est défini dans le Job, l'Agent transfère le rapport à l'Automation Engine qui l'enregistre à son tour dans la base de données. L'Agent copie le rapport de Job à partir du spooler. Il est donc nécessaire d'utiliser une OUTCLASS avec la priorité 1. Exécution de Transferts de Fichiers Dans l'Automation Engine, les Transferts de Fichiers sont définis et gérés comme des objets à l'aide d'onglets. Ils sont exécutés avec la conversion de caractères qui y figure, par exemple "UC_ CODE". Rubriques connexes : Manuel de l'utilisateur – Transfert de Fichier Automation Engine 222 Traitement d'Evènements Les Evènements sont définis et gérés dans l'Automation Engine en tant qu'objets avec différents onglets. Actuellement, seuls les Evènements du type "Système de fichiers" sont pris en charge. Rubriques connexes: Manuel de l'Utilisateur – Evènement 7.7 L'Automation Engine et NSK 7.7.1 Agent - Interaction entre l'Automation Engine et NSK L'Agent NSK interagit avec le système AE via une interface TCP/IP. L'Agent NSK dispose des fonctionnalités suivantes : l l l traitement de Jobs, exécution de Transferts de Fichiers, CallAPI Traitement de Jobs Dans l'Automation Engine, les Jobs sont définis et gérés comme des objets à l'aide d'onglets. Les commandes et instructions sont définies dans l'onglet Script. Ils peuvent être munis d'une logique complexe à l'aide de scripts de l'Automation Engine. Rubriques connexes : Manuel Utilisateur – Job et Job – Exécution. Les Jobs NSK s'organisent en plusieurs sous-types en fonction du type de commande (Guardian, NetBatch et OSS). Un Job est démarré dans l'Automation Engine à l'aide de mécanismes de contrôle comme les Workflows ou les Schedules, ou encore manuellement. Un Job exécutable est alors généré dans Le Automation Engine et transféré à l'Agent NSK par Transfert de Fichier. Rubriques connexes : Interne AE – Exécution des objets Les Jobs sont exécutés avec les informations logiques (nom de Groupe.nom Utilisateur) qui ont été indiquées dans l'objet Login que vous avez sélectionné dans l'onglet Attributs. Le tableau indique à quel moment il est nécessaire de définir des mots de passe dans l'objet Login. ID Utilisateur de l'Agent Entrée dans l'objet Login GROUP.USER Mot de passe requis lorsque le Job fonctionne avec un autre nom de Groupe.nom Utilisateur. GROUP.255 Mot de passe requis lorsque le Job fonctionne avec un autre nom de Groupe. 255.255 Aucun mot de passe requis. Configuration recommandée: 223 Chapter 7 L'Automation Engine et les systèmes cible l l l l Lancer l'Agent NSK avec l'ID Utilisateur. SUPER.SUPER n'est généralement pas requis. L'Utilisateur approprié doit être associé aux exigences de fonctionnement. Définir le nom de Groupe.nom Utilisateur dans les objets Login. Définir le paramètre logon=1 dans le fichier INI de l'Agent NSK. Définir l'Utilisateur par défaut ERP_LOGIN dans le Client 0000. Il s'agit alors de l'Utilisateur standard. Vous devez utiliser une combinaison ID Utilisateur/mot de passe valide. Un Utilisateur avec très peu de droits doit pourtant pouvoir accéder à l'application. Cet Utilisateur dispose uniquement de la fonction de reprise des processus TACL planifiés avec très peu de droits (et ainsi un risque d'erreur limité). Le Job annonce à l'Agent le début et la fin de l'exécution, lequel transmet à son tour ces informations au Automation Engine. Le Code Retour du Job est disponible dans l'Automation Engine, ce qui peut être réalisé par le biais de l'en-tête et du pied de page. Le contenu de l'en-tête et du pied de page est ajouté automatiquement au script défini pour le Job. La Variable "RETCODE" est définie dans l'en-tête propre à NSK. Le contenu de cette Variable est transmis au Automation Engine à la fin du Job. Cette valeur est le Code Retour du Job. Elle peut servir à définir les dépendances entre les différents Jobs dans un Workflow. Pour configurer le paramètre "RETCODE" sur "1" par exemple, lorsqu'une erreur de syntaxe survient dans le script, il est possible d'utiliser les en-têtes et pieds de page suivants définis par l'utilisateur: HEADER.NSK.USER.HEAD, TRAILER.NSK.USER.HEAD et RESTART.NSK L'Agent crée des fichiers automatiquement sur l'ordinateur pour les rapports de Jobs (si cette option est activée pour l'objet) et les Jobs. Leur désignation est formée comme suit : Désignation Fichier de Job <UC_EX_PATH_TEMP>J<RunID> Fichier de rapport de Job <UC_EX_PATH_JOBREPORT>O<RunID> Pour UC_EX_PATH_TEMP et UC_EX_PATH_JOBREPORT, il s'agit de Variables d'Agent. Le RunID est représenté sous forme de séquence comportant 7 à 10 caractères. Vous pouvez spécifier cette séquence lors de la recherche de statistique et également la convertir avec la fonction de script ALPHA2RUNNR pour obtenir le chiffre correspondant. Exécution de Transferts de Fichiers Dans l'Automation Engine, les Transferts de Fichiers sont définis et gérés comme des objets à l'aide d'onglets. Ils sont exécutés avec la conversion de caractères qui y figure, par exemple "UC_ CODE". Particularités: l'Agent NSK développe chaque ordre de Transfert de Fichiers via un processus qui lui est propre lorsque le nouveau protocole de Transfert de Fichiers est utilisé. Pour activer cette fonctionnalité, l'Agent dispose d'un port d'écoute supplémentaire doté du numéro suivant le plus élevé par rapport au port de l'Agent. Il est également possible d'indiquer des attributs supplémentaires dans l'objet Transfert de Fichier pour le fichier cible (objectifs – attributs) ou de reprendre les attributs du fichier source (option "Conserver les attributs originaux de fichier"). Vous pouvez également remplacer les attributs originaux par des indications supplémentaires dans l'objet Transfert de Fichier. Les attributs de fichiers NSK suivants sont pris en charge: Attribut Description Automation Engine CREATE_ OPTS 224 Options de création de fichier, masque de bits (<15> est le bit le plus petit d'un mot de 2 octets): <10> Refresh EOF – Le libellé de fichier est immédiatement écrit sur le disque dur <11> Index compression – Comprimer des entrées dans un bloc d'index à partir de fichiers séquencés par clés. La valeur 0 doit être utilisée pour d'autres types de fichiers <12> Data compression – Comprimer la clé des entrées des blocs de données à partir des fichiers séquencés par clés. Valeur 0 pour d'autres types de fichiers. <13> Audit compression – Comprimer les données de contrôle des fichiers vérifiés (fichiers audités). <14> Audited – Vérification du fichier dans le sous-système Transaction Management Facility (TMF). Cette option doit être configurée sur 0 pour les systèmes ne disposant pas du sous-système TMF. <15> Odd unstructured – Nombre de transferts E/S de fichiers non structurés. Si cette option n'est pas activée, les Transferts sont arrondis à une limite d'octets précise. Cette option doit être configurée sur 0 pour les autres types de fichiers. File format Cet attribut est automatiquement défini en fonction de la taille actuelle du fichier 1 – pour les fichiers inférieurs à 2Go, 2 – tous les autres fichiers FILECODE Non pertinent lorsque les transferts ne concernent que des fichiers textes et des fichiers binaires FILETYPE 0 – non structuré 1 – relatif 2 – séquencé par entrée 3 – séquencé par clé Non pertinent lorsque les transferts ne concernent que des fichiers textes et des fichiers binaires KEY_LEN Non pertinent lorsque les transferts ne concernent que des fichiers textes et des fichiers binaires KEY_ OFFS Non pertinent lorsque les transferts ne concernent que des fichiers textes et des fichiers binaires MAXEXT Nombre maximum d'extensions pour le fichier. PEXT Nombre de pages 2k pour l'extension primaire RECLEN Non pertinent lorsque les transferts ne concernent que des fichiers textes et des fichiers binaires SEXT Nombre de pages 2k pour les extensions secondaires Voir : Manuel de l'utilisateur – Transfert de Fichier CallAPI Il permet d'exécuter des programmes dans l'Automation Engine à partir de programmes tiers. Le CallAPI peut être utilisé sans programmation préalable grâce à un utilitaire appelable par exemple à partir de la ligne de commande du système d'exploitation, d'un script ou d'un Job. Rubriques connexes : Manuel de l'utilisateur – CallAPI Interne AE – Architecture de l'agent AE pour HP NonStop Server 225 Chapter 7 L'Automation Engine et les systèmes cible 7.7.2 Exécutions de Jobs sur NSK L'Automation Engine prend entièrement en charge les systèmes HP NonStop. Il est ainsi possible d'effectuer des traitements dans les domaines suivants : l l l Guardian - Commandes TACL OSS - Commandes UNIX (osh Shell) NetBatch - Scripts NBEXEC Etant donné que les commandes sont différentes, les Jobs NSK sont organisés en 3 types. Dans l'onglet "Guardian/NKS" de l'objet Job, il faut sélectionner le type. Il peut être lu avec la fonction script GET_ATT. Les lignes de Script NBEXEC commencent exactement comme le Script AE par deux-points. Insérez donc un espace au début de chaque ligne de traitement NBEXEC. Rubriques connexes : Onglet "Guardian/NSK" Agent AE pour HP NonStop Server - Architecture 7.7.3 Traitement automatisé des lignes de commande Dans de nombreux cas, des lignes de commande sont nécessaires pour poursuivre le traitement. L'Agent NSK vous donne la possibilité de réagir de façon automatisée à ces soi-disant invites. Pour chaque Job NSK, vous pouvez ainsi créer des saisies prédéfinies pour les invites spécifiques. Ainsi lorsqu'une invite survient dans l'exécution du Job, l'Agent recherche une saisie prédéfinie. S'il en trouve une, le traitement peut se poursuivre automatiquement. Si aucun traitement n'est défini pour cette invite, la procédure à suivre dépend de l'objet Job. Si vous avez saisi un terminal virtuel dans l'onglet "Guardian/NSK", l'invite y est redirigée et un Utilisateur doit intervenir manuellement. Si aucun terminal n'est indiqué, alors l'Agent fournit un indicateur EOF à l'invite. Cette fonctionnalité est uniquement prise en charge pour les environnements NonStop Agent et TACL. Utilisation La fonction UC4_AUTO_ANSWER vous permet de définir la saisie pour une invite. Utilisez cette fonction une ou plusieurs fois dans le Script d'un Job NSK. Elle n'est valide que pour ce Job. La syntaxe est la suivante : UC4_AUTO_ANSWER "désignation de l'invite" "saisie" Le premier paramètre attend la désignation de l'invite. Vous pouvez soit utiliser la désignation complète, soit la saisie avec caractères génériques en utilisant les caractères ? et *. Cette dernière vous permet d'utiliser la même saisie pour plusieurs invites sans devoir entrer une ligne de Script pour chacune d'elles. Si les caractères ? ou * doivent être interprétés comme des caractères normaux, vous devez insérer une barre oblique inversée (\) avant chacun de ces caractères. Automation Engine 226 Le deuxième paramètre représente la saisie devant être automatiquement transmise à l'invite. Entrez une chaîne de caractères, une Variable de Script ou une expression TACL. Vous pouvez également indiquer "<EOF!>" pour répondre à l'invite avec un indicateur EOF (correspond à Ctrl-Y). Attention : aucun des deux paramètres ne doit contenir de guillemets ! L'Agent utilise pour le Job les définitions de saisie qui ont été utilisées dans le Script jusqu'à ce moment. Lors de la recherche, le système lit une ligne après l'autre et utilise la première définition correspondant à la désignation de l'invite. Utilisez la fonction UC4_AUTO_ANSWER_CLEAN pour désactiver toutes les définitions de saisie qui ont été utilisées jusqu'à présent dans le Script. L'Agent recherche alors les définitions à partir de cette ligne du Script. Utilisez la fonction de séparation de sections du Script dans lesquelles divers traitements de l'invite doivent s'appliquer. UC4_AUTO_ANSWER_CLEAN ne possède aucun paramètre. S'il vous faut de plus amples informations sur la recherche de définitions de saisie pour les invites, vous pouvez utiliser la fonction UC4_AUTO_ANSWER_TRACELEVEL. Cette fonction écrit, selon le niveau spécifié, des messages plus précis dans le rapport de Job et dans le terminal virtuel. La syntaxe est la suivante : UC4_AUTO_ANSWER_TRACELEVELLevel Pour le niveau, vous devez saisir un chiffre entre 0 et 3. 0 - la comparaison ne retourne aucun résultat (valeur par défaut). 1 - un message pour chaque comparaison correspondante. 2 - un message pour chaque comparaison sans correspondance. 3 - messages de niveaux 2 et 3. Exemples Exemple 1 L'instruction PURGE nécessite la saisie de "y" ou de "n". L'exemple de Script suivant montre un traitement de la saisie automatisé : UC4_AUTO_ANSWER "PURGE * (y/[n])?" y PURGE * UC4_AUTO_ANSWER_CLEAN La première ligne définit qu'il faut répondre par "y" à l'invite de l'instruction PURGE. L'appel de PURGE de la ligne suivante reçoit ainsi automatiquement la saisie "y". En raison de l'appel de l'Automation Engine_AUTO_ANSWER_CLEAN, la définition de saisie ne s'applique pas aux autres Scripts du Job. Exemple 2 Extrait du rapport de Job d'un Script utilisant la fonction UC4_AUTO_ANSWER_TRACELEVEL. UC4_AUTO_ANSWER UC4_AUTO_ANSWER UC4_AUTO_ANSWER UC4_AUTO_ANSWER "*is "*is "*is "*is no prompt*" "Answer 1" a prompt*" "Answer 2" what*" "Answer 3" nothing*" "Answer 4" run $data01.uc4.prompt This is a prompt>Answer 2 Answer to the prompt received: Answer 2 227 Chapter 7 L'Automation Engine et les systèmes cible UC4_AUTO_ANSWER_TRACELEVEL 1 run $data01.uc4.prompt *** Pattern checked: "*is a prompt*", matched, answer generated: "Answer 2" This is a prompt>Answer 2 Answer to the prompt received: Answer 2 UC4_AUTO_ANSWER_TRACELEVEL 3 run $data01.uc4.prompt *** Pattern checked: "*is no prompt*", no match *** Pattern checked: "*is a prompt*", matched, answer generated: "Answer 2" This is a prompt>Answer 2 Answer to the prompt received: Answer 2 7.7.4 Agent AE pour HP NonStop Server - Architecture Cette description explique le déroulement précis du Job sur un serveur HP non-stop par l'intermédiaire d'un agent AE NSK. Automation Engine 228 Description des déroulements internes : 1. Démarrage du Job Le démarrage du Job est initié par Automation Engine. Il envoie un message concernant le démarrage à l'agent NSK L'agent AE crée ensuite une entrée dans l'Automation Engine Status File. L'Agent NSK AE envoie un message à Output Collector (via IPC) contenant notamment les informations suivantes : l l l l utilisateur du Job ; fichier de Job à utiliser ; terminal virtuel à utiliser (éventuellement) ; priorité du Job ; 229 Chapter 7 L'Automation Engine et les systèmes cible l l nom de fichier du rapport de Job ; nom du fichier de macros AE, etc. Il reçoit les informations suivantes : l l l Emplacement # de l'Automation Engine Output Collector devant être utilisé comme Fichier de sortie pour le Job à démarrer. Output Collector écrit alors dans le fichier de rapport approprié toutes les sorties qui l'atteignent sous cet emplacement #. Indicateur précisant si un processus TACL peut être réutilisé, ou s'il faut en démarrer un nouveau à partir de l'Agent. Les informations précisant si un utilisateur par défaut, qui est accepté par les TACL après la fin du Job, est encore valide. Le cas échéant, l'Agent démarre un nouveau processus TACL. Celui-ci s'identifie alors auprès de l'Automation Engine Output Collector (qui lui a été indiqué comme périphérique de sortie). Output Collector crée le fichier de rapport. Il configure ensuite le TACL du Job (définition de l'Utilisateur, définition de la priorité, etc). Enfin, le TACL du Job reçoit le fichier de Job sous forme de fichier Obey et commence ainsi le traitement du Job. 2. Déroulement du Job Pendant le déroulement du Job, toutes les sorties générées par le Job sont dirigées vers Output Collector et sont écrites dans les rapports de Job. Si le système attend une entrée et si un terminal est configuré pour le Job, celui-ci la récupère. La relation Job-rapport de Job est créée au travers de l'emplacement # sous lequel les Jobs appellent l'Output Collector. Ainsi Output sur $UC4OC.#AAL peut aller dans le fichier de rapport $DATA.REPORTS.FFXX, pendant que des Tâches sont écrites dans $DATA.REPORTS.FFXY sur $UC4OC.#AAM. Les noms des emplacements # ou des fichiers de rapport sont donnés par l'Agent ou l'Output Collector 3. Fin du Job Output Collector reconnaît la fin du Job quand le processus TACL du Job se représente avec une demande de saisie ou (en cas d'erreur) parce qu'il le ferme. A la fin d'un Job, l'Output Collector complète le fichier de statut de Job et envoie à l'Agent un message correspondant via IPC. Celui-ci annonce au Serveur que le Job est terminé. Conseils : 1. Signification du fichier de statut Le fichier de statut permet une restauration améliorée de l'Agent ou de l'Output Collector en cas d'interruption. Dans ce cas-là, le contexte issu du fichier de statut de Job est restauré lors du redémarrage du processus interrompu. De nombreux Jobs peuvent donc surmonter une telle erreur et le fonctionnement se poursuit sans perturbation. Les Jobs éventuellement terminés pendant l'interruption de l'Agent/l'Output Collector sont reconnus et signalés. De cette façon, Automation Engine possède toujours une image correcte du statut sur le système de l'Agent. 2. Surveillance réciproque Automation Engine 230 L'Agent et l'Output Collector se surveillent mutuellement. Si un de ces deux processus devait se terminer inopinément (arrêt accidentel, défaillance du CPU, erreur logicielle, entre autres), le processus survivant démarre automatiquement le processus arrêté. Si le CPU du processus arrêté n'est pas (plus) disponible, un autre CPU disponible est sélectionné (de préférence un CPU différent de celui du processus survivant). En ce sens, le système est tolérant par rapport à des erreurs très diverses. Rubriques connexes : Agent - Interaction entre l'Automation Engine et NSK 7.7.5 Fichier modèle EMS Les fichiers modèle EMS permettent un format de messages conforme au système. Cela permet une définition du SSID (ID sous-système). L'ID standard est "uc4.1.1" Déroulement : 1.) Le fichier DLL (uca.ddl) doit être compilé en dictionnaire. Dans ce dictionnaire, les fichiers $SYSTEM.ZSPIDEF.ZSPIDDL et $SYSTEM.ZSPIDEF.ZEMSDDL doivent être d'abord compilés. 2.) Le fichier TMPL (uc4.tmpl) doit renvoyer au dictionnaire créé. Contenu de uc4.ddl CONSTANT zspi-val-uc4 VALUE IS "UC4 ". * Defines subsystem no. part of UC4 subsystem ID CONSTANT zspi-ssn-uc4 VALUE IS 1. * Defines version part of Pathway subsystem ID CONSTANT zuc4-val-version VALUE IS VERSION " 1". * Defines the structure for the Pathway subsystem ID * and initializes its parts DEFINITION ZUC4-VAL-SSID TACL SSID. 02 Z-FILLER TYPE CHARACTER 8 VALUE IS ZSPI-VAL-UC4. 02 Z-OWNER REDEFINES Z-FILLER TYPE ZSPI-DDL-CHAR8. 02 Z-NUMBER TYPE ZSPI-DDL-INT VALUE IS ZSPI-SSN-UC4. 02 Z-VERSION TYPE ZSPI-DDL-INT VALUE IS ZUC4-VAL-VERSION. END Contenu du uc4.tmpl VERSION : "UC4 NSK Executor Version 3.02B002 0040 AAD" DICT: $DATA01.UC4DICT SSID: ZUC4-VAL-SSID SSNAME: "UC4" , "UC4" MSG: ZSPI-TKN,0 "DUMMY" 231 Chapter 7 L'Automation Engine et les systèmes cible 7.7.6 Configuration des paramètres spécifiques à NSK L'Agent NSK offre la possibilité de définir des paramètres spécifiques à NSK. Parmi ces paramètres, on compte par exemple le TACL à utiliser ou l'Utilisateur sous lequel le rapport de Job doit être créé. Indiquez le paramètre au format suivant : == paramètre=valeur L'Agent recherche le Script du Job après ces lignes et définit le paramètre sur la valeur que vous avez déterminée. Les lignes sont considérées comme un commentaire par le TACL. Les paramètres suivants sont pris en charge : Paramètres Description UC4_TACL_ PROGRAM TACL alternatif (shell) Indiquez un autre TACL si le TACL par défaut charge un environnement non souhaité pour les Jobs. Ce paramètre est également utile lorsque différents Clients accèdent à un ordinateur NonStop et nécessitent différents environnements TACL. L'Agent utilise le TACL par défaut si le TACL indiqué n'est pas utilisable et journalise un message d'erreur. UC4_TACL_ Nom du processus TACL PROCESSNAME UC4_REPORT_ USERNAME Utilisateur sous lequel le rapport de Job doit être créé UC4_REPORT_ SECURITY Chaîne de sécurité NonStop pour le rapport de Job Vous pouvez également indiquer la valeur "DEFAULT_USER" pour que le rapport de Job puisse être créé sous l'Utilisateur sous lequel le Job est utilisé. Attention : ce paramètre doit être défini avec la plus grande précaution ! Une chaîne de sécurité erronée peut empêcher l'Agent de lire ou de supprimer le rapport de Job ! Exemples : == == == == UC4_TACL_PROGRAM=$SYSTEM.SYS03.TACL UC4_TACL_PROCESSNAME=$CAT2 UC4_REPORT_USERNAME=SQLCMP.DUPONT UC4_REPORT_SECURITY=NNNN L'utilisation de cette fonctionnalité est facultative. L'Agent utilise la valeur par défaut pour les paramètres que vous ne définissez pas dans le Script. Automation Engine 232 7.8 L'Automation Engine et Oracle Applications 7.8.1 L'Automation Engine et Oracle Applications Oracle Applications sont des solutions e-business pour entreprises. Ces solutions utilisent les bases de données Oracle comme base. Ces solutions regroupent des programmes et rapports spécialement développés fonctionnant la plupart du temps sous forme de traitement batch en arrière-plan. L'Agent pour Oracle Applications permet de démarrer et de surveiller des processus dans Oracle Applications, ainsi que de reprendre les logs vers l'Automation Engine. Vous trouverez ci-après une liste de termes et leur description qui sont importants pour l'interaction entre l'Automation Engine et Oracle Applications. Vous trouverez de plus amples informations dans les manuels fournis par Oracle. Termes pour Oracle Termes Description PL/SQL La langue d'instruction PL/SQL est la norme pour les bases de données Oracle. Packages PL/SQL Des packages pour PL/SQL sont possibles dans toute base de données Oracle. Pour Oracle Applications, des packages supplémentaires sont fournis. SQL*Plus Programme de ligne de commande de Oracle pour les accès à la base de données. Termes pour Oracle Applications Termes Description Concurrent Processing Exécution de programmes et de rapports en arrière-plan. Pour "Concurrent Processing", il existe des composants logiciels propres à Oracle Applications. Concurrent Manager Composants système pour exécuter et surveiller des Tâches en arrièreplan. Contrairement à d'autres solutions d'entreprise, plusieurs "Concurrent Manager" peuvent être présents. Vous pouvez être responsable de diverses applications et contrôler également la répartition des charges. Concurrent Process Instance unique d'un "Concurrent Program". Cela correspond à un processus du système d'exploitation. 233 Chapter 7 L'Automation Engine et les systèmes cible Concurrent Program Définition de "Concurrent Process". Comparable à la définition de Job. Cette définition contient le renvoi au "Concurrent Program Executable" à exécuter, des définitions de paramètres et de ce qu'on appelle incompatibilités. Les incompatibilités sont des conditions pour l'exécution, par exemple "Le Concurrent Program A ne peut pas s'exécuter simultanément au Concurrent Program B". Concurrent Program Executable Le programme en lui-même. Concurrent Request Exigence auprès du "Concurrent Manager" d'exécuter un "Concurrent Program". Submit Concurrent Request Fonction qui crée une exigence pour l'exécution d'un "Concurrent Process". Phase Phase durant l'exécution d'un "Concurrent Process". Le programme peut exister sous forme de fichier ou de procédure enregistrée. Phases possibles : PENDING, RUNNING, COMPLETE, INACTIVE Statut Dans chaque phase d'un "Concurrent Process", certains statuts peuvent se produire. Exemple : les statuts de la phase PENDING sont NORMAL, SCHEDULED ou STANDBY. 7.8.2 Codes retour des Jobs OA L'Agent journalise dans le rapport d'activation du Job toutes les erreurs qui se sont produites. En outre, il définit en fonction de l'exécution du Job un des codes retour suivants : Code retour Description 0 Aucune erreur n'est survenue. 4 La Concurrent Request s'est terminée avec Phase=COMPLETE et Status=WARNING. 10 Une erreur s'est produite lors de l'ajout de paramètres avec les fonctions OA_ADD_ PRINTER, OA_ADD_LAYOUT ou OA_ADD_NOTIFICATION. 100 Une commande JCL inconnue existe dans le script. 102 Une erreur s'est produite lors de l'exécution de l'instruction OA_SUBMIT_REQUEST. 1000 Une erreur OCI s'est produite. Dans l'objet Job, vous pouvez décider dans l'onglet "Exécution" à partir de quel code retour le Job doit être interrompu. Rubriques connexes : Généralités sur le JCL Oracle Applications Automation Engine 234 7.9 L'Automation Engine et OS/400 7.9.1 Agent - Interaction entre l'Automation Engine et OS/400 L'Agent OS/400 interagit avec le système AE via une interface TCP/IP. L'Agent OS/400 dispose des fonctionnalités suivantes : l l l l traitement de Jobs, exécution de Transferts de Fichiers, traitement d'Evènements, CallAPI. Traitement de Jobs Dans l'Automation Engine, les Jobs sont définis et gérés comme des objets à l'aide d'onglets. Le JCL (CMD, CL ou REXX) se trouve dans l'onglet Script. Il peut être muni d'une logique complexe à l'aide de scripts de l'Automation Engine. Rubriques connexes : Manuel Utilisateur – Job et Job – Exécution. Un Job est démarré dans l'Automation Engine à l'aide de mécanismes de contrôle comme les Workflows ou les Schedules, ou encore manuellement. Un Job exécutable est généré dans le Automation Engine et transféré à l'Agent OS/400 par Transfert de Fichier. Rubriques connexes : Interne AE – Exécution des objets Le Job est lancé dans OS/400 par la commande SBMJOB dans laquelle le "shell de Job" (programme "IRSTRJOB" dans la bibliothèque fournie) est exécuté. Le shell de Job reçoit comme paramètre, entre autres, le nom de Job généré par le Automation Engine ou le nom du membre de fichier sous lequel le Job est enregistré. Selon le type de Job, il exécute les Tâches suivantes : l l l CMD Le shell de Job exécute chaque ligne du membre de fichier. Si une erreur se déclare dans une ligne, le code de gravité est défini comme code retour du Job et l'informateur de Job n'est appelé qu'à la fin du Job. ILE CL Le shell de Job convertit le membre de fichier et crée ainsi un programme CL temporaire. Si la conversion s'est bien terminée, le shell de Job exécute le programme CL. REXX Le shell de Job exécute l'interpréteur REXX et transmet le nom du membre de fichier que contient le script REXX. Chaque Job annonce à l'Agent (informateur de Job) le début et la fin de l'exécution, ce dernier passe à son tour ces informations au Automation Engine. Le code retour du Job est disponible dans l'Automation Engine. L'Agent surveille à intervalles réguliers le statut du Job. Si un Job est perdu (par ABEND ou CANCEL), ce mécanisme permet de constater la fin anormale. Le Job est alors considéré comme disparu dans le système AE. Le statut des Jobs qui ont été exécutés est également déterminé lorsque l'Agent est inactif. Cela est possible par l'affichage des informateurs de démarrage et de fin dans le rapport de Job qui est analysé par l'Agent. 235 Chapter 7 L'Automation Engine et les systèmes cible Attention: JCL est compilé en un programme sur OS/400 puis est exécuté. Cela peut ainsi provoquer une interruption incontrôlée moyennant quoi le statut du Job ne peut être affiché correctement. Grâce à la commande MONMSG, il est possible de reconnaître les interruptions de programmes et d'y réagir. Pour l'utilisation de cette commande, le paramètre de Job "Type" "ILE CL" est nécessaire. Dans l'exemple suivant, l'exécution de JCL est surveillée par la commande MONMSG et définie en fonction du statut du Job: Onglet Pré-Script : ! Activer l'affichage des informateurs de démarrage et de fin pour la restauration du statut :SET &UC_QPRINT = 10 ! La commande OS/400 CL surveille toutes les exceptions et passe au libellé ERROR MONMSG CPF0000 (GOTO ERROR) Onglet Script : ! Commande que le Job doit être exécuté. Dans ce cas, tous les processus actifs sont affichés. wrkactjob *print ! Définir 0 comme valeur du code retour. CHGVAR &RETCODE '0' ! Exécution de l'informateur de fin GOTO END ! Lorsqu'une erreur se produit, le code retour est défini en fonction. ERROR: CHGVAR &RETCODE '99' Le rapport de Job (spool), se composant du contenu du spool (selon la définition du Job, uniquement QPJOBLOG ou le contenu entier), est écrit dans le fichier indiqué par le Automation Engine. Si cela est défini dans le Job, l'Agent transfère le rapport à l'Automation Engine qui l'enregistre à son tour dans la base de données. Les spoolfiles peuvent être supprimés ou laissés dans le spool. Ceci peut être réglé à l'aide d'un paramètre global dans le fichier INI de l'Agent. Attention : ne démarrez pas le Job avec une priorité de sortie qui sollicite immédiatement le spool. Exécution de Transferts de Fichiers Dans l'Automation Engine, les Transferts de Fichiers sont définis et gérés comme des objets à l'aide d'onglets. Ils sont exécutés avec la conversion de caractères qui y figure, par exemple "EBCDIC_00273". A l'heure actuelle, seul le Library File System (QSYS.LIB) est pris en charge. Les noms de fichier doivent être indiqués sous la forme l l bibliothèque/objet ou bibliothèque/objet (membre) . Rubriques connexes : Manuel de l'utilisateur – Transfert de Fichier Traitement d'Evènements Les Evènements sont définis et gérés comme des objets avec différents onglets dans l'Automation Engine. Des Evènements de système de fichiers se rapportant au Library File System (QSYS.LIB) peuvent Automation Engine 236 être définis. L'Agent OS/400 prend également en charge les Evènements de type "console". Rubriques connexes : Manuel de l'Utilisateur – Evènement CallAPI CallAPI peut être utilisé avec un utilitaire pouvant par exemple être exécuté à partir d'un script CL. Voir : Manuel de l'utilisateur - CallAPI 7.9.2 Agent OS/400 - Prise en charge du Transfert de Fichier Quelques particularités sont à prendre en compte lors de l'utilisation du Transfert de Fichier avec un Agent OS/400. Afin que le nouveau Protocole de Transfert de Fichier soit utilisé, les Agents OS/400 de la version 9.00A ou supérieure doivent être démarrés comme étant compatibles avec un processus à plusieurs Threads. Pour cela, il faut fixer le paramètre ALWMLTTHD dans le JOBD de l'Agent sur la valeur *YES. Concerne le nouveau protocole de Transfert de fichier : les commandes du système d'exploitation CRTPF et ADDPFM sont utilisées pour le transfert de fichiers. Les paramètres de CRTPF peuvent ainsi être indiqués directement avec les attributs dans le Transfert de Fichier. La commande CRTPF est utilisée lorsqu'un nouveau fichier doit être créé. Le paramètre ADDPFM est exécuté lorsque le fichier existe déjà et qu'un seul membre doit être rajouté. Lorsqu'une erreur survient lors du Transfert de Fichier et que sa signification n'est pas claire du point de vue de l'Automation Engine (par exemple : "CPF0001 - Error found on ADDPFM command"), il s'agit éventuellement d'une erreur liée à l'exécution de ces commandes. Dans ce cas, vous trouverez plus d'informations dans le log de Job enregistré directement sur le système d'exploitation. Indication de fichiers : Système de fichiers QSYS La syntaxe pour le Transfert d'un fichier QSYS est : Nom de la bibliothèque/nom du fichier(nom du membre) Lorsque vous spécifiez le nom de fichier ou de membre, vous pouvez également utiliser les caractères génériques * et ?. * - caractère de remplacement pour un nombre quelconque de caractères (également aucun), ? exactement un caractère quelconque Si vous utilisez des caractères génériques dans le nom de fichier, aucun nom de membre ne doit être spécifié ! Vous trouverez des indications détaillées concernant les caractères génériques dans le chapitre Les Transferts de Fichiers avec caractères génériques. Exemples : Transfert de tous les membres du fichier TEST. 237 Chapter 7 L'Automation Engine et les systèmes cible AE/TEST(*) ou AE/TEST() Transfert de tous les membres du fichier TEST dont le nom commence par la lettre "A". AE/TEST(A*) Transfert de tous les membres du fichier TEST dont le nom comporte 3 caractères et qui commence par la lettre "A" et se termine par la lettre "B". AE/TEST(A?B) Transfert du membre ABC du fichier TEST. AE/TEST(ABC) Transfert de tous les fichiers dont le nom commence par TEST. AE/TEST* Système de fichiers IFS Pour IFS (Integrated Filesystem), il s'agit d'un système de fichiers UNIX. Les fichiers IFS doivent toujours être indiqués avec le chemin absolu (à partir de la racine) et les noms de fichiers consécutifs. Si l'entrée du fichier contient le caractère /, alors l'Agent accepte qu'il s'agisse d'un fichier IFS. Exemple : /home/uc4/test.txt Afin d'exécuter des Transferts de Fichiers avec caractères génériques, les caractères génériques * et ? sont disponibles. Ils peuvent être utilisés indifféremment au sein du chemin d'accès et/ou du nom du ficher. Pour un Transfert de Fichier individuel, la casse du chemin d'accès et du nom du fichier n'ont par d'importance. Les 2 entrées suivantes sont donc identiques : /home/AbC.txt /HOME/ABC.txt Pour les Transferts de fichiers avec des caractères génériques, il faut veiller à la taille de la police ! Les 2 entrées suivantes sont donc différentes : /home/AB* /home/ab* Attributs Tous les attributs pris en charge par OS/400 peuvent être indiqués indépendamment du système de fichiers pour la cible du Transfert de Fichier. Si vous indiquez plusieurs attributs, vous devez les séparer par des virgules. Des données qui ne seraient pas valides sont ignorées. Système de fichiers QSYS L'Agent OS/400 peut transmettre des fichiers de type *FILE et SAVF. D'autres types de fichier comme *PGM, *RPG, *CLLE doivent être recueillis dans des fichiers SAVF avant leur transfert. Les points suivants doivent être respectés lors d'un Transfert de Fichier SAVF : Automation Engine l l 238 Définissez l'attribut reclen=528 dans l'objet Transfert de Fichier du fichier source. Sélectionnez la page de code UC_CODE pour le fichier source comme pour le fichier cible. Pour tous les autres fichiers : l l Si le fichier cible n'est pas disponible, il est créé. Pour ce faire, on utilise la commande CRTPF. Pour les attributs qui peuvent être indiqués pour la cible dans un Transfert de Fichier, il s'agit donc du paramètre de cette commande. Si aucun attribut n'est spécifié, le fichier est alors stocké par défaut avec une longueur d'enregistrement de 80 octets. Pour les Transferts de Fichiers avec caractères génériques MAXMBRS(*NOMAX) est défini par défaut (le fichier ne comprend ainsi aucune limite de membre). Pour un Transfert de Fichier individuel, la valeur par défaut du système est utilisée pour MAXMBRS. Si un fichier cible existe déjà, leurs attributs peuvent alors être uniquement réécrits, lorsque l'option "Conserver les attributs originaux de fichier" est définie dans l'objet Transferts de Fichiers. C'est à cela que sert la commande CHGPF, dont le paramètre peut être défini comme Attributs cible dans l'objet Transfert de Fichier. Grâce à l'option "Conserver les attributs originaux de fichier" de l'objet Transfert de Fichier, les attributs de fichiers de la source sont pris pour les fichiers cible. Cela n'est cependant possible que lorsque l'Agent source et l'Agent cible indiquent le même système d'exploitation (dans ce cas OS/400) et Automation Engine Version 9.00A (ou supérieure). Sinon, ce paramètre est ignoré. Ainsi les attributs de fichier suivants peuvent être conservés : l l l l l l l l l l l l l l l ACCPTHSIZ - Taille du chemin d'accès ALWUPD - Autorise la mise à jour (ALWUPD). Si l'option est activée, les enregistrements ne sont pas autorisés à être mis à jour dans le fichier (*NO). ALWDLT - Autorise la suppression (ALWDLT). Si l'option est activée, les enregistrements ne sont pas autorisés à être supprimé du fichier (*NO). CCSID - ID de jeu de caractères codés EXPDATE - Date d'expiration pour les membres FRCACCPTH - Chemin d'accès forcé FRCRATIO - Enregistrements pour forcer l'écriture LANGID - Langage ID MAINT - Maintenance du chemin d'accès MAXMBRS - Membres maximum PAGESIZE - Taille de la page logique du chemin d'accès RCDLEN - Taille de l'enregistrement, si aucun DDS, DDS contient le format d'enregistrement complet (Clefs, Champs, Relations, etc.) SHARE - Partager le chemin d'accès de données ouvertes SIZE - Taille du membre, nombre initial d'enregistrements, augmentation du nombre d'enregistrements, augmentations maximum TEXT - 'description' du texte De plus, il est possible d'utiliser le paramètre spécial TRIM=YES dans le champ "Attributs" de la source de Transfert de Fichier. Cette option n'est pas un véritable attribut de fichier mais une fonction spéciale de l'Automation Engine. Elle a pour effet de supprimer automatiquement les espaces au début et à la fin de chaque ligne des fichiers à transférer. Cette option ne peut pas être définie en relation avec le système de fichier IFS. Système de fichiers IFS Pour les fichiers IFS, les 2 attributs suivants peuvent être indiqués ou conservés : 239 Chapter 7 L'Automation Engine et les systèmes cible l l ccsid - Le CCSID utilisé pour les données dans le fichier ou les attributs étendus du répertoire codepage - La page de code est dérivée du CCSID utilisé pour les données dans le fichier ou les attributs étendus du répertoire. Rubriques connexes : Onglet Transfert de Fichier 7.9.3 Agent - commandes Des programmes et commandes supplémentaires sont fournis avec l'Agent. Tout d'abord, ils permettent de démarrer ou d'arrêter facilement l'Agent, sans devoir créer une routine CL au préalable. Ensuite, un programme est mis à disposition pour la génération de la bibliothèque de messages, et il s'avère très utile en cas d'erreur. Cela nécessite cependant d'utiliser le dernier Agent de la version 9.00A et de reprendre la bibliothèque contenant les fichiers de programmes dans la liste Librairie du système. Voir : Instructions d'installation de l'Agent OS/400 Démarrer l'Agent Objets fournis : Programme : STRUCAGENT Commande : STRUCAGENT Commande permettant de démarrer un certain agent AE sans avoir besoin de créer une routine CL. Pour cela, il est nécessaire d'indiquer la bibliothèque contenant l'Agent. En outre, le fichier INI de l'Agent doit être spécifié pour le système de fichiers IFS ou QSYS. Remplace la routine UCEX_ RUN. Paramètre : LIB(Bibliothèque) MBR(fichier INI QSYS) ou PATH(Chemin IFS et nom du fichier INI) Exemples : STRUCAGENT LIB(AE) FILE(AE/INI) MBR(UCXJO41) Démarrer l'Agent à partir de la bibliothèque AE en utilisant le fichier INI AE/INI(UCXJO41). STRUCAGENT LIB(AE) PATH('/user/ae/ucxjo41.ini') Démarrer l'Agent de la bibliothèque en utilisant le fichier INI ucxjo41.ini disponible via le chemin de fichier /user/ae/. Arrêter l'Agent Objets fournis : Programme : ENDUCAGENT Commande : ENDUCAGENT Arrêter immédiatement ou de manière contrôlée l'Agent qui a été démarré à partir d'une certaine bibliothèque. Peut être utilisée à la place de la routine UCEX_END. Automation Engine 240 Paramètre : LIB(Bibliothèque) OPTION(Arrêter) Exemples : ENDUCAGENT LIB(AE) OPTION(*CNTRLD) Arrêter de manière contrôlée l'Agent qui a été démarré à partir de la bibliothèque AE. Avec cette commande, un signal d'arrêt est envoyé à l'Agent pour être prochainement traité. ENDUCAGENT LIB(AE) OPTION(*IMMED) Interrompre l'Agent qui a été démarré à partir de la bibliothèque AE. Correspond à la commande ENDJOB. L'Agent indiqué est immédiatement recherché dans le système et arrêté. Générer la bibliothèque de messages Objets fournis : Programme : MAKEMSL Commande : GENUCMSL La commande GENUCMSL permet de convertir un fichier MSL stocké dans le système de fichiers IFS en bibliothèque de messages physique. La bibliothèque de messages générée peut ensuite être utilisée par l'Agent. Cette procédure n'est pas nécessaire pour l'installation de l'Agent, mais cependant utile pour mettre à jour ou réparer la bibliothèque de messages (en cas d'erreur). Paramètre : PATH(Chemin IFS et nom du fichier) FILE(Fichier de destination QSYS) Exemple : GENUCMSL PATH('/tmp/uc.msl') FILE(AE/MSL) Convertit le fichier uc.msl accessible via le chemin IFS '/tmp/' en fichier AE/MSL. Le nombre d'enregistrements de messages importés est indiqué : Processing completed. Lines processed '34579'. Imported '11607' english messages. Imported '11607' french messages. 7.10 L'Automation Engine et PeopleSoft 7.10.1 Test de la connexion PeopleSoft Le programme pscitester peut être utilisé pour tester la connexion au serveur d'applications PeopleTools. Il s'agit d'un programme d'exemple de PeopleSoft fourni comme source Java. Il se trouve sous %PS_HOME%/sdk/PSCOMPINTFC/src/java/samples. Cet exemple permet de tester si l'accès à PeopleSoft est possible via Java Object Adapter. Le déroulement suivant décrit le développement et le test du programme d'exemple. 241 Chapter 7 L'Automation Engine et les systèmes cible Déroulement 1. l l Hôte Installez le SDK Java sur un poste de travail. Ce dernier ne doit pas forcément être le Serveur PeopleSoft. 2. l Adaptation des Variables PATH Ajoutez le répertoire bin <SDK_HOME>\bin à la Variable d'environnement PATH. Pour tester si l'installation s'est bien terminée, vous pouvez saisir "javac" dans la ligne de commande MS-DOS ou dans le terminal. Une sortie de javac s'affiche alors. 3. l l Création des sources Java Sélectionnez un Component interface dans Application Designer et cliquez sur Build -> PeopleSoft APIs. Les classes Java à constituer peuvent alors être sélectionnées : CompIntfc.USER_PROFILE CompIntfc.USER_PROFILE_IDTypes CompIntfc.USER_PROFILE_IDTypesCollection CompIntfc.USER_PROFILE_Roles CompIntfc.USER_PROFILE_RolesCollection CompIntfc.USER_PROFILE_Roles_RouteControls CompIntfc.USER_PROFILE_Roles_RouteControlsCollection CompIntfc.USER_PROFILE_Attributes CompIntfc.USER_PROFILE_AttributesCollection CompIntfc.USER_PROFILE_SYNC CompIntfc.USER_PROFILE_SYNCCollection CompIntfc.USER_PROFILE_Collection CompIntfc.CompIntfcPropertyInfo CompIntfc.CompIntfcPropertyInfoCollection Désactivez la case à cocher pour la génération de la bibliothèque de types COM et sélectionnez dans le champ Java Classes un dossier dans lequel les fichiers doivent être générés. Les fichiers Java sont générés dans le répertoire indiqué sous PeopleSoft/Generated/CompIntfc. 4. l Installation du SDK Java Développement des fichiers *.class Créez un dossier dans lequel vous copierez ensuite le fichier psjoa.jar, le répertoire pscitester et le répertoire PeopleSoft. Ce dernier a été spécifié lors de la génération des classes Java. La structure du répertoire ressemble maintenant à ça : ./psjoa.jar ./pscitester/pscitester.java ./PeopleSoft/Generated/CompIntfc/CompIntfcPropertyInfo.java ./PeopleSoft/Generated/CompIntfc/CompIntfcPropertyInfoCollection.java ./PeopleSoft/Generated/CompIntfc/ICompIntfcPropertyInfo.java ./PeopleSoft/Generated/CompIntfc/ICompIntfcPropertyInfoCollection.java ./PeopleSoft/Generated/CompIntfc/IUserProfile.java ./PeopleSoft/Generated/CompIntfc/IUserProfileIdtypes.java Automation Engine l l 242 ./PeopleSoft/Generated/CompIntfc/IUserProfileIdtypesAttributes.java ./PeopleSoft/Generated/CompIntfc/IUserProfileIdtypesAttributesCollection.java ./PeopleSoft/Generated/CompIntfc/IUserProfileIdtypesCollection.java ./PeopleSoft/Generated/CompIntfc/IUserProfileRoles.java ./PeopleSoft/Generated/CompIntfc/IUserProfileRolesCollection.java ./PeopleSoft/Generated/CompIntfc/UserProfile.java ./PeopleSoft/Generated/CompIntfc/UserProfileIdtypes.java ./PeopleSoft/Generated/CompIntfc/UserProfileIdtypesAttributes.java ./PeopleSoft/Generated/CompIntfc/UserProfileIdtypesAttributesCollection.java ./PeopleSoft/Generated/CompIntfc/UserProfileIdtypesCollection.java ./PeopleSoft/Generated/CompIntfc/UserProfileRoles.java ./PeopleSoft/Generated/CompIntfc/UserProfileRolesCollection.java ./PeopleSoft/Generated/CompIntfc/IUserProfileRolesRoutecontrols.java ./PeopleSoft/Generated/CompIntfc/IUserProfileRolesRoutecontrolsCollection.java ./PeopleSoft/Generated/CompIntfc/UserProfileRolesRoutecontrols.java ./PeopleSoft/Generated/CompIntfc/UserProfileRolesRoutecontrolsCollection.java ./PeopleSoft/Generated/CompIntfc/IUserProfileCollection.java ./PeopleSoft/Generated/CompIntfc/UserProfileCollection.java ./PeopleSoft/Generated/CompIntfc/UserProfileSync.java ./PeopleSoft/Generated/CompIntfc/UserProfileSyncCollection.java Utilisez la ligne de commande MS-DOS ou le terminal pour passer à ce répertoire. Il faut maintenant encore définir le CLASSPATH : Pour Windows : set CLASSPATH=.;psjoa.jar Pour Unix : export CLASSPATH=psjoa.jar:. Traduisez l'exemple à l'aide de : javac pscitester/pscitester.java 5. l l l Démarrage du programme pscitester Prérequis : le serveur d'applications auquel le programme doit se connecter doit être en cours d'exécution. Dans le programme de test, il faut saisir le port JOLT. Vous trouverez celui-ci dans le fichier %PS_HOME%\APPSERV\<APPSERVERNAME>\psappsrv.cfg sous [JOLT Listener]. Démarrez le programme : java pscitester.pscitester Le message d'erreur suivant peut être ignoré : java.lang.NullPointerException: PSProperties not loaded from file. Pour éviter l'affichage de ce message, le fichier pstools.properties doit être copié de PeopleSoft dans le répertoire actuel. l Si toutes les saisies étaient correctes, le message suivant s'affiche : Application Server Connect Information... Enter The Application Server Name: wgw2ksps2 Enter The Application Server Port Number[ 9000]: Enter PeopleSoft UserID [PTDMO]: PS Enter PeopleSoft UserID Password: [PTDMO]: ******** Connected to Appserver... Get on Component Interface "USER_PROFILE" succeeded 243 Chapter 7 L'Automation Engine et les systèmes cible Listing Component Interface property for field "UserID" Long Label: User ID Short Label: User Is Collection: false Type: 0 Format : 6 Is Key: true Is Required: false Is Xlat: false Is YesNo: false Is Prompt: false 7.10.2 Utilisation de Variables de liaison Les processus PeopleSoft peuvent contenir des Variables appelées Variables de liaison. L'Automation Engine vous permet de planifier ces processus et d'attribuer des valeurs . Les deux fonctions PS_SET_BINDVAR et PS_RUN_PROCESS interagissent et peuvent être utilisées comme suit. l l PS_SET_BINDVAR remplace une valeur que vous spécifiez vous-même dans le Script AE ou que vous obtenez à l'aide d'un Run Control ID. Vous pouvez ensuite exécuter la fonction PS_RUN_PROCESS qui démarre un processus et le surveille. Les valeurs des Variables de liaison sont prises en compte ici. Pour pouvoir utiliser cette fonctionnalité, la base de données PeopleTools doit être configurée. Chacune des étapes est expliquée dans le chapitre sur l'installation. Testez bien les Jobs qui remplacent les valeurs des Variables de liaison avant de les mettre en service dans le système de production. Les valeurs ont un format particulier (par ex. date) devant être conservé. Etant donné que chaque syntaxe est différente et qu'elle n'est donc pas vérifiable, il est impérativement recommandé de procéder à des tests exhaustifs ! 7.10.3 Modifications apportées aux contrôles d'exécution La plupart des processus nécessitent la saisie de paramètres pour l'exécution, par exemple une période. Ce genre d'informations peut être enregistré à une seule reprise dans de soi-disant contrôles d'exécution (RUN_CONTROL_RECORDS) . Les processus obtiennent les paramètres pour l'exécution à partir du contrôle d'exécution attribué. Un contrôle d'exécution est, en règle générale, exactement un enregistrement de la base de données PeopleSoft. Il peut également englober plusieurs enregistrements. Un contrôle d'exécution est identifié de manière unique à l'aide des concepts clés OPRID (ID utilisateur) et RUN_CNTRL_ ID. Application L'Automation Engine met à disposition la fonction PS_MODIFY_RUNCONTROL qui vous permet de modifier les contrôles d'exécution. L'adaptation se rapporte alors à un seul enregistrement. Si plusieurs enregistrements d'un contrôle d'exécution doivent être maintenus, vous devez procéder à Automation Engine 244 une exécution distincte de PS_MODIFY_RUNCONTROL pour chaque modification. Cette procédure différencie l'Automation Engine de la maintenance en ligne dans PeopleSoft. Exemples Exemple 1 Un Utilisateur souhaite exécuter le rapport SQR "Employee Turnover Analysis". Pour ce faire, il crée un contrôle d'exécution "myRunControl". Après avoir rajouté le contrôle d'exécution, les champs de paramètre nécessaires pour le rapport sont renseignés et enregistrés. Il s'agit ici des champs FROM_DATE et THRU_DATE. La même modification peut être effectuée de manière automatique par l'Automation Engine. Cet ID utilisateur est déterminé par l'objet Login du Job PeopleSoft. PS_MODIFY_RUNCONTROL RUNCONTROLID=’myRunControl’,RECORDNAME=’RUN_CNTL_ HR’,FIELDNAME=’FROM_DATE’,FIELDVALUE=’20050306’ PS_MODIFY_RUNCONTROL RUNCONTROLID=’myRunControl’,RECORDNAME=’RUN_ CNTL_HR’,FIELDNAME=’THRU_DATE’,FIELDVALUE=’20060306’ Exemple 2 L'exemple suivant présente la modification d'un contrôle d'exécution pour la conversion monétaire. Cette fois-ci, il y a non seulement des champs, mais aussi des valeurs sous forme de liste. Il s'agit d'une liste de monnaies. Pour pouvoir modifier les valeurs monétaires, un code doit être transmis lors de l'exécution de PS_ MODIFY_RUNCONTROL. 245 Chapter 7 L'Automation Engine et les systèmes cible PS_MODIFY_RUNCONTROL RUNCONTROLID='myRunControl',RECORDNAME='RUN_CNTL_ CC2_EO',FIELDNAME='RATE_MULT',FIELDVALUE='100',KEYNAME(1)='CURRENCY_ CD',KEYVALUE(1)='EUR' Les données de la liste de monnaies sont au niveau 1. C'est pourquoi il faut saisir le chiffre 1 pour les paramètres KEYNAME(1)= et KEYVALUE(1)=. Risques et limitations Lors de la modification des contrôles d'exécution, tenez comptes des remarques suivantes : l l l l l Les valeurs transmises ne sont vérifiées que de façon rudimentaire. Ce qui veut dire que des valeurs erronées peuvent se retrouver dans la base de données PeopleSoft et qu'ensuite un ou plusieurs composants en ligne ne peuvent plus fonctionner ! Cette erreur n'est réparable, dans la plupart des cas, qu'avec des commandes SQL. Aucune incohérence du modèle de données ne peut en résulter ; néanmoins, des valeurs ne pouvant être traitées en ligne peuvent se retrouver dans la base de données. Par exemple, PeopleCode interdit la saisie d'une date courante de l'année précédente. Avec la fonction PS_MODIFY_RUNCONTROL, une telle saisie est cependant possible. PS_MODIFY_RUNCONTROL ne crée aucun nouveau contrôle d'exécution, étant donné que les champs de la table de base de données correspondante peuvent éventuellement être renseignés par PeopleCode et qu'ils peuvent être dépendants les uns des autres. Ni l'Automation Engine, ni l'interface PeopleCode pour l'Automation Engine ne connaissent ces dépendances. Les dépendances entre les champs d'un contrôle d'exécution ne sont en principe pas prises en compte et elles peuvent également générer des erreurs dans l'application PeopleSoft. Le contrôle d'exécution est également capable d'écrire plus d'un enregistrement. Par exemple, le composant RUN_CNTL_CC_EO (Currency Conversion) écrit au moins dans les tables PS_RUN_CNTL_CC1_EO et PS_RUN_CNTL_CC2_EO. L'Utilisateur est seul responsable de renseigner les noms qui conviennent dans les enregistrements. Rubriques connexes : PS_MODIFY_RUNCONTROL 7.11 L'Automation Engine et SAP 7.11.1 Solutions SAP et Job Scheduling avec l'Automation Engine Lorsque vous utilisez des solutions SAP et qu'il vous faut un Job Scheduling efficace, Automation Engine est une solution idéale. Elle permet une intégration rapide et transparente de toutes les applications SAP dans le contrôle de processus d'entreprise. Automation Engine prend en charge toutes les applications SAP, y compris SAP R/3, mySAP Business Suite et SAP NetWeaver ainsi que les solutions sectorielles, se basant sur ces applications, pour les télécommunications, Automation Engine 246 l'approvisionnement, la banque, etc. Résultat : les processus informatiques dans diverses applications SAP sont gérés et surveillés centralement et sont en phase avec le reste de votre exploitation informatique mondiale. Développé comme un planificateur d'entreprise, l'Automation Engine ne nécessite aucun composant intergiciel, tel qu'un serveur d'applications JAVA, et il permet une fonctionnalité de planification très poussée sur l'ensemble de l'infrastructure informatique. Le système est directement lié à SAP NetWeaver et accélère ainsi la création et la maintenance de Jobs pour les applications SAP. Les rapports, variantes et tous les autres paramètres nécessaires sont disponibles au travers de l'interface graphique intuitive et conviviale de Automation Engine. Les problèmes relatifs aux accès manuels, aux erreurs de saisie ou aux listes de paramètres obsolètes sont éliminés de manière efficace. Il est facile de créer les Jobs avec la fonctionnalité de glisserdéposer, de plus, ceux-ci sont affichés graphiquement à l'écran. Cela assure une excellente visibilité et simplifie la gestion et le contrôle. Grâce à une automatisation complète de tous les processus informatiques, Automation Engine augmente la productivité au niveau de l'utilisation des solutions d'entreprise de SAP. Les Jobs d'arrière-plan et les processus des applications SAP sont surveillés centralement et automatisés. Automation Engine assure une meilleure performance grâce à un traitement d'arrière-plan optimisé et à un nombre réduit d'interruptions et d'erreurs du système. Rubriques connexes : Automation Engine et SAP NetWeaver 7.11.2 SAP NetWeaver Automation Engine et SAP NetWeaver Cette documentation suit l'architecture SAP NetWeaver et explique les fonctions AE en fonction de cette dernière. De plus, y sont expliquées les fonctions pour les solutions sectorielles ainsi que les solutions personnalisées. 247 Chapter 7 L'Automation Engine et les systèmes cible Intégration à People Ce domaine de SAP NetWeaver sert à l'intégration d'Utilisateurs finaux. L'Automation Engine crée des interfaces spécifiques aux rôles et rend ainsi le département concerné responsable du démarrage des processus avec les paramètres qui conviennent. Cela permet de désactiver les sources d'erreur potentielles et l'Automation Engine exécute les processus prédéfinis en Tâche d'arrière-plan, sans souci d'erreur. Fonctionnalités de l'Automation Engine Intégration dans SAP Enterprise Portal (iViews) Business Intelligence Le point central de cette couche est la gestion de l'entreposage. Les processus de chargement des données et les chaînes de processus sont contrôlés par l'Automation Engine et, avec des processus supérieurs, ils sont également intégrés à d'autres plateformes. L'analyse et la représentation automatiques des processus individuels d'une chaîne, jusqu'au niveau le plus bas, vont ainsi de soi. Fonctionnalités de l'Automation Engine Planification des processus de chargement des données Planification des chaînes de processus Planification de requêtes dans le batch Intégration des processus Cette partie traite l'intégration des processus métier à SAP Exchange Infrastructure (SAP XI). En tant qu'Integration Broker, les messages peuvent être validés directement dans l'Automation Engine via les processus à adaptateur standard SAP XI et inversement. Fonctionnalités de l'Automation Engine Surveillance des canaux de communication SAP XI Plateforme d'application La plateforme d'application forme la base de toutes les applications SAP. L'Automation Engine utilise l'ABAP ainsi que le domaine Java pour mettre à votre disposition des fonctionnalités utiles. Fonctionnalités de l'Automation Engine ABAP : Exécution de Jobs dans la pile ABAP (CCMS) Processus enfants Jobs interceptés Analyse du code retour d'application des steps SAP Gestion des variantes Automation Engine 248 Gestion de BDC Gestion de Spool Gestion d'Evènements Reprise de Jobs SAP Reprise des définitions de calendrier SAP JAVA : Agent Java EE/JMX pour SAP NetWeaver JMX dans SAP NetWeaver Exécution de Jobs dans la pile Java (JXBP) Gestion du cycle de vie Cette partie comprend le contrôle et la surveillance de toutes les solutions utilisées sur la base de la technologie SAP NetWeaver. L'Automation Engine a accès à toutes les données de surveillance d'un côté et, d'un autre côté, y fournit ses propres données. Fonctionnalités de l'Automation Engine Surveillance des moniteurs Surveillance des Evènements SAP Intégration de l'Automation Engine à SAP Solution Manager Inscription dans le système Landscape Directory Analyse du log système et du log application Commutation des modes de fonctionnement Développement d'applications L'Automation Engine vous soutient pour le développement d'applications avec une kyrielle de possibilités. Fonctionnalités de l'Automation Engine ABAB : CallAPI pour SAP JAVA : Interface d'application 249 Chapter 7 L'Automation Engine et les systèmes cible Intégration à People Intégration dans SAP Enterprise Portal (iViews) Introduction Les iViews pour Job Scheduling apportent des informations actuelles sur le fonctionnement de Job Scheduling dans les composants SAP Enterprise Portal de SAP NetWeaver et permettent aux utilisateurs finaux de démarrer des processus commerciaux critiques. Les Tâches peuvent être démarrées et surveillées directement à partir de SAP Enterprise Portal. L'utilisateur final peut démarrer des processus importants, même sans connaissance de Job Scheduling. Lorsque cela est nécessaire, les paramètres correspondants peuvent être définis. Chaque utilisateur peut surveiller le statut actuel du traitement en arrière-plan via SAP Enterprise Portal. Les processus démarrés à cet emplacement sont contrôlés et surveillés par Automation Engine. L'état actuel est mis à disposition de l'Utilisateur via la technologie iView. Rubriques connexes : Démarrage de Tâches Surveillance des activités Démarrage de Tâches L'"ActivateObject" de iView permet aux utilisateurs de démarrer les objets activables dans l'Automation Engine. Pour cela, enregistrez le nom de l'objet et une description explicative dans les propriétés de personnalisation. Il est important de définir l'alias du système. Il doit correspondre à la désignation que l'administrateur a définie dans les paramètres système. Vous pouvez avec les alias de système accéder à différents systèmes AE. Le bouton "Start" permet désormais d'activer l'objet. iView affiche le numéro courant (RunID) de l'exécution actuelle ou de la dernière. D'autres informations sont à votre disposition en utilisant le Automation Engine 250 lien "Détail" qui ouvre la fenêtre de détails. De même que dans l'Interface Utilisateur, vous y trouverez des renseignements sur l'heure de début ou le code retour. Si l'exécution de l'objet requiert une saisie utilisateur car l'instruction de Script :READ a été utilisée, un masque de saisie correspondant est créé dans iView. Les astérisques "*" rouges symbolisent les champs obligatoires. Rubriques connexes : Surveillance des activités Surveillance des activités Les "Activities" de iView affiche les activités du système AE qui ont été démarrées sous l'Utilisateur. De même que dans l'Interface Utilisateur, vous y trouverez des renseignements sur la priorité, l'heure de début ou le statut des Tâches, par exemple. Les informations sur les activités peuvent uniquement être consultées. iView ne permet pas d'effectuer des modifications du type interruption ou traitement de la Tâche. Il est possible de fusionner certaines colonnes et ainsi d'adapter l'affichage à vos besoins. Utilisez pour cela la configuration personnalisée. Il est important de définir l'alias du système. Il doit correspondre à la désignation que l'administrateur a définie dans les paramètres système. 251 Chapter 7 L'Automation Engine et les systèmes cible Rubriques connexes : Démarrage de Tâches Intégration d’informations Planification des processus de chargement des données Un info package est un objet qui décrit dans BW les conditions de sélection pour la demande de données d'un système source. Cet objet peut être planifié et contrôle ainsi un processus de chargement des données à partir d'un système source. Un info package peut être contrôlé de l'extérieur à partir d'une interface standard. Cette interface est utilisée en conséquence par l'Automation Engine. JCL pour SAP Eléments de script Description BW_ACTIVATE_ INFOPACKAGE Planifie un ou plusieurs Info Packages pour un démarrage immédiat. BW_GET_ INFOPACKAGES Lit des Info Packages à partir du système BW. Les Info Packages disponibles sont enregistrés dans le rapport d'activation ou dans un fichier. Automation Engine BW_SET_ INFOPACKAGE_ SELECTION 252 Définit les paramètres de sélection utilisés pour la lecture des Info Packages à partir du système BW. Planification des chaînes de processus Dans votre système BW, vous pouvez représenter des déroulements par des chaînes de processus. Une telle chaîne se compose d'un processus de démarrage, de processus d'application individuels et de processus collectifs. Il est également possible d'associer des info packages. Avec l'Automation Engine, il vous est possible de démarrer et de surveiller des chaînes de processus. Vous pouvez voir chacun des processus dans la Fenêtre d'Activités de l'Interface Utilisateur. Les protocoles des processus sont, en outre, enregistrés dans l'Automation Engine dans le rapport de l'objet Job. 253 Chapter 7 L'Automation Engine et les systèmes cible JCL pour SAP Eléments de script Description BW_ Démarre une chaîne de processus, surveille l'exécution et enregistre ses ACTIVATE_ protocoles dans le rapport d'activation. CHAIN BW_GET_ CHAINS Lit les chaînes de processus à partir du système BW. Les chaînes de processus disponibles sont enregistrées dans le rapport d'activation ou dans un fichier. BW_ RESTART_ CHAIN Continue une chaîne de processus interrompue. Planification de requêtes dans le batch A l'aide de la transaction RSCRM_BAPI, vous pouvez créer des interrogations dans votre système BW avec de soi-disant requêtes. Le résultat est soit stocké dans une table, soit dans un fichier. Utilisez l'Automation Engine pour exécuter les requêtes à intervalles réguliers ou selon les besoins. Identifiez-vous, tout d'abord, dans le système BW et exécutez la transaction RSCRM_BAPI. Planifiez la requête que vous voulez automatiser avec l'Automation Engine. Chaque requête possède son propre ID batch. Ouvrez le moniteur de batch et copiez ce numéro. Créez maintenant un Job SAP dans le système AE. Utilisez l'onglet Forme ou écrivez directement dans l'onglet Script la fonction suivante : R3_ACTIVATE_REPORT REP='RSCRMREPORT_BAPI' Automation Engine 254 Passez ensuite à l'onglet "SAP" et entrez l'ID batch copié précédemment dans le champ "Jobname". Il est possible d'intégrer l'objet Job dans votre traitement, par exemple dans un objet Schedule, et il exécute la requête aux moments définis par vos soins. En raison du comportement de SAP, vous ne voyez pas toutes les exécutions dans le moniteur de batch, mais uniquement la dernière. Intégration des processus Surveillance des canaux de communication SAP XI Les adaptateurs SAP XI servent à échanger des données avec SAP Exchange Infrastructure. Ils transforment les messages de manière à ce qu'ils puissent être transmis via les canaux de communication. L'Agent SAP met à votre disposition des fonctions vous permettant de contrôler des canaux de communication : l l l démarrage des canaux de communication arrêt des canaux de communication demande d'informations concernant les canaux de communication 255 Chapter 7 L'Automation Engine et les systèmes cible Utilisez dans le Job SAP les fonctions XI_GET_CHANNEL et XI_SET_CHANNEL. Les informations sur les canaux de communication sont enregistrées sous forme de document XML dans le rapport de Job. Les éléments de script pour XML préparent les données. De plus, vous pouvez surveiller les canaux de communication à l'aide des objets Evènements de type "Console". A chaque changement de statut, un Evènement est déclenché. Activez l'interface XI du fichier INI de l'Agent SAP avec les paramètres de la section [SAP_XI]. Pour l'accès au système XI, un objet Login avec des données d'identification valides est nécessaire. L'Utilisateur XI doit disposer des autorisations pour contrôler les canaux de communication XI. Utilisez différents objets Login pour les systèmes SAP et XI lorsque les deux sont installés sur le même hôte. Sinon le Login n'est pas sans ambiguïté. AE JCL pour XI Elément de script Description XI_GET_CHANNEL Enumère les canaux de communication. XI_SET_CHANNEL Démarre et arrête les canaux de communication. Plate-forme d'application ABAP Gestion des variantes Les variantes facilitent le traitement dans SAP, étant donné que les Jobs à entrées prédéfinies peuvent être exécutés. L'Automation Engine prend bien entendu en charge l'utilisation des variantes et offre de nombreuses fonctions à cette fin. Celles-ci permettent par exemple la lecture, la copie ou la modification des variantes. Il est également possible de supprimer et d'énumérer. La vérification et la définition de variantes immédiatement avant l'exécution d'un programme ABAP est d'une très grande importance, étant donné que cela permet d'éliminer des sources d'erreur. Automation Engine 256 JCL pour SAP Eléments de script Description R3_ACTIVATE_REPORT Peut exécuter un rapport après spécification d'une variante. R3_COPY_VARIANT Copie la variante d'un rapport. R3_CREATE_VARIANT Crée une nouvelle variante. R3_DELETE_VARIANT Supprime la variante d'un rapport. R3_GET_VARIANT_ CONTENTS Affiche le contenu d'une variante. R3_GET_VARIANTS Affiche toutes les variantes disponibles dans le protocole d'activation. R3_MODIFY_VARIANT Modifie une entrée dans une variante. Gestion de BDC Batch input est une technique classique de reprise en masse des données à partir de systèmes externes vers le système SAP. Les dossiers batch input utilisés à cet effet contiennent une ou plusieurs exécutions de transaction, y compris des données de transaction. L'Automation Engine peut lire les dossiers, mais aussi les exécuter et les surveiller jusqu'à leur fin. Outre l'exécution de dossiers, l'Automation Engine permet également l'exécution directe de transactions dont les données sont définies dans le Job (Call Transaction). JCL pour SAP Eléments de script Description R3_ACTIVATE_ SESSIONS Exécution des sessions batch input. R3_CALL_ TRANSACTION Exécute une transaction SAP. 257 Chapter 7 L'Automation Engine et les systèmes cible R3_GET_ SESSIONS Sélectionne des dossiers batch input et affiche le résultat dans le rapport d'activation ou dans un fichier. R3_SET_ BDCDATA Définit les données BDC. Gestion de Spool Dans l'Automation Engine, le traitement des Tâches peut être contrôlé par des Jobs. Les paramètres de l'objet Job et divers scripts vous aident à y parvenir. Vous pouvez entrer des destinataires de la liste spool dans l'onglet SAP des Jobs SAP. Toutes les requêtes spool que le Job crée sont envoyées aux destinataires entrés ici. JCL pour SAP De nombreux scripts possèdent des paramètres à l'aide desquels il est possible d'influencer la sortie du Job. En outre, les fonctions suivantes, qui traitent précisément les requêtes spool, sont à votre disposition. Elément de script Description R3_CREATE_OUTPUT_ REQUEST Crée un nouvel ordre d'édition pour une requête spool existante. R3_GET_JOB_SPOOL Lit la liste spool d'un step de type "programme ABAP". Vous pouvez spécifier des paramètres de filtrage. R3_GET_SPOOL_REQUESTS Sélectionne des requêtes spool avec des Filtres prédéfinis. R3_SEND_SPOOL_REQUEST Envoie une requête spool existante. Automation Engine 258 Gestion d'Evènements La gestion de processus doit être exécutée à partir d'Evènements pour des applications modernes. Un contrôle purement chronologique des déroulements ne suffit pas pour prendre en compte la complexité des environnements d'applications et de systèmes, avec leurs processus imbriqués et leurs dépendances. Avec Event, l'Automation Engine met à votre disposition une solution complète pour une gestion de processus orientée Evènements. Le traitement peut se faire en fonction d'un grand nombre de statuts et d'Evènements du système. Event met à disposition cette fonctionnalité pour un grand nombre de plateformes de système d'exploitation et d'application. La définition et le traitement d'Evènements se font de manière centrale et pour l'Utilisateur, quelle que soit la plateforme. Le traitement d'arrière-plan SAP possède également un contrôle d'Evènements. Les Evènements permettent de déclencher des processus d'arrière-plan SAP. En ce qui concerne la flexibilité et l'étendue des fonctions, les Evènements SAP sont loin des possibilités d'une mise en œuvre de l'Automation Engine. Dans certains cas, il est cependant nécessaire de prendre en compte les Evènements SAP dans l'Automation Engine. L'Automation Engine étend ainsi sa fonctionnalité à la prise en charge des Evènements SAP. Evènement SAP Un Evènement SAP est un indicateur qui est défini à l'aide de la transaction SM62. Un Evènement défini peut être déclenché (manuellement, à partir d'un Job du système d'exploitation ou d'un programme ABAP) et l'exécution d'un processus d'arrière-plan peut démarrer. Il existe deux types d'Evènements SAP : l l Evènements système Ils sont définis par SAP et sont déclenchés automatiquement lorsque des Evènements système se produisent, comme l'activation d'un nouveau mode d'exploitation. Les Evènements système ne peuvent être modifiés. Evènements utilisateur Ils sont définis par l'Utilisateur. Ces Evènements doivent être déclenchés par un ABAP ou un programme externe. Par exemple, un programme externe peut signaler au traitement 259 Chapter 7 L'Automation Engine et les systèmes cible d'arrière-plan SAP que des données externes sont prêtes à l'importation dans le système SAP. Prise en charge par l'Automation Engine L'Automation Engine prend en charge les Evènements SAP et les intègre dans sa gestion de processus centrale. Cette fonctionnalité peut être nécessaire lorsque le contrôle d'arrière-plan de SAP travaille déjà avec un grand nombre d'Evènements définis et qu'un changement à une mise en œuvre de l'Automation Engine avec des Workflows et Event paraît trop compliqué. Dans la plupart des cas d'application, il est cependant utile de remplacer les Evènements SAP par les mises en œuvre de l'Automation Engine correspondantes. L'Automation Engine peut utiliser les Evènements SAP pour sa gestion de processus. L'exécution des objets peut être soumise à la réalisation d'un Evènement SAP. Certains traitements peuvent ainsi par exemple dépendre de la fin d'une importation. Les Evènements définis dans SAP peuvent être déclenchés par l'Automation Engine. L'ensemble des fonctions variées de l'Automation Engine est à votre disposition pour définir la condition et le moment de déclenchement d'un Evènement SAP. Des processus du système SAP sont démarrés sur la base d'un tel Evènement. Pour la surveillance des Evènements SAP, un objet Evènement de type "Console" peut également être utilisé. L'Agent surveille les Evènements SAP déclenchés et transmet les informations aux Evènements de consoles. En utilisant des Filtres, vous pouvez sélectionner les Evènements SAP dont le moment de déclenchement marque le coup d'envoi d'un traitement séquentiel ou d'une Alerte. JCL pour SAP Elément de script Description R3_GET_EVENT Attend un Evènement déclenché dans SAP. R3_RAISE_EVENT Déclenche un Evènement défini dans SAP. Rubriques connexes : Surveillance des Evènements SAP Gestionnaire de critères Le gestionnaire de critères SAP permet de définir les conditions de l'historique des Evènements, de la réorganisation de l'historique des Evènements et de l'interception de Job dans les profils. Vous pouvez accéder directement au gestionnaire de critères dans le Job SAP. Fonctionnalités : l l l Création et suppression de profils Activation et désactivation de profils Ajout, modification et suppression de conditions Dans l'onglet Forme, cliquez sur le bouton pour ouvrir le gestionnaire de critères. Automation Engine 260 Vous devez obligatoirement utiliser XBP 3.0 pour accéder au gestionnaire de critères SAP. JCL pour SAP Elément de script Description R3_ACTIVATE_CM_ PROFILE Active un profil dans le Gestionnaire de critères SAP. R3_DEACTIVATE_ CM_PROFILE Désactive un profil dans le Gestionnaire de critères SAP. Reprise de Jobs SAP Avec l'objet Job de l'Automation Engine, il est non seulement possible de définir de nouveaux Jobs SAP, mais il est également possible de reprendre dans l'Automation Engine des Jobs existants. Cela présente l'avantage de ne pas devoir créer une deuxième fois les Jobs. Pour la reprise de Jobs, l'Interface Utilisateur doit être connectée au système SAP. Ouvrez un objet Job et passez à l'onglet "Forme". Dans coin supérieur gauche se trouvent de nombreux boutons. Cliquez sur le symbole . Une fenêtre s'ouvre dans laquelle vous pouvez saisir des Filtres pour les Jobs SAP, comme le nom ou le numéro de Job. 261 Chapter 7 L'Automation Engine et les systèmes cible Cliquez ensuite sur "Chercher". Tous les Jobs SAP correspondant au Filtre que vous avez saisi s'affichent. Sélectionnez le Job que vous souhaitez reprendre dans l'Automation Engine, puis cliquez sur OK. L'objet Job reprend les instructions que contient ce Job. Des paramètres, comme la variante ou le périphérique de sortie, sont renseignés automatiquement comme vous pouvez le voir dans l'illustration suivante. Automation Engine 262 La reprise ne veut pas dire que le Job est supprimé du système SAP. Seuls les paramètres du Job sont lus et copiés dans l'objet Job. Cette méthode de reprise de Job est très pratique pour de petites quantités de Jobs. Pour un grand nombre de Jobs, nous recommandons d'utiliser ApplicationInterface. Attention : une reprise de Jobs en masse doit être bien réfléchie et planifiée ! Essayez tout d'abord d'avoir une vue d'ensemble. Dans la plupart des cas, les Jobs qui se sont développés au fil du temps peuvent être retravaillés et donc simplifiés. Il se peut même que vous souhaitiez adapter certaines parties du traitement ou les remplacer par d'autres. Rubriques connexes : Reprise des définitions de calendrier SAP Reprise des définitions de calendrier SAP SAP offre la possibilité de définir le calendrier d'entreprise à l'aide de la transaction SCAL. L'interface contient un programme ABAP avec lequel vous pouvez exporter ces Groupes Calendriers sous forme de fichier XML, puis les transférer dans votre système AE. Les règles particulières du Groupe Calendrier sont également prises en compte. Une fois l'interface importée (voir instructions d'installation pour l'Agent SAP), le programme ABAP "/SBB/UC4_CALE_CREATE" peut être exécuté. Outre l'ID de calendrier d'entreprise, entrez également les informations de votre système AE, comme le montre l'illustration suivante. 263 Chapter 7 L'Automation Engine et les systèmes cible Les deux cases à cocher situées en fin de formulaire vous permettent de déterminer si la définition de calendrier doit être créée sous forme de liste spool et/ou sous forme de fichier XML. Dans le dernier cas, un dialogue s'ouvre dans lequel vous pouvez sélectionner le dossier où enregistrer le fichier. Importez ensuite le fichier XML dans votre système AE. Le calendrier d'entreprise est désormais disponible comme objet Groupe Calendrier. Le processus de reprise du Calendrier peut bien entendu être automatisé à l'aide d'un élément de script. Rubriques connexes : Automation Engine 264 Groupe Calendrier Importation et Exportation d'objets Reprise de Jobs SAP Gestion des Jobs Exécution de Jobs dans la pile ABAP (CCMS) L'Automation Engine vous offre, avec ses fonctionnalités, de nombreuses possibilités pour l'exécution de votre traitement dans SAP. A la base se trouve l'objet Job à l'aide duquel vous définissez les instructions devant être exécutées dans le système SAP. L'onglet Forme représente une interface graphique qui entretient une liaison au système SAP. La définition des instructions de traitement est ainsi simple et rapide, car vous pouvez sélectionner directement des données comme les variantes. L'Automation Engine permet l'exécution de : l l l l l l Jobs, rapports , commandes externes ; programmes externes, Jobs interceptés, et bien d'autres. Dans la Fenêtre d'Activités de l'Interface Utilisateur, vous voyez le statut de la Tâche et vous pouvez la redémarrer ou l'interrompre selon vos besoins. Les processus enfants sont également représentés. Une fois la Tâche terminée dans l'Automation Engine, vous pouvez afficher le rapport qui contient également les messages du système SAP. Mais l'objet Job n'est pas le seul à pouvoir exécuter des traitements dans le système SAP. Le type d'objet "RemoteTaskManager" possède la fonctionnalité permettant de surveiller des Jobs dans 265 Chapter 7 L'Automation Engine et les systèmes cible SAP, mais aussi de les démarrer. Vous pouvez l'utiliser pour des Jobs ou en particulier pour des Jobs interceptés. JCL pour SAP Elément de script Description R3_ACTIVATE_EXT_ COMMAND Exécute une commande externe. R3_ACTIVATE_EXT_ PROGRAM Exécute un programme externe. R3_ACTIVATE_ INTERCEPTED_JOBS Exécute des Jobs interceptés sous le contrôle de l'Automation Engine. R3_ACTIVATE_JOBS Exécute des Jobs déjà planifiés dans SAP sous le contrôle de l'Automation Engine. R3_ACTIVATE_REPORT Exécute le rapport indiqué. R3_GET_JOBS Sélectionne des Jobs SAP et affiche le résultat dans le rapport d'activation ou dans un fichier. R3_MODIFY_JOB Modifie un step ABAP. R3_SCHEDULE_JOB_ CANCEL Réattribue le statut "Planifié" à un Job SAP déjà lancé. Rubriques connexes : Processus enfant Jobs interceptés RemoteTaskManager Automation Engine 266 Processus fils Les Jobs SAP peuvent être composés d'un seul ou de plusieurs sous-Jobs (par ex. : pour les chaînes de processus). L'Automation Engine peut représenter ce qu'on appelle les processus fils. Ils sont affichés dans la Fenêtre d'Activités et possèdent des enregistrements statistiques propres ainsi que des rapports. Activez la fonctionnalité Parent-enfant dans la transaction SE38 au moyen du programme INITXBP2. Le type d'objet des processus fils s'appelle JOBD. Pour qu'une réplication des processus fils puisse avoir lieu dans le système AE, il faut définir le paramètre REPLICATE=YES pour le Script approprié. Attention : les processus fils peuvent, à leur tour, posséder des processus fils. Ces cas-là sont reconnaissables à la colonne "Parent" de la Fenêtre d'Activités et dans les statistiques. L'illustration suivante montre l'exécution d'une chaîne de processus dans laquelle c'est le cas : Dans la fenêtre de détails, le point "Texte du Statut" contient le numéro d'instance du système SAP. La désactivation des processus fils est contrôlée à partir du processus parent. Les Jobs SAP possèdent un onglet spécial nommé "Post-Traitement Lié". L'exécution a lieu dès qu'un processus fils individuel se termine. Une analyse du résultat peut alors être effectuée immédiatement après la fin d'un processus fils. Pour chaque processus fils, un enregistrement statistique et un rapport sont créés. Affichez-les tous deux à partir des statistiques du processus parent. 267 Chapter 7 L'Automation Engine et les systèmes cible Le rapport est structuré comme celui du processus parent le plus élevé ; il ne contient cependant que les contenus de l'étape du processus en question. Les paramètres du rapport de Job sont également repris par le processus parent (base de données, fichier, uniquement en cas d'erreur). En outre, vous pouvez déterminer la taille du rapport avec les paramètres JOBLOG=, PROCESSLOG= et LONGTEXT= dans les éléments de script BW_ ACTIVATE_CHAIN et BW_RESTART_CHAIN. JCL pour SAP Elément de script Description BW_ACTIVATE_CHAIN Démarre une chaîne de processus. BW_RESTART_CHAIN Continue une chaîne de processus interrompue. R3_ACTIVATE_ INTERCEPTED_JOBS Exécute des Jobs interceptés sous le contrôle de l'Automation Engine. R3_ACTIVATE_JOBS Exécute des Jobs déjà planifiés dans SAP sous le contrôle de l'Automation Engine. R3_ACTIVATE_REPORT Exécute le rapport indiqué. Rubriques connexes : Onglet Post-Traitement Lié Jobs interceptés Dans SAP, il est possible de définir dans la table TBCICPT1 des critères de filtrage pour les Jobs. En font partie les indications d'un Client, d'un nom de Job et de l'Utilisateur. Si un Utilisateur entré ici démarre un Job correspondant aux critères de filtrage, alors celui-ci est mis en statut "Planifié" quelles que soient les conditions de démarrage (par exemple "Immédiatement"). Activez la fonctionnalité Interception dans la transaction SE38 au moyen du programme INITXBP2. Automation Engine Dans l'onglet Forme des Jobs SAP, vous pouvez accéder à la table via l'icône entrées (XBP 2.0) ou utiliser le gestionnaire de critères (XBP 3.0). 268 et gérer ses Il est possible de modifier dynamiquement les entrées de la table avec le script R3_MODIFY_ INTERCEPTION. Il existe plusieurs méthodes pour exécuter les Jobs interceptés : 1. Le Gestionnaire de File d'Attente permet de contrôler et de surveiller les Jobs interceptés. 2. Utilisez R3_ACTIVATE_INTERCEPTED_JOBS. 3. Utilisez R3_GET_INTERCEPTION pour lire la table. Le résultat est enregistré dans un fichier auquel vous pouvez accéder à l'aide de PREP_PROCESS_FILE. Si vous démarrez les Jobs interceptés individuellement, et si vous les entrez comme type de démarrage d'un Groupe, vous pouvez définir le nombre de Jobs s'exécutant en parallèle. JCL pour SAP Elément de script Description R3_ACTIVATE_ INTERCEPTED_JOBS Exécute des Jobs interceptés sous le contrôle de l'Automation Engine. R3_GET_ INTERCEPTION Lit la table de filtre pour les Jobs interceptés et enregistre dans le protocole d'activation ou un fichier. R3_MODIFY_ INTERCEPTION Modifie la table de filtre pour les Jobs interceptés. Rubriques connexes : Onglet Forme Analyse du code retour d'application des steps SAP Un step SAP peut également contenir un code retour d'application. Vous pouvez y accéder des façons suivantes : Avec un élément de script R3_GET_APPLICATION_RC peut vérifier le code retour d'application d'un ou plusieurs steps de Job et, le cas échéant, interrompre le Job. Avec le rapport de Liste de steps Ce type de rapport spécifique contient des informations sur les steps et également le code retour d'application. Lisez la valeur à l'aide d'un élément de script XML. Exemple : :SET &xmlreport# = XML_OPEN(REPORT,,SSTP) 269 Chapter 7 L'Automation Engine et les systèmes cible ! Lire le premier élément :SET &job# = XML_GET_FIRST_CHILD(&rapport xml#) :SET &nom# = XML_GET_NODE_NAME(&job#) :PRINT "Premier élément : &nom#" ! Lire le deuxième élément :SET &enfant# = XML_GET_FIRST_CHILD(&step#) ! Lire les processus enfant du step :WHILE &enfant# <> "" :SET &nom# = XML_GET_NODE_NAME(&enfant#) ! Lire le code retour d'application :IF &nom# = "RC" : SET &applrc# = XML_GET_NODE_TEXT(&enfant#) : PRINT "Code retour d'application : &applrc#" :ENDIF :SET &enfant# = XML_GET_NEXTSIBLING(&child#) :ENDWHILE :XML_CLOSE Avec le rapport de Job Les informations sur les steps de Job SAP sont journalisées dans le rapport de Job. Le code retour d'application est également spécifié dans le rapport de Job, si vous utilisez l'interface. Si un step ne possède pas de code retour d'application, "Appl-RC n/a" est spécifié dans le rapport de Job. La fonction de script PREP_PROCESS_REPORT vous permet de lire les codes retour d'application et de les traiter. Dans l'exemple suivant, un ABAP nommé ZZ_TEST_APPL_RC est exécuté une fois dans le Job. Son code retour d'application doit être lu. ! Sélectionner la ligne contenant l'ABAP et le code retour d'application :SET &HND# = PREP_PROCESS_REPORT(,,REP,"*ZZ_TEST_APPL_RC*Appl-RC*") :PROCESS &HND# : SET &LIGNE# = GET_PROCESS_LINE(&HND#) ! Trouver l'emplacement dans la ligne où commence "Appl-RC" : SET &POS_STR# = STR_FIND(&LIGNE#,"Appl-RC") ! Le code retour d'application se trouve 8 caractères après : SET &POS_ARC# = ADD(&POS_STR#,8) ! Lire le code retour d'application : SET &ARC# = STR_CUT(&LIGNE#,&POS_ARC#) ! Vérifier si le step fournit vraiment un code retour d'application : IF &ARC# <> "n/a" ! Comme la valeur lue est une séquence de caractères, elle doit être convertie en un nombre : SET &ARC#= CINT(&ARC#) ! A partir d'ici se trouvent des instructions de script quelconques qui traitent le code retour d'application : PRINT &ARC# : ENDIF :ENDPROCESS Attention : le code retour d'application n'est pas disponible dans l'interface XBP. Automation Engine 270 JAVA Agent Java EE/JMX pour SAP NetWeaver Java Management Extensions (JMS) est une technologie qui configure des instruments pour contrôler et surveiller des applications, appareils et réseaux. Automation Engine offre la possibilité d'intégrer des applications Java dans des processus métiers à l'aide d'un Agent pour JMX. La connexion est établie via un Serveur MBean grâce auquel vous pouvez accéder aux MBeans à l'aide de fonctions. SAP NetWeaver comprend, par exemple, plus de 1600 MBeans dans sa version standard. Ceux-ci peuvent être contrôlés directement. Du côté JAVA, il n'est pas nécessaire de procéder à une prédéfinition de Jobs exclusifs. Un planificateur n'est pas non plus nécessaire au sein de JAVA, étant donné que cela est pris en charge par l'Automation Engine. En raison du standard, cette fonctionnalité peut s'exécuter sur des sources Java d'autres éditeurs. Les serveurs d'applications qui sont pris en charge sont énumérés dans la check-list des prérequis. Des éléments de script sont disponibles dans l'Automation Engine pour, par exemple, enregistrer, énumérer et supprimer les MBeans. Il est également possible d'exécuter des MBeans ainsi que de lire et définir des attributs et des informations. L'onglet Forme de l'objet Job offre une interface graphique dans laquelle il est aisé de sélectionner ces fonctionnalités. Rubriques connexes : Onglet Forme (JMX) Généralités sur JMX-JCL JMX dans SAP NetWeaver L'utilisation de MBeans dans SAP NetWeaver est possible via l'Agent JMX AE. Surveillance du moteur J2EE A l'aide de JMX, il est possible de consulter le statut du moteur J2EE. Ces informations sont également affichées dans le Visual Administrator, sous Server -> Services -> Monitoring. 271 Chapter 7 L'Automation Engine et les systèmes cible Toutes les fonctions du Visual Administrator sont à votre disposition dans MBeans et peuvent donc également être utilisées par l'Automation Engine. Il existe cependant une restriction : L'Automation Engine ne peut utiliser aucune opération ou attribut JMX qui utilise des classes spécifiques à SAP (par exemple com.sapmarkets.bam.application.User) ou des structures de données complexes (listes, cartes, séries, etc.). Le navigateur MBean de l'Automation Engine dans le Job JMX affiche 300 entrées MBean au maximum. Le filtre de recherche (clic droit sur l'arborescence -> Appliquer le filtre ...) permet de rechercher précisément certains MBeans. Exemple : vous voulez consulter le nombre de tentatives de connexion échouées. Dans la première illustration, cette valeur se trouve sous le nœud Security -> Aggregated Data. Il est ainsi possible de filtrer sur "*Security/Aggregated Data/UnsuccessfulLogonAttemptsCount*" dans le navigateur MBean. Dans notre environnement, cela renvoie exactement un MBean comme résultat. Ici, vous pouvez sélectionner un des attributs "Value", "MaxValue" ou "MinValue". Il est possible de planifier, dans un Job, une consultation périodique du nombre d'identifications échouées. Démarrage et arrêt d'un service Le Visual Administrator configure également les services, les démarre et les arrête. Etant donné que des MBeans JMX sont également utilisés ici, cette fonctionnalité peut être exécutée à l'aide de l'Agent. Ces services sont énumérés dans le Visual Administrator, sous Server -> Services : Automation Engine 272 Exemple : le service Telnet doit être démarré ou arrêté. Pour afficher tous les services dans le navigateur MBean, il est possible de filtrer en fonction de "*SAP_J2EEServicePerNode*". Les MBeans renvoyés correspondent aux services. Tous les services ont une méthode "start" et "stop". Sélectionnez l'entrée "telnet" dans l'arborescence. Dans le détail, il est possible de sélectionner ensuite la méthode "stop". Après avoir cliqué sur OK, un Job qui arrête le service Telnet est créé : 273 Chapter 7 L'Automation Engine et les systèmes cible La modification est immédiatement visible dans le Visual Administrator : Automation Engine 274 Exécution de Jobs dans la pile Java (JXBP) L'Automation Engine vous offre les possibilités suivantes pour gérer des Jobs dans le planificateur Java de SAP : l l l l Démarrer les Jobs avec les paramètres Interrompre les Jobs Reprendre le protocole dans le rapport de Job. Surveiller les Jobs par filtre à l'aide du RemoteTaskManager La définition du Job Java doit d'abord être déployée dans le planificateur Java. Elle est ainsi visible par l'Agent SAP. Ce n'est qu'après que vous pouvez créer une instance à partir d'une définition de Job existante à l'aide d'un objet Job. Un objet Job SAP appartient toujours à une seule définition de Job Java. Créez un objet Job SAP pour les Jobs du planificateur Java et sélectionnez l'Agent SAP ainsi qu'un objet Login. Vous pouvez sélectionner dans l'onglet Forme la définition de Job qui doit être exécutée. La partie inférieure de l'onglet affiche automatiquement les paramètres correspondants. L'onglet "Protocole du Job" contient les options suivantes : l l l Supprimer après x jours - Le protocole du Job est supprimé après x jours dans le planificateur Java. Ne pas supprimer - Le protocole du Job n'est pas supprimé dans le planificateur Java. Utiliser les paramètres par défaut - Le paramètre de la définition du Job permet de définir le délai de suppression du protocole du Job dans le planificateur Java. Le protocole du Job est toujours supprimé avec l'instance du Job. Rapport pour les statistiques du Job Java Un objet Job SAP exécuté peut, entre autre, comporter un rapport (SJJI) contenant des informations relatives au Job Java. Dans l'objet Job, dans l'onglet SAP, cochez la case correspondante dans la zone "Rapports optionnels". Installation Création du planificateur externe dans SAP : 1. 2. 3. 4. Connectez-vous à l'administrateur SAP Netweaver par le biais de l'interface web. Sélectionnez l'onglet "Job". Cliquez sur le lien "Planificateur Java" -> "Planificateur externe". Ajoutez une nouvelle entrée dans la liste du planificateur Java externe enregistré à l'aide du bouton "Ajouter". 5. Renseignez les champs. Indiquez un nom et la description "Operations Manager". 6. Cliquez ensuite sur "Ajouter". Création d'un objet Connexion dans l'Automation Engine : 1. Connectez-vous au Client système 0000. 2. Créez un nouvel objet Connexion pour SAP. 3. Ouvrez l'objet Connexion et sélectionnez le type de connexion "Internet" dans l'onglet Attributs. 275 Chapter 7 L'Automation Engine et les systèmes cible 4. Allez dans l'onglet Internet et indiquez les données de connexion au planificateur Java SAP. Indiquez quel Utilisateur vous avez également utilisé lorsque vous avez ajouté l'Automation Engine comme planificateur externe. 5. Enregistrez l'objet Connexion et fermez-le. 6. Allez dans le dossier "HOST" et ouvrez l'objet de l'Agent SAP. 7. Sélectionnez l'objet Connexion dans l'onglet Agent dans le champ "Java Basis". 8. Sauvegardez l'objet Agent et fermez-le. 9. Si l'Agent SAP est en cours d'exécution, vous devez le redémarrer. Cas exceptionnels Dans un environnement comportant plusieurs nœuds, les Jobs du planificateur Java sont exécutés sur le nœud sur lequel le service de planification est actif. Lorsqu'un nœud est désactivé ou défaillant, le traitement du Job se poursuit sur un autre nœud. Si l'Agent perd la connexion au planificateur Java pendant l'exécution du Job, il tente périodiquement de restaurer la connexion. Le Job reste actif dans le système AE et a le statut "Attente d'un Système distant". Si l'appel du planificateur Java génère une erreur, le Job est alors interrompu. Dans ce cas, il n'existe pas de rapport sur les statistiques du Job Java. L'erreur est journalisée dans le rapport "Log d'Agent" de l'objet Log et dans le fichier log de l'Agent SAP. Le Job est interrompu avec le code retour 403. Une reprise est impossible. Dans la mesure où il n'y a aucun JCL AE, le Job complet est toujours relancé dans le planificateur Java. Codes retour Statut SAP Code retour du Job dans l'Automation Engine COMPLETED HOLD RUNNING SCHEDULED STARTING UNKNOWN 0 ERROR 501 CANCELLED 502 Gestion du cycle de vie Surveillance de SAP NetWeaver Surveillance des moniteurs SAP offre une série de moniteurs avec lesquels vous pouvez surveiller l'environnement SAP ainsi que les composants qui en font partie. La fonction R3_GET_MONITOR lit ses informations et les prépare en vue du traitement. Automation Engine 276 Dans l'exemple suivant, le moniteur "All Monitoring Contexts" est lu et enregistré dans un fichier texte : R3_GET_MONITOR MONITOR_SET="SAP CCMS Technical Expert Monitors", MONITOR="All Monitoring Contexts", FILE="C:\AE_und_ SAP\AllMonitoringContexts.txt" La fonction script PREP_PROCESS est très utile si vous ne souhaitez filtrer que certaines parties des informations du moniteur. Elle fournit, sur la base d'un Filtre, une séquence de données qui peut ensuite être traitée. L'Agent SAP prépare les informations du moniteur sous forme de colonnes. Dans l'exemple suivant, les lignes contenant "Enqueue" sont filtrées et quatre colonnes passent dans le traitement ultérieur : :SET &HND# = PREP_PROCESS("SAP01","R3MONITOR","*Enqueue*","MONSET=SAP CCMS Technical Expert Monitors","MONNAM=All Monitoring Contexts","COL=FILE","UC_LOGIN=LOGIN.SAP") :PROCESS &HND# : SET &Contexte# = GET_PROCESS_LINE(&HND#, CONTEXT) : SET &Nom# = GET_PROCESS_LINE(&HND#, NAME) : SET &Valeur# = GET_PROCESS_LINE(&HND#, VALUE) : SET &Statut# = GET_PROCESS_LINE(&HND#, STATUS) : PRINT "&Contexte# --- &Nom" : PRINT "Valeur : &Valeur#" : PRINT "Status: &Statut#" : PRINT "" :ENDPROCESS En arrière-plan, l'exemple exécute également la fonction R3_GET_MONITOR. Vous trouverez des informations plus précises dans la description de la fonction script PREP_PROCESS. L'objet RemoteTaskManager autorise également une surveillance dans le système SAP. Il affiche, à partir des critères de filtrage définis, les Jobs ayant été déclenchés par SAP. JCL pour SAP Elément de script Description R3_GET_MONITOR Lit des données d'un moniteur SAP. Surveillance des Evènements SAP Les Evènements ont une très grande importance dans le traitement en arrière-plan dans SAP. L'objet Evènement du type "console" peut être utilisé pour surveiller les Evènements SAP. L'Agent interroge périodiquement le système SAP au sujet des Evènements SAP survenus et les signale aux Evènements de console actifs. L'administrateur peut régler l'intervalle dans la Variable UC_HOSTCHAR_DEFAULT avec la clé JOB_CHECKINTERVAL. Un Filtre vous permet de définir les Evènements SAP que vous souhaitez suivre. Si l'Agent annonce un Evènement SAP, les instructions de l'onglet "!Script" sont exécutées. Vous pouvez ainsi introduire d'autres étapes dans le traitement. Dans !Script, utilisez la fonction GET_EVENT_INFO. Elle vous fournit des détails sur l'Evènement SAP qui s'est produit. 277 Chapter 7 L'Automation Engine et les systèmes cible Dans la table figurant dans la partie inférieure de l'onglet, il est possible d'entrer plusieurs lignes de filtrage. Si l'Agent annonce un Evènement SAP correspondant à au moins une ligne de filtre, le !Script est exécuté. S'il correspond à plusieurs filtres, le !Script n'en est pas pour autant traité plusieurs fois. Des filtres se recoupant peuvent également se produire si vous utilisez plusieurs Evènements de console. En l'occurrence, l'Agent annonce l'Evènement SAP à tous les Evènements de console. Outre l'Evènement de console, l'Automation Engine met également à votre disposition des fonctions avec lesquelles vous pouvez traiter des Evènements SAP à partir des objets Job. R3_ GET_EVENT attend qu'un Evènement se déclenche dans SAP et avec R3_RAISE_EVENT, vous déclenchez vous-même un Evènement défini dans SAP. Déroulement 1. Créez un objet Evènement du type "console". 2. Ouvrez-le et passez à l'onglet "Console". Il est possible d'y spécifier l'Agent qui est lié au système SAP et les critères de filtre pour les Evènements SAP. 3. Dans l'onglet "!Script", vous entrez les instructions de Script devant être exécutées dès qu'un Evènement SAP correspondant aux critères de filtre est annoncé. La fonction script GET_EVENT_INFO peut vous fournir des détails sur l'Evènement SAP. 4. Renseignez selon les besoins les autres onglets de l'Evènement de console et enregistrez l'objet. 5. L'Evènement de console peut désormais être activé pour relier les Evènements SAP dans votre traitement. Automation Engine 278 Conseils La condition requise pour la surveillance d'Evènements SAP par le type d'Evènement "Console" est XBP 3.0. L'utilisation de l'interface XBP 3.0 doit être définie par l'administrateur dans le fichier INI de l'Agent SAP. Si l'Agent perd la connexion au système SAP, un certain nombre d'Evènements SAP s'accumulent et l'Agent n'est pas capable de les transmettre aux Evènements de console. Une fois la connexion rétablie, il vérifie cette situation et annonce également ces Evènements SAP aux Evènements de console concernés. En raison de l'éventuelle grande quantité de données, il ne lit pas tous les Evènements SAP en une seule fois. L'administrateur peut configurer en conséquence le comportement à l'aide du paramètre maxEventTimeSpan= du fichier INI de l'Agent. Si l'Agent est terminé, il ne peut surveiller aucun Evènement SAP pendant l'arrêt. Après redémarrage, l'Agent détermine le moment auquel il a surveillé pour la dernière fois les Evènements SAP et annonce également les Evènements SAP qui se sont produits durant l'arrêt. Tous les Agents reliés au système SAP demandent les Evènements SAP. Autrement dit, chaque Agent annonce tous les Evènements SAP survenus à tous les Evènements de console. Si l'heure du système SAP retarde par rapport à l'heure du système AE, les premiers Evènements SAP ne peuvent pas être recueillis, s'ils tombent dans l'intervalle de temps situé entre les différences d'heure. Rubriques connexes : Gestion d'Evènements Exemple - Réaction à des Evènements externes Intégration de l'Automation Engine à SAP Solution Manager SAP Solution Manager est fourni avec tous les systèmes SAP à partir de Web Application Server (WAS) 6.10. Il doit devenir le logiciel central de surveillance pour les systèmes SAP, mais aussi pour les applications externes. Cela conduit à une centralisation de tous les services dans le cadre d'un environnement SAP. L'Agent SAP permet à l'Automation Engine d'intégrer l'ensemble des processus de gestion de l'entreprise dans SAP Solution Manager. Surveillance La surveillance centrale est un des éléments essentiels de SAP Solution Manager. La partie de surveillance se décompose, à son tour, en deux domaines essentiels : l l exploitation surveillance des processus métier Alors que pour le premier domaine, il s'agit principalement de déroulements et d'états techniques, le domaine de la surveillance des processus métier représente les processus métier logiques des systèmes SAP ainsi que leur surveillance. 279 Chapter 7 L'Automation Engine et les systèmes cible Surveillance de l'exploitation Dans le domaine Surveillance de l'exploitation, Solution Manager collabore avec l'infrastructure de surveillance existante dans CCMS (Computing Center Management Systems). Les statuts des systèmes et des processus sont représentés dans une arborescence. Jusqu'à présent, ces moniteurs se limitaient aux systèmes SAP. Désormais, SAP met à disposition des interfaces pour applications externes, pour annoncer leurs propres données de statut à Solution Manager et pour les afficher dans l'arborescence de surveillance. L'Agent SAP utilise une telle interface pour accéder à la structure du moniteur dans CCMS. Il utilise pour cela un objet Connexion pour ABAP Basis. A l'aide de scripts, vous pouvez créer et modifier des attributs et supprimer des nœuds : Elément de script Description R3_DELETE_NODE Suppression d'un nœud. R3_SET_LOG_ATTR Définition d'un attribut log. R3_SET_PERF_ ATTR Définition d'un attribut de performance. R3_SET_STATUS_ ATTR Définition d'un attribut de statut. R3_SET_TEXT_ ATTR Définition d'un attribut de texte. L'onglet Forme des Jobs SAP vous permet d'examiner les nœuds. Un navigateur séparé affiche le moniteur "All Monitoring Contexts" de l'ensemble de moniteurs "SAP CCMS Technical Expert Monitors". Les couleurs des nœuds correspondent au statut d'alerte actuel. Automation Engine 280 Surveillance des processus métier Chacun des processus et systèmes informatiques forment la base des processus métier. Avec SAP Solution Manager, ces contextes peuvent être définis et affichés. Toutes les données disponibles dans la surveillance de l'exploitation sont à disposition pour modéliser les processus métier. L'Automation Engine contrôle les processus centraux de tous les systèmes et applications de l'entreprise. Grâce à l'intégration de l'Automation Engine à SAP Solution Manager, il est possible de représenter dans le système SAP les processus métier de l'entreprise et de les surveiller. 281 Chapter 7 L'Automation Engine et les systèmes cible Si une erreur se produit dans un processus métier, son origine peut être constatée immédiatement. Le temps nécessaire à la correction de l'erreur est ainsi réduit et le processus métier redémarre le plus vite possible. Contrôle des processus Solution Manager contient également la fonctionnalité pour le contrôle des processus d'arrière-plan. A l'heure actuelle, cette fonctionnalité est accessible via les transactions SM36 et SM37. Ces fonctions sont entièrement prises en charge par l'Automation Engine. L'ensemble du traitement d'arrière-plan SAP peut être contrôlé et surveillé de manière centralisée avec l'Automation Engine. En outre, l'Automation Engine associe ces processus SAP aux processus de tous les autres systèmes et applications de l'entreprise. Rubriques connexes : Monitor SAP NetWeaver Inscription dans le système Landscape Directory Le système Landscape Directory (SLD) de SAP donne un aperçu des composants logiciels installés. Vous pouvez configurer l'Agent SAP de sorte qu'il s'inscrive dans le SLD au démarrage. Les étapes suivantes sont nécessaires : Automation Engine 282 1. Connectez-vous au Client système 0000. 2. Créez un nouvel objet Connexion pour SAP. 3. Ouvrez l'objet Connexion et sélectionnez le type de connexion "Internet" dans l'onglet Attributs. 4. Allez dans l'onglet Internet et indiquez les données de connexion au SLD. 5. Enregistrez l'objet Connexion et fermez-le. 6. Allez dans le dossier "HOST" et ouvrez l'objet de l'Agent SAP. 7. Sélectionnez l'objet Connexion dans le champ "Moniteur" de l'onglet Agent. 8. Sauvegardez l'objet Agent et fermez-le. L'Agent SAP essaie désormais de se connecter au SLD à chaque démarrage. Même si l'inscription échoue, par exemple à cause d'une erreur dans les paramètres de connexion, l'Agent SAP n'interrompt pas le démarrage. Le fichier log de l'Agent SAP contient un message indiquant si l'inscription à SLD a réussi. Analyse du log système et du log application L'Automation Engine permet la lecture de logs SAP. En font partie les logs application mais aussi le log système. Les deux types de log fournissent des informations pour le traitement et les éventuelles situations d'erreur. Avec les fonctions mises à disposition par l'Automation Engine, vous pouvez lire les entrées en utilisant des Filtres et les enregistrer dans le rapport ou dans les fichiers. Il est ensuite possible d'analyser le résultat avec PREP_PROCESS et PREP_PROCESS_FILE. Pour le log système, il existe une autre particularité. Les Jobs interrompus peuvent enregistrer les dernières lignes du log système dans un rapport spécial nommé SLOG. Cela vous facilite l'analyse des erreurs. L'objet Connexion de l'Agent SAP permet de définir entre autres paramètres le nombre de lignes du log système prises en compte. JCL pour SAP Eléments de script Description R3_GET_ APPLICATIONLOG Cherche les messages du log application et les génère dans le rapport ou le fichier. R3_GET_SYSTEMLOG Lit les informations d'une période donnée d'un logging système SAP. Commutation des modes de fonctionnement Avec les modes de fonctionnement de SAP, les ressources système disponibles sont utilisées de manière optimale. Il est possible de définir, en fonction de l'heure du jour, divers paramètres pour le traitement d'arrière-plan ou par dialogue. Ce type d'attribution des ressources ne nécessite aucun redémarrage du système R/3. 283 Chapter 7 L'Automation Engine et les systèmes cible L'Automation Engine prend, bien entendu, en charge cette fonctionnalité SAP. L'élément de script R3_SWITCH_OPMODE est à votre disposition pour commuter les modes de fonctionnement pour tous les serveurs d'applications SAP ou seulement pour certains. JCL pour SAP Eléments de script Description R3_SWITCH_OPMODE Change le mode de fonctionnement dans SAP. 7.11.3 SAP Banking Gestion de processus pour SAP for Banking SAP développe, en collaboration avec d'importantes banques européennes, une solution dédiée à la gestion des comptes dans SAP for Banking. Les développeurs de l'Automation Engine ont travaillé à l'intégration de cette nouvelle solution SAP dans la gestion de processus éprouvée de l'Automation Engine. Il en résulte la création d'Agent for SAP AM/BCA offrant des capacités complètes de gestion de processus pour les transactions bancaires. L'Automation Engine intègre cette nouvelle solution SAP dans sa gestion de processus centrale et assure les processus métier pour toute l'entreprise et sur toutes les plateformes. Déroulements dans SAP Banking Une des particularités de SAP Transaction Banking est que des déroulements entiers peuvent être enregistrés dans la personnalisation. La définition du déroulement correspond à un type de Workflow (sous forme tabulaire). Les déroulements sont en fait de soi-disant traitements de fin de journée (TEV). Le contrôle de ces déroulements doit prendre en compte les facteurs suivants : Réseau de processus Le réseau de processus est créé et surveillé à l'aide d'une fonction de menu d'une définition de déroulement dans la personnalisation. Il possède un ID unique devant être attribué pour chaque cycle. Le réseau de processus se compose d'une série de processus. Un processus est une fonction d'application qui est toujours traitée, d'un point de vue technique, en deux étapes : Automation Engine 284 1. La fonction d'application même 2. La partie de surveillance de cette fonction d'application. La partie de surveillance n'est cependant exécutée que si le processus a été initié via un réseau de processus. Il est désormais possible de traiter de façon synchrone et asynchrone l'ensemble de la fonction d'application, y compris la partie de surveillance. Traitement synchrone La fonction d'application, y compris la surveillance, est traitée de façon synchrone à partir d'un composant de fonction, c'est-à-dire que le composant de fonction se termine de façon synchrone avec la fonction d'application. Traitement asynchrone La fonction d'application ainsi que la surveillance sont démarrées en tant que Jobs d'arrière-plan, sachant que le Job de surveillance suit toujours le Job d'application. Processus avec parallélisation Pour certains processus (avec données de masse), une parallélisation du traitement (similaire à ISU/IS-T) est prévue. Il n'existe, hélas, aucune fonctionnalité de base pour ce type d'exigence. Un processus avec parallélisation crée des Jobs d'arrière-plan parallèles, c'est-à-dire un Job d'arrière-plan parallèle ainsi qu'un Job de surveillance le suivant. Si le processus est démarré de façon asynchrone, un "Job père" est créé et il est suivi d'un Job de surveillance qui reste actif pour l'ensemble de la durée du processus. Les processus ont un code de retour d'application Les processus comportent un code retour d'application. Le statut technique normal (par ex. Job terminé) ne suffit pas à garantir un traitement réussi. En outre, un log d'application est généré par rapport à chacun des composants d'un processus (composant de fonction, ABAP, ABAP de surveillance, etc.). Démarrage de réseaux de processus et de processus Les réseaux de processus sont liés à des fonctions de dialogue et sont initiés par celles-ci. Selon le cas applicatif, les processus sont alors démarrés de façon synchrone ou asynchrone. (les grands cycles de façon asynchrone, bien entendu). Exigences sur l'Automation Engine Un Workflow AE correspond à une définition du déroulement de la personnalisation. Les Tâches du Workflow représentent alors les processus. Le contrôle de Job de la base SAP n'offre pas des moyens appropriés pour le contrôle de processus dans AM/BCA. Pour le contrôle des processus individuels, il n'est pas possible de créer des Jobs d'arrière-plan standard, étant donné que la partie de surveillance de la fonction d'application n'a pas été démarrée et qu'ainsi aucun code retour d'application n'a pu être généré. Cela n'aurait pas été judicieux de modifier toutes les applications de façon à ce que cette fonction de surveillance se déroule de façon implicite. Cela aurait créé un trop grand nombre de programmes ; de plus, le code retour d'application aurait dû être communiqué via le log de Job. 285 Chapter 7 L'Automation Engine et les systèmes cible C'est pourquoi il est resté l'alternative de créer pour chaque Tâche à partir du Workflow AE un réseau de processus à ID distinct dans le système SAP. Ce réseau de processus ne contient jamais qu'un seul processus. Si le processus est démarré à l'aide du réseau de processus, cela conduit en fin de compte toujours à la création de deux Jobs batch asynchrones dans le système SAP, la fonction d'application et la fonction de surveillance. Pour l'Automation Engine, des éléments de script contrôlant les processus ont été définis (BCA_ ACTIVATE_PROCESS). Pour permettre la surveillance (vérification de statut) par l'Automation Engine, SAP a étendu l'interface avec une fonction correspondante. Description de fonction AE Démarrage et surveillance de processus Cette fonction encapsule un seul processus dans un réseau de processus, démarre le processus et le surveille. Avec la fin du processus, le réseau de processus est également terminé parce qu'il ne contient que ce processus. Exploitation des codes retour d'application Les processus individuels renvoient des codes retour d'application. Ceux-ci peuvent être analysés dans l'Automation Engine. (par exemple dans Postscript). Exploitation des logs d'application Les processus d'un réseau de processus génèrent des logs d'application. Il n'existe cependant pas un rapport de 1:1 entre les processus ou les réseaux de processus et les logs d'application. C'est pourquoi l'exploitation des logs d'application est une procédure distincte dans l'Automation Engine. Cette fonction met à une disposition une possibilité de sélectionner les logs d'application en fonction de certains critères (des numéros de log sont le résultat). Les messages et textes du log d'application correspondants peuvent ensuite être lus en fonction des numéros de log. Les textes sont générés dans un fichier texte ou dans un rapport. Intégration dans les réseaux de Job Les processus contrôlés par l'Automation Engine dans SAP AM/BCA peuvent être intégrés aux Workflows d'entreprise. Les dépendances pour les traitements peuvent être mises en œuvre et surveillées facilement dans d'autres systèmes SAP, mais aussi dans d'autres systèmes. Statistiques complètes Pour tous les processus contrôlés avec l'Automation Engine, des statistiques complètes sont à disposition pour des analyses et planifications ultérieures. Il en va bien entendu de même pour les processus de SAP for Banking. JCL pour SAP Elément de script Description BCA_ACTIVATE_ PROCESS Démarre et surveille un processus qui se déroule dans un réseau de processus distinct. Automation Engine 286 7.11.4 SAP Financial Closing Cockpit Intégration de l'Automation Engine dans SAP Closing Cockpit SAP Financial Closing Cockpit permet de planifier différentes Tâches qui doivent être réalisées dans un ordre déterminé et à moment précis. Grâce à l'intégration de l'Automation Engine dans cette fonctionnalité, il est possible d'activer des objets dans un système AE via des Tâches Closing Cockpit. Conditions Service Web Internal L'utilisation du service Web Internal est possible pour les serveurs d'application suivants : l l l l Sun Glassfish JBoss IBM WAS CE SAP Netweaver CE Pour l'installation, suivez la description de l'installation pour le serveur d'application souhaité. Veillez à utiliser la version actuelle du service Web Internal. Version SAP Pour SAP Basis, il convient d'utiliser une version de Support Package spécifique ou supérieure. Elle dépend de la version de SAP Release utilisée. Release Package Name 700 SABKB70017 701 SABKB70101 710 SABKB71007 Une condition supplémentaire est l'utilisation de SAP ERP version 6.00. Fichiers fournis Les fichiers cryptés sont fournis dans le fichier SAP_CloCo.zip.ucc du répertoire IMAGE:FRAMEWORK\SAPCLOSINGCOCKPIT. Installation 1. l Décryptage du fichier fourni Pour le décryptage du fichier SAP_CloCo.zip.ucc, utilisez le programme UCYBCRYP.EXE qui se trouve sur le CD Automation Engine, dans le dossier IMAGE:\TOOLS\ENCRYPT. Exécutez maintenant le programme via la ligne de commande avec les paramètres suivants : UCYBCRYP.EXE -d -f SAP_CloCo.zip.ucc -lFichier de licence Le fichier de licence vous est fourni par le Support (Numéro de Client.TXT). 287 Chapter 7 L'Automation Engine et les systèmes cible l l Vous obtenez le fichier compressé nommé SAP_CloCo.ZIP Décompressez le fichier SAP_CloCo.ZIP 2. Chargement des transports SAP Pour l'intégration, des programmes ABAP spécifiques qui doivent être chargés au moyen de l'importation dans le système SAP sont nécessaires. Vous trouverez pour cela 2 fichiers dans l'archive SAP_CloCo.ZIP l l KNNNNNN.SID - Fichier d'information RNNNNNN.SID - Fichier de données Copiez ces fichiers dans le répertoire de transport de SAO (par exemple, /usr/sap/trans/). Le fichier R doit être enregistré dans le sous-dossier "data" et le fichier K dans "cofiles". Connectez-vous au système SAP et importez l'ordre correspondant avec la transaction STMS. A la fin de l'importation, ouvrez et vérifiez le protocole de transport de l'ordre : toutes les étapes doivent posséder le code retour 0 (terminé avec succès) ou 4 (terminé avec avertissement). 3. Etablissement de la connexion RFC HTTP Exécutez la transaction SM59 et choisissez le point "Connexion HTTP au serveur externe". Etablissez ensuite une nouvelle connexion. Attribuez un nom à la destination RFC (par exemple, UC4_WEBSERVICE) avec une description. Onglet : Configurations techniques : Dans le champ "Machine cible", il faut entrer le nom d'hôte du serveur d'application sur lequel s'exécute le service Web Internal. Définissez le numéro de port avec le champ "N° de service". Onglet : Connexion et sécurité : Sélection de l'option "Authentification par défaut". Il faut désormais indiquer les données pour l'accès au système AE : Pour cela, entrez dans le champ "Utilisateur" le client AE, le nom d'utilisateur et le service, séparés par une barre oblique. Une fois le mot de passe saisi, enregistrez la connexion RFC. Automation Engine 4. Définition du port logique Démarrage de la transaction Ipconfig Remplissez les champs comme suit : Classe de proxy : /UC4/CO_UC4PORT_TYPE Port logique : UC4 Définissez l'option "Port par défaut". Le bouton "Nouveau" permet de créer le port logique. Ensuite, d'autres paramètres s'affichent. Ils doivent être définis comme suit : Configurations générales : Onglet Exécution : Web Service Infrastructure Onglet "Paramètre d'appel" : HTTP Destination Nom de la destination RFC établie (voir "Etablissement de la connexion RFC HTTP") Suffixe du chemin : /uc4ws/uc4ws 288 289 Chapter 7 L'Automation Engine et les systèmes cible Configurations propres à l'application : Désactivez toutes les options dans l'onglet "Configurations globales". Enregistrez puis activez le port logique. 5. Enregistrement du rapport ABAP pour Closing Cockpit Exécutez la transaction SM30 et ouvrez le tableau SCMAPROGRAMS pour effectuer des modifications (bouton "Modifier"). Il faut ensuite ajouter une entrée avec les valeurs suivantes : Colonne Valeur Programme /UC4/CC_ REPORT Application CUSTOMER Enregistrez la nouvelle entrée. 6. Test de la connexion Automation Engine 290 Pour tester la connexion d'ABAP au système AE, le programme AE/CC_REPORT doit être démarré au moyen de la transaction SE38. Rubriques connexes : Services Web AE Internal Activation d'objets avec SAP Closing Cockpit L'intégration permet d'activer des objets exécutables via des Tâches dans SAP Financial Closing Cockpit. Vous trouverez l'installation à ce sujet au chapitre Installation de l'intégration de SAP Financial Closing Cockpit. Ce document explique plus précisément le fonctionnement et l'utilisation. Une fois le service Web Internal et l'intégration de Closing Cockpit installés, des objets exécutables peuvent être attribués aux modèles dans Closing Cockpit. Vous trouverez dans la description cidessous les étapes nécessaires et le comportement à adopter lors de l'exécution. Configuration Identifiez-vous dans le système SAP et exécutez la transaction CLOCOC. Ouvrez un modèle (Modifier) et sélectionnez ensuite à l'emplacement de votre choix de la structure organisationnelle la commande "Ajouter Tâche" via le menu contextuel. Définissez toutes les valeurs nécessaires dans le dialogue qui s'affiche. Pour l'option "Type de Tâche", sélectionnez "Programme" et entrez dans le champ associé /UC4/CC_REPORT. Il faut ensuite sélectionner ou recréer une variante associée. La variante enregistre le nom de l'objet à exécuter. Les champs restants sont facultatifs et sont transférés à l'objet activé en tant que valeurs supplémentaires via le tampon de lecture. 291 Chapter 7 L'Automation Engine et les systèmes cible Si l'assistant de saisie (F4) est appelé pour le champ "Nom d'un objet", tous les objets exécutables du Client qui a été indiqué dans Connexion RFC s'affichent. Le nom, le type, le titre et le chemin des objets s'affichent. Automation Engine 292 Les champs supplémentaires dans le dialogue Variante servent à transférer les valeurs supplémentaires à l'objet activé. Vous trouverez dans la liste suivante les noms des Variables de Script qui sont mises à la disposition de l'objet dans le cache : Paramètre / champ Nom de la Variable de Script AE Périmètre de résultat KOKRS Période PERIO Année fiscale AFISCALE Les "Paramètres supplémentaires" permettent d'inscrire des valeurs autodéfinies dans le tampon de lecture. La colonne "Variable" permet de déterminer le nom de la Variable de tampon de lecture. Les valeurs de ces Variables de Script peuvent être lues dans le Script à l'aide de l'élément de script :READ. Exemple : :READ &KOKRS#,,'KOKRS', Enregistrez ensuite la variante et la Tâche. Créez un plan de Tâches à partir du modèle. 293 Chapter 7 L'Automation Engine et les systèmes cible Exécution La transaction CLOCO permet d'exécuter des plans de Tâches de Closing Cockpit. Ouvrez un plan de Tâches contenant des Tâches qui activent des objets. Planifiez ces Tâches et contrôlez leur statut. Si la Tâche a été exécutée et que le statut dans SAP affiche "Terminé", la Tâche s'est terminée dans le système AE avec le statut ENDED_OK. Tout autre statut entraîne l'affichage du message "Erreur" dans Closing Cockpit. Pour afficher le rapport du Job, ouvrez le Spool de la Tâche dans Closing Cockpit. Le Spool contient tous les types de rapport AE (ACT, REP, LOG,...) ainsi que les RunID de la Tâche exécutée. Dans la configuration de Closing Cockpit (CLOCOC), des dépendances peuvent aussi être définies pour les Tâches qui démarrent des programmes ou des transactions. Pour cela, il faut ouvrir un modèle ou un plan de Tâches et appeler la vue "Dépendances". Les Tâches peuvent être ajoutées dans la zone de dépendances par glisser-déposer. Cette fonction est aussi prise en charge pour les Tâches qui exécutent des objets. Les dépendances permettent de déterminer qu'une Tâche ne doit démarrer qu'après la fin d'une Tâche spécifique. Rubriques connexes : Intégration de l'Automation Engine dans SAP Closing Cockpit 7.11.5 SAP Solution Manager Intégration de SAP Solution Manager L'Agent SAP permet d'accéder à un système AE grâce au SAP Solution Manager, d'y lire diverses informations et d'y gérer des processus. La configuration et les utilisations précises de cette connexion sont décrites ci-dessous. Certaines fonctionnalités ne peuvent être exécutées directement dans Solution Manager. Mais la configuration d'une liaison spéciale permet cependant d'ouvrir directement le Solution Manager via l'Interface Utilisateur et d'accéder rapidement à ces fonctions. Les fonctionnalités concrètes et la configuration de cette connexion sont disponibles dans la description. Configuration et test Pour utiliser le SAP Solution Manager pour l'Automation Engine, les paramètres de l'interface SMSE (Solution Manager Scheduling Enabler) doivent être configurés dans l'objet Connexion de Automation Engine 294 l'Agent. L'Agent SAP concerné doit ensuite être redémarré. Un Agent SAP propre est nécessaire pour l'intégration de SAP Solution Manager. Dans l'objet Connexion de l'Agent SAP devant être utilisé pour l'intégration, configurez tout d'abord la connexion au système SAP (objet CONN : Généralités -> Paramètres de connexion). Ensuite, tous les champs de l'objet CONN dans la zone Interfaces -> SMSE doivent être renseignés : l Cliquez sur Activer pour modifier les champs. Sous Utilisateur AE, vous devez saisir le Client, le nom, le département et le mot de passe d'un objet Utilisateur AE existant. l Le Client AE peut également être indiqué dans le SAP Solution Manager. Dans ce cas, l'utilisateur indiqué dans l'objet Connexion doit aussi exister dans le Client. Sous Serveur RFC, vous devez définir la passerelle SAP et la connexion RFC. La destination RFC est créée automatiquement au démarrage de l'Agent SAP. L'ID du programme et le nom de la connexion RFC peuvent ainsi être choisis librement. l Redémarrez l'Agent et exécutez ensuite la transaction EXTSDL dans le système SAP. La connexion RFC qui a été définie dans l'objet Connexion devrait y être listée et définie comme valeur par défaut. Le bouton "Connection Test" vous permet alors de vérifier si la connexion à l'Automation Engine a été établie avec succès. Fonctionnalité Après la configuration réussie, les fonctionnalités suivantes peuvent être exécutées via le SAP Solution Manager : Fonctionnalité Description Lire des Clients Liste de tous les Clients du système AE et descriptions. Interrompre des tâches Commandes possibles : Interrompre, Stop, Stop (récursif), Go, Go (récursif). 295 Chapter 7 L'Automation Engine et les systèmes cible Définir le statut des tâches Demander le statut d'une certaine activité. Déterminer le dossier Une liste est fournie avec l'ID, le nom de dossier, le titre de dossier et le nom du dossier subordonné. Les noms des dossiers et des dossiers parents sont tronqués à partir de 80 caractères. La longueur maximale du titre est de 255 caractères. Les dossiers spéciaux comme la corbeille, le conteneur Transport, <Aucun dossier>, etc. ne sont pas affichés dans la liste. Etablir la liste du système SAP Nom et description de l'Agent SAP de chaque Client. La description supplémentaire contient la version SAP de base et la version Automation Engine de l'Agent. Demander la liste de la Queue Nom de l'objet, titre et slots max. des Queues. Déterminer les types d'objets exécutables Liste avec le type et la description des objets exécutables (par ex. : notification CALL, etc.) Déterminer les objets exécutables Liste avec le nom et le type d'objet des objets exécutables. Il est possible de mentionner ici un certain dossier dont les objets doivent être listés. Il est également possible le nom ou le type d'objet comme filtre de recherche. Déterminer le filtre de statut Liste des groupements de statuts utilisés pour le filtrage d'activités (par ex. :ANY_OK, ANY_ABEND, etc.) Demander la liste des activités Contenu de la Fenêtre d'activités de chaque Client. Il est possible d'indiquer un filtre de statut et un ordre de tri (croissant / décroissant) afin de limiter les résultats. Les champs heure/date (par ex. heure de début) sont convertis et affichés dans UTC. On considère ici que le Fuseau horaire en vigueur dans l'Automation Engine correspond au fuseau horaire local. Liste des rapports d'une tâche Liste de tous les rapports / sorties d'une tâche. Cette liste contient le type de rapport (par ex. REP ou ACT) et le type de sortie ("L" = Joblog, "S" = Spool-Liste, "A" = ApplicationLog, "O" = Other). Lire le contenu d'un rapport Déterminer le contenu d'un rapport d'une tâche. Déterminer l'utilisateur d'une tâche Déterminer le nom et le département de l'utilisateur qui a démarré la tâche. Lus à partir du détail des statistiques. Si le nom dépasse 40 caractères, il est alors tronqué. Automation Engine 296 Lire les paramètres Prompts d'une définition d'objet Les paramètres suivants peuvent alors être lus : Lire les paramètres d'une tâche Lire le nom et la valeur des variables Objet et PromptSet d'une activité (Détail - Variables d'objet) Créer / supprimer des évènements BAE dans l'Automation Engine Créer / supprimer des évènements BAE en tant qu'objet Sync -) Nom de l'objet PromptSet -) Variable de référence -) Type d'élément PromptSet ("N" = Nombre, "D" = Marque horaire, "S" = Tous les autres types) -) Valeur de l'élément PromptSet -) Propriété "Valeur nécessaire" ("X" = Option activée, " " = Option non activée ou inconnue) -) Assistant de saisie disponible ("X" = Oui, " " = Non ou inconnu) Les objets Sync représentant des évènements BAE ont défini la valeur "SMSE" comme index d'archivage 1. Il est donc possible de rechercher / filtrer ces objets spéciaux. En outre, les objets Sync disposent seulement de deux statuts CLEARED (état initial) et RAISED. Lire des évènements BAE à partir de l'Automation Engine Déterminer les objets Sync qui représentent les évènements BAE (type d'objet = SYNC, Index d'archivage 1 = SMSE) Il est alors possible de réaliser un filtrage sur le nom de l'objet. Déterminer le statut des évènements BAE à partir de l'Automation Engine Statut actuel d'un objet Sync représentant un évènement BAE. Le Moniteur Sync est alors lu. De plus, le titre de l'objet est fourni comme description. Valeurs possibles: R (RAISED) ou C (CLEARED) Interroger les instances d'un évènement BAE Liste des tâches en attente d'un objet Sync représentant un évènement BAE. Est également lue à partir du Moniteur Sync. Lire des messages Lire le Moniteur d'objets Message actifs ou achevés Sont fournis : -) Objet -) Possibilités de réponse -) Texte du message -) Activateur (RunID) -) Heure de début -) Statut (en fonction du type de message. Alarme / Requête : "Q" = actif, "R" = achevé. Message : "N" = actif, "R" = achevé) -) Type de l'objet Déclencheur Lire le texte de messages Déterminer le texte d'un message actif Paramètre de saisie : RunID du message Confirmer un message Accepter ou refuser un message actif Paramètre de saisie : RunID du message 297 Chapter 7 L'Automation Engine et les systèmes cible Planifier, modifier et démarrer des tâches Les actions suivantes sont possibles : -) Activer une tâche une fois ou périodiquement -) Reprise d'une tâche -) Reprise d'une tâche à partir du dernier point de reprise -) Modification de la planification. Lorsque l'activation est par exemple basculée de périodique à unique, la tâche est à nouveau planifiée (nouveau RunID). Ces fonctionnalités (hormis "Lire des Clients") se rapportent au Client AE mentionné dans l'objet Connexion pour l'interface SMSE. SAP Solution Manager - Cas d'application Le document suivant décrit les cas d'application typiques de la SAP Solution Manager Integration. L'intégration avec SAP Solution Manager permet l'accès aux fonctionnalités. De plus, la planification des tâches est possible à partir du Job Scheduling Workcenter dans SAP Solution Manager. La planification peut s'effectuer soit directement, soit à partir de la documentation de Job SAP. L'Automation Engine peut ainsi être intégré dans SAP Change Management ou le Service Desk. Vous trouverez les informations sur la configuration et le test de l'intégration au chapitre SAP Solution Manager Integration. Pour les cas d'application suivants, le Job Scheduling Workcenter (Transaction : SOLMAN_ WORKCENTER) du SAP Solution Manager doit être démarré. Cas d'application 1: rechercher le Job via le Solution Manager 1. Dans le SAP Solution Manager Workcenter, à la rubrique Job Monitoring, sélectionnez l'élément "External Job Scheduler". 2. Il est ensuite possible de définir des critères de filtrage pour rechercher les jobs. Le Groupe Isolation correspond alors au client AE. 3. Un clic sur "Apply" vous permet d'afficher les Jobs trouvés dans la table. Automation Engine 298 Cas d'application 2 : planification des tâches à partir d'une documentation de Job Pour planifier des objets dans l'Automation Engine à partir de la documentation de Job SAP, veuillez procéder de la manière suivante : 1. Ouvrez une documentation de Job SAP et sélectionnez un système dans l'onglet "Systèmes". 2. Le bouton "Scheduling" vous permet d'accéder à l'interface de planification des tâches. 3. Définissez les paramètres requis tels que le client AE (champ : Separation Group), la connexion RFC, l'objet Queue, la priorité et le nom de l'objet à démarrer (champ : définition du Job). Un Assistant de saisie est mis à disposition pour la sélection de l'objet à démarrer (définition du Job). Dans l'Assistant de saisie, tous les objets exécutables du client AE précédemment indiqué sont listés. La liste peut être filtrée selon le dossier (ID of an application), le type d'objet (Definition Type) ou le nom de l'objet (Job Definition). 299 Chapter 7 L'Automation Engine et les systèmes cible 4. Le bouton "Schedule/Change Externally" vous permet de planifier ensuite la tâche dans l'Automation Engine. Le RunID de la tâche activée s'affiche ensuite comme message de retour dans la zone supérieure. 5. Le bouton "External Notes" vous permet d'ajouter des commentaires concernant une exécution. 6. "External Logs" affiche les rapports AE de la tâche. Toutefois, les rapports externes ne sont pas disponibles ! Automation Engine 300 Cas d'application 3 : planification directe des tâches Après l'ouverture du Job Scheduling Workcenter, l'élément de menu "Schedule Jobs" permet de planifier directement des objets dans l'Automation Engine. 1. Lors de la sélection du planificateur, l'élément "SMSE" doit être sélectionné pour l'Automation Engine. 2. Sélectionnez ensuite la connexion RFC avec le client AE correspondant. Veuillez noter que le client AE s'affiche en tant que Groupe de séparation. Dans l'Automation Engine, le Groupe de séparation doit donc toujours afficher un chiffre (p. ex. : 1010). L'élément RFC avec Separation Group GLOBAL peut être ignoré. 3. Redéfinissez les paramètres requis pour l'objet à démarrer (connexion RFC, Separation Group, queue, priorité et nom de l'objet). Le nom de l'objet à démarrer doit être indiqué dans le champ "Job Definition" ; un Assistant de saisie est alors mis à disposition. De même que pour le cas d'application 2, la tâche est planifiée dans l'Automation Engine via le bouton "Schedule/Change Externally". Des objets Calendrier temporaires sont générés dans l'Automation Engine pour les conditions de démarrage. 301 Chapter 7 L'Automation Engine et les systèmes cible Définissez l'option "Schedule Stopped", la tâche planifiée reste dans l'Automation Engine avec le statut d'attente "Attente de libération manuelle", jusqu'à ce qu'elle soit libérée manuellement. Vous avez également la possibilité de modifier ultérieurement les planifications déjà existantes. Après l'adaptation, cliquez sur le bouton "Reschedule" pour appliquer les modifications dans l'Automation Engine. Configurer une connexion avec l'Interface Utilisateur Certaines fonctionnalités, comme par exemple l'ouverture de Jobs, ne peuvent être directement effectuées dans SAP Solution Manager. Avec une configuration spéciale, il est cependant possible d'ouvrir l'Interface Utilisateur via Solution Manager à l'emplacement correspondant et d'accéder ainsi rapidement à ces fonctionnalités. Il s'agit alors concrètement des fonctionnalités suivantes : l l l Créer et modifier des objets Job Lister les objets Job existants Créer et modifier des Workflows Suivez les étapes suivantes pour configurer l'intégration de l'Interface Utilisateur. La configuration générale de l'intégration de SAP Solution Manager est décrite dans le présent document. Automation Engine 302 Fichiers fournis L'Interface Utilisateur est fournie sous forme d'application Web à intégrer à un serveur d'application Tomcat. Un serveur d'application Tomcat (version 7) est donc nécessaire pour l'installation. L'application Web est disponible dans le répertoire fourni suivant : IMAGE:\AGENTS\SAP\_ SOLMAN\ Nom du fichier Description UC4WEBSTART.WAR Interface Utilisateur pour le serveur d'application Déroulement 1. l l l l Configuration de l'application Web UI Hôte Copiez le fichier UC4WEBSTART.WAR dans le dossier "webapps" situé dans le répertoire de programme du serveur d'application Tomcat. Procédez ensuite à un redémarrage du serveur d'application. Le nouveau sous-dossier "UC4WEBSTART" est créé dans le répertoire "webapps". Ne supprimez pas le fichier WAR, sinon Tomcat fera de même avec le dossier "UC4WEBSTART". 2. l l l l l Adaptation du fichier de configuration Hôte Cette étape décrit à quel système AE l'Interface Utilisateur doit se connecter. Veuillez noter qu'une seule connexion peut être configurée pour l'Interface Utilisateur ! Ouvrez le fichier de configuration : <Répertoire Tomcat>/webapps/uc4webstart/WEB-INF/web.xml. Adaptez les paramètres suivants à votre environnement système : l Nom du serveur : Nom ou adresse IP de l'ordinateur sur lequel est exécuté le système AE. l Nom du système : Nom du système AE l Numéro de port : Numéro de port du CP avec lequel la connexion doit être établie. Exemple de partie pertinente et à adapter du fichier web.xml : <init-param> <param-name>Nom du serveur</param-name> <param-value>SAPHOST01</param-value> </init-param> <init-param> <param-name>Nom du système</param-name> <param-value>UC4</param-value> </init-param> <init-param> <param-name>Numéro de port</param-name> <param-value>2217</param-value> </init-param> 303 Chapter 7 L'Automation Engine et les systèmes cible 3. l l l l Configuration de l'Agent Ordinateur de l'Agent Ouvrez le fichier INI de l'Agent SAP pour lequel l'intégration du SAP Solution Manager a été configuré. Saisissez l'URL de l'application Web Interface Utilisateur comme valeur du paramètre WebStartURL= (section [SMSE]). Enregistrez le fichier INI, puis redémarrez l'Agent. Exemple : [SMSE] webStartURL=http://saphost01:8080/uc4webstart 4. Affichage de l'Interface Utilisateur Lorsqu'une des fonctionnalités mentionnées est affichée dans Solution Manager, l'URL indiquée dans le fichier INI de l'Agent est ouverte. Dans le navigateur Web, la page qui s'affiche contient le lien "Démarrer l'Interface Utilisateur". Après avoir cliqué dessus, la boîte de dialogue de connexion à l'Interface Utilisateur apparaît. Après la connexion réussie, la fonction sélectionnée est exécutée dans l'Interface Utilisateur. Exemple : Lorsqu'un nouveau Job est créé via le SAP Solution Manager, l'Interface Utilisateur est ouverte et la boîte de dialogue qui s'affiche nécessite de saisir un nom pour le nouvel objet Job. 7.11.6 Solutions personnalisées Archivage des données dans SAP L'archivage des données dans le système SAP sert à supprimer de la base de données les données de masse n'étant plus nécessaires dans le système, mais devant toutefois être conservées pour être exploitables. Vous pouvez, bien entendu, contrôler l'archivage des données de façon centrale avec l'Automation Engine. Les données à archiver sont rassemblées au sein d'"objets d'archivage" (par ex. l'objet d'archivage SD_VBAK comporte toutes les données relatives aux documents de vente). Les cycles d'archivage sont intégrés au ADK (Archive Development Kit). L'ADK représente la base technique de la transaction d'archivage (SARA). Pour chaque objet d'archivage, il existe en règle générale un programme qui marque les données à archiver sur la base de durées de résidence réglables. Dans de nombreux cas, l'utilisation des indicateurs s'effectue en 2 étapes : un repère de suppression est défini après écoulement de la durée de résidence 1 (par ex. 6 mois), puis remplacé par un indicateur de suppression après écoulement de la durée de résidence 2. L'objet devient alors archivable. Le processus d'archivage se compose en fait de quatre étapes : 1. Cycle préparatoire (indicateur de suppression) : le cycle préparatoire marque les données à archiver. Le cycle préparatoire peut également être exécuté indépendamment du cycle d'archivage. 2. Création de fichiers d'archive : lors de l'archivage, les données à archiver sont tout d'abord écrites séquentiellement dans des fichiers d'archive nouvellement créés. Automation Engine 304 3. Début du programme de suppression : sur la base des fichiers d'archive créés, le programme de suppression supprime les données de la base de données. 4. Stockage des fichiers d'archive : les fichiers d'archive créés peuvent ensuite être stockés dans un système de stockage ou alors, par exemple, être enregistrés sur bande magnétique. Le stockage dans le système de stockage peut être enclenché automatiquement ou manuellement. Du point de vue de la transaction SARA, l'exécution d'un cycle d'archivage peut se faire manuellement ou semi-automatiquement (suppression et stockage). L'Automation Engine automatise les cycles d'archivage des données en principe pour toutes les versions de SAP. Pour une exécution de l'archivage des données hors transaction SARA, il faut toujours tenir compte des remarques suivantes en ce qui concerne SAP : l l 458670 Archivage des données avec un planificateur de Job externe 133707 Archivage des données hors transaction SARA Contrôle avec l'Automation Engine Au niveau technique, les cycles d'archivage SAP, quel que soit l'objet d'archivage, sont toujours organisés selon les étapes suivantes : 1. Programme d'écriture (WRI) Le programme d'écriture comprend le cycle préparatoire et la création des fichiers d'archive. Il s'agit d'un programme normal, pouvant s'exécuter en Tâche d'arrière-plan, paramétré à l'aide d'une seule variante. 2. Programme de suppression Le programme d'écriture crée automatiquement pour chaque fichier d'archive un Job de suppression (DEL), si cela a été défini ainsi dans la personnalisation de l'objet d'archivage concerné. Le Job DEL contient le programme de suppression. 3. Stockage des fichiers d'archive (STO) Le programme de suppression crée automatiquement un Job de stockage (STO). Le Job STO contient le programme de stockage. 4. Post-traitement éventuel (END) Les Jobs de post-traitement se produisent également automatiquement, mais ne sont cependant pas disponibles pour tous les objets d'archivage. Prérequis dans SAP 1. Programme de suppression automatique Dans la personnalisation de chaque objet d'archivage, il faut définir que le programme de suppression est démarré automatiquement. 305 Chapter 7 L'Automation Engine et les systèmes cible 2. Les Jobs DEL, STO et END ne peuvent pas être démarrés automatiquement dans SAP Pour contrôler les Jobs DEL, STO et END à l'aide de l'Automation Engine, il faut éviter que ces derniers ne démarrent automatiquement dans le système SAP. Pour ce faire, on utilise la fonctionnalité "Job Interception" à partir de la version 4.6C. Il faut activer celle-ci avec le programme ABAP INITXBP2. La table de décision pour l'interception de Job doit contenir les noms de Job des Jobs DEL, STO et END des cycles d'archivage. Objets L'ensemble du déroulement est contrôlé à l'aide d'un Workflow. Le Workflow comporte 3 étapes : 1. Début et surveillance du programme d'écriture La fonction AE "Exécuter Programme ABAP" crée le Job WRI dans SAP et le surveille jusqu'à sa fin. 2. Début et surveillance du Job de suppression Les Jobs DEL créés par le Job WRI sont démarrés et surveillés à l'aide de la fonction AE "Sélectionner et démarrer les Jobs interceptés". 3. Début et surveillance des Jobs de stockage Les Jobs de stockage créés par le Job DEL sont également démarrés et surveillés à l'aide de la fonction AE "Sélectionner et démarrer les Jobs interceptés". Déroulement 1. Activation du Workflow L'Utilisateur peut également consulter le nom de l'objet d'archivage à l'aide d'un masque :READ. 2. Moniteur de Workflows Après sélection ou indication de l'objet d'archivage, le Workflow est automatiquement Automation Engine 306 démarré et affiché sur le moniteur. Il ne s'arrête que lorsque toutes les étapes du traitement se sont bien terminées. 3. Surveillance et contrôle L'ensemble du déroulement peut être suivi au sein de l'Automation Engine, mais également de SAP. Tous les protocoles pour l'analyse automatique sont disponibles dans l'Automation Engine. Il est également possible de déterminer l'objet d'archivage utilisé pour le déroulement dans la fonction de gestion à partir du côté SAP (transaction SARA). Récapitulatif L'archivage des données SAP est facile à réaliser avec la fonctionnalité standard de l'Automation Engine. Avec une mise en œuvre restreinte, une telle méthode offre une série d'avantages : l l l l l l Automatisation continue Le contrôle de l'archivage de données par Automation Engine permet l'automatisation continue de l'ensemble du système de gestion SAP. Nul besoin d'interventions manuelles. Les dépendances mutuelles aux autres processus sont faciles à mettre en œuvre. Economies L'archivage régulier des données permet d'assurer des dimensions de base de données optimales, améliore la performance tout en économisant de l'espace. Contrôlé centralement et exécuté automatiquement, cet avantage peut être obtenu sans frais supplémentaires, grâce à l'Automation Engine. Exploitation optimale des ressources En raison de contrôles centraux et automatisés, les ressources disponibles peuvent être utilisées de manière optimale. Les conflits et les goulots d'étranglement sont ainsi évités. Un fonctionnement sans encombre de SAP est assuré. Haute fiabilité L'automatisation de tous les paramètres système réduit nettement le nombre de sources potentielles d'erreur. Décharge du personnel Les spécialistes SAP sont libérés des Tâches manuelles contraignantes. Ils peuvent ainsi concentrer leurs compétences sur les domaines les plus importants : l'amélioration des systèmes et des niveaux de service. Contrôle et surveillance centralisés Tous les processus du système SAP sont surveillés et contrôlés de manière centralisée. Les problèmes potentiels sont reconnus immédiatement, la durée jusqu'à la correction d'erreurs est réduite au minimum absolu. Traitements en masse IS-U est la solution sectorielle de SAP pour le secteur de l'approvisionnement. IS-U, en tant que système de facturation pour les sociétés d'approvisionnement et de prestation de services en particulier est personnalisé par rapport aux exigences des activités d'approvisionnement. Grâce à l'intégration d'IS-U aux composants neutres de la norme R/3 et grâce à des interfaces vers des systèmes externes, SAP offre aux sociétés d'approvisionnement une solution globale, intégrée et d'entreprise pour le traitement des informations commerciales. Le volume des transactions des entreprises d'approvisionnement, avec leurs millions de Clients, différents types d'approvisionnement et éventuellement une facturation mensuelle, est traité, pour sa plus grande part, dans des tâches d'arrière-plan. En voici des exemples : 307 Chapter 7 L'Automation Engine et les systèmes cible l l l l l l Création de documents de lecture Contraintes de remise règlement/facturation Cycle de relance Cycle de paiement etc. Définition L'Automation Engine est capable d'automatiser ces exigences d'arrière-plan. Pour réussir le traitement de ces gros volumes de données avec un débit le plus optimal possible, un "traitement en masse" spécial a été développé pour le traitement d'arrière-plan. Les caractéristiques de ce traitement en masse sont les suivantes l l un nombre dynamique de Jobs fractionnés naît d'un Job maître Chaque cycle de traitement en masse nécessite un jeu de paramètres, identifié par la date et l'ID de cycle Une des exigences particulières du traitement en masse est également le respect d'un certain ordre, par exemple "Règlement" doit se dérouler avec "Facturation", les deux étant un traitement en masse. Technique Le traitement en masse comprend un répartiteur qui génère avec l'aide de la définition des paramètres des Jobs fractionnés parallèles. Le répartiteur est lui-même défini dans le traitement d'arrière-plan comme "Job maître" lors de l'ordonnancement du traitement en masse. Si le Job maître est exécuté, il crée un certain nombre dynamique de Jobs fractionnés. Le nombre de Jobs fractionnés dépend des paramètres définis. Le contrôle se fait avec l'Automation Engine. L'ordonnancement peut également être effectué dans l'Automation Engine ou dans SAP. Copie de Client dans SAP R/3 SAP R/3, tout comme Automation Engine, est une application orientée client. Chacun des Clients est une unité entièrement indépendante. Dans plusieurs cas, un échange de données régulier entre les Clients est nécessaire. L'Automation Engine permet d'automatiser ces processus. Le "Client" est le terme de classement le plus élevé pour les applications R/3. Les définitions au niveau des Clients sont valides dans toutes les structures de l'organisation de l'entreprise sous R/3. Le Client est une unité indépendante au niveau de la gestion des données, au niveau de la gestion de l'entreprise et au niveau de l'organisation. Dans la pratique, ce concept de Client peut, par exemple, être utilisé pour l l héberger dans un centre de calcul de nombreux Clients sur un système R/3 configurer sur un système R/3 plusieurs Clients avec diverses Tâches, par exemple : l Client de livraison SAP (Client 000) l Client de personnalisation (001) l Client test Automation Engine l l 308 Client d'assurance qualité Client de production Dans un tel environnement, il est souvent nécessaire de fournir à un Client d'assurance qualité ou à un Client test des données cohérentes. Vous obtiendrez au mieux ces données en copiant le Client de production. Pour un environnement de test réaliste, des copies de Client doivent être créées régulièrement. Copie de Client dans SAP R/3 La copie de Clients dans SAP R/3 comporte une série de problèmes. En particulier, des copies régulières pour fournir des données actuelles aux systèmes de test sont synonymes d'une certaine quantité de travail. SAP prend en charge la copie en ligne ou le transport des Clients. Etant donné qu'il s'agit ici de transactions, ces méthodes ne sont adaptées qu'à une exécution périodique (SAP version 4.0 à 4.6D). Le contrôle d'arrière-plan de SAP ne peut pas non plus exécuter régulièrement de telles transactions, car des variantes dynamiques sont utilisées. Exposé du problème Lors de la copie d'un Client, de grandes quantités de données sont déplacées. Un Client sans données d'application nécessite environ 500 Mo de mémoire dans la base de données. La copie peut donc durer plusieurs heures. Pendant ce temps, un ou plusieurs processus de dialogue sont occupés. Aucun Utilisateur ne doit travailler dans le Client source ou cible pendant le processus de copie. Les Utilisateurs d'autres Clients utilisent des ressources supplémentaires et rallongent le processus de copie. Avant la copie d'un Client, un cycle de test doit être exécuté. Cela permet de déterminer les tables qui doivent être modifiées. En outre, le système vérifie si la base de données dispose d'un espace mémoire suffisant. Avant la copie d'un Client, le Client cible est souvent supprimé. Tous les Groupes Utilisateurs sont alors également supprimés. Seul l'Utilisateur SAP* peut encore s'identifier dans le Client cible. Copie de Client dans R/3 avec l'Automation Engine Des copies périodiques des Clients peuvent être effectuées plus facilement et de façon plus sécuritaire avec l'Automation Engine. Les cycles de test et le processus de copie peuvent être exécutés automatiquement. L'exécution normale est ininterrompue. Le processus de copie est démarré en fonction des résultats du cycle de test et de la disponibilité des ressources. Si des erreurs se déclarent au cours du traitement, l'Automation Engine informe immédiatement le personnel de garde responsable. Pour que l'Automation Engine puisse créer des copies de Client, il faut que les prérequis suivants soient remplis dans le système SAP : l Les Groupes Utilisateurs ne doivent pas être supprimés avant la copie. L'Automation Engine utilise un compte utilisateur normal pour l'identification à SAP étant donné qu'il ne peut s'identifier avec l'utilisateur SAP*. SAP offre la possibilité de ne pas supprimer le Client cible avant la copie. Il est également possible de supprimer les grandes tables à l'aide d'ABAP spéciaux (voir également SAP Service Marketplace, conseil numéro 309 Chapter 7 L'Automation Engine et les systèmes cible l 365304). Le rapport RSCLXCOP doit être modifié, afin de pouvoir traiter les variantes du rapport. Un Job de copie de Client obtient les informations nécessaires d'une variante. Lors de l'exécution d'une copie de Client, celle-ci est remplacée par les données issues du Client source, ou alors elle est supprimée. Lors d'une exportation de Client, le numéro de la copie se trouvant dans la variante est entré pour de bon. Cela provoque des problèmes pour les ordonnancements périodiques. C'est pourquoi des variantes identiques (du même nom) doivent être créées dans le Client source et cible pour le rapport RSCLXCOP. La procédure exacte est détaillée dans le conseil numéro 303007 de SAP Service Marketplace. Une fois ces prérequis remplis, il est possible de créer dans l'Automation Engine un Job pour l'exécution d'une copie de Client. Cela permet de représenter des dépendances au sein d'un Workflow. Le cycle de test ainsi que le processus de copie peuvent être exécutés automatiquement. L'Automation Engine s'assure que des ressources suffisantes soient disponibles. Des copies régulières des Clients peuvent ainsi être effectuées bien plus facilement et de façon bien plus sécuritaire. Dialogue SAP pour l'Automation Engine Dialogue SAP pour l'Automation Engine est une interface pour les Utilisateurs de SAP R/3 à partir de laquelle vous pouvez déclencher des traitements dans le système AE. Les Tâches définissables dans SAP sont transmises au système AE avec CallAPI pour SAP. La transaction "/sbb/uc4dc" affiche l'interface de l'Utilisateur final qui contient la vue des Tâches. Ainsi, seules les Tâches auxquelles il est autorisé à accéder sont proposées à l'Utilisateur. Elles peuvent être divisées en classes et portent un nom évocateur. Pour en sélectionner une, il suffit de cliquer dans la liste. Ensuite, en fonction de la définition, l'interrogation des Variables ou des attributs, ou la maintenance d'une variante. Chaque activation de Tâche est enregistrée dans les statistiques. l Activation avec saisie d'attributs définissables librement Les attributs sont définissables librement et sont transmis à l'Automation Engine via :PUT_ READ_BUFFER. l Connexion directe à la maintenance des variantes par défaut L'utilisation d'ABAP standard via l'Automation Engine permet d'avoir une connexion directe à la maintenance des variantes. Seule la variante prédéfinie peut être maintenue. l Création de Workflows Il est possible de créer un Workflow à l'aide des Variables. Vous pouvez ainsi, par exemple, sélectionner les composants devant être exécutés à partir d'un déroulement prédéfini. La communication vers le Workflow au sein de l'Automation Engine se fait uniquement par la définition de Variables. l Statistiques et suivi du statut L'Utilisateur dispose de statistiques permettant de comprendre toutes les activations. En outre, une Tâche peut, par exemple, être interrompue précisément ou un statut actuel peut être synchronisé. Le dialogue SAP pour l'Automation Engine ne remplace pas l'Interface Utilisateur à tous les niveaux. Il aide les Utilisateurs qui utilisent uniquement l'interface utilisateur SAP et qui souhaitent contrôler à l'aide de l'Automation Engine ses Tâches d'arrière-plan (Jobs, Workflows) à partir de SAP. Automation Engine 310 Le dialogue SAP pour l'Automation Engine est une solution de consultant et ne fait pas partie du produit ! Il ne bénéficie donc pas d'une maintenance ! Automated SystemCopy for SAP Cette solution AE vous permet d'exécuter une copie du système SAP de manière entièrement automatisée. Le procédé peut être adapté à votre convenance et vous pouvez déterminer exactement quelles étapes doivent être réalisées. Automated SystemCopy for SAP est une solution de consultant et ne reçoit donc aucune maintenance ! La documentation relative à cette solution est disponible sous forme de document externe. 7.11.7 Liaison technique Automation Engine et SAP La connexion entre l'Automation Engine et SAP est établie via un Agent. Dans son fichier INI se trouve les données de connexion à un système AE déterminé. Les données de connexion à un système SAP sont consignées dans des objets Connexion. L'Agent a besoin d'au moins un objet Connexion dans lequel l'Utilisateur CPIC est entré avec ses données de connexion. Un Job requiert la spécification d'un Agent et d'un objet Login. Dans les informations de connexion, vous définissez dans quel Client SAP le Job sera exécuté. Lors de la création d'un Job, l'onglet "Forme" est utile. Il offre une interface graphique dans laquelle les lignes de script peuvent être créées aisément. En outre, certaines données peuvent être fournies par le système SAP (par exemple : variantes disponibles). L'Agent SAP établit la connexion requise au système SAP. Les nom d'utilisateur, mot de passe et Client sont repris depuis l'objet Connexion pour "ABAP Basis" Rubriques connexes : Onglet Forme Plusieurs systèmes SAP Cette description montre de quelle façon est réalisée la configuration lors de l'utilisation de plusieurs Agents SAP exécutés sur différents systèmes SAP. Agents SAP supplémentaires 1. Renseignez le fichier de définition du ServiceManager UC4.SMD. Entrez les autres Agents dans le fichier de définition du ServiceManager en fonction de l'exemple suivant. La chaîne *OWN est automatiquement remplacée par le chemin dans lequel le ServiceManager se trouve (ucybsmgr.exe). ! Les lignes de commentaires commencent par un point d'exclamation ! ! Les sous-services sont maintenant définis !DEFINE Automation Engine;*OWN\UCServer.exe;*OWN DEFINE UC4 C11-Agent;*OWN\C11\UCXJR3X.exe -i*OWN\UCXJC11.INI;*OWN 311 Chapter 7 L'Automation Engine et les systèmes cible DEFINE UC4 XYZ-Agent;c:\uc4global\bin\XYZ\UCXJRX3.exe ic:\uc4global\bin\XYZ\UCXJXYZ.INI;*OWN\XYZ Ces entrées peuvent également être dupliquées et adaptées avec le dialogue du ServiceManager dans le fichier UC4.SMD. 2. Créer les fichiers *.INI. Créez, pour chaque nouvel Agent entré, un fichier UCXJ*.INI du nom convenu dans l'Automation Engine.SMD. Idéalement, copiez le fichier d'un Agent existant (par exemple UCXJR3X.INI vers UCXJC11.INI). Renseignez ou vérifiez UCXJ*.INI dans les fichiers créés. 3. Renseigner SAPRFC.INI (uniquement lors de l'utilisation de SAPRFC.INI) Complétez plusieurs chapitres de SAPRFC.INI (anciennement SIDEINFO) comme ils sont indiqués dans les fichiers UCXJ*.INI, en fonction de l'exemple suivant : DEST=UC_C11 LU=R33 TP=sapdp00 GWHOST=R33 GWSERV=sapgw00 PROTOCOL=I DEST=UC_XYZ LU=R33 TP=sapdp01 GWHOST=R33 GWSERV=sapgw01 PROTOCOL=I 4. Terminer et démarrer le ServiceManager. Terminez le ServiceManager et redémarrez-le. Ensuite, les autres Agents devraient être disponibles. N'oubliez pas de créer l'Utilisateur pour RFCLOGIN dans le système SAP correspondant ! Objets SAP Security Les autorisations requises pour les Jobs AE dépendent de l'installation et des fonctions utilisées dans l'Automation Engine. Dans le présent document sont mentionnés tous les objets d'autorisation dont a besoin l'Utilisateur CPIC pour une utilisation complète de toutes les fonctionnalités. Le tableau suivant part du principe que vous connaissez bien le concept d'autorisation de SAP. Objet d'autorisation Connexion à l'AE Nom du champ Valeur Automation Engine S_RFC Lorsque vous définissez le paramètre de profil auth/rfc_authority_check, SAP vérifie si l'Utilisateur RFC dispose de l'autorisation d'exécuter le groupe de fonction. S_BTCH_JOB Traitement de batch : Opérations sur les Jobs de batch AE crée des Jobs SAP JOBACTION dynamiquement et JOBGROUP nécessite donc l'autorisation de planifier des Jobs, de les surveiller et de les libérer. AE crée, en outre, des Jobs en utilisant le programme ABAP standard RSBDCBTC pour exécuter des sessions BDC. * * S_BTCH_ADM Traitement de batch : Administrateur de batch : Pour que les Jobs SAP BTCADMIN existants puissent être exécutés, AE doit adapter les Jobs correspondants. Les interfaces AE et standard utilisent le module fonctionnel standard BP_ JOB_MODIFY pour exécuter les Jobs et nécessitent donc l'autorisation administrateur de batch. Cette dernière est également nécessaire pour afficher la liste spool d'un Job si celui-ci n'a pas été créé par l'Utilisateur CPIC. Y S_BTCH_ADM permet des sélections indépendantes du Client dans les Jobs existants. L'exécution de l'instruction AE R3_ACTIVATE_JOBS avec un Utilisateur CPIC possédant cette autorisation, peut, en fonction des critères de filtrage, mener au démarrage de Jobs dans plusieurs Clients SAP (par exemple, le même nom de Job existe dans deux Clients SAP). ACTVT RFC_ NAME RFC_ TYPE * * * 312 313 Chapter 7 L'Automation Engine et les systèmes cible S_BTCH_NAM L'Utilisateur CPIC doit disposer de cette autorisation pour créer et exécuter des Jobs pour d'autres Utilisateurs SAP. BTCUNAME * S_SPO_DEV Spooler : autorisations de périphérique Pour pouvoir spécifier le SPODEVICE paramètre d'impression "Impression Immédiate" au sein d'un step de Job, l'Utilisateur CPIP nécessite l'autorisation pour le périphérique de sortie en question. * S_TMS_ACT Pour que la page de garde d'une liste spool puisse être transmise à AE, il est utile d'afficher le paramètre de la variante qui a été utilisée pour l'exécution ABAP. Cette information fait partie de la page de garde. STMSACTION STMSOBJECT STMSOWNER * * * S_XMI_PROD Cet objet d'autorisation est utilisé pour l'identification à l'interface standard. Les applications externes doivent tout d'abord s'y identifier pour pouvoir faire appel à ses fonctions. EXTCOMPANY EXTPRODUCT INTERFACE * * * S_XMI_LOG L'objet d'autorisation n'est pas requis pour l'Automation Engine. Lors de l'utilisation de l'interface standard, des entrées sont toutefois écrites dans le log XML (Online Transaction Code RZ15), qu'il n'est possible d'afficher ou de supprimer qu'avec cette autorisation. - S_WFAR_OBJ ArchiveLink : autorisations pour l'accès aux documents AE permet de spécifier des paramètres d'archivage (type d'objet, type de document). Grâce à ceuxci, vous pouvez transférer immédiatement la liste d'impression d'un programme ABAP à une archive optique (si cela est installé dans le système SAP). * * * * ACTVT OAARCHIV OADOCUMENT OAOBJEKTE Automation Engine ACTVT OAARCHIV OADOKUMENT OAOBJEKTE PROGRAM 314 S_WFAR_PRI ArchiveLink : autorisations pour l'accès aux listes d'impression Pour que les listes d'impression puissent être créées dans les archives optiques, l'Utilisateur CPIC doit posséder cette autorisation. * * * * * S_PROGRAM ABAP : Vérifications du déroulement du programme AE requiert cette P_ACTION autorisation pour planifier P_GROUP des programmes ABAP auxquels des groupes d'autorisation sont attribués (champ d'autorisation P_ ACTION=BTCSUBMIT) et pour contrôler les variantes (P_ACTION=VARIANT). BTCSUBMIT,VARIANT * S_SPO_ACT Spool : Actions Le champ SPOACTION doit autoriser les actions BASE et DISP pour les Utilisateurs correspondants pour que les listes spool qui n'ont pas été créées par l'Utilisateur CPIC puissent être transmises. SPOACTION SPOAUTH BASE,DISP * S_ADMI_FCD Autorisations système Le champ S_ADMI_FCD doit au moins autoriser l'action SP0R pour que les listes spool qui n'ont pas été créées par l'Utilisateur CPIC puissent être transmises. S_ADMI_FCD SP0R S_RS_ISOUR Administrator Workbench InfoSource (mise à jour flexible) L'autorisation est uniquement requise si la fonction Business Warehouse BW_ ACTIVATE_ INFOPACKAGE est utilisée et si la mise à jour flexible est appliquée. ACTVT RSAPPLNM RSISOURCE RSISRCOBJ * * * * S_RS_ISOUR Administrator Workbench InfoSource (mise à jour directe) L'autorisation est uniquement requise si la fonction Business Warehouse BW_ ACTIVATE_ INFOPACKAGE est utilisée et si la mise à jour directe est appliquée. ACTVT RSAPPLNM RSISOURCE RSISRCOBJ * * * * 315 Chapter 7 L'Automation Engine et les systèmes cible S_DEVELOP ABAP L'autorisation est Workbench uniquement requise si la fonction Business Warehouse BW_ ACTIVATE_CHAIN est utilisée. ACTVT DEVCLASS OBJNAME OBJTYPE P_ GROUP * * * * * S_RS_ICUBE Administrator Workbench InfoCube L'autorisation est uniquement requise si la fonction Business Warehouse BW_ ACTIVATE_CHAIN est utilisée. ACTVT RSICUBEOBJ RSINFOAREA RSINFOCUBE * * * * S_RS_ADMWB Administrator Workbench - Objets L'autorisation est uniquement requise si les fonctions Business Warehouse sont utilisées. ACTVT RSADMWBOBJ * * S_RS_DS L'autorisation est uniquement requise si les fonctions Business Warehouse sont utilisées. S_RS_DTP L'autorisation est uniquement requise si les fonctions Business Warehouse sont utilisées. S_RS_ODSO L'autorisation est uniquement requise si les fonctions Business Warehouse sont utilisées. S_RS_PC L'autorisation est uniquement requise si les fonctions Business Warehouse sont utilisées. S_RZL_ADM Lancement de Jobs ACTVT interceptés (Gestionnaire de File d'Attente, R3_ activate_intercepted_Jobs) 01 S_TABU_DIS Pour l'utilisation des formulaires SAP 03 SPFL - Aucune autorisation SAP spécifique n'est nécessaire pour les fonctions AE supplémentaires comme il n'existe aucun risque de sécurité. ACTVT DICBERCLS *) Nous vous recommandons de créer des autorisations en fonction de vos conventions de noms spécifiques. Automation Engine 316 Pour disposer de la fonctionnalité minimale dans l'Automation Engine, l'Utilisateur RFC doit avoir un profil Utilisateur qui contient l'objet d'autorisation S_BTCH_JOB. Ce dernier doit contenir les autorisations standard S_BTCH_ALL ou avoir saisi les valeurs suivantes : Activités sur les Jobs : DELE, PLAN, PROT, RELE, SHOW Résumé des Jobs pour un Groupe : * Prise en compte d'attributs de Job L'onglet spécifique à l'hôte pour les Jobs SAP contient plusieurs attributs ayant une influence sur plusieurs scripts. Le tableau suivant les énumère. Les scripts SAP n'apparaissant pas dans cette liste n'utilisent aucun attribut. Elément de script BCA_ ACTIVATE_ PROCESS R3_ ACTIVATE_ EXT_ COMMAND R3_ ACTIVATE_ EXT_ PROGRAM R3_ ACTIVATE_ INTERCEPTE D_JOBS R3_ ACTIVATE_ JOBS R3_ ACTIVATE_ REPORT R3_ ACTIVATE_ SESSIONS R3_CALL_ TRANSACTIO N R3_GET_ EVENT R3_GET_JOB_ SPOOL R3_MODIFY_ JOB Logi n Langu e No m de Job Class e de Job Systèm e cible Mode de démarra ge Supprim er dans CCMS Destinatai re de la liste spool 317 Chapter 7 L'Automation Engine et les systèmes cible R3_RAISE_ EVENT Rubriques connexes : Onglet SAP pour les Jobs SAP Interfaces Interfaces Les Agents communiquent avec le système SAP sur la base de RFC (Remote Function Call) de SAP. Pour ce faire, des modules fonctionnels sont exécutés. Parallèlement aux interfaces par défaut, l'Agent peut utiliser l'interface qui donne accès à des fonctionnalités supplémentaires. Nous faisons généralement la distinction dans la documentation entre l l L'interface est composée de modules de fonctions développés par l'Automation Engine. Les interfaces standard sont composées de modules de fonctions développés par SAP. L'Automation Engine utilise plusieurs de ces interfaces à différentes fins. Les interfaces se répartissent en l XMB (eXternal Monitoring Basics) l XAL (eXternal ALerting) l XBP (eXternal Batch Processing) *) l XMW (eXternal Monitoring Write) l BW-STA (Business Warehouse - data STAging) *) Attention : l'interface XBP 2.0 doit être activée avec le programme SAP INITXBP2. Cela fait partie de l'installation XBP 2.0. Sinon, les relations parent-enfant et la fonction de Jobs interceptés ne peuvent pas être utilisées. Operations Manager prend en charge les interfaces XBP 2.0 et XBP 3.0 de SAP NetWeaver. Des modules SAP utilisant cette interface peuvent donc être utilisés. En font par exemple partie SAP 4.7, NetWeaver Stack 2004s, ECC5, ECC6, etc. La version de l'interface XBP est indépendante de celle du kernel. SAP assure une certaine compatibilité. Cela signifie que lorsqu'une nouvelle version de l'interface est disponible, un certain nombre des versions de kernel prennent en charge l'ancienne version. L'interface requiert BABP XBP V2.0. Vérifiez la version de votre système AE et installez, le cas échéant, le package de prise en charge actuel. Différences au niveau des fonctions Le tableau récapitulatif suivant montre quels Scripts SAP exigent l'interface (Script). Les Scripts qui possèdent des paramètres pour lesquels l'utilisation de l'interface est requise sont également identifiés (Paramètre). Automation Engine 318 Scripts et interfaces utilisées Script Description Interface nécessaire Script Paramètres R3_ACTIVATE_ CM_PROFILE Active un profil dans le Gestionnaire de critères SAP. R3_ACTIVATE_ EXT_COMMAND Exécute une commande externe. R3_ACTIVATE_ EXT_PROGRAM Exécute un programme externe. R3_ACTIVATE_ INTERCEPTED_ JOBS Exécute les Jobs interceptés. R3_ACTIVATE_ JOBS Exécute les Jobs déjà planifiés. R3_ACTIVATE_ REPORT Exécute un programme ABAP. R3_ACTIVATE_ SESSIONS Exécute des dossiers batch input. R3_CALL_ TRANSACTION Exécute une transaction SAP. R3_COPY_ VARIANT Copie la variante d'un rapport. R3_CREATE_ OUTPUT_ REQUEST Crée un nouvel ordre d'édition pour une requête spool existante. R3_CREATE_ VARIANT Crée une nouvelle variante. R3_DEACTIVATE_ CM_PROFILE Désactive un profil dans le Gestionnaire de critères SAP. R3_DELETE_ NODE Supprime un nœud de l'architecture de moniteur SAP. R3_DELETE_ VARIANT Supprime la variante d'un rapport. R3_GET_ APPLICATIONLOG Vérifie le code retour d'application d'une ou de plusieurs étapes de Job. R3_GET_ APPLICATIONLOG Cherche les messages du logging d'application et les génère dans le rapport ou le fichier. R3_GET_EVENT Attend un Evènement déclenché dans SAP. R3_GET_ INTERCEPTION Lit la table de filtre pour les Jobs interceptés et enregistre dans le protocole d'activation ou un fichier. R3_GET_JOB_ SPOOL Lit la liste spool d'un step de type "programme ABAP". 319 Chapter 7 L'Automation Engine et les systèmes cible R3_GET_JOBLOG Cherche le logging d'un Job SAP dans SAP et l'affiche dans un rapport. R3_GET_JOBS Sélectionne des Jobs SAP et affiche le résultat dans le rapport d'activation. R3_GET_ MONITOR Lit des données d'un moniteur SAP. R3_GET_ SESSIONS Sélectionne des dossiers batch input et affiche le résultat dans le rapport d'activation ou dans un fichier. R3_GET_ Sélectionne des requêtes spool avec des Filtres SPOOLREQUESTS prédéfinis. R3_GET_ SYSTEMLOG Lit les informations d'une période donnée d'un logging système SAP. R3_GET_ VARIANTS Lit le catalogue des variantes. R3_GET_ VARIANT_ CONTENTS Affiche le contenu d'une variante. R3_MODIFY_ INTERCEPTION Modifie la table de filtre pour les Jobs interceptés. R3_MODIFY_JOB Modifie un step ABAP. R3_MODIFY_ VARIANT Modifie une valeur dans une variante. R3_RAISE_EVENT Déclenche un Evènement défini dans SAP. R3_SCHEDULE_ JOB_CANCEL Réattribue le statut "Planifié" à un Job SAP déjà lancé. R3_SEND_ SPOOL_REQUEST Envoie une requête spool existante. R3_SET_ BDCDATA Définit les données BDC. R3_SET_FREE_ SELECTION Définit une limite libre. R3_SET_LOG_ ATTR Ajoute un attribut de logging dans l'architecture de moniteur SAP R3_SET_PERF_ ATTR Ajoute un attribut de performance dans l'architecture de moniteur SAP R3_SET_PRINT_ DEFAULTS Définit des valeurs par défaut pour les paramètres d'impression utilisés lors de l'exécution de rapports. R3_SET_SELECT_ OPTION Définit un critère de sélection. R3_SET_STATUS_ ATTR Ajoute un attribut de statut dans l'architecture de moniteur SAP Automation Engine R3_SET_TEXT_ ATTR Ajoute un attribut de texte dans l'architecture de moniteur SAP R3_SWITCH_ OPMODE Change le mode de fonctionnement dans SAP. 320 Rubriques connexes : Généralités sur le JCL AE pour les applications Transport de l'interface Généralités Pour utiliser les fonctionnalités de l'interface, les modules fonctionnels doivent d'abord être transportés dans le système SAP. Ils sont développés sous forme d'objets de développement ABAP. Ces objets sont fournis dans le package "correction et transport" du système SAP: l l l KNNNNNN.SID Fichier d'information, par exemple K000046.T45 RNNNNNN.SID Fichier de données, par exemple R000046.T45 ENNNNNN.txt Protocole d'exportation, par exemple E000046.txt Outre les modules fonctionnels, des espaces de noms sont également transportés dans des ordres individuels. Vous trouverez une liste des ordres de transport en cours de validité dans le fichier TRANSPRT.TXT. En cas de nouvelle installation, tous les ordres de transport doivent être exécutés. En cas de mise à jour de l'installation, seuls les modules fonctionnels (interface) sont mis à jour, car les espaces de noms ne changent pas. Les noms des objets de développement sont décrits dans la terminologie. Les abréviations suivantes sont utilisées dans ce document: l l l NNNNNN pour le numéro d'ordre de transport du système source et SID pour le nom du système source. TID est utilisé pour le nom du système cible (dans lequel les modules fonctionnels sont importés). Nom du fichier Dans la mesure où le système SAP peut être installé dans différents environnements (UNIX, Windows...), les particularités du système doivent être prises en compte dans les noms des fichiers. Dans ce document, nous écrivons généralement des noms de fichiers, qui concernent l'environnement SAP, avec la syntaxe UNIX (également avec "/"). Dans l'environnement Windows, les noms sont identiques, à la différence seulement que dans ce cas, on utilise "\". 321 Chapter 7 L'Automation Engine et les systèmes cible 7.11.8 Importation des modules fonctionnels dans SAP Pour utiliser les fonctionnalités de l'interface, les modules fonctionnels doivent d'abord être transportés dans le système SAP. Requis : Les autres activités du système de transport doivent impérativement être exécutées avec l'Utilisateur d'administration SAP (SIDadm). Le système de transport doit être configuré et paramétré correctement, généralement lors de l'installation du système SAP. Au moins deux processus de travail de batch (BTC) doivent fonctionner dans cette instance SAP pour l'importation Contrôle: Outils – Administration – Moniteur – Surveillance système – Sélection de processus (transaction SM50). Le démon de transport du système SAP (Job d'arrière-plan "RDDIMPDP") doit être planifié et validé dans le Client 000 pour l'importation d'objets de développement. Contrôle: Voir ci-dessous La fonctionnalité peut être vérifiée comme suit:cd usr/sap/trans/bin........ Changement dans le répertoire de transport SAP tp checkimpdp TID........... Vérifier si le démon de transport RDDIMDP est actif dans SAP tp connect TID.............. Tester la connexion au système SAP Le système de transport est décrit dans la documentation SAP en ligne, dans le chapitre SYSTEME DE BASE – PILOTAGE DU CONTROLE. Veuillez noter que l'option "Ignorer les versions des composants" inadaptées doit être activée lors de l'importation. Déroulement: Reprise du fichier de transport fourni dans l'environnement de transport SAP: l l l Sur l'ordinateur SAP: Accédez au sous-répertoire adapté à la version SAP sous IMAGE:AGENTS\SAP\_TRANS. Copie des fichiers dans les répertoires suivants: KNNNNNN.SID par /usr/sap/trans/cofiles RNNNNNN.SID par /usr/sap/trans/data Lorsque SAP est installé sous UNIX, le transfert des fichiers s'effectue généralement via FTP. Indiquez impérativement "bin" pour les transferts binaires. l Le fichier ENNNNNN.TXT du CD contient le protocole d'exportation complet et peut être utilisé pour une éventuelle analyse. Importation de la livraison dans le système SAP: l l l Sur l'ordinateur SAP (connexion avec l'Utilisateur d'administration SAP (SIDadm)). Les fichiers de transport repris (RNNNNNN.SID et KNNNNNN.SID) ne doivent pas être protégés en écriture (attention lors de la copie à partir du CD)! Si besoin, il est possible de créer un répertoire des objets contenus dans l'ordre de transport: Automation Engine 322 cd usr/sap/trans/data....... Changement dans le répertoire de transport SAP r3trans -l RNNNNNN.SID...... Crée un fichier trans.log (liste des objets transportés) l Génération d'une entrée de tampon pour le système cible. cd usr/sap/trans/bin........ Changement dans le répertoire de transport SAP tp addtobuffer SIDkNNNNNN TID[pf=<nom profil, par défaut TPPARAM>] l Si besoin, il est possible de vérifier l'entrée de tampon: tp showbuffer TID [pf=<nom profil, par défaut TPPARAM>] l l Vous devez décider avant l'importation avec quels modes inconditionnels (u) l'importation doit être exécutée: l 4....est valable uniquement pour la version SAP 3.x: sachant que le nom du système cible indiqué lors de l'exportation ne correspond pas au nom du système cible réel (TID). Dans la mesure où le système cible réel n'est pas connu lors de l'exportation, ce mode doit toujours être spécifié! l 1....doit être indiqué lorsque l'importation doit être répétée. Lancement de l'importation avec la commande: tp import SIDkNNNNNN bzw. tp import SIDkNNNNNN TPPARAM>] TIDu4 [client123] [pf=<nom profil, par défaut TPPARAM>] TID u14 [client123] [pf=<nom profil, par défaut Les modes inconditionnels diffèrent selon la version TP. Vous pouvez consulter la documentation SAP pour plus d'informations à ce sujet. Respectez les points suivants lors de l'importation: l Au moins 2 tâches de batch doivent fonctionner dans l'instance pour les importations! l Bien que l'ordre de transport ne contienne aucune donnée propre au Client, il peut arriver qu'un Client soit requis lors de l'importation. Dans ce cas, un Client valable pour votre environnement doit être spécifié à l'aide du paramètre client=nnn (l'export a eu lieu avec le Client 010). l L'importation peut prendre quelques minutes, plus particulièrement lorsque le démon de transport RDDIMPDP n'est pas déclenché par un évènement, mais est contrôlé par une horloge. l Message "no profile used ": l Aucun profil n'est indiqué lors de l'exécution interne du programme sur "sapevt". C'est pourquoi ce message est généré pour chaque exécution sur sapevt. Il peut être ignoré en temps normal! l D'autres messages peuvent être générés. Cependant, seul le Code retour est important (voir ci-dessous – Contrôle). Contrôle: l l En raison de la complexité du système de transport et de l'environnement SAP, seul un expert qui connaît l'environnement d'installation peut réaliser un diagnostic d'erreur complet et apporter des corrections. Un non-spécialiste peut toutefois évaluer si l'importation s'est bien passée à l'aide des conseils suivants: 323 Chapter 7 L'Automation Engine et les systèmes cible l l l l l Des fichiers log sont générés lors de l'importation. Ils se trouvent dans le répertoire /usr/sap/trans/log sous le nom SIDsNNNNNN.TID s correspond à l'étape de transport: G... Génération de rapports et d'écran H... R3TRANS Dictionnaire d'importation I... R3TRANS Importation principale Le code exit (= Code retour) de ces trois fichiers log doit être contrôlé (il est toujours indiqué à la fin du fichier). Il ne doit pas dépasser "4"! Un expert peut naturellement contrôler ces fichiers log dans le système SAP. Test de l'interface avec ABAP Workbench Ce document contient des explications relatives au test de l'interface permettant la connexion au système SAP. 1. Démarrer l'environnement de développement et ouvrir les modules fonctionnels. Démarrez l'environnement de développement (ABAP/4-Workbench) et ouvrez, à l'aide du navigateur d'objets, les modules fonctionnels pour les groupes de fonction /SBB/UC4_JOB : Outils ⇒ ABAP/4-Workbench ⇒ Résumé ⇒ Object Navigator, sélectionnez le groupe de fonctions /SBB/UC4_JOB, ouvrez les modules fonctions, positionnez le curseur sur l'objet et sélectionnez Tester dans le menu contextuel. Le nom des modules fonctionnels a toujours UC4 comme préfixe. 2. Tester le module fonctionnel UC4_JOB_OPEN. Paramètre à indiquer : JOBNAME - Nom quelconque, par exemple 'TEST'. JOBCLASS - A, B ou C Le paramètre JOBCOUNT est fourni. Cette valeur doit être notée ou le mieux est de la copier dans le presse-papiers. Automation Engine 3. Tester le module fonctionnel UC4_JOB_SUBMIT Paramètre à indiquer : JOBCOUNT - introduire la valeur ou l'ajouter depuis le presse-papiers, JOBNAME - comme pour le modèle fonctionnel UC4_JOB_OPEN, REPORT_ID - 'RSM04000' ou 'RSM04000_ALV'. 324 325 Chapter 7 L'Automation Engine et les systèmes cible Après l'exécution, il faut s'assurer qu'aucune exception ne s'est produite. Les paramètres sont certes fournis ici, mais ils ne sont pas impérativement nécessaires pour le test. 4. Tester le module fonctionnel UC4_JOB_CLOSE. Paramètre à indiquer : JOBCOUNT - introduire la valeur ou l'ajouter depuis le presse-papiers, JOBNAME - comme pour le modèle fonctionnel UC4_JOB_OPEN. Après l'exécution, il faut s'assurer qu'aucune exception ne s'est produite. Automation Engine 326 Le Job est maintenant démarré et peut être affiché à l'aide de la transaction standard SM37 (Système ⇒ Services ⇒ Jobs ⇒ Résumé de Job). Une fois le Job terminé, cela vient confirmer que les modules fonctionnels élémentaires pour le contrôle de Job au sein du système SAP fonctionnent. 327 Chapter 7 L'Automation Engine et les systèmes cible Agent pour SAP BW Généralités La Automation Engine prend en charge la composante SAP Business Information Warehouse (SAP BW) comme s'il s'agissait d'un système d'exploitation propre. D'un point de vue technique, cette collaboration est réalisée de sorte que des modules fonctionnels sont appelés au sein du système SAP par le biais des RFC (Remote Function Call) de SAP. La communication vers le système SAP est effectuée uniquement via les RFC et est ainsi indépendante de l'environnement dans lequel SAP BW est installé. La configuration du paramètre de connexion a lieu dans l'objet Connexion de l'Agent. De plus, cet Agent peut être activé pour toutes les versions de SAP BW prises en charge par l'Automation Engine. L'Agent pour SAP BW peut également exécuter des Jobs dans le système de base SAP (Jobs en arrière-plan standard). Le tableau suivant indique les versions de SAP BW et de SAP Basis pour lesquelles un Agent est disponible pour SAP BW. Version BW SAP Basis Agent pour SAP BW 1,2B 4,5A Non pris en charge. 2,0B 4.6C Disponible à partir de la version Automation Engine 2.63C. 2.1C 4.6D Disponible à partir de la version Automation Engine 2.63C. 3,0B 6.10 Disponible à partir de la version Automation Engine 2.63D. >3.0B 6.x Disponible à partir de la version Automation Engine 2.63D Support Packages pour SAP BW Pour utiliser l'Agent, nous vous recommandons d'installer les Support Packages de SAP BW ciaprès. Version SAP BW Niveau du Support Package 2,0B 32 2.1C 24 3,0B 14 3.1C 08 >3.1C Pas de niveau de Support Package connu Si un Support Package de niveau inférieur est installé sur l'Agent, les messages suivants peuvent s'afficher. Vous trouverez de plus amples informations dans les notes SAP spécifiées. Numéro de note SAP Message 488588 short dump "DYNPRO_SEND_IN_BACKGROUND" 426047 Message E089(RSM1) "Job not (yet ?) started" 488808 BAPI_IPAK_CHANGE ignores InfoPackage Parameter Automation Engine 328 Vérification du statut Dans la Automation Engine, le statut technique communiqué lors de l'appel de fonction pour vérifier le statut est considéré comme un "statut final". La description de ce terme dans Interface Repository est la suivante: Le paramètre TECHSTATUS est le statut technique de la demande. Il dispose toujours l'une des valeurs suivantes : l l l G – Vert (la demande est enregistrée avec succès) Y – Jaune (la demande est en cours de traitement) R – Rouge (la demande génère une erreur ou est interrompue) Le statut n'est cependant visiblement pas un "statut final". Il peut passer plusieurs fois en "rouge" pendant un court instant (erreur ou interruption) puis passer de nouveau en "jaune" ou en "vert". Le système AE en tient compte ; il est possible d'activer un délai de vérification du statut, par exemple lorsque le statut est "rouge", le système vérifie encore x fois si le statut reste réellement "rouge". Les paramètres maxruntime= et repeat_check= (section [SAP_BW]) se trouvent dans le fichier INI de l'Agent SAP à cet effet. Une fonction est également appelée pour la vérification du statut des chaînes de processus. Les valeurs des statuts sont les suivantes : l l l l l l l l l l "R" – Interruption "G" – Fin normale "F" – Fin normale "A" – Poursuivre la surveillance "X" – Interruption "P" – Poursuivre la surveillance "S" – Interruption (mais uniquement après un redémarrage de la chaîne de processus) "Q" – Poursuivre la surveillance "Y" – Poursuivre la surveillance " " – Poursuivre la surveillance Ces statuts sont ensuite convertis en Codes Retour dans l'Automation Engine: Code retour Statut Statut SAP 0 ENDED_OK G ou F 4 ENDED_NOT_OK R 8 ENDED_NOT_OK X 12 ENDED_NOT_OK S Paramètres d'archivage avec R3_ACTIVATE_REPORT Les paramètres d'archivage qu'un utilisateur peut spécifier pour R3_ACTIVATE_REPORT correspondent aux zones de saisie illustrées ci-dessous. La boîte de dialogue s'affiche dans le système SAP si "Archivage" a été sélectionné comme mode dans les paramètres d'impression. 329 Chapter 7 L'Automation Engine et les systèmes cible Paramètres de SAP Paramètres pour R3_ACTIVATE_REPORT Type d'objet ARCHIVE_SAPOBJECT Type de Document ARCHIVE_OBJECT Information ARCHIVE_INFO Texte ARCHIVE_TEXT Rubriques connexes : R3_ACTIVATE_REPORT ERROR/ERRORLEVEL dans R3_ACTIVATE_SESSIONS Lors de l'exécution de R3_ACTIVATE_SESSIONS, le système SAP cherche tout d'abord la liste des dossiers à exécuter. Chaque dossier est exécuté par un seul Job SAP. Ce Job est appelé replayer dans le présent document. Le replayer utilise l'ABAP "RSBDCBTC" pour l'exécution. ERROR Se rapporte au résultat (statut) du replayer. Le résultat peut être "A" pour interrompu, ou "F" pour terminé avec succès. ERROR=IGNORE Le prochain dossier de la liste des correspondances est toujours exécuté. Le résultat du replayer précédent est ignoré. Automation Engine 330 ERROR=ABEND La lecture des dossiers est immédiatement arrêtée lorsqu'un replayer se termine avec le statut "A". Le Job est interrompu. ERRORLEVEL Se rapporte toujours au dossier et est vérifié à la fin du replayer. Il définit le pourcentage des transactions d'un dossier qui ne se sont pas exécutées avec succès. Si la valeur des dossiers est dépassée, le traitement du Job est interrompu. Aucun autre dossier de la liste des correspondances n'est démarré. Si ERRORLEVEL n'est pas indiqué, aucune vérification des transactions inscrites avec succès n'est effectuée. 331 Chapter 7 L'Automation Engine et les systèmes cible Résolution de problèmes Conseils sur la recherche d'erreurs Vous trouverez ici une liste des sources d'informations qui permettent de reconnaître une situation d'erreur lorsque l'Agent ne fonctionne pas correctement (ou que partiellement), ou qu'il n'exécute pas correctement certaines Tâches. Rapport de Job La source la plus proche est le rapport du Job pour SAP. Y sont journalisées pour chacune des Tâches les actions que l'Agent a exécutées par rapport au système SAP ainsi que la façon dont elles se sont terminées. Attributs de l'objet activé Il est possible que l'origine de l'erreur se trouve tout simplement dans les attributs de l'objet activé (par exemple Client ou Utilisateur erronés). Vérifiez les attributs de l'objet correspondant. Utilisateur CPIC Pour la connexion au système SAP, un Utilisateur SAP (Client, nom, mot de passe) doit être défini dans un objet Login. Cet Utilisateur doit également exister avec le même mot de passe dans tous les Clients du système SAP dans lesquels des Tâches sont exécutées. Vérifiez l'objet Login mais aussi les Utilisateurs du système SAP. L'Agent est représenté par l'Utilisateur CPIC au sein du système SAP. Cet Utilisateur doit, bien entendu, disposer des droits correspondants, par exemple droit d'opérateur pour le traitement en arrière-plan. Vérifiez les droits de l'Utilisateur CPIC dans le système SAP. Transactions utiles La transaction "SM37" offre également des informations sur l'exécution de Job dans le log de Job et dans la liste de spool. Le log XMI, qui peut être exécuté avec "RX15", fournit également des enregistrements utiles. Fichiers log Vous trouverez des informations détaillées sur l'heure en question dans les fichiers log de l'Agent et du Serveur. Vous pouvez également afficher le contenu des fichiers dans la Supervision Système. Au début, l'intégralité du fichier INI est tout d'abord journalisée. Dans cette section, vous pouvez reconnaître les paramètres avec lesquels l'Agent ou le Serveur s'exécute. Toutes les actions exécutées sont ensuite enregistrées chronologiquement. Le log système SAP Les situations d'erreur se produisant au sein du système SAP sont journalisées dans le log système SAP. Vous pouvez afficher le log système avec la transaction SAP "SM21". Dans certains cas, par Automation Engine 332 exemple lorsque la planification d'un step de Job par un Agent échoue, le log système SAP est automatiquement transféré dans le rapport de Job. Il peut alors être affiché dans un nouvel onglet du rapport. Traces Les traces journalisent, sous forme de fichiers log, des informations encore plus détaillées sur les processus. Elles contiennent, par exemple, les transmissions de messages entre l'Agent et le Serveur ou entre l'Agent et le système SAP. Dans le dernier cas, on parle d'une trace RFC. Les traces doivent être activées soit dans le fichier INI de l'Agent, soit dans la Supervision Système. Les contenus des traces sont enregistrés dans des fichiers dans le répertoire de travail de l'Agent ou dans le répertoire spécifié. Les traces sont conçues pour une analyse par le support ou le développement. Envoyez toujours ce genre de documents à votre demande de support. Attention : lors de l'activation de la trace RFC, des fichiers sont non seulement enregistrés côté Agent, mais également sur la machine du serveur d'application SAP ! N'activez donc la trace que pendant quelques instants, afin d'économiser de l'espace sur le disque dur. Pour empêcher toute création de fichiers de trace dans le système SAP, vous pouvez définir le paramètre gw/accept_ remote_trace_level sur 0. Vous trouverez des informations complémentaires sur la trace RFG dans la note SAP 532918. Problèmes lors de l'importation des modules fonctionnels Le programme tp ne se termine pas Symptôme Lors de l'importation des objets de développement, le programme tp ne se termine pas (il s'exécute normalement pendant quelques minutes). Après interruption avec (Ctrl-C), le message suivant figure dans le fichier SLOG. Background Job RDDIMPDP could not be started or terminated abnormally Origine L'importation des objets de développement est exécutée par le Job RDDIMPDP. Cela est normalement planifié en tant qu'Evènement et est déclenché par l'Evènement "SAP_TRIGGER_ RDDIMPDP" du programme tp. En l'occurrence, le démarrage de ce Job par l'Evènement ne fonctionne pas, tp attend donc sans fin. Solution Vérifiez que l'Evènement "SAP_TRIGGER_RDDIMPDP" est défini (transaction SM64). 333 Chapter 7 L'Automation Engine et les systèmes cible Contrôlez que les entrées pour le contrôle de l'Evènement ont été entrées correctement dans TPPARAM. Recherchez d'éventuels conseils dans le SAP Service Portal avec le mot-clé "SAP_TRIGGER_ RDDIMPDP". En cas d'urgence, utilisez le RDDIMPDP qui dure 5 minutes ; il peut être planifié par ABAP RDDPUTPP avec SE38. Jobs SAP se terminant par ARCHIVE_INFO_NOT_FOUND Symptôme Les Jobs SAP se terminent par le message ci-dessous : U2004001 RFC Returntext: ARCHIVE_INFO_NOT_FOUND Origine ARCHIVE_INFO_NOT_FOUND est une exception du module fonctionnel "GET_PRINT_ PARAMETERS". Ce module fonctionnel est un module fonctionnel standard du système SAP. ARCHIVE_INFO_NOT_FOUND n'a pas nécessairement un rapport avec la zone d'informations des paramètres d'archivage. ARCHIVE_INFO_NOT_FOUND se rapporte à tous les paramètres d'archivage, à savoir : l l l l ARCHIVE_O[BJECT]= catégorie de document ARCHIVE_S[APOBJECT]= type d'objet ARCHIVE_T[EXT]= texte ARCHIVE_I[NFO]= zone d'informations ARCHIVE_INFO_NOT_FOUND peut avoir toute une série de causes, telles que : l l l La catégorie de document ou le type d'objet indiqué n'est pas défini dans le système SAP. La catégorie de document est affectée à une archive inexistante dans le système SAP (Content Repository). L'utilisateur ne possède pas les droits d'accès (voir l'objet d'autorisation S_WFAR_PRI). Si l'Automation Engine transmet correctement les paramètres au module fonctionnel, la cause de l'exception existe la plupart du temps dans le système SAP. Solution Vérifiez, à l'aide de la trace RFC, si l'Automation Engine a correctement transmis les paramètres au module fonctionnel. Vérifiez les paramètres relatifs à "Business Documents" et "ArchiveLink" dans le Customizing du système SAP ainsi que les autorisations de l'utilisateur CPIC. Rubriques connexes : R3_ACTIVATE_REPORT Paramètres d'archivage pour R3_ACTIVATE_REPORT Automation Engine 334 Problème de stabilité avec des instances SAP chez de nombreux Agents SAP (connexion RFC) sur un serveur : Symptôme Le Serveur RFC/CPIC externe ne peut ouvrir de nouvelle connexion et le message d'erreur suivant s'affiche : LOCATION CPIC (TCP/IP) on local host ERROR max no. of 100 conversations exceeded Origine Le nombre de connexions parallèles pouvant être maintenues dans la bibliothèque est limité à 100. Solution La Variable d'environnement CPIC_MAX_CONV vous permet d'augmenter cette valeur. Windows : set CPIC_MAX_CONV=<n> p. ex. set CPIC_MAX_CONV=500 (pour 500 connexions) Unix : setenv CPIC_MAX_CONV <n> ( csh ) p. ex. setenv CPIC_MAX_CONV 500 (pour 500 connexions) Unix : export CPIC_MAX_CONV=<n> ( ksh ) p. ex. export CPIC_MAX_CONV=500 (pour 500 connexions) iSeries : ADDENVVAR ENVVAR(CPIC_MAX_CONV) VALUE(<n>) p. ex. ADDENVVAR ENVVAR(CPIC_MAX_CONV) VALUE(500) (pour 500 connexions) Problème de transmission de mot de passe à SAP Après la mise à jour vers les versions 2004s et ultérieures de SAP Netweaver, la connexion de l'Utilisateur CPIC ne fonctionne plus Symptôme Les essais de connexions basées sur mot de passe (sur les systèmes : ABAP à partir de la version 7.00 / NetWeaver 2004s / mySAP ERP 2005) échouent, même si l'Utilisateur a enregistré un mot de passe a priori correct dans un composant frontal ou la destination d'un autre système. Cependant, une connexion directe SAPGUI avec le même mot de passe réussit. Origine Les systèmes ABAP à partir de la version 2004s (7.00) de NetWeaver prennent en charge des mots de passe de 40 caractères maximum, et sensibles à la casse. Dans les anciennes versions, la limite était de 8 caractères et toutes les minuscules étaient mises en majuscules. 335 Chapter 7 L'Automation Engine et les systèmes cible Si un mot de passe non rétrocompatible est utilisé dans le nouveau système, et si le composant frontal ou intermédiaire ne peut traiter correctement ces mots de passe, la connexion échoue. La raison en est en général la conversion (invisible) minuscule/majuscule. En effet, le mot de passe entré par l'Utilisateur n'arrive pas au Serveur sous sa forme originale, mais sous une forme modifiée soit directement après la saisie, soit lors de la transmission (qui s'effectue à travers de nombreux composants). Définitions l Mot de passe : rétrocompatible / non rétrocompatible Un mot de passe est rétrocompatible s'il a 8 caractères au maximum et ne contient aucune minuscule. Un mot de passe n'est pas rétrocompatible s'il a plus 8 caractères au maximum et/ou contient au moins une minuscule. Les anciennes versions des systèmes ABAP ne prennent en charge que les mots de passe rétrocompatibles. A partir de la version 7.00, les deux sortes de mots de passe peuvent être utilisées. Comme les minuscules ne sont plus converties en majuscules, les mots de passe des nouvelles versions des systèmes ABAP ne sont généralement pas rétrocompatibles. l Méthode de hachage de mots de passe / Versions de Code Les systèmes ABAP ne sauvegardent pas les mots de passe en clair. Ils calculent à partir des données saisies une somme de contrôle qu'ils sauvegardent avec les méta-données décrivant le mode de hachage ("version de code"). Ces informations sont enregistrées dans les données de référence de l'Utilisateur et utilisées lors de la vérification du mot de passe. A partir du mot de passe saisi, une somme de contrôle est calculée avec la version de code enregistrée dans les données de référence de l'Utilisateur et comparée à celle de ces mêmes données. La quantité des méthodes de hachage dépend de la version du programme, les nouvelles prenant toujours en charge celles des versions précédentes. De cette façon, la connexion protégée par mot de passe est toujours possible, même après une mise à jour. Seules les méthodes de hachage de mot de passe des versions à partir de 7.00 prennent aussi en compte les mots de passe non rétrocompatibles. Les anciennes versions ne prennent en charge que les mots de passe rétrocompatibles. Ce sont donc les données enregistrées dans les données de référence de l'Utilisateur (version de code) qui déterminent tout d'abord la prise en compte éventuelle de la connexion effectuée avec des mots de passe non rétrocompatibles. Solution l Emploi d'Utilisateurs techniques (dans des destinations RFC) : Nous vous conseillons d'utiliser le type d'Utilisateur SYSTEM (ou SERVICE, si la fonction SAPGUI est nécessaire) sur le Serveur, car c'est le seul type pour lequel la durée de validité du mot de passe est illimitée. Tant que le mot de passe doit être saisi dans une destination RFC d'une version ancienne d'un système (= Client RFC), il doit être défini de façon rétrocompatible au niveau du Serveur Cela est toujours possible aux types SYSTEM ou Automation Engine 336 SERVICE, même si les règles de définition des mots de passe obligent l'utilisation de mots de passe non rétrocompatibles (avec login/min_password_lng > 8 ou login/min_ password_lowercase > 0 par ex.). l Emploi d'anciens composants frontaux ou intermédiaires et connexion d'Utilisateurs "normaux" (de type DIALOG) : Dans ce cas, il n'est pas indiqué de modifier les mots de passe des nombreux Utilisateurs (comme dans le cas précédent des utilisateurs techniques). Vous devrez dans ce cas remplacer les composants frontaux / intermédiaires obsolètes. La remarque SAP 792850 énumère les versions à partir desquelles certains composants frontaux et intermédiaires prennent en charge les mots de passe non rétrocompatibles. Il peut être de plus nécessaire d'actualiser d'autre composants logiciels (d'autres fournisseurs par ex.) dépendant de ces mêmes composants, dans le cas notamment où ces composants ont une fenêtre de dialogue de saisie de mot de passe propre mais ne prennent pas en charge les mots de passe non rétrocompatibles. Provisoirement et à titre de test, vous pouvez définir le paramètre de profil login/password_ downwards_compatibility sur 2 ou 3. Dans ce cas, le Serveur vérifie si le Client a envoyé un mot de passe rétrocompatible (coupé après 8 caractères et converti en majuscules) au lieu du mot passe non rétrocompatible attendu. Cela est alors journalisé dans le système (pour analyse des erreurs) et la connexion est considérée comme réussie (paramètre sur 3) Le paramètre peut être modifié dynamiquement, sans redémarrage du système avec la transaction SAP RZ 11. 7.11.9 Certification Résumé Les fonctionnalités liées à SAP sont naturellement certifiées. 337 Chapter 7 L'Automation Engine et les systèmes cible Le tableau suivant présente une liste de tous les certificats : Solution Interface Software Interface SAP Agent AE for SAP BC-XBP 6.10 - Background Processing, Job Scheduling 6.10 (Vers. 2.0) BC-XBP 7.0 - Background Processing, Job Scheduling 7.0 (Vers. 3.0) JAVA-JXBP 7.1 Agent AE for SAP BW BW-SCH 3.0 - Scheduling for SAP BW 3.0 Agent AE for J2EE/JMX JAVA-EE-STD 7.1 Rubriques connexes : Partenaires SAP SAP Developer Network (SDN) 7.12 L'Automation Engine et Siebel 7.12.1 Démarrage et surveillance de Tâches L'Agent Siebel utilise l'interface de ligne de commande de Siebel Server Manager pour l'exécution des Tâches dans Siebel. Le répertoire dans lequel celui-ci se trouve doit être saisi dans le fichier INI de l'Agent Siebel, dans la section [VARIABLES]. Automation Engine 338 Exemple : [VARIABLES] UC_SIEBEL_SRVRMGR=C:\siebel\srvrmgr.exe Dans l'onglet Script du Job Siebel, il est possible de marquer les commandes devant être exécutées dans Siebel. Pour ce faire, un script nommé SI_START_TASK est à votre disposition. La commande Siebel est transmise avec le paramètre CMD= de ce script : SI_START_TASKCMD="Commande Siebel" Chaque ligne de script contenant "SI_START_TASK" est une Tâche particulière dans Siebel. Attention : la commande Siebel doit impérativement commencer par "start task" pour qu'une surveillance de la Tâche (par exemple : interruption, poursuite) soit possible. Si vous utilisez "run task", le Job Siebel est interrompu et un message d'erreur s'affiche. A la fin de l'exécution des Tâches, deux fichiers log sont disponibles : 1) Fichier Log de l'appel du Siebel Server Manager 2) Fichier log de la Tâche Dans la section [VARIABLES] du fichier INI de l'Agent Siebel, définissez où ceux-ci doivent être enregistrés. Les fichiers Log peuvent être transmis sous forme de rapport par l'Agent Siebel vers l'Automation Engine. Exemple : [VARIABLES] UC_SIEBEL_SRVRMGR=C:\siebel\srvrmgr.exe UC_SIEBEL_LOGPATH=C:\siebel\siebelLOGS\ Attention : le contenu du rapport peut être lu avec le script PREP_PROCESS_REPORT. Le type de rapport "LOG" représente ainsi le fichier log de l'exécution de Siebel Server Manager et le type de rapport "REP" représente le fichier log de la Tâche. Rubriques connexes : Onglet Attributs de l'hôte - Siebel 7.13 L'Automation Engine et UNIX 7.13.1 Authentification des données d'identification Les Jobs et Transferts de Fichiers doivent s'identifier avec succès au système d'exploitation avant de pouvoir être exécutés. Les données de connexion sont enregistrées dans leur objet Login. L'Agent met à disposition deux possibilités pour vous permettre d'authentifier les noms d'utilisateur et les mots de passe. 1. Authentification locale de l'utilisateur 2. Pluggable Authentication Modules (PAM) L'authentification à l'aide de PAM n'est prise en charge que pour l'Agent sous Sun Solaris (SPARC) ! 339 Chapter 7 L'Automation Engine et les systèmes cible Vous définissez dans le fichier INI de l'Agent la méthode que vous souhaitez voir utilisée. Dans la section [MISC], il existe à cet effet un paramètre nommé Authentification=. Attribuez-lui soit la valeur "local", soit "PAM". Exemple : [MISC] authentification=local Si vous décidez d'utiliser l'authentification par PAM, vous devez alors également indiquer le nom de la bibliothèque. Exemple : [PAM] Libname=libpam.so Si la bibliothèque ne se trouve pas dans le répertoire par défaut, il faut inclure son chemin dans la variable d'environnement LD_LIBRARY_PATH. Attention : l'Agent doit impérativement posséder des privilèges root ! Rubriques connexes : Objet Login 7.13.2 Shell et options de shell Pour un Job UNIX, il est possible de définir dans l'Onglet "Unix" un shell sous lequel ce Job doit s'exécuter. Si nécessaire, il est également possible de spécifier des options pour l'exécution du shell. Si aucun shell n'est sélectionné, UC4 utilise le shell par défaut du fichier passwd. Les shells que vous pouvez choisir dans l'onglet "Unix" sont gérés dans la Variable UC_SHELL_ UNIX du Client 0000 Par défaut, les shells suivants y sont entrés : l l l l l bash csh ksh sh tcsh Vous pouvez y rajouter d'autres shells en les entrant dans la Variable UC_SHELL_UNIX. En outre, une ligne de script spécifique au shell doit être complétée dans l'Include TRAILER.UNIX. Elle a le format suivant : ##UC4[shell]commande spécifique au shell Détermination du chemin Shell 1. Si une chaîne de chemin d'accès est définie dans le fichier de configuration (section STARTCMD, paramètre "shell_pfad"), ce chemin est repris. Format de la chaîne de chemin d'accès : <Path name1>[:<Path name2>]... Format nom du chemin d'accès : /<dir1>[/<dir2>]... Automation Engine 340 2. Si le paramètre "chemin_shell" n'est pas indiqué, la variable d'environnement PATH est lue et utilisée. 3. Si aucune variable d'environnement PATH n'existe, le répertoire "/bin" est repris. Le nom de fichier Shell est créé à partir du chemin d'accès Shell et du Shell sélectionné (onglet Attributs de l'Agent) et son droit d'exécution est vérifié. Si le fichier ne peut pas être exécuté ou est introuvable, un message d'information apparaît et le Shell par défaut de l'utilisateur défini dans le fichier passwd est utilisé. Si aucun Shell n'est indiqué dans le fichier passwd, le bourne-shell à partir de "/bin/sh" est utilisé. Détermination de l'option du Shell Si des options du Shell sont définies dans l'onglet Attributs de l'Agent, ces options seront utilisées. Dans le fichier de configuration, il est possible de définir des options du Shell (section STARTCMD, variables "Bourne_Shell_Opt", "Korn_Shell_Opt" et "C_Shell_Opt"). Si aucune des possibilités mentionnées ci-dessus n'est disponible, l'option standard "-c" est applicable dans le programme. 7.13.3 ID utilisateur pour l'Agent UNIX L'Agent UNIX doit être installé sous un ID utilisateur répondant aux exigences suivantes : l l Le sous-répertoire "temp" doit être défini de manière à ce qu'il puisse être lu par tout autre ID utilisateur. Pour ce faire, il ne suffit pas d'attribuer à ce répertoire un droit de lecture pour tous, mais tous les sous-répertoires (à partir de root) doivent également avoir un droit de lecture. Le sous-répertoire "out" doit être défini de manière à ce que tout autre ID utilisateur puisse y accéder en écriture. Pour ce faire, tous les répertoires de niveau supérieur doivent au moins posséder un droit de lecture (voir plus haut). 7.13.4 Agent UNIX - Prise en charge du Transfert de Fichier Lors de la définition d'un objet Transfert de Fichier, il est possible de spécifier dans l'onglet "Transfert de Fichier" des options supplémentaires dans le champ "Attributs de fichier". Sous UNIX, il n'existe pas d'attributs de fichier. Toutes les indications jusqu'à l'option "reclen" et "nl" sont donc aussi ignorées. Les options doivent être séparées par une virgule. Options pour le champ d'attribut source l l reclen - longueur de l'enregistrement (en octets). nl=mixed - si un caractère CR se trouve à la fin d'une ligne d'un fichier texte, cela peut rendre le fichier inutilisable sur de nombreux systèmes. La valeur "mixed" permet son élimination automatique. Options pour le champ d'attribut cible l nl : caractère de séparation des lignes Valeurs autorisées : "crlf", "lf" (par défaut) et "none" "crlf" - Retour chariot avec saut de ligne (carriage return and line feed). 341 Chapter 7 L'Automation Engine et les systèmes cible "lf" - Saut de ligne (line feed). "none" - Pas de séparation de ligne. Exemple : nl=crlf 7.13.5 Droits pour la suppression de fichiers source dans les Transferts de Fichiers Le Transfert de Fichier vous permet de définir la suppression du fichier après le transfert. Dans le cas d'une source UNIX, différents droits doivent être vérifiés. Le graphique de traitement cidessous vous montre la progression exacte. Informations relatives au graphique de traitement User-UID = ID de l'Utilisateur indiqué dans l'objet Login de la source (zone "De" dans l'onglet "Transfert de Fichier"). Droit de suppression = Les droits "wx" sur le dossier dans lequel le fichier se trouve. Lors de la vérification, le système recherche User-GID=Ordner-GID pour déterminer si l'Utilisateur fait partie du Groupe appartenant également au dossier. Automation Engine 342 7.13.6 Interrogation du système de fichiers UNIX A l'aide d'un exemple, nous allons montrer comment le système de fichiers UNIX peut être interrogé avec l'utilitaire UCXE???F de l'Automation Engine. Doivent être énumérés tous les fichiers, l l l qui se trouvent dans le répertoire de base de l'ID "UC4" et dans tous les répertoires se trouvant dans celui-ci, dont le dernier accès se situe entre le 1.10.1999 00:00 et le 7.10.1999 23:50 dont la taille se situe entre 1 et 9999 octets. La création, la configuration et le traitement d'une séquence de données sont un processus complexe au cours duquel les fonctions et les instructions de script ainsi que des objets spéciaux 343 Chapter 7 L'Automation Engine et les systèmes cible interagissent. L'exemple suivant montre les définitions nécessaires dans les objets impliqués et à quoi les scripts font référence. L'exemple est intentionnellement succinct et facile pour clarifier le principe en dépit de sa complexité. Grâce à l'utilitaire UCXE???F de l'Automation Engine, les possibilités d'interrogation par rapport à la commande de système d'exploitation habituelle "Is" sont élargies. Il doit être installé sur l'hôte. Les points d'interrogation du nom du programme représentent l'ID et la version du système du dérivé UNIX. Job: SC.PROCESS.UNIXFS Dans le script de ce Job, la fonction PREP_PROCESS est appelée afin de préparer le traitement de la séquence de données. Les paramètres suivants sont ainsi transmis : l l l l l Nom de la machine sur laquelle un Job d'Evènement doit être exécuté, ici "SOLARIS". Type du Job Evènement devant être exécuté, ici : "UNIXFS". La saisie "UNIXFS" entraîne l'exécution du Job "EVENT.UNIXFS". Par défaut, les Jobs Evènements "EVENT.BS2000CMD", "EVENT.BS2000UCON", "EVENT.UNIXCMD", "EVENT.UNIXFS" et "EVENT.WINCMD" sont fournis dans le Client "0000". Ils peuvent être utilisés directement ou en tant que modèles pour des Jobs Evènement personnels. Le troisième paramètre de fonction spécifie les lignes générées par la commande devant être prises en compte. Le caractère générique "*" permet d'accepter toutes les lignes générées. Avec les mots clés "PFAD" et "FSPAR", d'autres paramètres contenant les interrogations du système de fichiers UNIX sont introduits. Après le mot clé "FSPAR", suivent des mots clés et des attributions de valeurs pour l'intervalle d'accès, la taille du fichier et la recherche de tous les sous-répertoires. Les particularités suivantes s'appliquent pour la définition de la période d'accès : Le début est indiqué sans marque horaire. L'heure est alors automatiquement définie sur 00:00. La fin se compose des date et heure séparées par un espace. Etant donné que l'espace sépare chacune des valeurs au sein du paramètre, les date et heure doivent se trouver entre guillemets. "UC4ADMIN" est spécifié comme objet Login. Automation Engine Le Job "EVENT.UNIXFS" est ainsi démarré. Job: EVENT.UNIXFS Ce Job est le Job "EVENT.UNIXFS" fourni par défaut dans le Client "0000". Il est important que la case à cocher "Dialogue des attributs" soit sélectionnée dans l'onglet Attributs de ce Job. Cela permet de lire l'objet Include "ATTRDIA.UNIX" qui provoque normalement le dialogue des attributs. Include: ATTRDIA.UNIX 344 345 Chapter 7 L'Automation Engine et les systèmes cible Cela vous permet de renseigner tous les attributs figurant dans le script de l'Include. Le dialogue des attributs n'est pas affiché, car la transmission des contenus de la Variable se fait en interne. Job: EVENT.UNIXFS Au démarrage du Job "EVENT.UNIXFS", les Variables de script "&PFAD" et "&FSPAR" sont renseignées. Vous obtenez leur attribution à partir des paramètres de la fonction de script PREP_ PROCESS du Job "SC.PROCESS.UNIXFS". Avec ces valeurs, l'utilitaire de l'Automation Engine, qui transmet les informations demandées au système de fichiers UNIX, est exécuté. Les points d'interrogation du nom de l'utilitaire ne doivent pas être remplacés, étant donné qu'après installation correcte de l'utilitaire, celui-ci doit pouvoir être démarré. Automation Engine 346 Pour chaque Transfert de Fichier, le fichier en sortie est transféré au Automation Engine et il est à disposition en tant que séquence de données. Le Job "EVENT.UNIXFS" est terminé. Job: SC.PROCESS.UNIXFS La fonction PREP_PROCESS renvoie une valeur qui est une référence aux données de gestion de la séquence de données à traiter. Cette valeur est passée à l'instruction :PROCESS comme paramètre de démarrage. :PROCESS et :ENDPROCESS forment une boucle de processus qui va s'exécuter ici jusqu'à ce que la fin de la séquence de données soit atteinte. A chaque cycle de la boucle, une nouvelle ligne de cette séquence de données est lue dans la mémoire de travail. La fonction GET_PROCESS_LINE peut calculer, avec la valeur actuelle, le contenu des lignes de la séquence de données. Dans l'exemple, la ligne respective est affichée dans le protocole d'activation. L'instruction :STOP interrompt l'exécution du Job et affiche ce protocole d'activation. 7.13.7 PREP_PROCESS - Interrogation du système de fichiers UNIX Pour l'interrogation du système de fichiers UNIX, nous mettons à disposition l'utilitaire "UCXE???F" de l'Automation Engine. Les points d'interrogation représentent l'ID et la version du système du dérivé UNIX. Grâce à l'utilitaire de l'Automation Engine, les possibilités d'interrogation par rapport à la commande de système d'exploitation habituelle "Is" sont élargies. Pour obtenir ainsi des informations sur le système de fichiers UNIX, les paramètres de la fonction de Script PREP_PROCESS doivent être spécifiés selon une syntaxe spéciale. Dans un paramètre de la fonction de Script, le nom de fichier ainsi que le chemin peuvent être nommés. Ce paramètre est introduit par le mot clé PFAD. Pour les noms de fichiers, vous pouvez utiliser les caractères génériques "*" et "?". "*" signifie n'importe quelle chaîne de caractères et "?" exactement un caractère. Si ni le chemin ni le nom de fichier ne sont spécifiés, le répertoire actuel est traité. A l'heure actuelle, il n'est pas encore possible d'utiliser les chemins relatifs. 347 Chapter 7 L'Automation Engine et les systèmes cible Un autre paramètre, commençant par le mot clé FSPAR, accepte les valeurs pour l'interrogation du système de fichiers. Ceux-ci se composent à nouveau d'un mot clé et d'une valeur. Si plusieurs autres valeurs sont spécifiées, il faut les séparer par un espace. Si un espace se trouve au sein d'une de ces valeurs, cette valeur doit être placée entre des guillemets doubles (exemple : ATIME="980101 1000"). Mot clé Valeur/description PFAD (ou : PATH) Mot clé de paramètre pour la spécification du nom de fichier et du chemin. FSPAR Mot clé de paramètre pour la spécification du système de fichiers. TYPE Indication d'un type de fichier : - fichier ordinaire D - fichier de répertoire L - référence symbolique (non incluse dans POSIX.1 ou SVR4) B - fichier de matériel orienté bloc C - fichier de matériel orienté caractères P - Pipe ou FIFO S - Socket (non incluse dans POSIX.1 ou SVR4) Par défaut : tous les types de fichiers SIZE Sélection de la taille du fichier OWNER Nom du propriétaire du fichier (Utilisateur), pas celui de l'ID Utilisateur GROUP Nom du propriétaire du fichier (Groupe), pas celui de l'ID Groupe ATIME Marque horaire du dernier accès MTIME Marque horaire de la dernière modification STIME Marque horaire de la modification du statut du fichier MODE Si vous spécifiez "Récursif", les répertoires subordonnés sont également lus. Remarques La spécification de SIZE est uniquement possible pour les fichiers normaux. Si SIZE a été défini, la valeur TYPE est définie en interne sur fichier normal. La taille du fichier est indiquée en octets. Exemples : SIZE=100, Fichiers de plus de 100 octets SIZE=100 Fichiers de moins de 100 octets SIZE=,100 Fichiers de moins de 100 octets SIZE=100,4000 Fichiers de 100 à 4000 octets Lors de la spécification de ATIME, MTIME et STIME, les formats de date et d'heure suivants sont pris en charge. Les abréviations "A" pour l'année, "M" pour le mois et "J" pour le jour sont utilisées. Si aucune heure n'est spécifiée, "0000" est utilisé par défaut. AAAAMMJJ, "AAAAMMJJ HHMM", AAMMJJ, "AAMMJJ HHMM". Exemple : ATIME=19971231 Fichiers antérieurs à cette date Automation Engine 348 ATIME=,19971231 Fichiers antérieurs à cette date ATIME=19971231, Fichiers postérieurs à cette date ATIME=19970101,19971231 Fichiers compris entre ces deux dates Exemple Dans le répertoire de base de l'ID Utilisateur "UC4", tous les fichiers dont le dernier accès se trouve entre le 6.10.1997 12:00 et le 31.12.1998 23:50 et dont la taille de fichier se situe entre 1 et 9999 octets sont énumérés. Ainsi, tous les répertoires se trouvant sous le répertoire de base sont pris en compte. :SET &HND = PREP_PROCESS('SOLARIS','UNIXFS','*','UC_LOGIN=UC4','PFAD=./*', 'FSPAR=ATIME="19971006 1200","19981231 2350" SIZE=1,9999 MODE=REKURSIV') Rubriques connexes : Interrogation du système de fichiers UNIX Généralités sur les Scripts Script - Liste alphabétique Script - Division fonctionnelle 7.13.8 Interruption de processus AIX en cas de mémoire insuffisante Il peut y avoir des interruptions dans AIX lorsque la mémoire attribuée à un processus pour le traitement en cours ne suffit plus. Par défaut, 256 Mo sont attribués à chaque processus sur un système AIX. Avec la Variable d'environnement LDR_CNTRL, il est possible d'augmenter cette limite de mémoire à 2 Go maximum. Cette Variable doit impérativement être définie sur AIX avant le démarrage de l'Automation Engine. Les commandes suivantes doivent être exécutées : LDR_CNTRL=MAXDATA=0x80000000 export LDR_CNTRL La valeur 8 représente 8 x 256 Mo (il s'agit de la valeur maximale) et correspond à 2 Go. Avec ce paramétrage, un Agent 32 bits peut allouer jusqu'à 2 Go de mémoire. Les interruptions dues à un manque de mémoire disponible peuvent avant tout se produire lors de la transmission ou du traitement de grandes listes spool ou de grands rapports. Dans les Jobs pour lesquels plus de 2 Go de mémoire sont nécessaires, la limite du Job doit être élevée manuellement par l'Utilisateur au moyen de la commande ulimit (si l'Utilisateur possède l'autorisation correspondante). Il est également possible de ne pas utiliser de limite de mémoire en paramétrant le Job au moyen de la commande ulimit -d unlimited. 7.13.9 Agrandissement des fichiers centraux Par défaut, AIX crée uniquement un fichier central minimal. Pour qu'une analyse rapide du problème puisse être effectuée en cas d'erreur, un fichier central complet doit être disponible. La Variable d'environnement système "fullcore" doit donc être définie sur la valeur "true". 349 Chapter 7 L'Automation Engine et les systèmes cible Interrogez tout d'abord la Variable. "sys0" représente le nom du périphérique. lsattr -El sys0 | grep fullcore Le résultat ressemble par défaut à ce qui suit : fullcore false Enable full CORE dump True Il existe plusieurs façons de définir la Variable "fullcore" sur la valeur "true". Le plus simple consiste à exécuter l'outil "smit" avec le paramètre "chgsys" sous l'Utilisateur root. smit chgsys A l'aide de l'outil, définissez la Variable "Enable full CORE dump" sur la valeur "true". Cela active la Variable "fullcore" sur l'ensemble du système. Il existe encore deux autres paramètres avec lesquels vous pouvez définir la taille de fichier maximale et donc également celle du fichier central. Avec la commande "ulimit", interrogez les valeurs définies : ulimit -a Le résultat pourrait, par exemple, ressembler à ce qui suit : file(blocks) coredump(blocks) 2097151 <-- ! 2097151 <-- ! La commande "ulimit" peut modifier les valeurs. L'option "-f" indique la taille de fichier maximale en blocs de 512 octets ou de façon illimitée. Exemples : ulimit -f 4096 # 4096 * 512 Bytes ulimit -f unlimited L'option "-c" définit la taille maximale des fichiers centraux en blocs de 512 octets ou de façon illimitée. Exemples : ulimit -c 4096 # 4096 * 512 Bytes ulimit -c unlimited 7.13.10 Codes retour des Jobs UNIX L'Agent journalise dans le rapport d'activation du Job toutes les erreurs qui se sont produites. En outre, il définit en fonction de l'exécution du Job un des codes retour suivants : Code retour Description 0 Aucune erreur n'est survenue. 1-200 Code d'erreur du système d'exploitation. 201 setgid() - L'Agent ne possède pas les privilèges requis. 202 initgroup() - L'Agent ne possède pas les privilèges requis. 203 setuid() - L'Agent ne possède pas les privilèges requis. 205 chdir() - Le répertoire de modification pour l'Utilisateur de Job n'existe pas Automation Engine 206 Le fichier de rapport de Job ne peut pas être ouvert. 208 dup2(STDOUT) - La sortie par défaut ne peut pas être attribuée. 209 dup2(STDERR) - L'erreur par défaut ne peut pas être attribuée. 210 execle() Erreur - Le fichier de Job ne peut pas être exécuté. 350 Dans l'objet Job, vous pouvez décider dans l'onglet "Exécution" à partir de quel code retour le Job doit être interrompu. 7.13.11 Activation de la trace de l'informateur de Job Les instructions suivantes expliquent comment activer la génération de trace de l'informateur des Jobs UNIX et VMS. Ceci est possible par Job, par Client ou pour l'ensemble du système. La trace de l'informateur de Job est inscrite par l'Agent dans le rapport de Job (REP). Ces Tâches se trouvent au début (informateur de démarrage) et à la fin (informateur de fin) du rapport et contiennent des informations sur le déroulement de la connexion de l'informateur. Si une erreur se produit en rapport avec le programme d'informateur, la génération de trace est activée automatiquement. La génération est activée de la manière suivante : A l'exécution du programme d'informateur de Job dans l'Include dans l'en-tête et/ou le pied de page (voir : Includes de Job), le paramètre TRC= doit être utilisé. Il est indiqué par défaut dans les Includes de Job pour Unix. La Variable de Script &UC_MD_JOB_TRC préalablement définie est transmise à ce paramètre. La génération de trace peut ainsi être activée ("1") ou désactivée ("0") via cette Variable. L'activation de la trace est possible au niveau suivant : l Pour tous les Jobs du système AE Configuration dans les Includes dans l'en-tête / le pied de page dans le Client système. Cette configuration n'est pas recommandée, car les rapports de tous les Jobs UNIX ou VMS grossissent nettement et la durée d'exécution s'allonge. l l Pour tous les Jobs d'un Client Les Includes dans l'en-tête / le pied de page doivent être créés et adaptés dans le dossier <défaut> du Client. Par Job (recommandé) La Variable de Script doit être définie dans l'onglet Pré-traitement. L'activation de la génération de trace de l'informateur de Job est prévue par défaut dans l'Include dans l'en-tête des Jobs Unix. Ouvrez l'objet Include HEADER.UNIX dans le Client système. Vous y verrez la définition de la Variable &UC_JOB_MD_TRC. La valeur de la Variable est transmise au paramètre TRC= par l'exécution de l'informateur de Job (ligne JCL). 351 Chapter 7 L'Automation Engine et les systèmes cible Il est ainsi possible d'activer la génération de trace pour un Job Unix spécifique en ajoutant la ligne de Script suivante dans l'onglet Pré-traitement : :SET &UC_JOB_MD_TRC = '1' Automation Engine 352 Rubriques connexes : Informateur de Job des Agents Logging / Trace 7.13.12 Solaris: Déclencher les Jobs du processus des Agents Si l'Agent sous Solaris est démarré via SMF, tous les processus démarrés par l'Agent (Jobs) sont liés au même contrat. En cas de blocage, d'interruption ou de redémarrage de l'Agent, cela entraîne également l'interruption de ces processus. Pour y remédier, les Jobs peuvent être séparés du Contrat de l'Agent, afin qu'ils puissent continuer à fonctionner sans être impactés par le processus de l'Agent. Cela fonctionne par exemple la manière suivante : Tout d'abord, les 2 fichiers Script Shell chk-uc4-start.ksh et chk-uc4.ksh sont créés avec le contenu suivant : chk-uc4-start.ksh : nohup /usr/local/bin/sudo -u mgws /var/tmp/chk-uc4.ksh& chk-uc4.ksh : while true do echo "$(date) $0" >> /var/tmp/chk-uc4.log 353 Chapter 7 L'Automation Engine et les systèmes cible sleep 10 done Dans le Script du Job, le Script Shell chk-uc4-start.ksh doit être appelé avec l'utilitaire "ctrun". Insérez par exemple la ligne suivante au début du Script de Job : ctrun -l child /var/tmp/chk-uc4-start.ksh 7.13.13 Restrictions des ressources via ulimit A l'aide de la commande UNIX "ulimit", il est possible de limiter les ressources du système d'exploitation pour chaque utilisateur. Cela permet de garantir qu'un utilisateur n'utilise pas trop de ressources et que les performances du système n'en pâtissent pas. Il est en général recommandé de ne pas définir une telle limite pour l'utilisateur sous lequel les composants sont démarrés. Si un composant est soumis à cette limite, il peut arriver qu'il ne fonctionne pas comme souhaité (par exemple : impossibilité d'ouverture du rapport par l'Agent) ou dans certains cas plus rares, cela peut même occasionner un plantage du programme. Supprimez par conséquent les éventuelles limites fixées ou définissez la valeur la plus haute possible pour ces dernières. Cela concerne tous les composants fonctionnant sous UNIX. En font partie l'Agent UNIX, les utilitaires et l'Interface Utilisateur, mais également les Agents Java et ERP. Vous pouvez utiliser le concept de ressources de Automation Engine, afin de réduire la consommation des ressources du système d'exploitation. 7.14 L'Automation Engine et VMS 7.14.1 Agent VMS - Prise en charge du Transfert de Fichier Lors de la définition d'un objet Transfert de Fichier, il est possible de spécifier dans l'onglet "Transfert de Fichier" des attributs de fichier pour la destination du Transfert de Fichier. Attributs possibles Attribut Désignation des attributs alq = Numéro Allocation quantity ; ignoré si une allocation XAB est présente. Valeurs possibles Description Automation Engine bls = Numéro 354 Device block size (s'applique uniquement aux fichiers d'organisation séquentielle) deq = Numéro Default extension quantity. fop = Valeur, Valeur, ... fsz = Numéro File-processing options ctg Contiguous : indique que l'espace pour un fichier doit être alloué de manière contiguë. cbt Contiguous-best-try. cif Create if nonexistent. dfw Deferred write : La réécriture dans le fichier du tampon modifié est différée. S'applique aux fichiers relatifs et indexés et aux fichiers séquentiels ouverts pour un accès partagé. dlt Delete file on close. mxw Maximize version number. nef Not end-of-file. pos Current position. rck Read check compare operation. rwc Rewind file on close. rwo Rewind file on open. scf Submit as command file on close. spl Spool to system printer on close. sqo File can only be processed in a sequential manner. sup Supersede. tef Truncate at end-of-file. tmd Temporary delete. tmp Temporary (no file directory). wck Write check compare operation. cr Carriage-return control. Fixed header size. gbc = Numéro The requested number of global buffers for a file. mbc = Numéro Multiblock count. mbf = Numéro Multibuffer count. mrs = Numéro Maximum record size. rat = Valeur, Valeur, ... Record Attribute 355 Chapter 7 L'Automation Engine et les systèmes cible rfm = Valeur rop = Valeur, Valeur,... Record Format Record processing Operations blk Disallow records to span block boundaries. ftn Fortran print control. none Explicitly forces no carriage control. prn Print file format. fix Fixed-length record format. stm RMS stream record format. stmlf Stream format with line-feed terminator. stmcr Stream format with carriage-return terminator. udf Undefined. var Variable-length record format. vcf Variable-length record with fixed control. asy Asynchronous I/O. cco Cancels Ctrl/O (used with Terminal I/O). cvt Capitalizes characters on a read from the terminal. eof Positions the record stream to the end-of-file for the connect operation only. nlk Do not lock record. pmt Enables use of the prompt specified by "pmt=usr-prmpt" on input from the terminal. pta Eliminates any information in the type-ahead buffer on a read from the terminal. rah Read ahead. rea Locks record for a read operation for this process, while allowing other accessors to read the record. rlk Locks record for write. rne Suppresses echoing of input data on the screen as it is entered on the keyboard. Automation Engine 356 rnf Indicates that Ctrl/U, Ctrl/R, and DELETE are not to be considered control commands on terminal input, but are to be passed to the application program. rrl Reads regardless of lock. syncsts Returns a success status of RMS$_SYNCH if the requested service completes its task immediately. tmo Timeout I/O. tpt Allows put/write services using sequential record access mode to occur at any point in the file, truncating the file at that point. ulk Prohibits RMS from automatically unlocking records. wat Wait until record is available, if currently locked by another stream. wbh/nowbh Write behind. 7.14.2 Codes retour des Jobs VMS La signification des codes retour dans VMS diffère de celle de l'Automation Engine. La valeur "1" indique dans VMS que le Job s'est bien terminé. "0" représente les avertissements. En revanche, dans l'Automation Engine, le code retour "0" signifie une exécution réussie et les valeurs différentes de "0" représentent des erreurs. Attention : l'Agent doit annoncer le code retour "1" au système AE sous la forme "0" ! Cela a naturellement pour effet que les avertissements et les exécutions de Job réussies ne sont pas distinguables. Analysez donc la Variable $severity en fonction d'une commande VMS. Elle contient le code retour des dernières commandes exécutées. Cela permet de contrôler, à l'aide du Script, la progression du Job. Définissez un objet Include pour l'analyse de la Variable $severity. Vous ne devrez ainsi maintenir les lignes de Script que dans un seul objet et vous pouvez les insérer à un emplacement quelconque dans vos Jobs. Exemple pour un objet Include : $ $ $ $ $ $ RETCODE = $severity if (RETCODE .EQ. 0) then RETCODE = 3 goto RETURN endif Le système vérifie si le code retour représente un avertissement. Dans ce cas, l'exécution du Job se poursuit dans la queue. "goto RETURN" passe ainsi dans l'objet Include "TRAILER.VMS" qui est exécuté à la fin de chaque Job. 357 Chapter 7 L'Automation Engine et les systèmes cible Rubriques connexes : Job - Includes 7.15 L'Automation Engine et WebSphere MQ 7.15.1 Connect pour WebSphere MQ Queue Manager Connect est l'élément de jonction entre WebSphere MQ Queue Manager et Automation Engine. Connect lit la demande, un message au format XML, dans la file d'attente des demandes (SIQ) et la transmet à Automation Engine pour exécution. Un format interne est utilisé pour cela. Connect attend que le Automation Engine confirme l'exécution et qu'il annonce sa fin. Un format interne est également utilisé pour cela. La réponse est attribuée par Connect à la demande et elle est écrite au format XML dans la file d'attente des réponses (CIQ). Message XML de la demande Elément XML Description <apiscriptexec> Début de la demande API. Cet élément XML doit exister. <uc-env request="ID" release="1"> L'ID spécifié caractérise la demande. L'attribut "request=" doit être renseigné. Les messages d'Connect renvoient à cet ID. Le message réponse comprend également l'ID. L'attribut "release=" n'est pas obligatoire. S'il est entré, seul "1" est autorisé à l'heure actuelle. L'attribut sert à l'avenir à spécifier la version. Cet élément XML doit exister. Automation Engine <requestname name="any name"> 358 Nom de la demande. L'attribut "name=" n'est pas obligatoire. Cet élément XML doit exister. <control> Cet élément XML doit exister. <timeout unit="sec">10</timeout> Limitation de l'exécution d'une demande. L'exécution démarre avec l'Automation Engine avant le début de connexion et se termine lorsque l'Automation Engine a accepté l'exécution, ou lorsqu'une erreur insoluble se produit. L'attribut "unit=" indique l'unité de l'exécution. Valeurs autorisées : "1" - "31999" Par défaut : "10" Cet élément XML est facultatif. <control unit="sec">20</control> N'est pas encore pris en charge dans la nouvelle version. </control> Fin de l'élément <control> Cet élément XML est facultatif. Cet élément XML doit exister. <login> Début de l'élément pour les informations Login. Cet élément XML doit exister. <system>Automation Enginename</system> Nom d'Automation Engine. Le nom est utilisé pour vérifier la connexion à Automation Engine. Le contenu correspond au paramètre name= du fichier INI d'Automation Engine auquel Connect s'est connecté. Cet élément XML doit exister. <client>client number</client> Numéro de Client pour la connexion à Automation Engine. Cet élément XML doit exister. <name>user name</name> Nom de l'utilisateur pour la connexion à Automation Engine. Cet élément XML doit exister. <department>user’s department</department> Service de l'utilisateur pour la connexion à Automation Engine. <passw>password</passw> Mot de passe de l'utilisateur pour la connexion à Automation Engine. Cet élément XML doit exister. Cet élément XML est facultatif. <language>E/D/F</language> Sélection de la langue dans laquelle les messages doivent être générés. Si la langue n'est pas spécifiée, les messages sont affichés tels que définis dans le fichier INI d'Connect. Cet élément XML est facultatif. 359 Chapter 7 L'Automation Engine et les systèmes cible <clienttype>C</clienttype> Type de Client. Si le type est spécifié, seul "C" est autorisé à l'heure actuelle. Cet élément XML est facultatif. <clientvers>client version</clientvers Version d'Connect. Valeurs autorisées : version actuelle Cet élément XML est facultatif. </login> Fin de l'élément XML <login>. Cet élément XML doit exister. <script><![CDATA[Script content]]></script> Instructions de Script devant être exécutées dans l'Automation Engine. Cet élément XML doit exister. </request> Fin de l'élément XML <request>. Cet élément XML doit exister. </uc-env> Fin de l'élément XML <uc-env>. Cet élément XML doit exister. </apiscriptexec> Fin de l'élément XML <apiscriptexec>. Cet élément XML doit exister. Exemple d'une demande <apiscriptexec> <uc-env request="ID1" release="1"> <request name="apiscriptexec"> <control> <timeout unit="sec">10</timeout> </control> <login> <system>UC4</system> <client>98</client> <name>NOM01</name> <department>DEPARTEMENT01</department> <passw></passw> <language>F</language> <clienttype>C</clienttype> <clientvers>3.02A</clientvers> </login> <script><![CDATA[:SET &RUNID = ACTIVATE_UC_OBJECT(JOBS,EXAMPLE1)]] ></script> </request> </uc-env> </apiscriptexec> Automation Engine 360 Message XML de la réponse Elément XML Description <apiscriptexec> Cadre extérieur du message. Cet élément XML existe toujours. <uc-env request="ID" release="1"> L'ID indiqué est extrait de la demande associée. L'attribut "request=" est toujours affiché. Cet élément XML existe toujours. <result name="Reply"> Cet élément XML existe toujours. <status>reason</status> Raison de cette réponse à la demande. A l'heure actuelle, la raison est toujours "completed". Cet élément XML existe toujours. <complcode>code</complcode> Code de résultat que Connect fournit pour la demande exécutée. Les codes possibles sont décrits dans le manuel des messages. Cet élément XML existe toujours. <compltext>![CDATA[completion Texte descriptif du code de résultat. text]]</compltext> Cet élément XML existe toujours. <returnvalue>value</returnvalue> Code retour des composants ayant participé à l'exécution (AutomationEngine, parser XML, etc.). Cet élément XML existe toujours. <returntext>![CDATA[return text]] Description accompagnant le code retour. </returntext> Cet élément XML existe toujours. </result> Fin de l'élément XML <result>. Cet élément XML existe toujours. </uc-env> Fin de l'élément XML <uc-env>. Cet élément XML existe toujours. </apiscriptexec> Fin de l'élément XML <apiscriptexec>. Cet élément XML existe toujours. 7.16 L'Automation Engine et Windows 7.16.1 Démarrage de programmes sous Windows Attributs Lors du démarrage de Jobs sous Windows, les paramètres suivants sont importants : 361 Chapter 7 L'Automation Engine et les systèmes cible Domaine Le domaine Windows dans lequel l'Utilisateur est défini. Nom d'utilisateur Le nom d'utilisateur Windows. Mot de passe Le mot de passe de l'Utilisateur. BATCH (type d'identification) Dans les droits de l'Utilisateur, il est possible d'autoriser certains types d'identification pour l'Utilisateur. Les types d'identification possibles sont "interactive" et "batch". Si "batch" est le seul type autorisé pour un Utilisateur, alors UC4 ne peut démarrer un Job que dans ce mode ; il faut donc indiquer le paramètre BATCH. DESKTOP Si le Job démarré attend éventuellement des saisies de l'Utilisateur, cette option doit être définie. Le processus est alors visible pour tout Utilisateur connecté. Il peut exécuter les données requises par l'Utilisateur. Si cette option n'est pas indiquée et que le processus attend une indication, il est suspendu et ne peut être supprimé qu'au moyen du gestionnaire de Tâches. Les attributs sont définis dans les cartes d'attribut du Job. Attention ! l l l l Les attributs sont définis dans les cartes d'attribut du Job. Tous les paramètres, à l'exception du mot de passe, sont définis dans les attributs du Job. Le mot de passe est lu dans l'objet Login. Ces nouvelles possibilités (par rapport à la version 1.10) ne sont à disposition que si le paramètre "logon=1" est entré dans la section [GLOBAL] du fichier INI de l'Agent. Lorsque l'Agent est démarré comme service, ce paramètre devrait être défini ! Dépendances du système Selon le système d'exploitation et le type de démarrage de l'Agent, les dépendances suivantes existent : Agent Fichier INI Utilisateur BATCH DESKTOP Agent sur bureau logon=0 1. 1. 1. Agent sur bureau logon=1 2. 2. 2. Agent comme service logon=1 3. 3. 3. Automation Engine 362 1. sans importance, le démarrage se fait sur le Bureau avec le nom et les droits de l'Utilisateur 2. est utilisé : l'Utilisateur sur le Bureau doit posséder les privilèges nécessaires (comme l'Utilisateur système) 3. est utilisé Attention aux particularités suivantes : l Différence entre la connexion interactive et la connexion par Agent Win32 : L'Agent ne charge pas le profil d'Utilisateur du Job dans la base de données du registre. Cela signifie qu'un programme dont les données spécifiques à l'Utilisateur sont conservées dans le registre (par ex. l'Interface Utilisateur enregistre la dernière connexion) ne peut pas y accéder par l'intermédiaire d'un Job. l Chemin de démarrage : Le chemin de démarrage est un paramètre requis dans l'Automation Engine pour CreateProcess ou CreateProcessAsUser. S'il n'est pas encore indiqué, le Job hérite du chemin de démarrage de l'Agent. De plus, il ne faut pas oublier qu'on peut paramétrer un chemin de démarrage dans la définition de l'Utilisateur qui apparaît dans la connexion interactive normale, mais qu'il ne peut pas être exploité au démarrage par l'Automation Engine ! Le chemin de démarrage devrait donc toujours être indiqué ! Stratégie pour les Jobs sous Windows Dans Windows, on fait la distinction entre quatre types de programmes : 1. 2. 3. 4. Programmes avec Interface Utilisateur graphique (programmes GUI 32 bits ou 16 bits) Programmes de console 32 bits (basés sur les caractères) Anciens programmes DOS Commandes de système d'exploitation (pas vraiment un programme, par ex. DIR, SET, etc.) Les types 1 et 2 (GUI et programmes de console) doivent si possible être démarrés par la ligne de commande. Cela présente l'avantage de pouvoir déterminer le code de sortie du programme exact de l'Automation Engine. Les types 3 et 4 (programmes DOS et commandes de système d'exploitation) ne peuvent être démarrés que par l'intermédiaire d'un fichier BAT. Le Job est bien ou mal terminé par le mécanisme de l'agent Job. Avant de démarrer le Job par l'Automation Engine, il faut essayer manuellement le fichier BAT ou la ligne de commande sur le système cible ! Cela doit également être utilisé si possible par l'Utilisateur sous lequel le Job sera exécuté ultérieurement. Dans le cadre de programmes graphiques, des boîtes de dialogue Utilisateur peuvent toujours apparaître. Dans ce cas, l'option DESKTOP est recommandée, au moins à des fins de test. Rapport de Job : Le rapport de Job d'un Job Windows représente les Tâches du programme après STDOUT ou STDERR. Généralement, seuls les programmes de console 32 bits ou la plupart des programmes DOS génèrent un rapport de Job. 363 Chapter 7 L'Automation Engine et les systèmes cible 7.16.2 Programmes de test pour l'Agent Windows Objectif Etant donné qu'il existe de nombreuses possibilités de démarrer des Jobs ou des programmes sous Windows, nous fournissons plusieurs programmes de test qui fonctionnent dans les différents modes de Windows. Fichiers Les programmes se trouvent dans le sous-répertoire EXAMPLE de l'Agent Windows (IMAGE:AGENTS\WINDOWS...). Les programmes suivants sont fournis : UCYBTX86C - programme de console 32 bits (fenêtre DOS) UCYBTX86G - programme GUI 32 bits (Visual C++) UCYBTX86V - programme GUI 32 bits (Visual Basic) UCYBTIA64C - programme de console 64 bits (fenêtre DOS) UCYBTX64C - programme de console 64 bits (fenêtre DOS) Contrôle des programmes de test Les programmes de test n'ont pas de fonction à proprement parler. Leur comportement peut être contrôlé par des paramètres dans les options de démarrage. /w<n> attend <n> secondes /d Etablir un dialogue (par ex. sélection de fichier) /m Message (boîte de message) /o<n> Afficher <n> lignes sous cette forme standard (=rapport de Job) /r<n> Définir le code retour sur <n> Les paramètres sont traités dans l'ordre d'apparition. Tous les paramètres ne sont pas possibles pour tous les programmes : Programme /w<n> attendre /d dialogue /m boîte de message /o<n> STDOUT /r<n> Retcode UCYBTX86C oui oui oui oui oui UCYBTX86G oui oui (sélection de fichier) oui oui oui UCYBTX86V oui (boucle) oui (sélection de fichier) oui non oui UCYBTIA64C oui oui oui oui oui UCYBTX64C oui oui oui oui oui Automation Engine 364 Exemple UCYBTX86G /w10 /d /r4 Le programme IU à 32 bits est démarré. Celui-ci attend 10 secondes, établit ensuite un dialogue de fichier (sans effet), définit le code retour sur 4 et se termine. 7.16.3 Objet Job Windows Lors de l'exécution de Jobs Windows, les processus, tels que le démarrage d'un programme, sont mis en marche. L'objet Job Windows regroupe tous les processus d'un Job Windows, ce qui implique les avantages suivants : l l l Tous les sous-processus sont également pris en compte pour le calcul du temps CPU. Le Job Windows se termine une fois que tous les sous-processus ont été exécutés. En cas d'interruption d'un Job Windows, tous les sous-processus sont également interrompus. Définissez dans l'onglet de l'hôte d'un Job Windows si celui-ci doit s'exécuter dans un objet Job Windows. Il est également possible d'enregistrer un paramètre standard dans le fichier INI de l'Agent Windows. La valeur entrée ici est utilisée par défaut pour tous les Jobs Windows. [GLOBAL] ;... useJobObject=1 Dans le rapport du Job Windows, il est possible de voir si celui-ci s'est exécuté avec un objet Job Windows. Exemple : Dans l'onglet de l'hôte d'un Job Windows, le paramètre "Objet Job - Oui" a été sélectionné. L'onglet Script contient la commande Start "New Window" avec laquelle un nouveau processus est démarré. Le Job Windows ne s'arrête que lorsque la nouvelle fenêtre est quittée à l'aide de la commande "exit". Celui-ci reste dans la Fenêtre d'Activités jusque-là, comme le montre l'illustration suivante. Pour que les fenêtres soient affichées, soit l'option "Afficher le Job sur le Bureau" doit être sélectionnée dans l'onglet de l'hôte, soit l'Agent Windows ne doit pas s'exécuter comme service. 365 Chapter 7 L'Automation Engine et les systèmes cible 7.16.4 Rapport des Jobs Windows Les rapports des Jobs Windows présentent quelques particularités. Génération du rapport de Job par Script Dans l'onglet "Windows" spécifique à l'hôte, il est possible de définir si le rapport de Job doit être enregistré dans la base de données et/ou dans un fichier. En outre, vous pouvez définir que cela ne se produise qu'en cas d'erreur. L'option "Sera généré par Script" est utile aux programmes qui enregistrent leur sortie dans un fichier. Lorsque vous activez ce paramètre, le rapport de Job se compose du contenu de cette sortie. Automation Engine 366 A chaque exécution d'un Job, un fichier distinct est créé pour le rapport de Job. Utilisez l'attribut "FILENAME_SYSOUT" pour déterminer son nom tiré du RunID. Le chemin du rapport de Job peut être spécifié avec la Variable "UC_EX_PATH_JOBREPORT". Lisez-le donc à l'aide de la fonction de Script GET_VAR. Vous pouvez ensuite transmettre les deux informations au programme. Exemple : :SET :SET &chemin_rapport_Job# = GET_VAR(UC_EX_PATH_JOBREPORT) &nom_fichier_rapport_Job#= GET_ATT(FILENAME_SYSOUT) isqlw -S PC1\SQL2000 -d TEST_DB -U sa -i c:\temp\test.sql -o &chemin_ rapport_Job#&nom_fichier_rapport_Job# Objet Job Windows Dans le rapport des Jobs Windows, il est possible de voir si celui-ci a utilisé un objet Job Windows. Le message de fin de l'agent Job est donc différent : Par ex. : Sans objet Job : UCMDJP : ******************************************************************* UCMDJP : ** JOB 26181380 (ProcID:0000005796) ENDED AT 22.07.2004/15:02:10 ** UCMDJP : ** ------------------------------------------------------------ ** UCMDJP : ** USED : @ CPU ** UCMDJP : ******************************************************************* Par ex. : Avec objet Job : UCMDJP : ******************************************************************* UCMDJP : ** JOB 26181383 (ProcID:0000005796) ENDED AT 22.07.2004/15:03:09 ** UCMDJP : ** ------------------------------------------------------------ ** UCMDJP : ** USED : 0.188 CPU ** UCMDJP : ** 1154 PAGE FAULTS ** UCMDJP : ** 3 PROCESSES ** UCMDJP : ******************************************************************* Rubriques connexes : Rapport des objets activables 7.16.5 User Account Control dans Windows 2008 et Vista Si vous désirez exécuter avec des Job des programmes nécessitant une "Elevation", c'est à dire des droits supérieurs, choisissez l'option "Connexion comme Utilisateur batch". 367 Chapter 7 L'Automation Engine et les systèmes cible L'élévation ne peut pas être exécutée automatiquement si le mode batch n'est pas activé. De plus, l'utilisateur Windows par lequel le Job est exécuté requiert une autorisation pour la connexion comme Job batch (panneau de configuration - gestion - directive de sécurité locale). Le Job est automatiquement doté des droits supplémentaires dont il a besoin. L'Utilisateur doit bien sûr lui-même disposer des droits nécessaires dans l'objet Login. Attention, tous les processus du Job sont alors exécutés avec ces droits. Si l'Utilisateur ne dispose pas d'un ou plusieurs droits nécessaires, l'Agent ne peut exécuter tous les processus. Windows interrompt l'action avec l'erreur 740 (elevation required). 7.16.6 Calcul du nombre CPU Le nombre CPU de l'ordinateur sur lequel l'Agent est exécuté est affiché dans le fichier log et dans la Supervision système. Hyperthreading L'Agent Windows ne peut pas, pour des raisons techniques, déterminer le nombre CPU correct pour toutes les versions Windows prises en charge lorsque l'ordinateur fonctionne avec hyperthreading. Dans ce cas, l'Agent propose un nombre CPU inférieur au nombre réel. Les tables suivantes indiquent dans quelles versions Windows il est possible de déterminer correctement le nombre CPU : Version Windows x86 x64 Windows 2003 oui oui Windows XP à partir du Service Pack 3 à partir du Service Pack 3 Windows Vista oui oui Windows 2008 oui oui 7.16.7 Bibliothèques dans Windows 7 Une remarque importante doit être prise en compte pour l'utilisation de l'Automation Engine pour Windows 7 concernant la nouvelle fonction "Bibliothèques". Les bibliothèques dans Windows 7 sont ce qu'on appelle des "dossiers virtuels" avec lesquels des contenus se trouvant à différents emplacements peuvent être regroupés. Elles représentent donc une compilation de différents répertoires. L'accès à ces répertoires virtuels peut se faire via un chemin "Bibliothèques" spécifique (par exemple : "Bibliothèques\Documents"). Ce chemin n'est toutefois qu'un chemin "relatif", car il n'indique pas l'emplacement réel et ne peut donc pas être utilisé avec l'Automation Engine. Tenez compte de cette remarque, surtout si vous utilisez des Agents sous Windows 7 pour le Transfert de Fichier. Pour accéder aux bibliothèques avec l'Automation Engine, il faut utiliser le chemin absolu. Sous Windows 7, les bibliothèques sont stockées dans le répertoire suivant : C:\Users\%Username%\AppData\Roaming\Microsoft\Windows\Libraries\ Automation Engine 368 7.16.8 Agent Windows - Prise en charge du Transfert de Fichier Lors de la définition d'un objet Transfert de Fichier, il est possible de faire des saisies supplémentaires dans l'onglet "Transfert de Fichier" dans le champ "Attributs de fichier". Il s'agit soit d'attributs de fichier du système d'exploitation, soit d'options supplémentaires exploitées uniquement par l'Agent. Plusieurs attributs et options doivent être séparés par des virgules. Attributs de fichier Windows Les attributs de fichier peuvent être indiqués pour la destination du Transfert de Fichier. Une substitution des attributs originaux est également possible. Cela signifie que si l'option "Conserver les attributs originaux" est activée, les attributs à reprendre peuvent tout de même être remplacés (par exemple, protéger tous les fichiers cibles en écriture). Avec la valeur "YES", un attribut est appliqué, avec "NO", il est supprimé. Exemple : ARCHIVE=YES, HIDDEN=NO Attribut Description ARCHIVE Archive (le fichier a été modifié depuis la dernière sauvegarde) COMPRESSED Fichier compressé ENCRYPTED Fichier crypté HIDDEN Fichier masqué READONLY Le fichier est protégé en écriture SYSTEM Fichier système Options supplémentaires Ces options peuvent être saisies dans le champ "Attributs de fichier" parallèlement aux attributs de fichier du système d'exploitation. Elles ont une incidence sur le formatage du contenu du fichier. Il ne s'agit pas d'attributs de fichier. Ces options sont aussi disponibles pour l'Agent UNIX. Options pour le champ d'attribut source l l reclen - longueur de l'enregistrement (en octets). nl=mixed - si un caractère CR se trouve à la fin d'une ligne d'un fichier texte, cela peut rendre le fichier inutilisable sur de nombreux systèmes. La valeur "mixed" permet son élimination automatique. Options pour le champ d'attribut cible l nl : caractère de séparation des lignes Valeurs autorisées : "crlf", "lf" (par défaut) et "none" "crlf" - Retour chariot avec saut de ligne (carriage return and line feed). "lf" - Saut de ligne (line feed). "none" - Pas de séparation de ligne. Exemple : nl=crlf 369 Chapter 7 L'Automation Engine et les systèmes cible 7.17 L'Automation Engine et z/OS 7.17.1 Agent - Interaction entre l'Automation Engine et z/OS L'Agent z/OS interagit avec le système AE via une interface TCP/IP. Il communique dans z/OS avec JES2 ou JES3. L'Agent z/OS dispose des fonctionnalités suivantes : l l l l traitement de Jobs, exécution de Transferts de Fichiers, traitement d'Evènements, CallAPI Traitement de Jobs Dans AE, les Jobs sont définis et gérés comme des objets à l'aide d'onglets. Le JCL se trouve dans l'onglet Script. Il peut être muni d'une logique complexe à l'aide de scripts de l'Automation Engine. Rubriques connexes : Manuel Utilisateur – Job et Job – Exécution. Un Job est démarré manuellement dans l'Automation Engine au moyen de mécanismes de contrôle comme le Workflow ou le Schedule. Un Job exécutable est alors généré dans le Automation Engine et transféré à l'Agent z/OS par Transfert de Fichier. Rubriques connexes : Interne AE – Exécution des objets Dans z/OS, le Job est lu et placé dans le lecteur interne. Le lecteur interne démarre le Job. La surveillance s'effectue via SSI. Le Job annonce à l'Agent le début et la fin de l'exécution, lequel transmet à son tour ces informations au Automation Engine. L'Agent surveille à intervalles réguliers le statut du Job. Si un Job est perdu (par ABEND, CANCEL ou PURGE), ce mécanisme permet de constater la fin. Le code retour du Job est disponible dans l'Automation Engine. Le rapport de Job (MSGCLASS), composé des statistiques JES et du rapport de Job complet, est placé dans le fichier nommé par le Automation Engine. Si cela est défini dans le Job, l'Agent transfère le rapport à l'Automation Engine qui l'enregistre à son tour dans la base de données. Le rapport de Job est demandé par JES. Il est donc nécessaire d'utiliser une MSGCLASS avec le statut HOLD. Exécution de Transferts de Fichiers Dans AE, les Transferts de Fichiers sont définis et gérés comme des objets à l'aide d'onglets. Ils sont exécutés avec la conversion de caractères qui y figure, par exemple "IBM_3270_FRANCAIS". Rubriques connexes : Manuel de l'Utilisateur - Transfert de Fichier Rubriques connexes : base de connaissances AE et z/OS - Agent - Prise en charge du Transfert de Fichier Automation Engine 370 Traitement d'Evènements Dans AE, les Evènements sont définis et gérés comme des objets à l'aide d'onglets. L'Agent OS/390 prend en charge les Evènements de type "système de fichiers" et "console". Rubriques connexes : Manuel de l'Utilisateur – Evènement CallAPI La CallAPI peut être utilisée avec un utilitaire pouvant par exemple être exécuté à partir d'un Job. Voir : Manuel de l'Utilisateur - CallAPI pour z/OS 7.17.2 Agent z/OS - Prise en charge du Transfert de Fichier L'Agent z/OS prend en charge toutes les fonctions de Transfert de Fichier comme le transfert de fichiers texte et binaires ou le transfert de fichier avec des caractères génériques. Les fichiers séquentiels (PS) peuvent être étendus par l'Agent z/OS, mais les membres d'une bibliothèque (PO) ne peuvent pas l'être. Lors de la définition d'un objet Transfert de Fichier, il est possible de spécifier dans l'onglet "Transfert de Fichier" des attributs de fichier pour la destination du Transfert de Fichier. L'attribution par défaut du système est ainsi chargée. Lorsque la source correspond à la plate-forme cible, il est possible de reprendre les attributs des fichiers source. Cela est possible grâce à l'option "Conserver les attributs originaux de fichier" dans l'objet Transfert de Fichier. Attention : aucune substitution de ces attributs n'est cependant possible pour z/OS ! Dans ce cas, une erreur se produit quand des attributs supplémentaires sont indiqués et quand cette option est activée. Il existe deux formats différents pour l'entrée d'attributs de fichier lors de Transferts de fichiers avec z/OS comme plateforme cible. Language Environment Format "Language Environment Format" constitue le format traditionnel. Les attributs de fichier pour les transferts de fichiers sont déjà indiqués dans cette syntaxe dans les versions plus anciennes de l'Automation Engine. Une virgule permet de séparer plusieurs attributs de fichier et le signe '=' indique l'attribution de valeurs. Les attributs de fichier suivants peuvent être indiqués : l l l l l recfm= (tous les 27 formats d'enregistrement de OS/390 ainsi que * et A sont valides) lrecl= (0, chaque chiffre positif jusqu'à 32760 et X pour chaque "Reclen") blksize= (0, chaque chiffre positif jusqu'à 32760) space= ([CYL,TRK],(prim,sec,directory)) nl= (crlf (paramètre par défaut dans l'Agent Windows) -> phrases séparées par <cr><lf> (=0d0a) ); lf (paramètre par défaut dans l'Agent Unix) -> phrases séparées par <nl> (=0a) ; none (aucun séparateur ajouté entre les phrases)). Exemples recfm=fb,lrecl=1024,blksize=2048,space=(CYL,(1,1,0)) 371 Chapter 7 L'Automation Engine et les systèmes cible recfm=fb,lrecl=80 Allocate format A partir de la version 9.00A, il est possible de définir des attributs pour les Transferts de fichiers avec l'entrée de la commande ALLOCATE. Plusieurs attributs doivent être séparés par des espaces et les valeurs se trouvent entre parenthèses juste après les noms des attributs. Le signe '=' est ainsi nécessaire. Cette syntaxe ne peut cependant être utilisée que pour un nouveau protocole de Transfert de fichier (Agents source et cible présentent la version 9.00A de l'Automation Engine ou supérieure)! Les attributs suivants sont ainsi pris en charge : l l l l l l l l l l l l l l DATACLAS EXPDT MGMTCLASS RETPD RLSE STORCLAS UNIT VOLUME RECFM LRECL BLKSIZE SPACE (possible uniquement en relation avec CYLINDERS, TRACKS ou BLOCK) DSORG ROUND Vous trouverez une description exacte à ce sujet sur la documentation au sujet de la Commande TSO ALLOCATE d'IBM. Exemple ALLOCATE RECFM(FB) LRECL(1024) BLKSIZE(2048) EXPDT(2010100) SPACE(1,1) CYLS DIR(10) UNIT(3390) VOLUME(DSK30D,DSK30E) 7.17.3 Classes de messages Le protocole de Job d'un Job z/OS est enregistré dans le spool JES. Celui-ci se décompose en classes de messages possédant chacune une désignation à un caractère (soit les lettres A à Z, soit les chiffres 0 à 9). Vous pouvez définir vous-même la formation du protocole de Job et la classe de messages dans lequel ce dernier est éventuellement redirigé. L'Agent peut : l l l l l Ecrire la sortie du Job dans la classe de message que vous avez indiquée dans l'objet Job. Associer la sortie de Job et les statistiques JES (JESMSGLG, JESJCL et JESYSMSG) dans le protocole de Job. Lire des classes de messages et les intégrer dans le protocole de Job. Réacheminer le protocole de Job dans les classes de messages. Mettre à jour le protocole de Job pour l'imprimer et le supprimer. Automation Engine 372 Vous pouvez pour cela définir les paramètres en tant que valeur par défaut dans le fichier INI de l'Agent et dans l'objet Job. Ce dernier est utilisé de manière privilégiée et est donc prioritaire sur la valeur du fichier INI. Tous les paramètres peuvent également être configurés de manière dynamique dans le Script à l'aide des attributs de Jobs. Il est recommandé d'entrer dans le fichier INI la configuration la plus souvent utilisée. Les Jobs qui s'écartent de ces paramètres peuvent être configurés dans leur objet ou à l'aide de leur Script. Le tableau suivant contient toutes les possibilités de paramétrage des classes de message. Les entrées de la colonne objet Job portent exactement le même nom que les champs de l'interface de l'onglet "z/OS". Traitement du protocole de Job Objet Job Paramètre du fichier INI Attribut de Job Etendue Avec sortie additionnelle completeJobout= MVS_ COMPLETEJOBOUT Sortie du Job Classe Msg non disponible MVS_MSGCLASS Demande Récupère le(s) message(s) suivant(s) getMsgClass= MVS_ GETMSGCLASSES Transfert Renvoyer la(les) classes(s) de message vers routeMsgClass= MVS_ ROUTEMSGCLASS Lancement de l'impression Libérer relMsgClass= MVS_ RELMSGCLASS Suppression dans le spool JES Suppression JobPurge= MVS_JOBPURGE Au niveau Step au sein d'un Job, vous pouvez également indiquer une classe de messages pour, par exemple, rediriger certains messages et ainsi les filtrer. Utilisation d'un système de gestion des sorties Lorsque vous utilisez un système de gestion des sorties, tel que BETA92, vous devez définir certains paramètres : 1. Indiquez la classe de messages dans laquelle la sortie du Job doit être enregistrée. 2. Il est important que vous laissiez lire ces classes de messages et éventuellement aussi d'autres classes de messages ! 3. Définissez les classes de messages qui sont attribuées au système de gestion des sorties et laissez le protocole de Job rediriger les messages dans ces classes. La classe de messages doit correspondre à une classe Write dans certains systèmes de gestion des sorties, elle n'est sinon pas traitée. En l'occurrence, un writer externe ne doit pas être connecté à cette classe, sinon celui-ci traitera le protocole de Job. 4. Bien entendu, le protocole de Job ne doit pas être supprimé du spool JES ! Utilisez une classe de messages personnalisée pour l'Automation Engine. Dans l'illustration suivante, la redirection du protocole de Job est configurée directement dans le Job. Le Job écrit sa sortie dans la classe de messages "B". Cette classe et la classe "A" sont lues. Lors de la redirection, c'est l'ordre qui importe. La classe "A" est redirigée vers la classe "K" et la classe "B" est redirigée vers la classe "J". 373 Chapter 7 L'Automation Engine et les systèmes cible Rubriques connexes : Job z/OS Attribut z/OS 7.17.4 Moniteur d'Evènements Dans l'Automation Engine, les Evènements sont définis et maintenus en tant qu'objets à l'aide de différents onglets. Les résultats de type "Console" pris en charge par l'Agent z/OS permettent de surveiller les sorties de console et de déclencher l'Evènement immédiatement lorsque toutes les conditions définies dans l'onglet "Console" sont réunies. Pour ce faire, le moniteur d'Evènements UCXEM25 doit être installé et démarré. Pour le type "Système de Fichiers", le système vérifie à l'aide de SMF si la condition est réunie et l'Evènement est aussitôt déclenché. Moniteur d'Evènements comme Tâche autonome (Started Task) Il est également possible d'exploiter le moniteur d'Evènements comme Tâche autonome au moyen d'un fichier INI séparé. Pour ce faire, il est nécessaire de mettre en commentaires le paramètre start= dans le fichier INI de l'Agent. Après le démarrage du moniteur d'Evènements comme Started Task, celui-ci essaie d'établir une connexion TCP/IP vers l'Agent. Le moniteur d'Evènements ne se connecte ici qu'avec la console du LPAR séparé. Pour utiliser les fonctions basées sur SMF, il charge l'exit SMF. S'il n'est pas possible d'établir une connexion vers l'Agent, ou si cette dernière est perdue en cours d'exécution, le système tente d'établir à nouveau une connexion dans l'intervalle défini (paramètre connect= de la section TCP/IP du fichier INI). Automation Engine 374 Une nouvelle connexion immédiate est possible avec l'instruction de console "MODIFY ..., EX=<addr>,:<port>. Une nouvelle connexion est également formée lorsque le moniteur d'Evènements est connecté à un autre Agent. Dans ce cas, une nouvelle connexion est établie et si elle est bien terminée, l'ancienne connexion peut être fermée. Le moniteur d'Evènements prend en charge les fonctions de log et de trace. Si les commutateurs de trace sont modifiés dynamiquement en cours d'exécution, ils sont passés au moniteur d'Evènements. Le logging du moniteur d'Evènements n'est pas écrit dans la base de données. Chaque moniteur d'Evènements est démarré avec 2 fichiers : Fichier VSAM Il sert d'enregistreur d'Evènements. Les Evènements filtrés sont sauvegardés. L'Evènement n'est supprimé de ce fichier par le moniteur d'Evènements qu'une fois que le Serveur a confirmé son traitement. On s'assure ainsi que le moniteur d'Evènements ne perd aucun Evènement et que les Evènements sont conservés même après un redémarrage. Fichier séquentiel Ce fichier contient les Filtres d'analyse afin d'enregistrer pour le moniteur d'Evènements les Filtres obtenus du Serveur. Si le Filtre d'analyse est modifié, tout le fichier est réécrit. Si le moniteur d'Evènements est redémarré, il continue de s'exécuter avec ces Filtres (même sans Agent). Une fois la connexion du moniteur d'Evènements à l'Agent à nouveau établie, il peut obtenir de celui-ci d'autres Filtres ou les Filtres actuels peuvent également être désactivés. La fermeture du moniteur d'Evènements peut se faire par la commande de console "STOP" ou "MODIFY END". Dans l'Agent, il existe la forme de fermeture "MODIFY SHUTDOWN". Tous les moniteurs d'Evènements disposant d'une connexion TCP/IP avec l'Agent sont alors fermés, puis l'Agent se ferme lui-même. Fermeture du moniteur d'Evènements Utilisez les commandes suivantes pour terminer le moniteur d'Evènements et/ou l'exit SMF manuellement : Commande Description MODIFY nom du moniteur d'Evènements,END Termine le moniteur d'Evènements et l'exit SMF reste actif. STOP nom du moniteur d'Evènements MODIFY nom du moniteur d'Evènements ,SHUTDOWN Termine le moniteur d'Evènements ainsi que l'exit SMF. MODIFY nom de l'Agent,SHUTDOWN Termine tous les moniteurs d'Evènements ainsi que les exits SMF qui sont connectés à l'Agent, puis termine l'Agent lui-même. Lors de l'interruption du moniteur d'Evènements, l'exit SMF reste toujours actif. Exit SMF Le moniteur d'Evènements transfère des Evènements à l'Automation Engine tant qu'il est actif. Pour qu'aucun Evènement ne soit perdu en cas de fermeture ou d'interruption du moniteur 375 Chapter 7 L'Automation Engine et les systèmes cible d'Evènements, l'Exit SMF les enregistre. Rubriques connexes : GET_CONSOLE, GET_EVENT_INFO Evènement Fichier INI de l'Agent z/OS (Moniteur d'Evènements comme sous-Tâche) Fichier INI pour le moniteur d'Evènements autonome Agent - Interaction entre l'Automation Engine et z/OS Installation de l'Agent pour z/OS 7.17.5 Moniteur de Job externe Le fonctionnement du moniteur de Job externe consiste à identifier les Jobs qui ont été démarrés par un autre système de planification (par exemple : OPC, CA7). La réaction correspondante dans le système AE passe par le moniteur d'Evènements et l'agent AE. Le moniteur de Job externe est utilisé comme Started Task autonome. Fonctionnement du moniteur de Job externe La réaction aux Evènements externes se fait par le moniteur d'Evènements. Le moniteur d'Evènements permet d'identifier des Evènements de console, des Evènements automatiques de système de fichier et la fin des Jobs z/OS. Le moniteur d'Evènements possède entre autres la fonction de réagir à la génération de fichiers externes. Si une fin de Job externe est identifiée avec le moniteur de Job externe, un fichier est créé dont la réaction passe par le moniteur d'Evènements. Ce dernier communique avec le système AE via l'Agent et déclenche un objet Evènement. Pour que toutes les fins de Job n'entraînent pas une action, un fichier de filtrage permet de déterminer à quels Jobs ou steps il faut réagir. Si la fin d'un Job concerné est identifiée, un fichier temporaire est créé par le moniteur d'Evènements. Comme la génération du fichier ne sert qu'à créer un enregistrement SMF auquel le moniteur d'Evènements réagit, le fichier peut ensuite être supprimé. Veuillez noter que la création et la suppression de fichiers génèrent des saisies dans le catalogue de jeu de données. Ce dernier doit donc être régulièrement réorganisé. Automation Engine 376 La fonctionnalité de reconnaissance de Job externe est possible au sein d'un Sysplex lorsqu'une instance du moniteur d'Evènements et du moniteur de Job externe fonctionne sur chaque LPAR (partition locale). Chaque LPAR dispose de son propre sous-système SMF qui n'est pas compatible avec Sysplex. L'Agent ne nécessite aucun SMF et fonctionne donc à l'échelle de Sysplex. Le moniteur de Job externe (EJM) n'établit aucune connexion directe au moniteur d'Evènements (EM), mais lui signale la fin d'un Job par la création d'un fichier. Les moniteurs d'Evènements envoient les données à l'Agent z/OS sur l'ensemble du LPAR. 377 Chapter 7 L'Automation Engine et les systèmes cible Exit SMF Les Evènements et informations du moniteur de Job externe doivent être écrits sur un Exit SMF dans les CADS comme pour le moniteur d'Evènements. Cette Tâche prend en charge de nouveaux exits SMF (UCAEXJM). Cet exit se comporte comme l'exit SMF du moniteur d'Evènements, mais il collecte des enregistrements de type 30. Le module exit SMF est automatiquement chargé au démarrage du module EJM. L'exit SMF continue de fonctionner et collecte des Evènements même si l'EJM a été arrêté. Si un Job saisi dans le fichier de filtrage se termine entre temps, un message s'écrit dans le fichier log. Le programme existant CADSDEL peut être utilisé comme système de récupération d'urgence pour l'EJM. Si vous utilisez un fichier de filtrage avec le même contenu sur plusieurs LPAR, des complications peuvent se produire. Un problème survient lorsque des Jobs portant le même nom se terminent en même temps sur différents LPAR. Dans ce cas, le système essaie de créer en parallèle des fichiers portant le même nom, ce qui génère une erreur. Mais la probabilité qu'une telle erreur se produise est très faible. Seul un message d'erreur s'inscrit dans le fichier log et l'utilitaire continue de fonctionner. Fichier de filtre Le fichier de filtrage de l'EJM est nécessaire pour pouvoir sélectionner les Jobs qui se terminent. Les critères de filtre sont immédiatement vérifiés lorsque les Evènements se produisent. Exemple : Un fichier de filtrage contient une condition sur un Step/ProcStep spécifique. La fin de ce step est identifiée immédiatement, et non à la fin du Job. Le fichier de filtrage contient les critères de sélection suivants : Automation Engine l l l l l 378 Nom de Job (partiellement / entièrement qualifié) Nom de step (partiellement / entièrement qualifié) Nom de ProcStep (partiellement / entièrement qualifié) Fin du Job Code retour Le fichier de filtrage doit présenter les attributs CDB RECFM (format d'enregistrement) =FB, LRECL (longueur d'enregistrement) =85 et BKKSIZE (taille de bloc) =5120. Chaque définition de filtre dans le fichier correspond à une ligne de 85 caractères. Pour recharger manuellement le fichier de filtrage, utilisez la commande suivante : MODIFY <nom de la STC>, RELOAD (STC = Started Task) Critère de filtrage Positions d'une ligne Description Nom de Job 1-8 (longueur 8) Filtre sur le nom du Job dans z/OS. Les caractères génériques "*" et "?" sont autorisés. Nom de step 9-16 (longueur 8) Facultatif Filtre sur le nom du step du Job dans z/OS. Les caractères génériques "*" et "?" sont autorisés. Nom du ProcStep 17-24 (longueur 8) Facultatif Filtre sur le nom du ProcedureStep du Job dans z/OS. Les caractères génériques "*" et "?" sont autorisés. Fin du Job 25 (longueur 1) " " -> Vérification immédiate à la fin du Step/ProcStep "X“ -> Vérification seulement à la fin du Job, pas de vérification RC "N“ -> Vérification à la fin du Job et lorsque le Job se termine normalement (c'est-à-dire avec un code retour compris entre 0 et 4095) "A“ -> Vérification à la fin du Job et lorsque le Job se termine anormalement (c'est-à-dire avec un code retour compris entre 4096 et 12287) Code retour du Job 26-41 (longueur 16) Facultatif Filtre sur le code retour du Job (Condition Codes, User Abends et System Abends). Si vous voulez indiquer plusieurs codes retour, il faut les séparer avec ";" ou ",". Les domaines sont formulés à l'aide de "-". Nom du fichier 42-85 (longueur 44) Nom de fichier du fichier à créer temporairement pour la transmission du message. 379 Chapter 7 L'Automation Engine et les systèmes cible Exemple de structure d'un fichier de filtrage : JOBTEST STEP3* 0-100;S0C4 JOB.ZUC800A1.EJM.TRIGGER.TEMP01 JOBF* STEP01 N0,4,8,12-16 JOBF.ZUC800A1.EJM.TRIGGER.TEMP02 JOBTEST2DUMMY 0-4096 JOB.ZUC800A1.EJM.TRIGGER.TEMP03 JOBTEST2DUMMY2 N0-4096 JOB.ZUC800A1.EJM.TRIGGER.TEMP04 Les lignes de filtrage sont connectées au moyen d'une liaison OU. Les lignes sont donc traitées et vérifiées de manière séquentielle. Si une sélection est trouvée, le fichier correspondant est créé. Rubriques connexes : Moniteur d'Evènements Structure du fichier de configuration d'un moniteur de Job externe 7.17.6 Exit SMF Le sous-système SMF recueille et journalise les informations sur le système et ses Jobs. L'Agent z/OS ainsi que ses moniteurs d'Evènements utilisent les enregistrements SMF dans les domaines suivants : l l Evènements de système de fichiers automatiques l Prise en charge des Generation Data Groups Reconnaissance et analyse de la fin du Job Parmi les prérequis pour son utilisation, notons que les exits système appropriés doivent être autorisés et que le module SMF doit journaliser certaines entrées. L'Agent et les moniteurs d'Evènements contiennent, dans leur fichier INI, plusieurs paramètres concernant SMF. Dans les descriptions des fonctionnalités citées plus haut, vous trouverez de plus amples informations sur la configuration exacte. Généralités Le moniteur d'Evènements surveille les Evènements de console et de système de fichiers et les transmet à l'Automation Engine. Les objets Evènement vous permettent d'y réagir. Le suivi des Evènements n'est effectué que tant que le moniteur d'Evènements est actif. Les Evènements sont recueillis via un exit SMF sur la base des enregistrements SMF. Cet exit est capable de faire office de tampon pour les Evènements, même lorsque le moniteur d'Evènements n'est pas disponible. Après un nouveau démarrage du moniteur d'Evènements, l'exit SMF lui transmet les Evènements recueillis. Cela permet de ne perdre aucun enregistrement SMF, si tant est que le tampon ne soit pas plein. Il est possible de régler la taille du tampon. Le System Management Facility (SMF) est également utilisé pour d'autres domaines, par exemple la reconnaissance des fins de Job et les GDG. L'illustration suivante vous montre les interactions entre l'Agent, le moniteur d'Evènements et l'exit SMF. Automation Engine 380 L'exit SMF enregistre les Evènements dans un Common Area Data Space (CADS). Le taux de remplissage du CADS est indiqué en couleur sur la console z/OS : l l 25 %, 50 % et 75 % en blanc 80 %, 85 %, 90 %, 95 % et 100 % en rouge Attention : l'exit SMF n'enregistre aucun autre Evènement lorsque le CADS est entièrement plein. L'entrée d'Evènement la plus ancienne n'est donc pas remplacée. Dès que le CADS a de nouveau de l'espace et que l'exit SMF est capable de transmettre des Evènements au moniteur d'Evènements, des Evènements sont à nouveau enregistrés dans le CADS. La valeur par défaut pour le CADS est de 10 Mo, ce qui suffit à l'enregistrement d'environ 65 000 Evènements. Attention : aucun Evènement se produisant durant un démarrage, un arrêt ou une phase IPL n'est recueilli. Les Evènements peuvent être traités dès que le moniteur d'Evènements est démarré. Configuration Exécutez les étapes suivantes pour mettre en marche l'exit SMF : l l Vérifiez dans votre système z/OS que le sous-système SMF journalise les enregistrements SMF du type 14, 15, 30 et 64 et que les exits IEFU83 ainsi que IEFU84 sont actifs. L'exit SMF peut s'exécuter comme sous-Tâche de l'Agent ou du moniteur d'Evènements. En fonction de cela, il faut adapter le fichier INI de l'Agent ou celui du moniteur d'Evènements comme suit : Entrez une désignation pour l'exit SMF dans la section (CONSOLE) pour le paramètre ModuleName=. Définissez la taille du CADS avec le paramètre SMF_Buffersize=, qui se trouve également dans la section (CONSOLE). La valeur par défaut est de 10 Mo. 381 Chapter 7 L'Automation Engine et les systèmes cible l Démarrez le moniteur d'Evènements. Démarrage du moniteur d'Evènements Utilisez la commande suivante pour démarrer le moniteur d'Evènements ainsi que l'exit SMF : START nom du moniteur d'Evènements Fermeture du moniteur d'Evènements Utilisez les commandes suivantes pour terminer le moniteur d'Evènements et/ou l'exit SMF manuellement : Commande Description MODIFY nom du moniteur d'Evènements,END Termine le moniteur d'Evènements et l'exit SMF reste actif. STOP nom du moniteur d'Evènements MODIFY nom du moniteur d'Evènements ,SHUTDOWN Termine le moniteur d'Evènements ainsi que l'exit SMF. MODIFY nom de l'Agent,SHUTDOWN Termine tous les moniteurs d'Evènements ainsi que les exits SMF qui sont connectés à l'Agent, puis termine l'Agent lui-même. Lors de l'interruption du moniteur d'Evènements, l'exit SMF reste toujours actif. Démarrage à chaud Lorsque le moniteur d'Evènements est terminé manuellement avec "END", ou qu'il s'interrompt, l'exit SMF reste actif. Après le redémarrage du moniteur d'Evènements, celui-ci peut à nouveau se connecter à l'exit SMF et traiter les Evènements qui se sont accumulés entre-temps. Attention : les modifications des paramètres ModulName= et SMF_Buffersize= du fichier INI n'ont aucun effet. Leurs valeurs ne seront lues qu'au prochain démarrage de l'exit SMF. Situations d'exception En temps normal, pour terminer l'exit SMF, vous devez utiliser la commande "SHUTDOWN" pour terminer le moniteur d'Evènements. Le CADS est ainsi supprimé automatiquement. Vous pouvez également terminer manuellement l'exit SMF : SET PROG,EXIT,DELETE,EXITNAME=nom de l'exit SMF,MODULNAME=nom du module AE Attention : ne pas supprimer le CADS ce faisant ! Utilisez l'utilitaire CADSDEL pour supprimer le contenu du CADS : Ouvrez le fichier log du moniteur d'Evènements. La ligne de log suivante contient les paramètres STOKEN et TCBTOKEN requis pour terminer l'exit SMF : -UC4 STOKEN=8000160200001328;TCBTOKEN=00000004000000010000000000FD2300 Automation Engine 382 De plus, il faut spécifier le nom du système AE ainsi qu'une description d'Eyecatcher. Les deux valeurs sont spécifiées dans le fichier INI du moniteur d'Evènements : l l system= contient le nom du système AE CADSEyeCatcher= contient la description d'Eyecatcher Exécutez l'utilitaire CADSDEL avec les quatre paramètres cités : //CADSDEL JOB ####,PROGRAMMER,NOTIFY=&SYSUID,MSGLEVEL=(1,1) //CADSDEL EXEC PGM=CADSDEL, // PARM='8000160200001328 00000004000000010000000000FD2300 UC4PROD UC4EYEC' //STEPLIB DD DISP=SHR,DSN=<UC4.LOADLIB> Vérifiez avec la commande z/OS D A,*MASTER* si le CADS a été supprimé. Scénario d'exemple Deux LPAR sont présentés dans Sysplex : l l Dans le premier se trouvent un Agent et un moniteur d'Evènements. Tous les deux fonctionnent en tant que Started Tasks indépendantes. L'exit SMF est une sous-Tâche du moniteur d'Evènements. Dans le deuxième, un moniteur d'Evènements fonctionne également avec un exit SMF comme sous-Tâche. LPAR1 LPAR2 Agent : MVS01 Moniteur d'Evènements : EM01 Exit SMF : SMFE01 Moniteur d'Evènements : EM01 Exit SMF : SMFE01 Les configurations suivantes doivent être exécutées dans le LPAR1 : l Installez un Agent dans le LPAR1 en suivant les instructions d'installation. Etant donné que le moniteur d'Evènements doit fonctionner comme Started Task indépendante avec l'exit SMF, il faut mettre en commentaire l'ensemble de la section (CONSOLE) du fichier INI de l'Agent. ;(CONSOLE) ;start= ;buffersize= ;mscope= ;smfwrite= ;ModulName= ;smfStepFilter= ;smfJob= ;SMF_Buffersize= ;ABENDNUM= l Installez le moniteur d'Evènements dans le LPAR1 en tant que Started Task indépendante. Vous en trouverez une description également dans les instructions d'installation. Etant donné que l'exit SMF est une sous-Tâche du moniteur d'Evènements, la section (CONSOLE) du fichier INI du moniteur d'Evènements doit être adaptée : (CONSOLE) mscope=* smfwrite=1 ModulName=SMFE01 383 Chapter 7 L'Automation Engine et les systèmes cible smfStepFilter=0 SMFJob=0 SMF_Buffersize=10 Les configurations suivantes doivent être exécutées dans le LPAR2 : l Installez le moniteur d'Evènements dans le LPAR2 en tant que Started Task indépendante. Etant donné que l'exit SMF est également ici une sous-Tâche du moniteur d'Evènements, la section (CONSOLE) du fichier INI du moniteur d'Evènements doit être adaptée : (CONSOLE) mscope=* smfwrite=1 ModulName=SMFE01 smfStepFilter=0 SMFJob=0 SMF_Buffersize=10 Rubriques connexes : Moniteur d'Evènements 7.17.7 Evènement de système de fichiers automatique Outre la surveillance courante du système de fichiers, l'Agent z/OS prend également en charge la vérification de la fermeture des fichiers. L'Evènement est déclenché lorsque le fichier est fermé conformément aux conditions définies. Il vous est possible de ne filtrer dans l'objet Evènement qu'en fonction du nom de fichier ou alors d'indiquer une série de critères de filtrage. Ces derniers comprennent, outre le nom de fichier, le nom du Job ayant traité le fichier et son code retour. Lors du déclenchement de l'Evènement, le !Script est exécuté. La fonction script GET_EVENT_ INFO vous fournit des informations sur le fichier. Attention : l'administrateur doit définir le paramètre smfwrite=1 dans le fichier INI de l'Agent ou du moniteur d'Evènements. Vérifiez dans votre système z/OS que le sous-système SMF autorise les exits de système IEFU83 et IEFU84. Les entrées 14, 15, 30 et 64 doivent être journalisées. Attention : les Evènements de système de fichiers automatiques ne sont pas pris en charge sur les membres PDS ! Déroulement 1. 2. 3. 4. Créez un objet Evènement de type "système de fichiers". Ouvrez-le et passez à l'onglet "Système de fichiers". Sélectionnez un Agent z/OS. Dans le contrôle de périodicité, un élément de menu supplémentaire nommé "Automatiquement" s'affiche. Sélectionnez-le. Automation Engine 384 Nom de fichier comme filtre 1. Dans le champ Chemin, saisissez un nom de fichier avec ou sans caractère générique, selon que vous souhaitiez surveiller un fichier donné ou plusieurs fichiers. 2. Avec l'option "Evènement de Démarrage", vous pouvez définir que l'existence du fichier soit vérifiée lors de l'activation de l'objet Evènement. Si le fichier est disponible, un Evènement est également déclenché. 3. Entrez, dans l'onglet "!Script", l'élément de script devant être exécuté lorsque l'Evènement est déclenché. Utilisez la fonction script GET_EVENT_INFO. 4. Enregistrez l'objet Evènement et démarrez-le dès que la surveillance du fichier doit démarrer. Plusieurs critères de filtrage 1. Créez un fichier contenant les critères de filtrage sur le LPAR sur lequel s'exécute l'Agent. Il doit suivre un certain format décrit dans le tableau ci-dessus. 2. Dans le champ Chemin, spécifiez le nom de ce fichier de filtrage au format suivant : *file (DSNAME) Exemple : *file(SGD.PROD.MASSFILTER) Les caractères génériques ne sont pas autorisés dans le DSNAME. 3. Entrez, dans l'onglet "!Script", l'élément de script devant être exécuté lorsque l'Evènement est déclenché. Utilisez la fonction script GET_EVENT_INFO. Attention : le !Script ne doit pas être exécuté lorsque vous indiquez un objet à démarrer dans le fichier de filtrage ! 4. Enregistrez l'objet Evènement et démarrez-le dès que la surveillance du fichier doit démarrer. Critère de filtrage Le moniteur d'Evènements est également capable de prendre en compte plusieurs critères de filtrage lors d'un message portant sur la fermeture de fichier. De cette façon, l'Evènement est 385 Chapter 7 L'Automation Engine et les systèmes cible uniquement déclenché lorsque, par exemple, un certain Job a traité le fichier ou lorsqu'un code retour spécial se produit. Les critères de filtre sont enregistrés dans un fichier distinct. Ce dernier contient un Filtre d'analyse. Si plusieurs Filtres d'analyse correspondent lors d'un Evènement, par exemple parce qu'il existe des recoupements entre les critères de filtrage, un Evènement est déclenché par ligne. Le fichier de filtrage doit contenir les attributs DCB RECFM=FB, LRECL=512 et BLKSIZE=5120. Chaque ligne du fichier de filtrage fait 307 caractères maximum et se décompose dans les domaines suivants : Critère Caractères Description de filtrage Nom du fichier 1 à 81 Nom de Job 82 à 89 Fin du Job 90 Filtre sur le nom de fichier Les noms DS partiellement et entièrement qualifiés y compris les membres PDS et GDG sont pris en charge. Filtre sur le nom du Job en z/OS qui a fermé le fichier. Les caractères génériques "*" et "?" sont autorisés. Attente de la fin du Job Valeurs autorisées : " ", "X", "N" ou "A" " " : la fermeture du fichier déclenche immédiatement l'Evènement. Le système n'attend pas la fin du Job. "X" : la fermeture du fichier déclenche l'Evènement uniquement à la fin du Job. Le code retour n'a pas d'importance. "N" : l'Evènement est déclenché si le Job se termine normalement, c'està-dire avec un code retour compris entre 0 et 4095. "A" : l'Evènement est déclenché si le Job se termine anormalement, c'est-à-dire avec un code retour compris entre 4096 et 12287. Le critère de filtrage "Code retour du Job" vous permet de définir précisément les codes retour attendus. Lors de l'analyse de la fin de Job, l'Agent se base uniquement sur les enregistrements SMF de la fin de Job ou se base également sur ceux des fermetures STEP. Dans le premier cas, il est uniquement possible de faire la différence entre les fins de Job normales et anormales. La définition des codes retour STEP est plus précise. Le moniteur d'Evènements détermine ainsi la valeur la plus élevée. L'administrateur peut définir avec le paramètre smfStepFilter= du fichier INI du moniteur d'Evènements si seule la fin de Job ou également les fermetures STEP doivent être prises en compte lors du contrôle du code retour. Automation Engine Code retour du Job 91 à 106 386 Filtrage du code retour du Job (Condition Codes, User Abends et System Abends). Vous pouvez indiquer les valeurs identiques à celles dans z/OS ou selon la syntaxe habituelle de l'Automation Engine. Si vous voulez indiquer plusieurs codes retour, il faut les séparer avec ";" ou ",". Les domaines sont formulés à l'aide de "-". Action 107 Action devant suivre l'Evènement Valeurs autorisées : "Y" et "N" (valeur par défaut). "Y" : l'objet que vous indiquez dans le domaine suivant est exécuté à la place du !Script. "N" : aucune exécution de l'objet éventuellement entré ne se produit. Objet 108 à 307 Nom de l'objet qui doit être exécuté. Vous pouvez, par exemple, enregistrer ici un objet Job. Attention : le contenu du !Script n'est pas exécuté ! En revanche, l'objet indiqué ici est activé. Dans l'exemple suivant, la largeur de 307 caractères ainsi que le nombre précis de caractères n'ont pas été respectés en raison d'un manque de place. DEV.DS1 DEV.DS1 UC4.D*.*LIB SYS1.PARMLIB TEST.S62*.T* JOBA JOBB TEST2 A A N S806 0-12;16-18 TEST1 X 11-17;S806 Y Y CALL.ADMIN GS.FIN Au démarrage de l'objet Evènement, l'Agent lit le fichier de filtrage et avertit automatiquement les moniteurs d'Evènements. Lors de la modification des critères de filtrage, vous devez redémarrer l'objet Evènement concerné ou charger à nouveau le fichier de filtrage avec l'instruction MODIFY. Syntaxe : MODIFY nom de l'Agent STC,FEVNT=nom du fichier de filtrage Exemple : MODIFY UC600T1,FEVNT=UC600T.FILTER1 En option, vous pouvez définir un objet devant être activé comme réaction à l'Evènement survenu. En l'occurrence, l'Agent enregistre toutes les informations que vous pouvez lire à l'aide des mots clés dans l'objet Evènement avec la fonction script GET_EVENT_INFO, dans le cache. L'objet activé est ainsi capable de déterminer les données à l'aide de l'instruction de script :READ. Comme noms de Variable, il faut indiquer les mots clés. Exemple : :SET :READ &NOM DE FICHIER# = GET_EVENT_INFO (FILENAME) &FILENAME#,, Rubriques connexes : GET_EVENT_INFO Moniteur d'Evènements 387 Chapter 7 L'Automation Engine et les systèmes cible 7.17.8 Prise en charge de GDG Automation Engine prend également en charge l'utilisation de Generation Data Groups (GDG). Vous pouvez utiliser ce type de traitement de fichiers dans les objets d'Evènement de système de fichiers et dans l'élément de script GET_EVENT_INFO. Evènement de système de fichiers Ce type d'objet offre, outre la fonction standard de vérification des valeurs de système de fichiers, la possibilité de déclencher un Evènement lorsqu'une génération d'une GDG est fermée. Pour ce faire, saisissez un hôte z/OS dans l'onglet "Evènement de Système de Fichiers", puis sélectionnez l'option "Automatique" dans le contrôle de périodicité de l'onglet Evènement. Lorsque vous saisissez GDG(+1), le système attend la fermeture d'une nouvelle génération. Il s'agit de la règle générale. Pour que le système attende la fermeture de la génération actuelle, il est possible de saisir pour GDG +/-0 (+0, +00, +000, -0, -00, -000). Exemple : COMPTE DE REMUNERATION Nom GDG DSNAME=COMPTE DE REMUNERATION(0) Generation Dataset actuel DSNAME=COMPTE DE REMUNERATION(-1) Generation Dataset de la semaine précédente DSNAME=COMPTE DE REMUNERATION(-2) Generation Dataset de l'avant derrière semaine. Elément de script GET_EVENT_INFO Cette fonction script permet notamment de déterminer le nom d'une génération qui peut ainsi être modifié. Extrait d'un exemple : :SET :SET &NOMDEFICHIER# = GET_EVENT_INFO (FILENAME) &HND# = PREP_PROCESS_FILE ("MVSHOST", &NOMDEFICHIER#) Configuration Plusieurs paramètres sont requis pour que vous puissiez utiliser GDG dans votre système AE : l Activez le paramètre smfwrite= dans le fichier INI de l'Agent z/OS. (CONSOLE) start=UCXEM25 smfwrite=1 l l Activez les modules exit IEFU83 et IEFU84. Vérifiez dans votre système z/OS que les entrées 14, 15, 30 et 64 sont bien journalisées. Rubriques connexes : Evènement de système de fichiers GET_EVENT_INFO 7.17.9 Reconnaissance et analyse de la fin du Job L'Agent peut également utiliser les enregistrements SMF pour la reconnaissance de la fin du Job ou des fermetures STEP Automation Engine 388 Activez cette fonctionnalité dans le fichier INI de l'Agent ou du moniteur d'Evènements si vous les exploitez en tant que Started Task autonome : (CONSOLE) SMFJob=1 Par défaut, l'informateur de Job est utilisé pour la reconnaissance de fin de Job. Adaptez donc également la Variable d'Agent UC_EX_JOB_MD se trouvant dans la section (VARIABLES) du fichier INI de l'Agent. Remplacez le composant "UCXJM25M" par "UC4START" et redémarrez l'Agent. (VARIABLES) UC_EX_JOB_MD=UC4START L'utilisation de cette fonctionnalité présente entre autres avantages celui d'évaluer le Job à l'aide des codes retour des STEP de Job. Dans l'objet Job, vous pouvez définir si le code retour le plus élevé ou celui ayant été renvoyé en dernier pour la fin du Job doit être pris en compte. Vérifiez dans votre système z/OS que le module SMF journalise bien les entrées 30. Lorsque les Jobs avec WLM dans SYSPLEX sont répartis, un EM doit être énoncé sur chaque LPAR pour que la reconnaissance fonctionne. Attention : le changement entre les deux types d'informateurs de Job ne doit avoir aucune influence sur les Jobs déjà actifs ou générés. Le message de Job ne fonctionne pas pour ces Jobs et ils obtiennent le statut final ENDED_VANISHED. Malgré le statut final, les Jobs se sont déroulés correctement, seul le message de fin n'a pas pu être envoyé à l'Agent. Avant le changement de type d'informateur de Job, il faut donc terminer tous les Jobs du système. Rubriques connexes : Moniteur d'Evènements 7.17.10 Codes retour des Jobs z/OS L'Agent journalise dans le rapport d'activation du Job toutes les erreurs qui se sont produites. En outre, il définit un code retour en fonction de l'exécution du Job. Dans l'objet Job, vous pouvez décider dans l'onglet Exécution à partir de quel code retour le Job doit être interrompu. Au lieu d'un seul code retour, vous pouvez également définir des plages de valeur pour chacun des steps. L'Agent compare le résultat de l'exécution de step à la liste des steps que vous avez entrée. Dans z/OS, on distingue trois types de codes retour : Condition Code, User Abend et System Abend. L'Agent utilise des tranches de numéros de 4 ko chacune pour attribuer les codes retour. Type de code retour z/OS Automation Engine Condition Code 0 à 4095 0000 - 0FFF (0 à 4095) User Abend U0000 à U4095 1000 - 1FFF (4096 à 8191) System Abend S000 à SFFF 2000 - 2FFF (8192 à 12287) Attention : le code retour doit être entré comme valeur décimale dans l'onglet "Exécution" de l'objet Job ! Les User et System Abends doivent donc être convertis en valeurs décimales. Exemple : 389 Chapter 7 L'Automation Engine et les systèmes cible Le code retour SB37 indique que le volume est plein lors de l'écriture d'un fichier. La valeur décimale correspondante est 11063. Rubriques connexes : Onglet Exécution 7.17.11 Exit JCL Lors de l'exécution de Jobs z/OS, vous pouvez utiliser vos propres exits JCL. Il s'agit là d'un module permettant de modifier le Job généré avant son exécution. Créez les Jobs z/OS comme d'habitude dans l'Automation Engine. Au démarrage, le Job généré est envoyé à l'Agent. Celui-ci procède encore à quelques compléments, puis exécute le Job dans le système cible. Lors de l'utilisation de l'exit JCL, l'Agent appelle le module défini avant son exécution. Il est ainsi possible de modifier ultérieurement le JCL dans z/OS. Vous pouvez rajouter des lignes JCL, les modifier ou les analyser et ainsi, par exemple, empêcher le démarrage de certains programmes. Dans le dossier de livraison de l'Agent z/OS, vous trouverez un exemple de module, dans le fichier nommé uc4jcle.asm, qui insère des lignes de commentaire. Il contient également une description de l'utilisation du module. L'exit JCL peut être activé individuellement pour chaque Agent z/OS. Configuration l Entrez dans le fichier INI de l'Agent z/OS le nom de votre module d'exit JCL et définissez également la taille du domaine de sortie. (Exit JCL) name=Nom du module maxJclRecords=1000 l l Le module est chargé lors du démarrage de l'Agent. Copiez-les soit dans la bibliothèque de chargement (Loadlibrary) ou étendez la définition STEPLIB pour l'Agent avec la bibliothèque avec l'exit JCL. Une fois ces précautions prises, démarrez l'Agent. Rubriques connexes : Fichier INI 7.17.12 Include MVS.JOBMD_DEFINITIONS Pour que l'informateur de Job puisse ouvrir une connexion TCP/IP, il est important de marquer les instructions DD correspondantes dans l'objet Include, sinon les Jobs se mettent dans le statut ENDED_VANISHED. L'adaptation de l'objet Include MVS.JOBMD_DEFINITIONS n'est nécessaire que si le MVS ou le Language Environment Resolver ne fonctionne pas correctement. Automation Engine 390 Créez un objet Include du nom de MVS.JOBMD_DEFINITIONS dans le Client système 0000 pour éviter cette situation. Vous pouvez entrer les instructions DD dans celui-ci. Vous trouverez les instructions exactes dans la Started Task du TCP/IP. Ex. : //SYSTCPD DD DSN=TCPIP.SYSTSMS.TCPPARMS(DT20OEDA),DISP=SHR //PROFILE DD DSN=TCPIP.SYSTSMS.TCPPARMS(DT20VIPA),DISP=SHR L'Include est appelé lors de l'exécution d'un Job dans l'en-tête. Il s'agit d'un objet nommé HEADER.MVS qui est fourni d'office dans le Client système 0000. :INC MVS.JOBMD_DEFINITIONS ,nofound=ignore 391 Chapter Glossaire Glossaire Ce glossaire contient tous les concepts spécifiques. ABCDEFGHIJKLMNOPQRSTUVWXYZ .1 A l l l l l l l l l Activation L'activation entraîne l'attribution d'un RunID à la Tâche, l'affichage de la Tâche dans la Fenêtre d'Activités et la préparation pour l'exécution.(voir aussi Début) Agent Programme permettant l'exécution de Traitements sur des systèmes cible comme un ordinateur ou des solutions d'entreprise. Egalement un type d'objet distinct dans AE. Agent RA Agent, pouvant être associé à une solution RA particulière et mettant ses fonctionnalités à disposition d'un système AE. Il sert donc d'interface entre un système, une application ou une plate-forme externe et un système AE. Aide HTML Format d'aide de Microsoft pour les manuels. L'extension des fichiers d'aide est .CHM (voir aussi WebHelp) Alerte Envoi de messages à un utilisateur ou un groupe utilisateur unique du système Automation Engine (AE). Egalement un type d'objet propre à AE. Alias Nom pour les Tâches qui affichent le moniteur et les statistiques au lieu du nom de l'objet réel dans la Fenêtre d'Activités. Possible pour les Tâches de Workflow et les objets qui sont activés de manière unique, périodique ou bien pas le Script. Attributs de l'hôte Attributs de l'objet Job, variant en fonction de la plate-forme. activité voir Tâche automatisation rapide Technologie générique pouvant reprendre différentes solutions. Est composée d'un agent et d'une solution RA. .2 B l Base de données AE Système de gestion de base de données relationnelles, permettant la gestion centralisée de toutes les données de planification. Elle contient définitions d'objet, paramètres système, données statistiques, rapports de Job, etc. Automation Engine 392 .3 C l l l l l l l l l l l l l l l l l Calendrier Partie d'un objet Groupe Calendrier dans lequel les jours sont définis. CallAPI Interface de programmation pouvant être exécutée en direct ou à partir d'un autre programme, afin d'exécuter un Script dans le système AE. CallOperator Deprecated Term. Replaced by: Alerte Caractères génériques Caractères de remplacement des données de filtre (? = un caractère exactement, * = chaîne de caractères). Chaîne de job Deprecated Term. Replaced by: Workflow Chaîne de traitement Deprecated Term. Replaced by: Workflow Classe d'objet Tous les objets sont répartis en 4 classes: objets activables, objets actifs, objets passifs et objets système. Clef Colonne pour les objets Variable statique par laquelle il est possible d'accéder aux Valeurs d'une ligne spécifique. Client Environnement indépendant pour l'exécution de Tâches dans un système AE. Egalement un type d'objet distinct dans AE. Client Queue Objet Queue présent par défaut dans chaque client. Cockpit Visualise les valeurs et statuts dans AE ou à partir des systèmes surveillés et contrôlés. Egalement un type d'objet distinct dans AE. Code Retour Valeur représentant le résultat des Tâches et des fonctions de Script. Colonne Résultat Première colonne d'objets Variable avec la source "SQL", "SQL interne"et "Multi". Le contenu de cette colonne est déterminé par le Format du résultat. Composants AE Regroupe tous les programmes AE, notamment l'Interface Utilisateur, les Serveurs, les Agents, les Service Manager, les utilitaires, etc. Condition de calendrier Critère d'exécution pour les Tâches basées sur les Calendriers. Connexion e-mail Fonctionnalité des Agents Windows et UNIX permettant l'envoi d'e-mails. Conteneur de périodes Contrôle l'exécution des Tâches périodiques. 393 Chapter Glossaire .4 D l l l l Date logique Lors de l'exécution de Tâches, la date et l'heure jouent un rôle important. En temps normal, les deux sont actuelles. Dans certaines situations, il est cependant nécessaire de spécifier des date et heure particulières et non pas les date et heure actuelles. On parle alors d'une date logique. Cela influence la vérification des conditions de calendrier. DialogClient Deprecated Term. Replaced by: Interface Utilisateur Dépendance externe Tâche dont le statut de fin est pris en compte dans le déroulement du Workflow, bien qu'elle ne soit pas exécutée dans le cadre du Workflow. date réelle Date utilisée pour la vérification de la durée d'exécution ou des conditions horaires dans les caractéristiques des tâches de workflow. La date réelle, correspondant au moment de l'activation du workflow le plus haut, est transmise à toutes les tâches subordonnées. .5 E l l l l l l l l l Elément PromptSet Champs/ éléments de contrôle permettant de demander des valeurs de l'Utilisateur. Forment le contenu d'un masque de saisie d'un PromptSet. Enfant, enfants Objets activés par le biais de Tâches supérieures dans l'arborescence (parent). Enregistré en attente Statut d'une Tâche qui est exécutée dans un Groupe et attend son démarrage. Enterprise Control Center Produit Automic. Application Web pour accéder facilement et clairement aux fonctions de diverses applications ou produits Automation Engine. Disponible dans le centre de téléchargement Automic. Event-ID Premier RunID des Evènements de systèmes de fichiers ou de console. Les deux types d'Evènements impliquent une communication entre le composant Automation Engine et l'Agent AE. Afin que l'affectation à l'Evènement reste possible en cas de changement du fichier de logging ou de modification liée du RunID, la communication s'effectue par le biais du premier RunID. Evènement Action exécutée lorsque certaines conditions sont remplies. Egalement un type d'objet distinct dans AE Explorer Fenêtre de l'Interface Utilisateur dans laquelle les objets sont affichés, traités et gérés. Exécuteur de tâches Deprecated Term. Replaced by: Agent Exécution Durée d'exécution d'une Tâche. C'est la période entre le début et la fin de la Tâche. La période d'activation n'en fait pas partie (voir aussi Activation et Démarrage). Automation Engine 394 .6 F l l l l Fenêtre d'activités Fenêtre de l'Interface Utilisateur dans laquelle s'affichent les objets activés. Fenêtre de message Fenêtre dans l'Interface Utilisateur qui affiche avertissements, messages d'information et d'erreur. Fichier XML Format d'importation et d'exportation. Contient la structure des objets. Fuseau Horaire Définit l'heure locale. Egalement un type d'objet distinct dans AE. .7 G l l l l l l Gestion des Versions Version protégée d'un objet qui peut être créée lors des modifications et restaurée ultérieurement. Graphical Workload Analyzer Deprecated Term. Replaced by: UC4 ClearView Groupe Regroupe des Tâches pour les exécuter ensemble. Egalement un type d'objet distinct dans AE. Groupe Agent Groupe Calendrier Rassemblement de jours au sein de Calendriers. Egalement un type d'objet distinct dans AE. Groupe Utilisateur Regroupement d'Utilisateurs auxquels un profil de droits commun doit être attribué. Egalement un type d'objet distinct dans AE. .8 H l Hôte Ordinateur, système cible .9 I l Include Script utilisé souvent et dans de nombreux objets. Egalement un type d'objet distinct dans 395 Chapter Glossaire l l AE. Interface Utilisateur Interface utilisateur graphique d'UC4. Interface Web Interface utilisateur d'UC4 que l'on peut ouvrir via un navigateur web. .10 J l l Job Traitement sur un système cible. Egalement un type d'objet distinct dans AE. Job Control Language Acronyme de "Job Control Language". Il s'agit d'instructions qui forment les étapes de traitement et sont exécutées sur les machines. .11 L l l l L'Automation Engine Ce composant commande un système AE. Il se compose de plusieurs processus serveur. Les Transferts de Fichiers avec caractères qualifiés Transferts de fichiers sans caractères génériques. Uniquement un fichier spécifique est transféré. Login Données de connexion pour les systèmes cible. Egalement un type d'objet distinct dans AE. .12 M l l l l l l Mode batch Traitement séquentiel de processus en arrière-plan. Moniteur Sync Fenêtre d'affichage de l'état d'un objet Sync et de ses tâches attribuées. Moniteur de Workflows Représentation graphique de l'exécution d'objets de workflow actifs. Affiche la structure du Workflow et le statut des tâches subordonnées. Moniteur de groupe Fenêtre d'affichage des tâches d'un groupe. Moniteur de schedule Représentation graphique de l'exécution d'objets de schedule. moniteur d'alertes Fenêtre de l'alerte envoyée à au moins un utilisateur au moment de l'exécution. Automation Engine 396 .13 O l Objet Les activités et déroulements que contrôle Automation Engine sont représentés à l'aide d'objets (voir aussi Tâche). .14 P l l l l l l l l l l l l Parent Un objet peut être activé de différentes façons. L'initiateur de l'activation s'appelle Tâche de niveau supérieur (parent). (voir aussi Enfant, Enfants) Priorité AE La priorité AE est influencée par le traitement des Tâches au sein du système AE. Process Assembly Perspective de l'Enterprise Control Center. Sert à créer, définir et modifier des workflows. Process Automation Ancien nom de la perspective Catalogue de Service. Process Monitoring Perspective de l'Enterprise Control Center. Liste et permet d'agir (annuler, désactiver,...) sur les activités de tous les utilisateurs. Processus de Travail Primaire Le processus de travail primaire exécute des Tâches centrales des processus de travail qui ne permettent aucune répartition (base horaire, gestion des processus, etc.) Processus de communication Partie du composante Automation Engine. Assure la connexion aux composants AE. Processus de dialogue Partie du composant Automation Engine et forme particulière de processus de travail. Ne s'occupe que des messages provenant de l'Interface Utilisateur. Processus de travail Partie du composante Automation Engine. S'occupe du traitement dans un système UC4 (voir aussi le processus de travail primaire). Processus non-stop Partie du composante Automation Engine. Ils reprennent le traitement lorsque la machine avec les processus serveur actifs tombe en panne. Processus serveur Partie du composant Automation Engine. Il existe plusieurs types de processus serveur: processus de communication, processus de travail, processus de dialogue et processus non-stop. PromptSet Masque de saisie défini par l'Utilisateur pour les objets activables. Egalement un type d'objet distinct dans AE. 397 Chapter Glossaire l l Protocole d'activation Rapport contenant les détails d'activation de la Tâche. JCL généré, modifications de Variables, etc.). perspective "Volet fonctionnel propre de l'interface Web de l'Enterprise Control Center (ECC). Les perspectives ""Service Catalog"", ""Process Monitoring"" et ""Process Assembly"" mettent à disposition de l'utilisateur des fonctionnalités de la plate-forme d'automatisation Automation Engine." .15 Q l l Queue Définit le nombre maximal de Tâches exécutées en parallèle, leur priorité et l'ordre des objets à exécuter.Egalement un type d'objet distinct dans AE. QueueManager Deprecated Term. Replaced by: RemoteTaskManager .16 R l l l l l Rapport Rapport contenant les détails d'activation d'une Tâche ou d'un composant AE. Release Manager Deprecated Term. RemoteTaskManager Surveille et contrôle les Jobs externes qui n'ont pas été démarrés par l'Automation Engine Egalement un type d'objet distinct dans l'AE. Reprise Répétition d'une exécution d'objet déjà créée pour laquelle plusieurs particularités s'appliquent au redémarrage. RunID Abréviation du numéro d'identification unique. Il s'agit plus précisément d'un nombre qui identifie clairement l'exécution d'une Tâche. Le RunID peut comporter entre 7 et 10 caractères . Ils sont attribués par le composant Automation Engine. .17 S l Schedule Démarre des objets activables à intervalles périodiques. Egalement un type d'objet distinct dans AE. Automation Engine l l l l l l l l l l l l l l l l Script Instructions de traitement dans le langage de script d'AE. Egalement un type d'objet distinct dans AE. Script AE Langage de script utilisé par l'Automation Engine. Serveur UC4 Anciens Terme pour le composant Automation Engine. Service Catalog Perspective de l'Enterprise Control Center. Permet à l'utilisateur de démarrer les objets de son dossier Favoris et d'en surveiller en gros l'exécution. Service Orchestrator Produit Automic. Service Orchestrator est une perspective (plug-in) de Enterprise Control Center (ECC). Il sert à gérer, surveiller, analyser les performances de SLA (Service Level Agreements). ServiceManager Programme permettant de démarrer et d'arrêter des composants AE. Simulation Estimation de la durée d'une Tâche sur la base des exécutions précédentes. Solution RA Solution basée sur la technologie Rapid Automation permettant l'accès d'AE à un système, une application ou une plate-forme externe. Il s'agit ici d'un fichier .jar, à charger dans la base de données AE et à associer à un agent RA. Les objets RA spécifiques (jobs, relations et agent) sont disponibles après chargement de la solution dans le système AE. Sous-Workflow Workflow faisant partie d'une autre Workflow. Statistiques Liste des exécutions précédentes d'une Tâche. Statut Statut d'une Tâche (par ex. active, bloquée, génération en cours, etc.). Supervision système Fenêtre de l'Interface Utilisateur contenant des informations sur le système AE. Sync Synchronise les objets activables en fonction de statuts et d'actions définis. Egalement un type d'objet distinct dans AE. Système AE Environnement contrôlé par les composants AE. Séquence de données Liste interne (Exemple : Sorties de console ou lignes d'un objet Variable), dont les lignes peuvent être accessibles grâce à une boucle PROCESS et l'élément de script GET_ PROCESS_LINE. Les Séquences de données sont créées avec les éléments de script PREP_PROCESS*. simulation automatique Indique les tâches qui seront exécutées dans une période donnée et offre ainsi une prévisualisation détaillée des activités futures. .18 T l 398 Table de Code Définit un jeu de caractères complet. Egalement un type d'objet distinct dans AE. 399 Chapter Glossaire l l l l l l Transfert de Fichier Transmission de fichiers entre deux machines. Egalement un type d'objet distinct dans AE. Type d'objet A chaque activité correspond un objet: Agent, Alerte, Utilisateur, Groupe Utilisateur, Cockpit, Table de Codes, Documentation, Evènement, Transfert de Fichier, Groupe, Include, Job, Workflow, Groupe Calendrier, Login, Client, RemoteTaskManager, Schedule, Script, Serveur, Sync, Variable et Fuseau horaire. Tâche Objet exécutable qui a déjà été exécuté. Tâche de niveau supérieur Liste des exécutions précédentes d'une Tâche. Tâches périodiques Sont planifiées sans objet Schedule et couvrent la plupart du temps une période inférieure à un jour. transferts de fichiers avec caractères génériques Transferts de fichiers qui transfèrent plusieurs fichiers à l'aide de caractères génériques. .19 U l l l l l l l l l l l l UC4 Automation Engine UC4 Automation Platform Deprecated Term. Replaced by: UC4 Automation Engine UC4 ClearView Produit UC4. Outil d'analyse graphique : Regroupe, pour chaque utilisateur d'un système UC4, les données de simulation, d'activités et de statistiques dans un diagramme à barre et permet ainsi le calcul du chemin critique. Disponible dans le centre de téléchargement UC4. UC4 ONE Automation 2013 UC4 Operations Manager Deprecated Term. Replaced by: UC4 Automation Platform UC4.DB Archive L'utilitaire UC4.DB Archive exporte, afin de la sécuriser, la quantité sans cesse croissante de données de la base de données UC4. UC4.DB Change Utilitaire de modification d'exportation de conteneurs Transport. UC4.DB Client Copy Utilitaire de copie et suppression de clients UC4.DB Load Pour réaliser différents objectifs, l'utilitaire UC4.DBLoad charge des données dans la base de données UC4. UC4.DB Reorg Utilitaire de réorganisation de la base de données UC4. Les enregistrements reçoivent une marque de suppression en raison de certains réglages. UC4.DB Reporting Tool L'utilitaire UC4.DB Reporting Tool vous permet de procéder à des évaluations de votre système UC4. Le résultat est présenté sous forme de fichier de rapport. UC4.DB Revision Report Utilitaire de décharge des rapports de révision issus de la base de données UC4. Ces rapports contiennent des informations détaillées sur les modifications d'objets et les accès. Automation Engine l l l l l 400 UC4.DB Unload Utilitaire de déchargement de la base de données UC4 UC4.Log Mix L'utilitaire UC4.LogMix vous aide à résoudre ce problème en créant un fichier unique à partir de plusieurs fichiers de rapport, log ou trace. Universal Time Coordinated L'Automation Engine utilise UTC (Universal Time Coordinated) en interne en raison de sa clarté universelle. Pour l'affichage de l'heure et pour son utilisation dans les Tâches et les éléments de script, il est possible de créer des objets Fuseau horaire correspondants, convertis dans un fuseau horaire local. Utilisateur Personne utilisant le système UC4. Egalement un type d'objet distinct dans UC4. Utilitaires Prennent en charge les Tâches d'administration d'un système UC4, telles que la réorganisation et l'archivage de la base de données UC4. .20 V l l l l l l l l Variable Enregistre ou fournit les valeurs dynamiques de l'exécution. Egalement un type d'objet distinct dans UC4. Variable PromptSet Enregistre la valeur d'un élément PromptSet. Ainsi, il peut s'agir selon la situation de celle indiquée par l'Utilisateur ou d'une valeur par défaut. Elles se comportent comme des Variables d'objet. Variable de Script Caractères de remplacement d'une valeur dans un Script. Variable dynamique Objet Variable avec l'attribut "Source" - "SQL", "SQL interne", "Multi" ou "Liste de fichier". Pour chaque accès, les valeurs sont récupérées directement dans la source de données et ne sont pas enregistrées dans l'objet. Variable prédéfinie Variables fixes qui peuvent être utilisées dans des attributs ou dans des Scripts d'objets activables. Les valeurs se rapportent à l'objet ou au système. Variable statique objet Variable avec le paramètre "Source" - "statique" : Les valeurs des Variables sont saisies par l'Utilisateur ou par un Script et restent enregistrées dans l'objet. Variables AE Variables comportant les paramètres de configuration du système AE. Variables d'objet Caractères de remplacement des valeurs définies dans l'onglet "Variables & Prompts" d'un objet. 401 Chapter Glossaire .21 W l l WebHelp Format d'aide pour les manuels qui peut être ouvert via un navigateur web. (voir aussi l'aide HTML) Workflow Déroulement de Traitements. Egalement un type d'objet propre à UC4.