47 F2 37UT 02
Transcription
47 F2 37UT 02
Télécommunications Bull DPS 7000 TDS-TCP/IP Guide de l'utilisateur Sujet : Ce guide décrit les fonctions de TDS-TCP/IP et détaille les configurations et commandes nécessaires pour l’administration de TDS et le développement d’applications client. Observations : Version du logiciel : GCOS 7-V7 (HPS/EXMS) sur TS 7560 GCOS 7-V8 (EXMS) sur TS 8560 GCOS 7-V9 (TA) sur TS 9662. Logiciel/Matériel requis : Date : Bull S.A. CEDOC Atelier de reprographie 34, rue du Nid de Pie BP 428 49004 ANGERS Cedex 01 FRANCE 47 F2 37UT Rev02 Décembre 1999 Bull HN Information Systems Inc. Publication Order Entry FAX: (978) 294-7411 MA30/865A Technology Park Billerica, MA 01821 U.S.A. Copyright © Bull S.A., 1998, 1999 Toutes les marques citées sont la propriété de leurs titulaires respectifs. Vos suggestions sur la forme et le fond de ce manuel seront les bienvenues. Une feuille destinée à recevoir vos remarques se trouve à la fin du présent manuel. La loi du 11 mars 1957, complétée par la loi du 3 juillet 1985, interdit les copies ou reproductions destinées à une utilisation collective. Toute représentation ou reproduction intégrale ou partielle faite par quelque procédé que ce soit, sans consentement de l'auteur ou de ses ayants cause, est illicite et constitue une contrefaçon sanctionnée par les articles 425 et suivants du code pénal. Ce document est fourni à titre d'information seulement. Il n'engage pas la responsabilité de Bull S.A. en cas de dommages résultant de son application. Des corrections ou modifications au contenu de ce document peuvent intervenir sans préavis ; des mises à jour ultérieures les signaleront éventuellement aux destinataires. 47 F2 37UT Rev02 Préface TDS-TCP/IP permet à une application installée sur un PC de dialoguer avec une transaction TDS s'exécutant sous GCOS 7 en mode Client/Serveur, via une liaison TCP/IP. L'application installée sur le PC (ou sur un système UNIX) est appelée application client et la transaction s'exécutant sous GCOS 7 application serveur. Objet du manuel Ce document présente les commandes de configuration, les différences par rapport aux commandes maîtresses standard de TDS ainsi qu'un sous-ensemble de fonctions XATMI en langage C destinées au développement d'applications client. Partout où cela est utile, il est fait référence aux informations pertinentes figurant dans le TDS Guide de l'Administrateur et autres documents associés. La liste des documents associés avec leurs références figure ci-dessous. Utilisateurs concernés Ce guide est destiné : • aux administrateurs et opérateurs concernés par la génération et la supervision de TDS, • aux programmeurs chargés de développer des applications client/serveur s'exécutant sur un PC et dialoguant avec une transaction TDS via un réseau TCP/IP. 47 F2 37UT Rev02 iii TDS-TCP/IP Guide de l'utilisateur Structure du manuel Après une présentation générale de TDS-TCP/IP, le présent manuel décrit les commandes nécessaires à son installation et à son utilisation, ainsi que l'API permettant le développement d'applications client. Le contenu du guide se résume ainsi : Bibliographie Chapitre 1 Récapitulation des fonctions de TDS-TCP/IP et des conditions nécessaires. Chapitre 2 Description des nouvelles fonctionnalités du GCOS 7 TS 9764. Chapitre 3 Description des commandes relatives à l'administration de TDS. Chapitre 4 Description de l'API à utiliser pour le développement des applications client. Chapitre 5 Description du traitement des erreurs. Chapitre 6 Description des transactions TCP/IP utilisant le mode FORMS. Chapitre 7 Description du protocole utilisé entre SA7 et l’application client. Ce guide appartient à la collection de manuels TDS : Concepts TDS .........................................................................................47 F2 26UT TDS Guide de l'Administrateur TDS........................................................47 F2 32UT TDS COBOL Guide du Programmeur ....................................................47 F2 33UT TDS Langage C Guide du Programmeur ................................................47 F2 07UT TDS Quick Reference Handbook .............................................................47 A2 04UT Les publications suivantes contiennent des informations sur des sujets liés à l'exécution d'une application TDS : Pour configurer TDS-TCP/IP : XTI GCOS 7 Name Services User's Guide ............................................. 47 A2 69UC OPEN 7 Administrator's Reference Manual Vol. 1................................. 47 A2 82UC OPEN 7 Administrator's Reference Manual Vol. 2................................. 47 A2 83UC OPEN 7 Administrator's Reference Manual Vol. 3................................. 47 A2 84UC Normes Distributed Transaction Processing: The XATMI Specification X/Open CAE Specification (November 1995) ISBN: 1-85912-130-6, Document number C506 iv 47 F2 37UT Rev02 Préface Pour générer le réseau DPS 7000 : Réseaux - Concepts GCOS 7 .................................................................. 47 F2 92UC Génération de Réseaux .......................................................................... 47 F2 93UC Commandes opérateur de la console principale : Réseaux - Guide de l'Utilisateur ............................................................ 47 F2 94UC GCOS 7 Manuel d'Exploitation ...............................................................47 F2 53US Valeurs d'état et codes retour : Messages et Codes retour ........................................................................ 47 F2 10UJ Conventions d’écriture Conventions d’écriture pour TP7GEN MAJUSCULES indique que l'élément souligné est un mot clé réservé qui doit nécessairement être mentionné si la clause à laquelle il appartient est obligatoire. MAJUSCULES indique un mot clé réservé devant être écrit comme indiqué. Il peut être omis. item un élément en italique désigne un terme pour lequel l'utilisateur fournit une valeur. [item] entrée facultative. {item|item|item} une liste d'éléments entre accolades indique qu’un seul d’entre eux sera sélectionné si le paramètre introduisant la liste est indiqué. Le premier élément de la liste, figurant en gras, indique la valeur par défaut qui sera prise en compte si le paramètre d’introduction est omis. Cette liste de paramètres peut également être verticale : {item} {item} {item} item . . . trois points derrière un élément indiquent que plusieurs éléments de la même forme peuvent apparaître. Clause . . . ||A|| ||B|| ||C|| 47 F2 37UT Rev02 trois points verticaux indiquent qu’une partie de la clause a été omise volontairement. Des clauses encadrées de doubles barres verticales indiquent que chaque clause n’apparaît qu’une fois. v TDS-TCP/IP Guide de l'utilisateur Conventions d'écriture pour les commandes maîtresses Vous pouvez utiliser la syntaxe suivante : • si vous être connecté à une boîte aux lettres maîtresse • ou si la commande : − est stockée dans un sous-fichier pour être exécutée par la commande M EXEC_TDS − doit être exécutée via l'interface de traitement par lots − doit être exécutée via la technique de génération dynamique. Les noms de commande et les paramètres suivent les mêmes conventions d'écriture. Séparez : • le nom de la commande et le premier paramètre par au moins un espace • les paramètres entre eux par des espaces ou des virgules. Chaque commande maîtresse est suivie de différents paramètres positionnels et de mots clés. Un paramètre peut être indiqué comme : • un mot clé introduisant un argument • un paramètre positionnel. Les mots clés peuvent figurer dans un ordre quelconque. Il est possible de mélanger des mots clés et des paramètres positionnels ; dans ce cas, ces derniers sont interprétés comme étant les valeurs des paramètres dont le rang est déterminé par l’éventuel mot clé précédent. Les paramètres doivent être des constantes. Utilisez les types de données suivants : • • • • • • caractère décimal booléen nom profil de nom sous convention astérisque fichier. EXEMPLE : M CLOSE_TDS_FILE IFN=T1, DEASSIGN=1 Toutes les fonctions GCL n'étant pas disponibles : • n'utilisez pas de variables intégrées ou de variables GCL • ne mélangez pas les chaînes de caractères interprétées et non interprétées • n'utilisez pas de parenthèses imbriquées. vi 47 F2 37UT Rev02 Table des matières 1. 2. Présentation générale 1.1 Caractéristiques de TDS-TCP/IP .................................................................................... 1-1 1.1.1 Caractéristiques générales ................................................................................ 1-1 1.1.2 Définitions et terminologie.................................................................................. 1-2 1.1.3 Transactions TDS existantes ............................................................................. 1-4 1.1.4 API client TDS-TCP/IP....................................................................................... 1-4 1.2 Utilisateurs....................................................................................................................... 1-5 1.3 Conditions préalables...................................................................................................... 1-6 1.3.1 Matériel .............................................................................................................. 1-6 1.3.2 Logiciel ............................................................................................................... 1-6 1.3.3 Facturation produit ............................................................................................. 1-7 1.4 Configuration ................................................................................................................... 1-8 1.4.1 Génération de TDS ............................................................................................ 1-8 1.4.2 Sockets SOCKG 7 ............................................................................................. 1-8 1.4.3 PC Client ............................................................................................................ 1-8 1.5 Sécurité ........................................................................................................................... 1-9 1.6 Programmation des API .................................................................................................. 1-9 1.7 Restrictions.................................................................................................................... 1-10 1.7.1 Fonctions de programmation des TPR ............................................................ 1-10 1.7.2 Procédures de gestion de session................................................................... 1-11 1.7.3 Règles s'appliquant à la configuration ............................................................. 1-11 Fonctionnalités ajoutées à GCOS 7 TS 9764 2.1 Génération dynamique sur un correspondant TCP/IP .................................................... 2-1 2.1.1 Correspondant TCP/IP actif ............................................................................... 2-1 2.1.2 Correspondant TCP/IP passif ............................................................................ 2-2 2.2 Appel SET-ACTIVE/SET-PASSIVE ................................................................................ 2-2 47 F2 37UT Rev02 vii TDS-TCP/IP Guide de l'utilisateur 3. 4. viii 2.3 Temps maximal d’inactivité ............................................................................................. 2-2 2.4 Temps d’attente............................................................................................................... 2-2 2.5 TERMINAL_ID................................................................................................................. 2-3 2.6 Déconnexions demandées par TDS ............................................................................... 2-3 2.7 SECUR'ACCESS ............................................................................................................ 2-3 2.8 Fonctionnalité PASSTHRU ............................................................................................. 2-4 Administration du serveur 3.1 Génération de TDS ......................................................................................................... 3-1 3.1.1 Clause TCP-IP PROTOCOL.............................................................................. 3-1 3.1.2 Clause ATTACH SHARABLE MODULE............................................................ 3-2 3.1.3 Erreurs et réponses ........................................................................................... 3-2 3.2 Configuration de l'environnement GCOS 7 ..................................................................... 3-3 3.2.1 Description ......................................................................................................... 3-3 3.2.2 Déclarations pour OPEN 7................................................................................. 3-3 3.2.3 Déclarations pour GXTI ..................................................................................... 3-4 3.3 Commandes maîtresses ................................................................................................. 3-5 3.3.1 Gestion des correspondants .............................................................................. 3-5 3.3.1.1 ALLOW_NEW_TDS_COR ................................................................ 3-6 3.3.1.2 CANCEL_TDS_COR......................................................................... 3-7 3.3.1.3 DISPLAY_TDS .................................................................................. 3-8 3.3.1.4 LIST_TDS_COR.............................................................................. 3-10 3.3.1.5 PREVENT_NEW_TDS_COR .......................................................... 3-12 3.3.2 Gestion des sockets......................................................................................... 3-13 3.3.2.1 CLOSE_TDS_SOCKET .................................................................. 3-14 3.3.2.2 DISPLAY_TDS_SOCKET ............................................................... 3-15 3.3.2.3 OPEN_TDS_SOCKET .................................................................... 3-16 Développement d'applications client 4.1 Configuration de l'environnement PC.............................................................................. 4-1 4.1.1 Description ......................................................................................................... 4-1 4.1.2 Déclarations de configuration ............................................................................ 4-1 4.2 API Client de TDS-TCP/IP .............................................................................................. 4-3 4.2.1 Composition de l'API.......................................................................................... 4-4 4.2.2 Compilation du programme client ...................................................................... 4-4 4.3 Fonctions XATMI en langage C ...................................................................................... 4-5 4.3.1 tpalloc................................................................................................................. 4-5 4.3.2 tpconnect............................................................................................................ 4-7 4.3.3 tpdiscon............................................................................................................ 4-10 47 F2 37UT Rev02 4.3.4 4.3.5 4.3.6 4.3.7 4.3.8 5. 6. tpfree ................................................................................................................ 4-11 tprecv ............................................................................................................... 4-12 tpsend .............................................................................................................. 4-14 tperrno.............................................................................................................. 4-16 tperrdtl .............................................................................................................. 4-17 4.4 Etats client ..................................................................................................................... 4-18 4.5 Exemples de programmes client ................................................................................... 4-19 4.5.1 Programme principal de l'application ............................................................... 4-20 4.5.2 Interface API de TDS ....................................................................................... 4-24 Traitement des erreurs 5.1 Intégrité des séquences .................................................................................................. 5-1 5.1.1 Cas anormaux de fermeture de socket.............................................................. 5-1 5.1.2 Restauration non actualisée sur l'unité de consolidation................................... 5-2 5.1.3 Réinitialisation de TDS....................................................................................... 5-2 5.1.4 Défaillance de TDS ............................................................................................ 5-2 5.1.5 Basculement TDS-HA........................................................................................ 5-2 5.1.6 Redémarrage à chaud de GCOS 7 après un crash........................................... 5-2 5.2 Programmation des transactions .................................................................................... 5-3 5.3 Messages d'erreur client ................................................................................................. 5-4 5.4 MESSAGES D'ERREUR TDS ........................................................................................ 5-9 5.5 Trace client .................................................................................................................... 5-10 5.5.1 Activation de la trace........................................................................................ 5-10 5.5.2 Format de la trace ............................................................................................ 5-11 Transactions TCP/IP utilisant FORMS 6.1 Généralités ...................................................................................................................... 6-1 6.2 Particularités des verbes SDPI........................................................................................ 6-3 6.2.1 Activation des grilles (CDGET) .......................................................................... 6-3 6.2.2 Envoi de grilles (CDSEND) ................................................................................ 6-3 6.2.3 Réception de grilles (CDRECV)......................................................................... 6-3 6.2.4 Libération des grilles (CDRELS) ........................................................................ 6-4 6.2.5 Suppression des données d'entrée des grilles (CDPURGE)............................. 6-4 6.2.6 Sélection des attributs de grille ou de liste (CDATTR ou CDATTL) .................. 6-4 6.2.7 Identification des grilles (CDFIDI) ...................................................................... 6-4 6.2.8 Fonction de mécanisme des grilles (CDMECH) ................................................ 6-4 47 F2 37UT Rev02 ix TDS-TCP/IP Guide de l'utilisateur 7. 6.3 Restrictions...................................................................................................................... 6-5 6.4 Exemple de flux de données ........................................................................................... 6-6 Protocole entre SA7 et l’application client Glossaire Index x 47 F2 37UT Rev02 Table des illustrations Figures 1-1. 4-1. Composants de TDS-TCP/IP .......................................................................................... 1-3 Dialogue client PC-TDS ................................................................................................ 4-19 47 F2 37UT Rev02 xi TDS-TCP/IP Guide de l'utilisateur xii 47 F2 37UT Rev02 1. Présentation générale 1.1 Caractéristiques de TDS-TCP/IP 1.1.1 Caractéristiques générales TDS-TCP/IP permet à une application installée sur un PC de dialoguer avec une transaction TDS s'exécutant sous GCOS 7, suivant un modèle Client/Serveur. L'application installée sur le PC est appelée application client et la transaction s'exécutant sous GCOS 7 application serveur. Ce dialogue est constitué de messages échangés via le réseau ; il s'appuie sur un réseau de communication standard TCP/IP, utilisé dans l’environnement GCOS 7 TDS. L'accès au réseau TCP/IP s'effectue par l'intermédiaire d'une couche de services réseau appelée interface socket (souvent désignée sous l'abréviation socket). La mise en place de cette couche dans GCOS 7 est assurée par un composant appelé SOCKG 7 (SOCKET pour GCOS 7) alors que, sur le PC, cette interface est incluse dans le système d'exploitation sous le nom de WINSOCKET (WINDOWS socket). Au niveau des applications (client et serveur), le dialogue conversationnel doit respecter les règles Client/Serveur définies par un sous-ensemble du protocole XATMI (X/Open Application to Transaction Manager Interface). 47 F2 37UT Rev02 1-1 TDS-TCP/IP Guide de l'utilisateur Sur GCOS 7 (serveur) • Une application client peut utiliser des transactions TDS existantes ; ces dernières peuvent être en mode ligne ou en mode grille (c'est-à-dire utilisant le logiciel FORMS). • Au niveau de la transaction TDS, l’utilisation du protocole XATMI est transparent ; celui-ci est effectué à un niveau inférieur par un nouveau composant GCOS 7 : SOCKG 7 qui convertit les verbes spécifiques TDS (SEND, RECEIVE, etc.) en fonctions correspondantes de l'interface socket. • SOCKG 7 accède aux couches de communication inférieures (sockets) via les services OPEN 7 ou GXTI. • La génération et l'administration de la liaison TDS-TCP/IP se font par l'intermédiaire de TP7GEN et de commandes maîtresses. Sur le PC (client) • L'application client dialogue avec les transactions TDS via une interface API spécifique fournie par Bull et installée sur le PC sous forme d’une bibliothèque DLL (Dynamic Link Library) standard. • Cette interface API est constituée d'un jeu de primitives en langage C conformes aux normes XATMI ; il est par conséquent possible de développer les applications client avec tout outil RAD (Rapid Application Development) capable de faire appel aux fonctions fournies par l'interface (comme WINDEV, VB5, etc.). 1.1.2 Définitions et terminologie Les nouvelles fonctions offertes par TDS-TCP/IP introduisent le concept d'un autre type de transactions, répertoriées sous le terme de transactions TCP/IP pour les distinguer des autres transactions s'exécutant pour des correspondants OSI/DSA (comme TM, XCP1, XCP2, etc.). Une transaction TCP/IP est une transaction TDS présente sur un système DPS 7000 et lancée par un programme client installé sur un PC, lequel dialogue avec la transaction via l'interface socket, comme décrit précédemment. Une transaction TCP/IP est exécutée par un correspondant TCP/IP, sur une session de correspondant TCP/IP. Une transaction TCP/IP dialogue avec une application client située sur un PC via une liaison TCP/IP. D'autres termes et abréviations sont définis dans le glossaire. 1-2 47 F2 37UT Rev02 Présentation générale La figure suivante montre les composants qui interagissent via TDS-TCP/IP : Bull DPS7000 Serveur d’Application TPRs TDS Sockg7 GXTI OPEN7 FCP7 Contrôleur ISL RESEAU TCP/IP via FDDI ou ethernet Pile TCP/IP Sockets DLL sur MS-WINDOWS Application client PC Figure 1-1. 47 F2 37UT Rev02 Composants de TDS-TCP/IP 1-3 TDS-TCP/IP Guide de l'utilisateur 1.1.3 Transactions TDS existantes TDS-TCP/IP a un impact sur TDS au niveau de la génération et de l'administration, mais n'affecte pas les routines TPR déjà écrites. Ces dernières peuvent être exécutées par un correspondant TCP/IP en l'état (sans aucune modification) et quel que soit leur mode de présentation (Ligne ou Grille). A l'intérieur du même TDS, il est possible d'exécuter simultanément des transactions OSI/DSA et des transactions TCP/IP. Dans un TDS donné, il est possible d'exécuter simultanément des transactions pour des correspondants TCP/IP et pour des correspondants OSI/DSA. De plus, une même transaction peut être exécutée simultanément pour un correspondant de type terminal et pour un correspondant de type TDS-TCP/IP. 1.1.4 API client TDS-TCP/IP Bull fournit une API client TDS-TCP/IP permettant de développer des applications client communiquant avec TDS via une liaison TCP/IP. Cette API, construite à partir de l'interface standard XATMI de X/Open, accède aux fonctions PC via la DLL écrite en langage C. Il est de la responsabilité de l’utilisateur de s’assurer que l'outil qu'il souhaite utiliser pour développer ses applications client (compilateur C et/ou outils RAD) est capable d'utiliser correctement l'API client TDS-TCP/IP fournie par Bull. L'API est constituée du sous-ensemble suivant de fonctions XATMI écrites en langage C : • fonctions concernant les services conversationnels : tpconnect, tpdiscon, tprecv et tpsend, • fonctions pour la gestion des tampons typés : tpalloc et tpfree. Certaines fonctions complémentaires de gestion des erreurs ont été ajoutées aux fonctions XATMI standard : tperrno et tperrdtl. Les fonctions fournies par cette API sont disponibles dans la bibliothèque DLL du PC. Elles font l'objet d'une description complète dans le chapitre Développement d'applications client. 1-4 47 F2 37UT Rev02 Présentation générale 1.2 Utilisateurs Deux types d'utilisateurs sont directement concernés par les fonctions TDS-TCP/IP : • les personnes chargées de la génération de TDS, ainsi que de la configuration et de la supervision du GCOS 7 associé, • les développeurs d'applications client s'exécutant sur un PC et utilisant des services TDS. En outre, d'autres types d'utilisateurs interagissent pour permettre le fonctionnement de TDS-TCP/IP : • l'administrateur de TDS, responsable de la génération de TDS et du contrôle des applications TDS, • l'administrateur GCOS 7, responsable de la génération du réseau, • l'administrateur OPEN 7, responsable de l'installation et de la configuration d'OPEN 7 et de SOCKG 7, • l'administrateur PC, en charge de l'installation des produits et de la configuration du système, • l'administrateur des réseaux et télécommunications, responsable des déclarations d'adresses et de la coordination pour tous les types de machines, dans la mesure où TDS-TCP/IP utilise des matériels hétérogènes. 47 F2 37UT Rev02 1-5 TDS-TCP/IP Guide de l'utilisateur 1.3 Conditions préalables 1.3.1 Matériel Serveur DPS 7000 Tout système DPS 7000 prenant en charge : • Les versions GCOS 7 V7 (HPS/EXMS), • Les versions GCOS 7 V8 (EXMS), et doté d'un contrôleur FCP7 ou ISL permettant la connexion à un réseau TCP/IP via les technologies FDDI ou Ethernet. PC Client Tout PC doté d’une carte de communication permettant la connexion à un réseau TCP/IP et capable d'exécuter les logiciels énumérés ci-après. 1.3.2 Logiciel GCOS 7 Le composant GCOS 7 de TDS-TCP/IP est intégré dans TDS et disponible avec : • Les versions GCOS 7-V7 (HPS/EXMS) à partir de TS 7560, ou • Les versions GCOS 7-V8 (EXMS) à partir de TS 8560. SOCKG 7 TDS-TCP/IP utilise les sockets SOCKG 7 de GCOS 7. SOCKG 7 offre une interface socket standard acceptant deux méthodes de communication : • la première est fournie par les services OPEN 7 disponibles à partir de OPEN 7 V4, • la seconde est fournie par les services GXTI, disponibles avec les versions de GCOS 7 indiquées ci-dessus. SOCKG 7 et OPEN 7 V4 peuvent être installés avec la fonction INTEROP 7 version minimum de bande ISI 7 = I423C. 1-6 47 F2 37UT Rev02 Présentation générale Logiciel PC Les systèmes d'exploitation PC autorisant le développement et l'exécution d'applications client sont Windows 95 et Windows NT. La bibliothèque DLL requise par l'API client TDS-TCP/IP est livrée séparément sur un support spécifique (disquettes 3,5 pouces). La DLL existe en version 32 bits pour Windows 95 ou Windows NT. Trois fichiers sont fournis : • atmi.ini : contient les options de la DLL pour les fonctions de trace et de délai d'exploitation. • atmi.lib : contient les définitions XATMI standard (ce fichier est obligatoire pour le développement de l'application client, mais pas pour son exécution). • atmi.dll : contient la bibliothèque DLL proprement dite. Ces trois fichiers doivent être placés dans le répertoire système de Windows (habituellement C:\WINDOWS). 1.3.3 Facturation produit Les produits/fonctions suivants sont payants et sont protégés par des codes marketing (MI) spécifiques : Fonctions Fonctions TDS TCP/IP OPEN 7 TCP/IP 7 GCOS 7 XTI 47 F2 37UT Rev02 GCOS 7 HPS TPDDnnn-y00 SCC3636-T00 SCC3637-Tx0 SCC3649-Tx0 GCOS 7 EXMS TPDDnnn-y00 CNSD024-y00 CNHD014-y00 1-7 TDS-TCP/IP Guide de l'utilisateur 1.4 Configuration 1.4.1 Génération de TDS Pour permettre au TDS de communiquer via TCP/IP, la TDS SECTION du fichier STDS doit être adaptée lors de la génération de TDS. STDS constitue le fichier d'entrée du processus de génération ; il décrit les caractéristiques du TDS-TCP/IP résultant, qui est une application transactionnelle. La génération de TDS comprend deux points importants : • La déclaration du protocole TCP/IP, • La sélection de la liaison SOCKG 7 (OPEN 7 ou GXTI). 1.4.2 Sockets SOCKG 7 Le choix du socket est déterminant car, suivant la liaison SOCKG 7 à établir, deux ensembles différents de fichiers peuvent être utilisés pour la configuration. La configuration de SOCKG 7 comporte deux points importants : • la déclaration du service TCP/IP, • la fourniture d'informations détaillées sur l'hôte et le client. Le chapitre Administration du serveur décrit la génération de TDS et la configuration de SOCKG 7. 1.4.3 PC Client La configuration des PC comporte deux points importants : • la déclaration du service TCP/IP, • la fourniture d'informations détaillées sur l'hôte et le client. 1-8 47 F2 37UT Rev02 Présentation générale 1.5 Sécurité Pour chaque connexion TDS-TCP/IP, l'application client doit fournir : • • • • un identificateur utilisateur, un mot de passe, un projet, un compte. Ces données sont ensuite vérifiées par rapport aux informations contenues dans le catalogue GCOS 7. Avant GCOS 7 TS 9764, un TDS exécutant des transactions TCP/IP ne peut pas être contrôlé par SA 7 (Secur’Access). GCOS 7 TS 9764 permet le contrôle par Secur'Access. La fonction Access Master n’est pas supportée. 1.6 Programmation des API L'API client permet à l'application client de dialoguer avec les transactions TDS. La gestion des tampons est assurée par deux fonctions locales aux applications client : • tpalloc : alloue les tampons typés, • tpfree : libère les tampons typés. L'interface entre l'application client et TDS inclut six fonctions appelées par le client : • tpconnect : connecte le client TCP/IP à TDS, • tprecv : reçoit les messages de TDS, • tpsend : envoie des messages à TDS, • tpdiscon : déconnecte le client de TDS en mode forcé, • tperrno et tperrdtl pour la gestion des erreurs (extension du protocole XATMI). La programmation des API est expliquée en détail dans le chapitre Développement d'applications client. 47 F2 37UT Rev02 1-9 TDS-TCP/IP Guide de l'utilisateur 1.7 Restrictions Bien que la plupart des services TDS puissent être utilisés par les transactions TDS-TCP/IP, des restrictions s'appliquent à : • certaines fonctions de programmation des TPR, • certaines procédures de gestion de session, • la fonction de terminal BREAK n'est pas supportée, • les messages de service, les verbes SEND comportant des adresses de routage et les commandes M SNDTU ; aucun de ces messages n'est envoyé à des correspondants TCP/IP. • Il n’y a pas d’en-tête ni de fin dans la présentation d’un message. • La fonction pass-thru ne peut pas être utilisée. A partir de GCOS 7 TS 9764, la fonction passthru est autorisée. Pour plus de détails, consultez la section de ce document relative aux Fonctionnalités ajoutées à GCOS 7 TS 9764. 1.7.1 Fonctions de programmation des TPR Les TPR existantes peuvent être exécutées en l'état, sans aucune modification. Pour développer de nouvelles TPR, il est possible d'utiliser la même méthode que précédemment (avant l'arrivée de l'interface TDS-TCP/IP), mais en tenant compte des restrictions suivantes : • La génération dynamique vers un correspondant TCP est interdite. • Un code d'erreur - type de correspondant erroné - est retourné si un CALL DSPAWN/SPAWN/SPAWNTX/TSPAWN est tenté sur un correspondant TCP/IP. A partir de GCOS 7 TS 9764, la génération dynamique (SPAWNING) sur un correspondant TCP/IP est autorisée à l’aide d’un CALL DSPAWN/SPAWN/SPAWNTX/TSPAWN. Le comportement de cette génération, en fonction du type de correspondant, est décrit dans la section de ce document relative aux Fonctionnalités ajoutées à GCOS 7 TS 9764. 1-10 47 F2 37UT Rev02 Présentation générale 1.7.2 Procédures de gestion de session Les procédures de gestion de session suivantes ne peuvent pas être utilisées : • RECONNECT-OPTION. Un code d'erreur - type de session erroné - est retourné pour un correspondant TCP/IP. • SET-ACTIVE. La fonction est ignorée pour un correspondant TCP/IP. • SET-PASSIVE. La fonction est ignorée pour un correspondant TCP/IP. A partir de GCOS 7 TS 9764, les fonctions CALL SET-ACTIVE/SET-PASSIVE associées à un correspondant TCP/IP sont autorisées. Pour plus de détails, consultez la section de ce document relative aux Fonctionnalités ajoutées à GCOS 7 TS 9764. 1.7.3 Règles s'appliquant à la configuration TDS supporte 4000 sessions au maximum (OSI/DSA et TCP/IP). Le nombre maximum de clients TCP/IP pouvant être connectés à un système GCOS 7 est de : • 1500 avec OPEN 7, • 4000 avec GXTI. 47 F2 37UT Rev02 1-11 TDS-TCP/IP Guide de l'utilisateur 1-12 47 F2 37UT Rev02 2. Fonctionnalités ajoutées à GCOS 7 TS 9764 2.1 Génération dynamique sur un correspondant TCP/IP L’appel SPAWN/DSPAWN/TSPAWN/SPAWNTX vers un correspondant TCP/IP est autorisé. Si le correspondant est dans l’état gelé, un état 3 (ou un type incorrect 17 sur SPAWNTX) est renvoyé. La reconnexion d’un correspondant TCP/IP dans l’état gelé à l’aide de la commande maîtresse TDS, ALNTC, est sans effet ; le correspondant doit être reconnecté pour pouvoir accepter une nouvelle génération dynamique. 2.1.1 Correspondant TCP/IP actif Une transaction générée de façon dynamique ne peut être lancée sur ce type de correspondant qu’après la fin d’une transaction en cours d’exécution. Si une transaction en cours d’exécution, associée à un correspondant actif, effectue un appel SPAWN sur elle-même, la génération dynamique sera automatiquement démarrée à la fin de l’exécution de la transaction. Une transaction générée dynamiquement à partir d’un autre correspondant (TCP/IP ou un autre type) peut être démarrée sur le correspondant TCP/IP actif à la fin d’une transaction en cours d’exécution. Si aucune transaction n’est en cours d’exécution, la prochaine transaction démarrée par tpsend () sera exécutée, après quoi la transaction générée dynamiquement sera lancée. 47 F2 37UT Rev02 2-1 TDS-TCP/IP Guide de l'utilisateur 2.1.2 Correspondant TCP/IP passif Lorsqu’une transaction générée dynamiquement est lancée par TDS pour ce type de correspondant, le client reçoit le message envoyé par cette dernière via la fonction tprecv (). Le client n’est pas autorisé à démarrer une transaction à l’aide de tpsend () car le correspondant est de type passif. Le client utilisant la fonction tprecv () peut toutefois recevoir un message envoyé par une transaction générée dynamiquement. La fonction tprecv est synchrone : le traitement d’exécution de la fonction est donc bloqué jusqu’à la réception des données provenant du serveur ou l’expiration du délai indiqué dans le fichier Atmi.ini. Pendant ce laps de temps, l’exécution du programme est arrêtée et les actions ultérieures générées dans le programme sont différées. 2.2 Appel SET-ACTIVE/SET-PASSIVE Ces fonctions TDS sont autorisées. Notez que le comportement de génération dynamique est différent selon qu’il s’agit d’un correspondant TCP/IP actif ou passif (cf. ci-dessus la section relative à la génération dynamique sur un corespondant TCP/IP). Un correspondant TCP/IP est toujours connecté ou reconnecté en mode ACTIF. 2.3 Temps maximal d’inactivité A partir de GCOS 7 TS 9764, le dépassement du temps maximal d’inactivité appliqué à un correspondant TCP/IP provoque une déconnexion anormale (si elle existe, la transaction de déconnexion est lancée). 2.4 Temps d’attente Le temps d’attente (WAIT-TIME) pour un correspondant TCP/IP ne permet pas l’exécution automatique de la TPR suivante lorsque la TPR en cours se termine par SEND EGI. Dans ce cas, l’exécution de la TPR suivante est lancée par le message de réponse du client au signal SEND EGI (tpsend ()). Si la TPR ne se termine pas par SEND ou se termine par SEND EMI, le temps indiqué dans WAIT-TIME est normalement pris en compte. 2-2 47 F2 37UT Rev02 Fonctionnalités ajoutées à GCOS 7 TS 9764 2.5 TERMINAL_ID A partir de GCOS 7 TS 9764, et de la version 3.0.6 de la DLL, une identification de terminal peut être indiquée sur la fonction tpconnect, dans la zone termid, du paramètre de données. Si cette zone est renseignée par une valeur non constituée d’espaces, elle est placée dans la zone TERMINAL_ID de la TRANSACTIONSTORAGE de la transaction LOGON. Si la zone d’identification de terminal est nulle ou non spécifiée, ou si la version de la DLL est 3.0.5, la zone TERMINAL_ID de TRANSACTION-STORAGE de la transaction LOGON est initialisée par TDS avec la valeur spécifique H-TCPIP-CLI. 2.6 Déconnexions demandées par TDS Depuis GCOS 7 TS 9764, le dépassement du temps maximal d’inactivité de la génération TDS appliquée à un correspondant TCP/IP entraîne une déconnexion anormale à l'initiative de TDS. TDS effectue une déconnexion anormale du correspondant si aucun message n’est reçu du client pendant un laps de temps de 2 minutes après que TDS a demandé le droit d’émission (l’action ayant besoin d’un droit d’émission pour être lancée). 2.7 SECUR'ACCESS Une application TDS TCP/IP peut être protégée par Secur'Access. Un correspondant TCP/IP connecté à un TDS, contrôlé par Secur'Access, exécute les transactions Secur'Access et les dialogues doivent être effectués en fonction du format de leurs messages. Pour plus de détails, consultez la section Protocole entre SA7 et l’application client de ce document. La fonctionnalité Access Master n’est pas supportée. 47 F2 37UT Rev02 2-3 TDS-TCP/IP Guide de l'utilisateur 2.8 Fonctionnalité PASSTHRU Depuis GCOS 7 TS 9764, la fonctionnalité Passthru peut être activée à partir d’un correspondant TCP/IP. La connexion demandée à une application TDS ou IOF est effectuée en mode DSA, en utilisant un terminal DKU7105 (et un type correspondant TM pour l’application TDS cible). Si l’application cible est TDS, les messages sont reçus sans en-tête ni fin de message, en mode ligne. Lorsque le mode grille (FORMS) est activé dans une transaction, les messages sont reçus au format FORMS TDS-TCP/IP. Si l’application cible est IOF, seul le mode ligne peut être utilisé car le format FORMS TDS-TCP/IP FORMS est uniquement utilisé pour TDS. Les messages envoyés par IOF en mode ligne contiennent des caractères de présentation corrrespondant au modèle DKU7105, comme l’identification de terminal et la position du curseur. 2-4 47 F2 37UT Rev02 3. Administration du serveur L'administration du serveur TDS-TCP/IP comporte les tâches suivantes : • Administration de TDS en ce qui concerne la génération de TDS et le contrôle de la session TDS via les commandes maîtresses (TDS-TCP/IP n'a pas d'impact sur la préparation de TDS). • Administration de GCOS 7 pour la configuration des services TDS-TCP/IP. 3.1 Génération de TDS L'utilisation de la liaison TCP/IP doit être déclarée lors de la génération de TDS. Pour générer TDS : • Modifier le membre STDS de façon à inclure : − la clause TCP-IP PROTOCOL (voir ci-dessous), − la clause ATTACH SHARABLE MODULE (voir ci-dessous). • Générer TDS en utilisant TP7GEN (consulter le TDS Guide de l'administrateur pour plus de détails). 3.1.1 Clause TCP-IP PROTOCOL Syntaxe [TCP-IP PROTOCOL [USED] [WITH {OPEN7 |GXTI }].] Cette clause définit l'utilisation du protocole TCP/IP et permet de choisir la liaison à utiliser : OPEN 7 ou GXTI. OPEN7 est la valeur par défaut. La clause TCP-IP PROTOCOL se trouve juste avant la première clause USE (éventuelle) et après la clause XA-RESYNC-DELAY, dans la TDS SECTION du STDS. 47 F2 37UT Rev02 3-1 TDS-TCP/IP Guide de l'utilisateur 3.1.2 Clause ATTACH SHARABLE MODULE Syntaxe [ATTACH SHARABLE MODULE H_SM_DCM.] Cette clause (déjà existante) doit également être déclarée pour associer SOCKG 7. La clause ATTACH SHARABLE MODULE se trouve juste après la clause RESERVE AREAS de la TDS SECTION du membre STDS. Consulter le Guide de l'administrateur TDS pour plus de détails. 3.1.3 Erreurs et réponses Le message d'erreur suivant de TP7GEN peut s'afficher : TG28 sev WRONG SYNTAX IN CLAUSE OR STATEMENT: clause. où clause représente : TCP-IP PROTOCOL 3-2 Type : Information : sev=2 Signification : Indique la clause ou l'instruction dans laquelle une erreur de syntaxe a été détectée. Action : Corrigez la syntaxe de la clause ou de l'instruction et relancez TP7GEN. 47 F2 37UT Rev02 Administration du serveur 3.2 Configuration de l'environnement GCOS 7 TDS-TCP/IP, comme les autres services Internet, doit être déclaré au niveau de GCOS 7. Il existe deux possibilités de configuration, OPEN 7 ou GTXI, suivant la liaison utilisée par le socket. 3.2.1 Description Deux types d'informations doivent être déclarés dans les fichiers de configuration, /etc/hosts (pour OPEN 7) ou ETC_HOSTS (pour GXTI) : • les adresses IP des hôtes client, • les noms des services. 3.2.2 Déclarations pour OPEN 7 Mettre à jour le fichier /etc/hosts en indiquant l'adresse IP du nom de l'hôte, qui est le nom symbolique utilisé pour accéder au système DPS 7000. Consulter l’OPEN 7 Administrator's Reference Manual. Mettre à jour le fichier /etc/services du sous-système OPEN 7 en indiquant le nom des services, leur numéro de port associé et le protocole utilisé (c'est-à-dire TCP). Consulter l’OPEN 7 Administrator's Reference Manual. Le nom du service TDS-TCP/IP est la concaténation du nom d'hôte et du nom du TDS. Un numéro de port est associé à chaque service. Il doit être identique à celui déclaré sur le PC pour le même service et ne doit pas être en conflit avec les numéros de port d'autres services. Le numéro de port doit avoir une valeur supérieure à 1024. EXEMPLE: Si une application client veut se connecter au TDS TDS1 du système DPS 7000 désigné par le nom d'hôte BC0F, la ligne suivante devra apparaître dans /etc/services: bc0ftds1 47 F2 37UT Rev02 10100/tcp 3-3 TDS-TCP/IP Guide de l'utilisateur 3.2.3 Déclarations pour GXTI Le sous-fichier ETC_HOSTS de la bibliothèque GCOS 7 SYS.DSACONF doit contenir les mêmes informations que le fichier /etc/hosts présent dans le sous-système OPEN 7. Consulter le XTI GCOS 7 Name Services User's Guide. Pour être conforme aux conventions d'écriture de GXTI, le nom de l'hôte est DPS7000_nom-xti en minuscules. EXEMPLE : 193.128.250.85 bc0f-xti Le sous-fichier ETC_SERVICES de la bibliothèque GCOS 7 SYS.DSACONF doit contenir les mêmes informations que le fichier /etc/services du sous-système OPEN 7. Consulter le XTI GCOS 7 Name Services User's Guide. Vérifier que le service standard : “echo“ est également déclaré dans ETC_SERVICES. EXEMPLE : Si une application client veut se connecter au TDS TDS1 du système DPS 7000 désigné par le nom d'hôte bc0f-xti, les lignes suivantes doivent apparaître dans ETC_SERVICES: echo bc0f-xtitds1 3-4 7/tcp 10100/tcp 47 F2 37UT Rev02 Administration du serveur 3.3 Commandes maîtresses 3.3.1 Gestion des correspondants Les applications client exécutant des transactions TDS via TCP/IP sont des correspondants TCP/IP. Les commandes maîtresses suivantes s'appliquent à ce type de correspondants : • ALLOW_NEW_TDS_COR (permet la connexion de nouveaux correspondants TCP/IP). • CANCEL_TDS_COR (annule un correspondant ou tous les correspondants TCP/IP). • DISPLAY_TDS (affiche des informations sur le nombre courant de sessions TCP/IP actives). • LIST_TDS_COR (fournit une liste d'informations sur l'état des correspondants ainsi que le nombre de transactions et de TPR en cours d'exécution). • PREVENT_NEW_TDS_COR (empêche la connexion de nouveaux correspondants TCP/IP). REMARQUE : Un correspondant TCP/IP ne peut pas être un opérateur maître. 47 F2 37UT Rev02 3-5 TDS-TCP/IP Guide de l'utilisateur 3.3.1.1 ALLOW_NEW_TDS_COR Signification Annule une commande [M] PREVENT_NEW_TDS_COR précédente et reconnecte tous les correspondants TM, XCP1, XCP2 et TCP/IP passifs. Selon les paramètres indiqués, cette commande : • autorise la connexion de nouveaux correspondants TM ou TCP/IP à une application TDS, • établit de nouveaux pools de sessions XCP1 et XCP2, • augmente le nombre de sessions allouées pour les pools déjà ouverts. Syntaxe [ M ] { ALLOW_NEW_TDS_COR | ALNTC } [ { TMC | TM_COR } = bool } [ { X1C | XCP1_COR } = bool } [ { X2C | XCP2_COR } = bool } [ TDS = { nom4 | #WTDS } [ { TCPIPC | TCPIP_COR } = bool } ] ] ] ] ] Paramètres TCPIP_COR Correspondants TCP/IP. Consulter le TDS Guide de l'Administrateur pour les autres paramètres. Contraintes Ne spécifier aucun paramètre _COR revient à indiquer tous les correspondants, quel que soit leur type. Sortie Consulter le TDS Guide de l'Administrateur. Exemple [M] ALNTC TCPIPC; Autorise tous les correspondants TCP/IP à se connecter au TDS. 3-6 47 F2 37UT Rev02 Administration du serveur 3.3.1.2 CANCEL_TDS_COR Signification Force la déconnexion des correspondants indiqués même si l'utilisateur est "gelé". Syntaxe [ M ] { CANCEL_TDS_COR | CTC } { COR | USER } = star12 [ STRONG = { 0 | bool } ] [ FROZEN = { 0 | bool } ] [ TDS = { nom4 | #WTDS } ] Paramètres STRONG Oblige le correspondant à se déconnecter immédiatement ou autorise les transactions actives à se terminer. L'impact de STRONG=1 dépend du type de correspondant : Pour les correspondants TCP/IP, si une transaction est en cours, la TPR en cours d'exécution est abandonnée, la routine ON-ABORT-TPR est exécutée, et la transaction se termine. L'application client distante est avertie de la déconnexion par l'état indiqué dans le verbe API suivant. Consulter le TDS Guide de l'Administrateur pour les autres paramètres. Contraintes Aucune. Sortie Consulter le TDS Guide de l'Administrateur. Exemple [M] CTC COR=LAUTIER TDS=PL ; 47 F2 37UT Rev02 3-7 TDS-TCP/IP Guide de l'utilisateur 3.3.1.3 DISPLAY_TDS Signification Affiche des informations sur la session TDS en cours, suivant les paramètres indiqués. D'autres informations sont affichées lorsque les paramètres SIMUL et/ou STATUS sont indiqués. Syntaxe [ M ] { DISPLAY_TDS | DTDS } [ { STATUS | STAT } = bool [ SIMUL = { 0 | bool } [ SMLIB = { 0 | bool } [ SWAP = { 0 | bool } [ TDS = { nom4 | #WTDS } [ { RPC_STAT | RPC_STATUS } = bool ] ] ] ] ] ] Paramètres Consulter le TDS Guide de l'Administrateur. Contraintes Consulter le TDS Guide de l'Administrateur. Sortie Le nombre actuel de sessions TCP/IP s'affiche dans les statistiques générales si le TDS est TCP/IP. Consulter le TDS Guide de l'Administrateur pour une description complète. 3-8 47 F2 37UT Rev02 Administration du serveur Exemple Afficher les statistiques générales d'une application nommée PL : S: DTDS STATUS ----------------------------------------TDS = PL 11:45:51 NOV 14, 1997 -----GENERAL TDS STATISTICS -------------------------------------------INIT.SIMU.COUNT = 5 CUR.SIMU.COUNT = 4 ACC.SESS.ALLOC = 0 ACC.SESS.REJEC = 0 USED TX COUNT = 16 TX ABORT. COUNT = 0 USED TPR COUNT = 27 TPR ABORT COUNT = 0 COMMIT COUNT = 16 DIALOG COUNT = 10 TPR ELAPSED TIME = 3 TPR CPU TIME = 0 DEADLOCK COUNT = 0 NON CONCUR WAIT = 0 TABOV ABT COUNT = 0 WDNAV ABT COUNT = 0 LGWAITABT COUNT = 0 DIRTY READ ABORT = 0 BUFOVABT COUNT = 0 SERIALIZATION = 0 MAX TM SES = 10 CUR TM SES = 0 MAX XCP1 SES = 5 CUR XCP1 SES = 0 MAX XCP2 SES = 50 CUR XCP2 SES = 0 MAX VIRT SES = 3 CUR VIRT SES = 1 PMOS COR COUNT = 1 MAX IDLE TIME = 2000 POOL USED (KB) = 160 POOL SIZE (KB) = 500 PSEUDO BUFFERS = 0 WAITING TPR MEAN = 0 MAX CPU TIME = 9000 CUR TCP SES = 2 TDS: PL, DTDS COMMAND COMPLETED 47 F2 37UT Rev02 3-9 TDS-TCP/IP Guide de l'utilisateur 3.3.1.4 LIST_TDS_COR Signification Affiche des informations sur tous les correspondants ou sur des correspondants spécifiés. Syntaxe [ M ] { LIST_TDS_COR | LSTC } { COR | USER } = star12 [ TYPE = { * | TM | XCP1 | XCP2 | DUMMY | TCPIP } ] [ { NG | NETGEN } = { 0 | bool } ] [ { LOG | LOGGED } = bool ] [ { DTLD | DETAILED } = { 0 | bool } ] [ SORT = { 0 | bool } ] [ { PRTMB | PRINT_MEMBER } = nom31 ] [ TDS = { nom4 | #WTDS } ] Paramètres Consulter le TDS Guide de l'Administrateur. Contraintes NETGEN=1 et LOGGED s'excluent mutuellement. Sortie La commande traite le nouveau cortype TCP/IP. Consulter le TDS Guide de l'Administrateur pour une description complète. 3-10 47 F2 37UT Rev02 Administration du serveur Exemple Pour obtenir la liste de tous les correspondants connus de TDS, dans le cas d'un TDS TCP/IP : S: LSTC * * -----------------------------------------TDS = PL 10:38:40 NOV 14, 1997 -----LIST OF CORRESPONDENTS --------------------------------------------STATE: UNSPEC / TYPE: TM / LIST: SHORT / OPTION: DYNAMIC LEVENEZ-P H___PMS STATE: UNSPEC / TYPE: DUMMY / LIST: SHORT / OPTION: DYNAMIC DUMMY STATE: LOGGED / TYPE: TCPIP / LIST: SHORT / OPTION: DYNAMIC LAUTIER TDS: PL, LSTC COMMAND COMPLETED Pour obtenir la liste détaillée de tous les correspondants TCP/IP : S: LSTC * TCPIP DTLD ----------------------------------------TDS = PL 10:49:12 NOV 14, 1997 -----LIST OF CORRESPONDENTS -------------------------------------------STATE: LOGGED /TYPE: TCPIP /LIST: DETAILED /OPTION: DYNAMIC CORRESPONDENT ADDRESS TX_COUNT TPR_COUNT STATUS TX_NM LAUTIER 3 8 P ESSAI TDS: PL, LSTC COMMAND COMPLETED 47 F2 37UT Rev02 3-11 TDS-TCP/IP Guide de l'utilisateur 3.3.1.5 PREVENT_NEW_TDS_COR Signification Empêche les nouveaux correspondants, y compris les correspondants TCP/IP, de se connecter à une application TDS. Empêche l'allocation de nouvelles sessions XCP1 et XCP2 par [M] MODIFY_COR_POOL, [M] OPEN_COR_POOL ou par des instructions CALL correspondantes décrites dans le document TDS COBOL Guide du Programmeur. Il est possible d’allouer de nouvelles conversations aux correspondants XCP2 en utilisant les pools déjà ouverts. Lorsque tous les correspondants en cours se déconnectent normalement, TDS reste inactif jusqu'à émission d'une commande [M] ALLOW_NEW_TDS_COR ou [M] TERMINATE_TDS. Syntaxe [ M ] { PREVENT_NEW_TDS_COR | PVNTC } [ { TMC | TM_COR } = bool } [ { X1C | XCP1_COR } = bool } [ { X2C | XCP2_COR } = bool } [ TDS = { nom4 | #WTDS } [ { TCPIPC | TCPIP_COR } = bool } ] ] ] ] ] Paramètres TCPIP_COR Correspondants TCP/IP. Consulter le TDS Guide de l'Administrateur pour les autres paramètres. Contraintes Aucune. Sortie Consulter le TDS Guide de l'Administrateur. Exemple [M] PVNTC TCPIPC TDS=PL; Empêche les correspondants TCP/IP de se connecter à l'application TDS nommée PL. 3-12 47 F2 37UT Rev02 Administration du serveur 3.3.2 Gestion des sockets Trois nouvelles commandes maîtresses permettent de gérer la fermeture, l'affichage et l'ouverture du socket TDS : • CLOSE_TDS_SOCKET • DISPLAY_TDS_SOCKET • OPEN_TDS_SOCKET Au démarrage de TDS, la socket TDS est ouverte automatiquement. Les correspondants TCP/IP peuvent se connecter à l'application dès que le TDS est prêt. Les commandes CLOSE_TDS_SOCKET et OPEN_TDS_SOCKET permettent de réinitialiser dynamiquement la liaison sans arrêter l'application TDS. La commande OPEN_TDS_SOCKET est prévue pour être utilisée suite à un arrêt de SOCKG 7 ou un incident réseau. 47 F2 37UT Rev02 3-13 TDS-TCP/IP Guide de l'utilisateur 3.3.2.1 CLOSE_TDS_SOCKET Signification Ferme la socket TDS. Cette commande déconnecte tous les correspondants TCP/IP et ferme le socket. La commande CLOSE_TDS_SOCKET n'est pas rémanente en cas de redémarrage à chaud de TDS. Syntaxe [ M ] { CLOSE_TDS_SOCKET | CLTS} [ STRONG = { bool | 0 } ] [ TDS = { nom4 | #WTDS } ] Paramètres STRONG Si STRONG = 1, les correspondants TCP/IP sont déconnectés même s'ils sont en train d'exécuter une transaction. Dans ce cas, la TPR en cours est abandonnée. Si STRONG = 0 (valeur par défaut), la fermeture du socket TDS interviendra lorsque le dernier correspondant TCP/IP aura terminé sa transaction en cours. Contraintes Aucune. Sortie Lorsque la commande a abouti, le message TX92 apparaît sur la console principale : TDS SOCKET CLOSED. Exemple S: CLTS STRONG=1 TDS=PL TX54 TDS: PL, CLTS COMMAND COMPLETED --> TX92 TDS SOCKET CLOSED Si la commande ne peut être exécutée, le message TX55 s'affiche : TX55 TDS: PL, CLTS COMMAND NOT PERFORMED rc. 3-14 47 F2 37UT Rev02 Administration du serveur 3.3.2.2 DISPLAY_TDS_SOCKET Signification Affiche le paramètre TCP/IP d'une session TDS, c'est-à-dire la configuration du socket, OPEN7 ou GXTI. Syntaxe [ M ] { DISPLAY_TDS_SOCKET |DTDSS } [ { STATUS | STAT } = bool ] [ TDS = { nom4 | #WTDS } ] Paramètres STATUS Affiche l'état de l'interface socket. Contraintes Aucune. Sortie La commande renvoie la valeur courante de l'interface socket configurée. Exemple S: DTDSS TDS=PL ----------------------------------------------TDS = PL 17:17:52 AUG 08, 1997 ------CURRENT TCP/IP PARAMETERS ----------------------------------------------SOCKET_INTERFACE IS: OPEN7 TDS: PL, DTDSS COMMAND COMPLETED Si la commande ne peut être exécutée, le message TX55 s'affiche : TX55 TDS: PL, DTDSS COMMAND NOT PERFORMED rc. 47 F2 37UT Rev02 3-15 TDS-TCP/IP Guide de l'utilisateur 3.3.2.3 OPEN_TDS_SOCKET Signification Ouvre la socket TDS. Cette commande procède à la réouverture de la socket TDS après émission d'une commande CLOSE_TDS_SOCKET. Syntaxe [ M ] { OPEN_TDS_SOCKET | OTS } [ UPON = { OPEN7 | GXTI } ] [ TDS = { nom4 | #WTDS } ] Paramètres UPON Indique l'option choisie pour la liaison : OPEN7 ou GXTI. Cette option doit correspondre à celle définie dans la clause de génération TDS-TCP/IP PROTOCOL. La valeur par défaut est GXTI. Contraintes Aucune. Sortie Lorsque la commande a abouti, le message TX92 apparaît sur la console principale : TDS SOCKET OPENED. Exemple S: OTS UPON=OPEN7 TDS=PL TX54 TDS: PL, OTS COMMAND COMPLETED --> TX92 TDS SOCKET OPENED Si la commande ne peut être exécutée, le message TX55 s'affiche : TX55 TDS: PL, OTS COMMAND NOT PERFORMED rc. 3-16 47 F2 37UT Rev02 4. Développement d'applications client Le développement d'applications client sur PC concerne : • la configuration de la machine client, c'est-à-dire le PC, • les appels aux fonctions XATMI en langage C effectués par l'API de TDS-TCP/IP pour accéder à une ou plusieurs applications TDS depuis une application PC. 4.1 Configuration de l'environnement PC 4.1.1 Description Les PC client doivent être configurés pour chaque application TDS. Deux fichiers contiennent les informations concernées : • Les adresses de mise en correspondance d’hôtes distants sont contenues dans le fichier HOSTS qui se trouve dans le répertoire d'installation de Windows, • la déclaration de services est contenue dans le fichier SERVICES qui se trouve dans le répertoire d'installation de Windows. 4.1.2 Déclarations de configuration Le fichier HOSTS doit être mis à jour en indiquant l'adresse IP des noms d'hôte exécutant les applications TDS ; le nom d'hôte est le nom symbolique utilisé dans l'application client pour accéder au système DPS 7000 (correspondant au paramètre hostid du verbe tpconnect). EXEMPLE : 129.182.50.50 47 F2 37UT Rev02 bc0f #nom d'hôte du DPS 7000 sur lequel s'exécute le TDS tds1 4-1 TDS-TCP/IP Guide de l'Utilisateur Le fichier SERVICES doit être mis à jour en indiquant le nom des services nécessaires, le numéro de port associé à chaque service et le protocole utilisé. Le nom du service est la concaténation du nom d'hôte et du nom TDS. Le numéro de port doit être identique à celui déclaré sur le serveur GCOS 7. EXEMPLE: Si une application client veut se connecter au TDS tds1 du système DPS 7000 désigné par le nom d'hôte bc0f, la ligne suivante devra apparaître dans le fichier SERVICES : bc0ftds1 10100/tcp REMARQUE : Le numéro de port doit avoir une valeur supérieure à 1024. 4-2 47 F2 37UT Rev02 Développement d'applications client 4.2 API Client de TDS-TCP/IP Un utilisateur PC connecté à TDS via TCP/IP accède à une application TDS de la même manière qu'un utilisateur de terminal connecté via DSA. Notamment, la gestion du droit d’émission est assurée. L'API client de TDS-TCP/IP fournie pour le développement d'applications client offre un service conversationnel. Elle utilise des fonctions XATMI adaptées aux exigences de GCOS 7 en matière de connexion, de dialogue transactionnel avec droit d’émission, d'évènements anormaux et de déconnexion. La transaction LOGON est activée à chaque fois qu'un client TCP/IP se connecte à TDS. Dans la zone TRANSACTION-STORAGE de la transaction LOGON, TDS initialise le champ TERMINAL-ID à la valeur spécifique H-TCPIP-CLI. A partir de GCOS 7 TS 9764 et de la DLL, version 3.0.6, la fonction tpconnect prend en charge une zone termid avec 13 caractères dans le paramètre data. Si une valeur non constituée d’espaces est attribuée à cette zone, cette dernière est placée dans la zone TERMINAL-ID de la TRANSACTION-STORAGE pour la transaction LOGON. Si la valeur attribuée à termid comporte des espaces, est nulle ou inutilisée, ou si la version de la DLL est antérieure à 3.0.6, la zone TERMINAL-ID de la TRANSACTION-STORAGE pour la transaction LOGON est initialisée par TDS à la valeur spécifique H-TCPIP-CLI. Le lancement des transactions est assuré par la fonction tpsend. Les fonctions tpsend et tprecv de l'application client correspondent aux verbes RECEIVE et SEND des TPR et aux messages envoyés et reçus par le moniteur TDS. Avant GCOS 7 TS 9764 et en l'absence de verbe SEND à la fin d'une transaction, une fonction finale tprecv est émise pour récupérer le droit d’émission. Un message de longueur nulle est envoyé. Depuis la version GCOS 7 TS 9764, en l’absence de verbe SEND à la fin d’une transaction, une fonction finale tprecv reçoit le message READY de TDS (ou le message de service correspondant, défini lors de la génération TDS). Si une transaction se termine anormalement, le message envoyé par la routine ON-ABORT-TPR est récupéré par le verbe tprecv suivant. Si certains paramètres de tpsend sont incorrects du point de vue du dialogue TDS-TCP/IP, un code d'erreur est renvoyé sur le verbe tprecv suivant. 47 F2 37UT Rev02 4-3 TDS-TCP/IP Guide de l'Utilisateur 4.2.1 Composition de l'API L'API client de TDS-TCP/IP se compose d’un sous-ensemble de fonctions XATMI en langage C : • quatre fonctions pour les services conversationnels : tpconnect, tpdiscon, tprecv et tpsend • deux fonctions pour la gestion des tampons typés : tpalloc et tpfree • deux fonctions de gestion des erreurs : tperrno et tperrdtl ; ces fonctions constituent des extensions de XATMI. C'est toujours l'application client qui initie la connexion à TDS, mais la déconnexion peut être effectuée par le client (PC) ou par le serveur (DPS 7000). 4.2.2 Compilation du programme client Pour un client écrit en langage C, un fichier atmi.h contenant la description des structures de connexion suivantes est fourni : service_id et sous-type, les prototypes de fonctions externes et les codes d’erreur. Le fichier atmi.h doit être placé dans le répertoire de travail client. Dans le code source utilisant les fonctions API, l’instruction suivante doit être indiquée : #include <atmi.h> 4-4 47 F2 37UT Rev02 Développement d'applications client 4.3 Fonctions XATMI en langage C Cette section contient la description des fonctions XATMI en langage C relatives à l'API client de TDS-TCP/IP. Celle-ci est conforme à l'API système de Windows. 4.3.1 tpalloc Cette fonction alloue un tampon typé destiné à la connexion et au dialogue avec TDS. Le seul type autorisé pour TDS-TCP/IP est X_C_TYPE. Le tampon alloué possède une taille au moins égale à celle indiquée dans size. Syntaxe char * tpalloc(char *type, char *subtype, long size) Paramètres en entrée type “X_C_TYPE“. Ce paramètre est de type char[16], terminé par un espace ou le caractère nul. subtype Nom du sous-type associé au type. Le sous-type dépend de l'application. Il indique la signification ou l'interprétation des données dans l'application. Ce paramètre est de type char[16], terminé par un espace ou le caractère nul. size Taille allouée au tampon en nombre d’octets. Contraintes Les tampons doivent être alloués par tpalloc et libérés par tpfree. Les autres fonctions de gestion de mémoire, comme malloc(), ne doivent pas être utilisées. 47 F2 37UT Rev02 4-5 TDS-TCP/IP Guide de l'Utilisateur Code retour En cas de fin normale, tpalloc renvoie un pointeur vers un tampon de type approprié, aligné sur un mot long. Sinon, il retourne le code NULL et tperrno doit être appelée pour obtenir la condition d'erreur. Les codes possibles pour tperrno sur tpalloc sont les suivants : • arguments fournis incorrects [TPEINVAL] • erreur système [TPESYSTEM], [TPEOS] Exemple Se reporter à Exemples de programmes client plus loin dans le présent chapitre. 4-6 47 F2 37UT Rev02 Développement d'applications client 4.3.2 tpconnect Cette fonction effectue la connexion à l'application TDS identifiée par le couple (nom d'hôte, nom TDS) associé à un numéro de port unique. A partir de la version 3.0.6 de la DLL et TDS avec GCOS 7 TS 9764 est installé, la fonction tpconnect prend en charge une nouvelle zone, termid, dans le paramètre données (data) d’entrée. Si une valeur non constituée d’espaces est attribuée à cette zone, cette dernière est envoyée à TDS et devient l’identification de terminal dans la zone TERMINAL-ID de la TRANSACTION-STORAGE de la transaction LOGON. Syntaxe int tpconnect (char *svc,char *data, long len, long flags) Paramètres en entrée svc Nom du service, résultant de la concaténation du nom d'hôte et du nom TDS décrits dans le fichier SERVICES. struct service_id { char hostid[16]; char tdsname[5]} svc; hostid Nom de l'hôte DPS 7000 (chaîne de caractères terminée par un espace ou le caractère nul). tdsname Nom de l'application TDS (chaîne de caractères terminée par un espace ou le caractère nul). data Tampon alloué par la fonction tpalloc avec le type X_C_TYPE. Pour les DLL antérieures à la version 3.0.6, il contient la structure suivante : struct subtype { char char char char 47 F2 37UT Rev02 name[13]; project[13]; billing[13]; password[13]} data; 4-7 TDS-TCP/IP Guide de l'Utilisateur Pour les DLL à partir de la version 3.0.6, il contient la structure suivante : struct subtype { char char char char char name[13]; project[13]; billing[13]; password[13]} termid[13] } data; Cette structure contient l'identificateur de l'utilisateur GCOS 7, connu dans le catalogue GCOS 7 ; elle permettra au client extérieur d'exécuter des transactions. La zone termid, si elle existe, permet au TDS de transmettre cette valeur à la zone TERMINAL-ID de la TRANSACTION-STORAGE pour la transaction LOGON. Toutes les variables de la structure sont des chaînes de caractères terminées par un espace ou le caractère nul. name Nom de l'utilisateur TDS. Il n'y a pas de valeur par défaut. project Nom du projet. Une fois connectée, l'application client peut lancer toutes les transactions autorisées pour ce projet en fonction du code PROJECT/TDS indiqué dans le catalogue GCOS 7. Si ce paramètre ne comporte que des espaces, le projet GCOS 7 par défaut est pris en compte. billing Le compte est vérifié dans le catalogue GCOS 7. Si le paramètre ne comporte que des espaces, le compte GCOS 7 par défaut alloué au projet de cet utilisateur sera retenu. password Mot de passe GCOS 7 de l'utilisateur. Il n'y a pas de valeur par défaut. 4-8 47 F2 37UT Rev02 Développement d'applications client len Pour les DLL antérieures à la version 3.0.6, la valeur len doit être égale à 0. A partir de la version 3.0.6, si la zone termid est renseignée, la longueur de structure de données doit être égale à 65. Si cette zone n’est pas renseignée, la longueur doit avoir pour valeur 0 ou 52. flags Inutilisé. Contraintes L'application client doit exécuter une fonction tprecv après la fonction tpconnect pour recevoir le message résultant de la connexion et récupérer le droit d’émission. La fonction tpconnect peut être protégée par un délai d'expiration afin d’éviter les situations bloquantes pouvant se produire en cas de configuration incorrecte ou d’absence de réponse du réseau ou de TDS. La valeur par défaut du délai est 0, ce qui signifie qu’aucun mécanisme de délai n’est appliqué. Cette valeur peut être modifiée comme indiqué ci-après, par l’édition de la clé TIMEOUT dans le fichier Atmi.ini, : TIMEOUT = DélaiMaxi DélaiMaxi est exprimé en millisecondes . Par exemple, TIMEOUT = 300000 fixe un délai à 5 minutes. Lorsque le délai est atteint, le socket est fermé, ce qui entraîne la déconnexion du client. Code retour La valeur retournée est un descripteur de communication, cd, qui constitue le paramètre d'entrée des verbes tprecv, tpsend et tpdiscon. Le descripteur cd permet d’identifier la connexion dans les appels suivants. Si la valeur est égale à -1, la connexion a échoué et tperrno doit être appelée pour obtenir la condition d'erreur. tperrno sur tpconnect : • arguments fournis incorrects [TPEINVAL] • nombre maximum de connexions atteint [TPELIMIT] • erreur de protocole [TPEPROTO] Exemple Se reporter à Exemples de programmes client plus loin dans le présent chapitre. 47 F2 37UT Rev02 4-9 TDS-TCP/IP Guide de l'Utilisateur 4.3.3 tpdiscon Cette fonction provoque une fin anormale de la connexion définie par cd, le client est déconnecté prématurément du serveur et le contexte client est supprimé. Elle peut être activée à tout moment par l'application client. Pour se déconnecter normalement, un client doit émettre une fonction tpsend avec la transaction “BYE” pour demander à TDS d'exécuter la TPR LOGOUT. Dans ce cas, le contexte client est supprimé via tpdiscon. Cette fonction doit être appelée également suite à une erreur sur tprecv et tpsend. Syntaxe int tpdiscon (int cd) Paramètre d'entrée cd descripteur renvoyé par la fonction tpconnect. Contraintes Aucune. Code retour Si la valeur est égale à 0, la fonction s'est terminée normalement. Si la valeur est égale à -1, la fonction a échoué et tperrno doit être appelée pour obtenir la condition d’erreur. tperrno sur tpdiscon : • arguments fournis incorrects[TPEINVAL] • erreur de protocole[TPEPROTO] Exemple Se reporter à Exemples de programmes client plus loin dans le présent chapitre. 4-10 47 F2 37UT Rev02 Développement d'applications client 4.3.4 tpfree Cette fonction libère un tampon typé alloué par tpalloc. Elle ne renvoie pas de valeur au programme client : elle est donc déclarée de type « void ». Syntaxe void tpfree (char *ptr) Paramètre d'entrée ptr Pointeur vers un tampon obtenu précédemment via la fonction tpalloc. Ce pointeur peut être NULL ; dans ce cas, aucune action n'est entreprise. Si ptr ne pointe pas sur un tampon typé, le résultat est indéfini. Exemple Se reporter à Exemples de programmes client plus loin dans le présent chapitre. 47 F2 37UT Rev02 4-11 TDS-TCP/IP Guide de l'Utilisateur 4.3.5 tprecv Cette fonction permet à une application client de recevoir un message du serveur. Syntaxe int tprecv (int cd, char **data, long *len, long flags, long *revent) Paramètres en entrée cd Descripteur obtenu via la fonction tpconnect. Indique sur quelle connexion ouverte les données doivent être reçues. flags Inutilisé. Paramètres en sortie data Tampon alloué via la fonction tpalloc avec le type X_C_TYPE et contenant le message reçu. len Contient la longueur du message reçu. Si len est égal à 0, aucune donnée n'est reçue, et ni le paramètre *data ni le tampon sur lequel ce dernier pointe n'ont été modifiés. revent revent a une signification si tpermo est positionné à TPEEVENT. Les événements valides pour tprecv() sont les suivants : TPEV_SENDONLY: 0x0020 Le destinataire de cet événement possède le droit d’émission et peut envoyer des données, mais il ne peut pas en recevoir tant qu'il n'a pas libéré le contrôle. TPEV_SENDONLY: 0x0002 Cet événement indique que le serveur TDS a détecté une erreur pendant le traitement de la demande client. S'il s'agit de la première tprecv() après tpconnect(), cela signifie que la connexion a été acceptée par TCP/IP mais rejetée ensuite par TDS. Suite à un événement SVCERR, aucune donnée n'est retournée par tprecv(). Une fois la connexion terminée par TDS, tpdiscon() doit être appelée pour supprimer le contexte client. 4-12 47 F2 37UT Rev02 Développement d'applications client Contraintes L'application client ne doit pas avoir le droit d’émission lors de l’appel de tprecv(). La fonction tprecv peut être protégée par un délai d'expiration afin d’éviter les situations bloquantes pouvant se produire en cas de configuration incorrecte ou d’absence de réponse du réseau ou de TDS. La valeur par défaut du délai est 0, ce qui signifie qu’aucun mécanisme de délai n’est appliqué. Cette valeur peut être modifiée comme indiqué ci-après, par l’édition de la clé TIMEOUT dans le fichier Atmi.ini : TIMEOUT = DélaiMaxi DélaiMaxi est exprimé en millisecondes . Par exemple, TIMEOUT = 300000 fixe un délai à 5 minutes. Lorsque le délai est atteint, le socket est fermé, ce qui entraîne la déconnexion du client. Code retour Si la valeur est égale à 0, la fonction s'est terminée normalement. Si la valeur est égale à -1, tperrno doit être appelée pour obtenir la condition d’erreur. Si tperrno est positionné à TPEEVENT et revent à TPEV_SENDONLY, le message reçu a été renvoyé dans le tampon et l'application client possède maintenant le droit d’émission. Dans les autres cas d'erreur, la fonction tprecv s'est terminée anormalement et aucune donnée n'est disponible. tperrno sur tprecv : • • • • arguments fournis incorrects[TPEINVAL] erreur de protocole[TPEPROTO] erreur système [TPESYSTEM], [TPEOS] un événement s’est produit dont le type se trouve dans revent [TPEEVENT] Exemple Se reporter à Exemples de programmes client plus loin dans le présent chapitre. 47 F2 37UT Rev02 4-13 TDS-TCP/IP Guide de l'Utilisateur 4.3.6 tpsend Cette fonction permet à l'application client d'envoyer un message au TDS. Le droit d’émission est envoyé avec chaque tpsend(). Syntaxe int tpsend ( int cd, char *data, long len, long flags, long *revent) Paramètres en entrée cd Descripteur obtenu via la fonction tpconnect. Il indique sur quelle connexion ouverte les données doivent être envoyées. flags Inutilisé. data Tampon alloué via la fonction tpalloc avec le type X_C_TYPE et contenant le message à envoyer. len Contient la longueur du tampon à envoyer. Cette valeur doit être supérieure à 0. Paramètres en sortie revent Inutilisé. Contraintes L'application client doit avoir le droit d’émission lors de l’appel de tpsend(). 4-14 47 F2 37UT Rev02 Développement d'applications client Code retour Si la valeur est égale à 0, la fonction s'est terminée normalement. Si la valeur est égale à -1, la fonction a échoué et tperrno doit être appelée pour obtenir la condition d’erreur. tperrno sur tpsend : • arguments fournis incorrects[TPEINVAL] • erreur de protocole[TPEPROTO] • erreur système [TPESYSTEM], [TPEOS] Exemple Se reporter à Exemples de programmes client plus loin dans le présent chapitre. 47 F2 37UT Rev02 4-15 TDS-TCP/IP Guide de l'Utilisateur 4.3.7 tperrno Cette fonction récupère la valeur tperrno positionnée par l'appel précédent à l'API. Il s'agit d'une extension des primitives XATMI. Syntaxe int tperrno ( void ) Paramètres en entrée Aucun. Paramètres en sortie Aucun. Contraintes Aucune. Code retour Si la valeur est égale à 0, cela signifie que la fonction précédente n'a pas rencontré d’erreurs. Si la valeur n'est pas égale à 0, il s'agit de la valeur de tperrno. Les valeurs de tperrno sont les suivantes : TPEINVAL TPELIMIT TPEOS TPEPROTO TPESYSTEM TPEEVENT 4 5 7 9 12 22 Arguments fournis incorrects Nombre maximum de connexions atteint Erreur système Erreur de protocole Erreur système Un événement s’est produit dont le type se trouve dans le paramètre revent Exemple Se reporter à Exemples de programmes client plus loin dans le présent chapitre. 4-16 47 F2 37UT Rev02 Développement d'applications client 4.3.8 tperrdtl Cette fonction extrait la valeur tperrno et la valeur d’erreur détaillée définie par l’appel d’API précédent. Il s’agit d’une extension de la fonction tperrno. L’erreur détaillée correspond au numéro du message d’erreur client. Syntaxe int tperrdtl ( int *suberr ) Paramètres en entrée Aucun. Paramètres en sortie suberr Code d’erreur détaillé, défini par le dernier appel d’API. Contraintes tperrdtl et tperrno s’excluent mutuellement. Ces 2 verbes ne peuvent pas être utilisés en séquence pour tester le résultat d’un même appel API. Code retour Si la valeur est égale à 0, cela signifie que la fonction précédente n'a pas rencontré d’erreurs. Si la valeur n'est pas égale à 0, il s'agit de la valeur de tperrno (cf. les valeurs de tperrno ci-dessus). 47 F2 37UT Rev02 4-17 TDS-TCP/IP Guide de l'Utilisateur 4.4 Etats client Le tableau suivant représente l'état client par rapport aux routines XATMI pendant un service conversationnel avec TDS. Chaque ligne contient une routine XATMI et chaque colonne un état du client. La présence d'une information sous un état particulier indique quelle routine XATMI peut être appelée dans cet état, et quel est l'état résultant. L'absence d'information signifie qu'appeler la routine XATMI dans cet état est une erreur. état routine Tpconnect Tprecv Tpsend Tpdiscon init Send receive receive send (*1) receive (*2) receive init (*1) état résultant si le client a reçu le droit d’émission (*2) état résultant si le client n'a pas reçu le droit d’émission Cas d'erreur : Si une routine XATMI renvoie une erreur, la routine tpdiscon doit être appelée. 4-18 47 F2 37UT Rev02 Développement d'applications client 4.5 Exemples de programmes client Voici un exemple de dialogue client PC-TDS : C lient W IN D O W S PC D PS 7000 TD S TC PI tp c o n n e ct C o n n e ctio n re q u e s t L O G O N p ro c e s sin g tp re cv rcv b u f= R E A D Y S E N D m e ss a g e = READY tp s e n d se n d b u f= T R A C E P R IN T T R A C E co m m a n d R E C E IV E tp re cv rcv b u f= T E R M IN A L IN T R A C E ... tp s e n d se n d b u f= S E N D M S G N B E M I= 0 S E N D m e s sa g e = T E R M IN A L IN T R A C E ... T ra n sa ctio n S E N D M S G R E C E IV E tp re cv rcv b u f= T P R C O M P L E T E D S E N D m e s sa g e = TPR C O M PLETED tp s e n d se n d b u f= B Y E L O G O U T p ro ce ss in g tp re cv rcv b u f= "" S E N D m e s sa g e = "" tp d isc o n Figure 4-1. 47 F2 37UT Rev02 Dialogue client PC-TDS 4-19 TDS-TCP/IP Guide de l'Utilisateur 4.5.1 Programme principal de l'application L'exemple suivant est un programme écrit en VB (Visual Basic). ==> forms description ********************* Begin VB.Form test_vbatmi32 Caption = "Form1" ClientHeight = 1935 ClientLeft = 60 ClientTop = 345 ClientWidth = 2685 LinkTopic = "Form1" ScaleHeight = 1935 ScaleWidth = 2685 StartUpPosition = 3 'Windows Default Begin VB.CommandButton Caption = Height = Left = TabIndex = Top = Width = End CmdFin "FIN" 495 360 1 960 2055 Begin VB.CommandButton Caption = Height = Left = TabIndex = Top = Width = End CmdConnect "CONNECT" 495 360 0 240 2055 End *********** * CODE * *********** Option Explicit Dim ConnectIdent As Long Dim ReturnStatus As Long Dim data As String 4-20 47 F2 37UT Rev02 Développement d'applications client Private Sub CmdConnect_Click() Dim Dim Dim Dim Dim Dim ConnectData As TP_CONNECTION_DATA ConnectService As TP_CONNECTION_SERVICE ConnectIdent As Long ReturnStatus As Long data As String turn As Long ConnectData.Name = "LAUTIER" ConnectData.Project = "TCP" ConnectData.Billing = "TCP-V7" ConnectData.Password = "JA" ConnectService.HostId = "bcde-xti" ConnectService.TdsName = "tcpi" ==> connection to the tds ****************************** ATMI_ConnectTds ConnectService, ConnectData, ConnectIdent, ReturnStatus If ReturnStatus <> 0 Then MsgBox "connect tds code : " & ReturnStatus, vbOKOnly, "*** ERROR ***" Exit Sub End If receivedata If ReturnStatus <> 0 Then Exit Sub End If ==> execution of the TRACE command ********************************************** data = "TRACE PRINT" ATMI_SendData ConnectIdent, data, ReturnStatus If ReturnStatus <> 0 Then MsgBox "send data code : " & ReturnStatus, vbOKOnly, "*** ERROR ***" Exit Sub End If receivedata If ReturnStatus <> 0 Then Exit Sub End If 47 F2 37UT Rev02 4-21 TDS-TCP/IP Guide de l'Utilisateur ==> execution of the SENDMSG transaction **************************************************** data = "SENDMSG NBEMI=0" ATMI_SendData ConnectIdent, data, ReturnStatus If ReturnStatus <> 0 Then MsgBox "send data code : " & ReturnStatus, vbOKOnly, "*** ERROR ***" Exit Sub End If receivedata If ReturnStatus <> 0 Then Exit Sub End If ==> normal disconnection from TDS ****************************************** data = "BYE" ATMI_SendData ConnectIdent, data, ReturnStatus If ReturnStatus <> 0 Then MsgBox "send data code : " & ReturnStatus, vbOKOnly, "*** ERROR ***" Exit Sub End If ATMI_ReceiveData ConnectIdent, data, turn, ReturnStatus If ReturnStatus = 0 Then MsgBox "erreur : receive ok after BYE", vbOKOnly, "*** ERROR ***" Else MsgBox "disconnection ok : status for BYE : " & ReturnStatus, vbOKOnly, "*** OK ***" End If ATMI_DisconnectTds ConnectIdent, ReturnStatus If ReturnStatus <> 0 Then MsgBox "disconnect tds code : " & ReturnStatus, vbOKOnly, "*** ERROR ***" Exit Sub End If ==> end of main program ****************************** MsgBox "==> test OK", vbOKOnly, "BYE BYE" End Sub Private Sub CmdFin_Click() End End Sub 4-22 47 F2 37UT Rev02 Développement d'applications client ==> sub program for receiving data sent by the TDS transaction ************************************************************************** Private Sub receivedata() Dim turn As Long Dim title As String Dim ReturnStatusDisc As Long turn = 0 While turn = 0 ATMI_ReceiveData ConnectIdent, data, turn, ReturnStatus If ReturnStatus <> 0 Then MsgBox "receive data code : " & ReturnStatus, vbOKOnly, "*** ERROR ***" ATMI_DisconnectTds ConnectIdent, ReturnStatusDisc If ReturnStatusDisc <> 0 Then MsgBox "disconnect tds code : " & ReturnStatusDisc, vbOKOnly, "*** ERROR ***" End If Exit Sub End If If turn = 0 Then MsgBox data, vbOKOnly, "receive noturn length=" & Len(data) Else MsgBox data, vbOKOnly, "receive with turn length=" & Len(data) End If Wend End Sub 47 F2 37UT Rev02 4-23 TDS-TCP/IP Guide de l'Utilisateur 4.5.2 Interface API de TDS Attribute VB_Name = "Module1" Rem ======= TDS TCP/IP interface defintion in Visual Basic Rem types definition Rem ****************** Option Explicit Type TP_CONNECTION_SERVICE HostId As String * 16 TdsName As String * 5 End Type Type TP_CONNECTION_DATA Name As String * 13 Project As String * 13 Billing As String * 13 Password As String * 13 End Type Rem Constants Rem ************ Const ATMI_BUFFERTYPE As String * 8 = "X_C_TYPE" Public Const ATMI_CONNECTDATASIZE As Long = 52 Public Const ATMI_MAX_RECEIVED_DATA_LENGTH = 32767 Public Const ATMI_TPEEVENT As Long = 22 Public Const ATMI_TPEV_SENDONLY As Long = 32 Rem ATMI32.DLL entry points declarations Rem ******************************************** Declare Function tpalloc Lib "Atmi32.dll" _ (ByVal sType As String, ByVal sSubType As String, ByVal lsize As Long) As Long Declare Sub tpfree Lib "Atmi32.dll" _ (ByVal pBuffer As Long) Declare Function tpconnect Lib "Atmi32.dll" _ (ByRef sSvc As TP_CONNECTION_SERVICE, ByVal pBuffer As Long, _ ByVal lsize As Long, ByVal lFlags As Long) As Long 4-24 47 F2 37UT Rev02 Développement d'applications client Declare Function tpdiscon Lib "Atmi32.dll" _ (ByVal lCd As Long) As Long Declare Function tprecv Lib "Atmi32.dll" _ (ByVal lCd As Long, ByRef pBuffer As Long, ByRef lsize As Long, _ ByVal lFlags As Long, ByRef lEvent As Long) As Long Declare Function tpsend Lib "Atmi32.dll" _ (ByVal lCd As Long, ByVal pBuffer As Long, ByVal lLen As Long, _ ByVal lFlags As Long, ByRef lRevent As Long) As Long Declare Function tperrno Lib "Atmi32.dll" () As Long Rem Other Win 32 API functions used as Services to transfert data Rem ************************************************************************ Declare Sub CopyConnectDataToBuffer Lib "KERNEL32" Alias "RtlMoveMemory" _ (ByVal pDest As Long, ByRef HpSource As TP_CONNECTION_DATA, ByVal cbCopy As Long) Declare Sub CopyStringToBuffer Lib "KERNEL32" Alias "RtlMoveMemory" _ (ByVal pDest As Long, ByVal HpSource As String, ByVal cbCopy As Long) Declare Sub CopyBufferToString Lib "KERNEL32" Alias "RtlMoveMemory" _ (ByVal sString As String, ByVal pSource As Long, ByVal cbCopy As Long) Rem function interface to call XATMI DLL entry points Rem ********************************************************* Public Sub ATMI_ConnectTds(TdsIdent As TP_CONNECTION_SERVICE, UserIdent As TP_CONNECTION_DATA, _ ConnectIdent As Long, ReturnStatus As Long) Dim ConnectFlags As Long Dim ConnectBuffer As Long ConnectBuffer = tpalloc(ATMI_BUFFERTYPE, "connect", ATMI_CONNECTDATASIZE) If ConnectBuffer = 0 Then ReturnStatus = tperrno() Else CopyConnectDataToBuffer ConnectBuffer, UserIdent, ATMI_CONNECTDATASIZE ConnectIdent = tpconnect(TdsIdent, ConnectBuffer, ATMI_CONNECTDATASIZE, ConnectFlags) If ConnectIdent = -1 Then ReturnStatus = tperrno() Else ReturnStatus = 0 End If tpfree ConnectBuffer End If End Sub 47 F2 37UT Rev02 4-25 TDS-TCP/IP Guide de l'Utilisateur Public Sub ATMI_DisconnectTds(ConnectIdent As Long, ReturnStatus As Long) ReturnStatus = tpdiscon(ConnectIdent) If ReturnStatus <> 0 Then ReturnStatus = tperrno() End If End Sub Public Sub ATMI_SendData(ConnectIdent As Long, DataToSend As String, ReturnStatus As Long) Dim SendFlags As Long Dim SendEvent As Long Dim DataLength As Long Dim SendBuffer As Long DataLength = Len(DataToSend) SendBuffer = tpalloc(ATMI_BUFFERTYPE, "send", DataLength) If SendBuffer = 0 Then ReturnStatus = tperrno() Else CopyStringToBuffer SendBuffer, DataToSend, DataLength SendFlags = 0 ReturnStatus = tpsend(ConnectIdent, SendBuffer, DataLength, SendFlags, SendEvent) If ReturnStatus <> 0 Then ReturnStatus = tperrno() End If tpfree SendBuffer End If End Sub 4-26 47 F2 37UT Rev02 Développement d'applications client Public Sub ATMI_ReceiveData(ConnectIdent As Long, ReceivedData As String, _ TurnIndicator As Long, ReturnStatus As Long) Dim ReceiveBuffer As Long Dim DataLength As Long Dim receiveFlags As Long Dim ReceiveEvent As Long DataLength = ATMI_MAX_RECEIVED_DATA_LENGTH TurnIndicator = 0 ReceiveBuffer = tpalloc(ATMI_BUFFERTYPE, "receive", DataLength) If ReceiveBuffer = 0 Then ReturnStatus = tperrno() Else ReturnStatus = tprecv(ConnectIdent, ReceiveBuffer, DataLength, receiveFlags, ReceiveEvent) If ReturnStatus = -1 Then ReturnStatus = tperrno() If ReturnStatus = ATMI_TPEEVENT Then If ReceiveEvent = ATMI_TPEV_SENDONLY Then ReturnStatus = 0 TurnIndicator = 1 Else ReturnStatus = ReceiveEvent End If End If End If If ReturnStatus = 0 Then If DataLength <> 0 Then ReceivedData = String(DataLength, " ") CopyBufferToString ReceivedData, ReceiveBuffer, DataLength Else ReceivedData = "" End If End If tpfree ReceiveBuffer End If End Sub 47 F2 37UT Rev02 4-27 TDS-TCP/IP Guide de l'Utilisateur 4-28 47 F2 37UT Rev02 5. Traitement des erreurs 5.1 Intégrité des séquences Une transaction TDS est écrite pour recevoir et envoyer des messages dans un ordre prédéfini. Il est nécessaire que les séquences d'envoi et de réception soient cohérentes. Le client TCP/IP doit connaître la sémantique de chaque message attendu et envoyé par la transaction. Ces séquences peuvent être interrompues dans les situations suivantes : • cas anormaux de fermeture de socket, • opération de restauration non actualisée sur une unité de consolidation, • réinitialisation de TDS, • défaillance de TDS. 5.1.1 Cas anormaux de fermeture de socket La fermeture de socket peut se produire dans des situations anormales, provoquées par une commande maîtresse ou une déconnexion. Si la transaction n’est pas terminée au moment de la fermeture de socket, le correspondant TCP/IP peut se reconnecter à TDS et la transaction sera relancée. Deux situations sont possibles : • Si l'incident se produit au point de consolidation lorsque le correspondant se reconnecte à TDS, la routine NEXT-TPR est lancée et la séquence de réceptionémission n'est pas interrompue. • Si l'incident se produit pendant l'exécution de la transaction, l'unité de consolidation est relancée et la séquence de réception-émission est interrompue, comme dans le cas de restauration non actualisée sur l'unité de consolidation expliqué ci-après. 47 F2 37UT Rev02 5-1 TDS-TCP/IP Guide de l'utilisateur 5.1.2 Restauration non actualisée sur l'unité de consolidation Lorsqu'une unité de consolidation est relancée, tous les messages de cette unité sont envoyés à nouveau. Le client TDS-TCP/IP peut recevoir les mêmes données deux fois. 5.1.3 Réinitialisation de TDS A la fermeture de sockets, toutes les opérations TDS-socket sont interrompues, provoquant la déconnexion de toutes les sessions TCP/IP. Une application client doit se reconnecter au TDS pour le réinitialiser. La séquence de réception-émission est interrompue. 5.1.4 Défaillance de TDS Si TDS subit une défaillance, les sockets se ferment et toutes les opérations TDS-socket sont interrompues. 5.1.5 Basculement TDS-HA En cas de basculement HA, toutes les opérations TDS-socket sont interrompues. De plus, les correspondants TCP/IP ne sont pas reconnectés automatiquement au TDS de secours. 5.1.6 Redémarrage à chaud de GCOS 7 après un crash Si le JCL de lancement de TDS est relançable, il peut arriver qu'après un crash de GCOS 7, TDS redémarre avant que la liaison avec le socket ne soit rétablie. Dans ce cas, la liaison TCP/IP ne peut pas être initialisée par TDS et les clients TCP/IP ne peuvent pas être reconnectés. Aussi, il est conseillé d'émettre une commande maîtresse OPEN_TDS_SOCKET dès que le TDS redevient prêt. 5-2 47 F2 37UT Rev02 Traitement des erreurs 5.2 Programmation des transactions Si un client TCP/IP est déconnecté pendant l'exécution d'une transaction, cette dernière sera automatiquement relancée à partir de son dernier point de consolidation dès la reconnexion à TDS. Il se peut que le client reçoive deux fois les mêmes messages. La reprise après un incident sur la séquence de réception-émission est complexe, si l’on considère que l'application client doit prévoir tous les messages susceptibles d'être reçus et envoyés dans les cas de défaillance décrits plus haut. Aussi, dans le cas d'un correspondant TCP/IP, il est conseillé d’écrire une procédure CANCELCTX dans la transaction LOGON pour empêcher les transactions en cours de redémarrer au moment de la reconnexion. 47 F2 37UT Rev02 5-3 TDS-TCP/IP Guide de l'utilisateur 5.3 Messages d'erreur client Les messages d'erreur client sont consignés dans le fichier Atmitds.log. Ce dernier est créé dynamiquement par la DLL. Des messages sont enregistrés dans le journal chaque fois qu'une erreur se produit pendant l'exécution d'une fonction XATMI. Ce journal est utilisé pour suivre le déroulement et trouver des détails sur les valeurs de tperrno. Les messages d'erreur sont les suivants : Erreurs concernant TDS-TCP/IP Error = 1 Internal error in ATMI DLL Erreur système DLL. Error = 2 Connect error: ID out of range Paramètre d'entrée cd incorrect. Error = 3 Connect error: Wrong session ID Paramètre d'entrée cd incorrect. Error = 4 Invalid argument given Paramètre non adressable. Error = 5 Maximum number of connections reached − Tentative d'effectuer une nouvelle connexion alors qu'il y a déjà 64 connexions actives dans l'application client. − Aucune nouvelle connexion n'est autorisée suite à l'émission d'une commande PREVENT_NEW_TDS_COR sur l'application TDS. Error = 9 Protocol error − Fonction appelée dans un contexte inapproprié. − L'utilisateur ne peut pas être connecté. − Tampon de taille insuffisante pour recevoir des données. 5-4 Error = 10 Invalid connection buffer Erreur système dans la DLL Error = 12 System error Erreur système dans la DLL Error = 20 Communication error during connection Liaison défaillante. 47 F2 37UT Rev02 Traitement des erreurs 47 F2 37UT Rev02 Error = 22 Event occurred Un événement s’est produit dont le type se trouve dans le paramètre revent de tprecv. Error = 30 Internal error TDS Tentative de connecter un utilisateur déjà connu par TDS en tant que correspondant non-TCP/IP. Error = 31 Invalid length Tampon de taille insuffisante pour recevoir des données. Error = 32 TDS socket being closed Tentative de connecter un utilisateur alors que la socket de TDS est en cours de fermeture. Error = 60 Catalog GCOS error Les paramètres de connexion : Nom, Projet, Compte ne correspondent pas aux informations contenues dans le catalogue GCOS 7. Error = 70 Invalid password Le paramètre de connexion : mot de passe est incorrect. Error = 80 Internal TDS error (table allocation) Erreur système TDS pendant la connexion. Error = 90 User already connected Tentative de connecter un utilisateur déjà connecté. Error = 100 Incomplete disconnection Tentative de connecter un utilisateur en cours de déconnexion. Error = 110 Connection error (invalid state) Erreur système TDS pendant la connexion. Error = 120 Invalid reconnection Erreur système TDS pendant la connexion. Error = 130 Reconnection (invalid state) Erreur système TDS pendant la connexion. Error = 140 Master not allowed Tentative de connecter l'opérateur maître de TDS en tant que correspondant TCP/IP. 5-5 TDS-TCP/IP Guide de l'utilisateur 5-6 Error = 150 TDS not ready, retry later Tentative de connecter un utilisateur alors que TDS n'est pas prêt. Error = 200 Send error (invalid header: session) Erreur système TDS pendant l'envoi de données. Error = 210 Send error (invalid header) Erreur système TDS pendant l'envoi de données. Error = 220 Send error (invalid header: sequence) Erreur système TDS pendant l'envoi de données. Error = 230 Send error (invalid datatype or bad turn) Erreur système TDS pendant l'envoi de données. Error = 235 Send error (session being disconnected) Tentative d'envoi de données alors que la session utilisateur est en cours de déconnexion. Error = 240 Send error (internal error) Erreur système TDS pendant l'envoi de données. Error = 245 Send error (no data) Tentative d'envoi d'un tampon de longueur nulle alors que la session est inactive. Error = 250 Send error (flow state) Erreur système TDS pendant l'envoi de données. Error = 260 Send error (timeout) Dépassement du temps imparti avant que TDS ne reçoive toutes les données envoyées. Error = 280 User canceled by TDS operator Tentative de recevoir des données alors que l'opérateur maître de TDS est en train d'annuler l'utilisateur. Error = 300 Socket connection closed during receive Défaillance de la liaison. Error = 1001 Unable to create window (internal error) Erreur système DLL. Error = 1002 Too many thread in process (internal error) Erreur système DLL. Error = 1003 Unable to retrieve threadId (internal error) Erreur système DLL. 47 F2 37UT Rev02 Traitement des erreurs Error = 1004 Buffer still allocated at end of thread or process Certains tampons sont toujours alloués après l’exécution du thread ou du processus. Error = 1005 Connection still opened at end of thread or process Des connexions sont restées ouvertes après l’exécution du thread ou du processus. Error = 1006 Abnormal termination received from peer Déconnexion du socket demandée par TDS. Cette erreur se produit dans les conditions suivantes : − L’utilisateur a envoyé un message "BYE" à TDS. − L’utilisateur est supprimé par la commande maîtresse CTC. − L’utilisateur est déconnecté par le délai maximal d’inactivité a expiré. Error = 1007 Invalid length (header and received length different) Erreur système DLL. Error = 1008 Buffer overflow (received data too long) Le tampon alloué est trop court pour recevoir toutes les données. Error = 1009 Socket connection closed on receive Déconnexion de socket lors de la réception de données. Error = 1010 Timeout event occurred Dépassement du délai imparti lors de la tentative de connexion ou de réception de données. Error = 1011 Unable to create thread timer Erreur système DLL. Erreurs relatives aux sockets (Se reporter à la documentation Microsoft concernant les sockets) Error = 10004 Error = 10009 Error = 10013 Error = 10014 Error = 10022 Error = 10024 Error = 10035 Error = 10036 47 F2 37UT Rev02 Socket error: WSAEINTR Socket error: WSAEBADF Socket error: WSAEACCES Socket error: WSAEFAULT Socket error: WSAEINVAL Socket error: WSAEMFILE Socket error: WSAEWOULDBLOCK Socket error: WSAEINPROGRESS 5-7 TDS-TCP/IP Guide de l'utilisateur Error = 10037 Error = 10038 Error = 10039 Error = 10040 Error = 10041 Error = 10042 Error = 10043 Error = 10044 Error = 10045 Error = 10046 Error = 10047 Error = 10048 Error = 10049 Error = 10050 Error = 10051 Error = 10052 Error = 10053 Error = 10054 Error = 10055 Error = 10056 Error = 10057 Error = 10058 Error = 10059 Error = 10060 Error = 10061 Error = 10062 Error = 10063 Error = 10064 Error = 10065 Error = 10066 Error = 10067 Error = 10068 Error = 10069 Error = 10070 Error = 10071 Error = 10091 Error = 10092 Error = 10093 Error = 11001 Error = 11002 Error = 11003 Error = 11004 5-8 Socket error: WSAEALREADY Socket error: WSAENOTSOCK Socket error: WSAEDESTADDRREQ Socket error: WSAEMSGSIZE Socket error: WSAEPROTOTYPE Socket error: WSAENOPROTOOPT Socket error: WSAEPROTONOSUPPORT Socket error: WSAESOCKTNOSUPPORT Socket error: WSAEOPNOTSUPP Socket error: WSAEPFNOSUPPORT Socket error: WSAEAFNOSUPPORT Socket error: WSAEADDRINUSE Socket error: WSAEADDRNOTAVAIL Socket error: WSAENETDOWN Socket error: WSAENETUNREACH Socket error: WSAENETRESET Socket error: WSAECONNABORTED Socket error: WSAECONNRESET Socket error: WSAENOBUFS Socket error: WSAEISCONN Socket error: WSAENOTCONN Socket error: WSAESHUTDOWN Socket error: WSAETOOMANYREFS Socket error: WSAETIMEOUT Socket error: WSAECONNREFUSED Socket error: WSAELOOP Socket error: WSAENAMETOOLONG Socket error: WSAEHOSTDOWN Socket error: WSAEHOSTUNREACH Socket error: WSAENOEMPTY Socket error: WSAEPROCLIM Socket error: WSAEUSERS Socket error: WSAEDQUOT Socket error: WSAESTALE Socket error: WSAEREMOTE Socket error: WSASYSNOTREADY Socket error: WSAVERNOTSUPPORTED Socket error: WSANOTINITIALISED Socket error: WSAHOST_NOT_FOUND Socket error: WSATRY_AGAIN Socket error: WSANO_RECOVERY Socket error: WSANO_DATA 47 F2 37UT Rev02 Traitement des erreurs 5.4 Messages d’erreur TDS Les messages d'erreur TDS suivants sont spécifiques à TDS-TCP/IP et peuvent apparaître lors de l'exécution de TDS. MV79. TCP/IP COMMUNICATION IS NOT INITIALIZED ERRNO=XXXXX ON XXXXXXXXXXXXX Signification : Une erreur s'est produite à l'initialisation de TDSTCP/IP : ERRNO=XXXXX représente le code erreur renvoyé par la fonction SOCKG 7 appelée. XXXXXXXXXXXXX est le nom de la fonction SOCKG 7 ayant rencontré un problème. Action: Vérifier les fichiers "host" et "services" utilisés pour la configuration de TCP/IP. Vérifier si les produits OPEN 7 et SOCKG 7 sont actifs et en état de fonctionner sur le site. MV80. TCP/IP FUNCTION IS NOT AVAILABLE 47 F2 37UT Rev02 Signification : Le produit TDS-TCP/IP (code marketing) n'a pas été acheté pour ce site. Le H_SM_DCM SM de SYS.DCM.SYSTEM n'est pas chargé. Action: Vérifier que le produit a bien été acheté. Assurez-vous que le SM contenant H_SM_DCM est chargé. 5-9 TDS-TCP/IP Guide de l'utilisateur 5.5 Trace client Le fichier de trace Atmitds.trace permet de mettre au point les applications client TDS-TCP/IP. Si le mode de trace est activé, ce fichier est créé dynamiquement par la DLL, dans le répertoire projet de l’utilisateur. 5.5.1 Activation de la trace Pour activer la trace, les clés doivent être définies comme suit, dans le fichier atmi.ini : DEBUG = YES TRACE_API = {0 | 1 | 2} TRACE_SOC = {0 | 1 | 2} 5-10 TRACE_API associée à la trace des appels API. Sa valeur représente la valeur de trace. Si elle est égale à 1, seuls les 32 premiers octets des tampons sont édités. Si sa valeur est égale à 2, la totalité du contenu des tampons est éditée. TRACE_SOC associée à la trace des verbes de socket. Sa valeur représente la valeur de trace. TRACE_SOC est réservé à la mise au point du système. 47 F2 37UT Rev02 Traitement des erreurs 5.5.2 Format de la trace Premier champ : heure / Deuxième champ : numéro de thread / Troisième champ : événement de chargement de la DLL 11:36:21.710 0000 ***** ATMI TDS TRACE ***** (version: 3.0.3.1) 20/11/1998 Æ Æ Æ : Correspond à un événement ou un appel de fonction reçu par la DLL 11:36:21.710 0001 DLL new thread : winThreadId=FFFC9CDD ProcessId=1 11:36:39.390 0001 tpalloc bufsize=2000 >>> : Correspond aux valeurs des paramètres d'entrée d'une fonction 11:36:39.390 0001 >>> type : addr=0041B1C0 lg=8 0001 0000 585F435F 54595045 X_C_TYPE 11:36:39.390 0001 >>> subtype : addr=00412580 lg=4 0001 0000 617A7177 azqw <<< : Correspond aux valeurs des paramètres de sortie d'une fonction 11:36:39.390 0001 <<< tpalloc bufptr=0055000c === : Correspond à un événement socket *** : Correspond à une erreur de la DLL non relative à un thread spécifique 47 F2 37UT Rev02 5-11 TDS-TCP/IP Guide de l'utilisateur 5-12 47 F2 37UT Rev02 6. Transactions TCP/IP utilisant FORMS 6.1 Généralités Une transaction TDS s'exécutant sous GCOS 7 en mode grille peut être utilisée aussi bien par une application client installée sur un PC que par un terminal. Ceci n’entraîne aucune modification des routines de grilles SDPI (consulter le Guide de l'utilisateur du Logiciel FORMS). Les applications serveur et client traitent le dialogue FORMS en échangeant des messages structurés : • Chaque message contiendra autant de champs qu'il a été défini de zones variables (NF) dans la génération de grille. Les zones fixes (UF) ne sont jamais envoyées à l'application client. • Seul le contenu des zones variables, sans aucun attribut de rendu vidéo ou de qualification est envoyé à l'application client. • Toutes les zones, transmissibles ou non, sont échangées dans l'ordre où elles apparaissent sur un écran de terminal (c'est-à-dire de gauche à droite et de haut en bas). Si plusieurs grilles sont activées en mode APPEND, les messages de chaque grille active sont ajoutés dans l'ordre où les grilles ont été activées. • Chaque zone est séparée de la précédente par un caractère délimiteur qui est le caractère TAB ("05" en EBCDIC pour l'application serveur, "09" en ASCII pour l'application client). • La présence dans un message de deux délimiteurs consécutifs signifie que la zone correspondante est effacée ou vide. • Les caractères PLW (Pluri Language West) sont acceptés selon la norme ISO 8859-1 (PLW en mode ASCII 8 bits). 47 F2 37UT Rev02 6-1 TDS-TCP/IP Guide de l'utilisateur • Si une application client envoie une touche de fonction, le profil de touche FC1 FC2 est placé au début du message. Il est précédé des caractères ESC CSI ("274A" en EBCDIC pour l'application serveur, "1B5B" en ASCII pour l'application client), et suivi du caractère u en minuscule. FC1 FC2 prend les valeurs "01" à "24". • Les zones comportant l'attribut CSPS (jeu de caractères semi-graphiques) ne contiennent que des caractères CSPS ou des espaces. Une série de caractères CSPS commence toujours par un caractère SHIFT-OUT ("0E" en EBCDIC ou en ASCII). Sur le serveur GCOS 7, le fichier de grilles objet Formname_OF_DKU7107 doit être présent dans la bibliothèque binaire ou dans les fichiers UFAS, ou bien le fichier de grilles objet Formname_OF_ANY doit être dans la bibliothèque binaire. 6-2 47 F2 37UT Rev02 Transactions TCP/IP utilisant FORMS 6.2 Particularités des verbes SDPI Consulter le Guide de l'utilisateur du Logiciel FORMS, Annexe A. 6.2.1 Activation des grilles (CDGET) Dans le cas d'une transaction TM, cette action place la grille fixe dans le message envoyé au terminal afin de formater l'écran. Dans le cas d'une transaction TCP/IP, aucune de ces informations n'est placée dans le message envoyé à l'application client. Lorsqu'un CDGET de niveau 3 est exécuté, toutes les zones des grilles en cours d'activation sont envoyées à l'application client. Elles ne comportent que des espaces. 6.2.2 Envoi de grilles (CDSEND) Cette action provoque le transfert des données vers l'application client. Toutes les zones variables, indiquées ou non dans le vecteur de sélection, sont placées dans le message. 6.2.3 Réception de grilles (CDRECV) Cette action provoque l’enregistrement, dans l'article de données utilisateur, des informations contenues dans le message envoyé par l'application client, conformément au vecteur de sélection de l'utilisateur. Le message contient toutes les zones variables. Le message envoyé par l'application client est vérifié : Si le nombre de zones reçu est différent du nombre de zones de la grille, un code d'état A7 (code retour RECARERR) est positionné, et aucune donnée n'est transférée vers l'application serveur. Lorsqu'une zone protégée reçue a été modifiée par l'application client, le vecteur de sélection correspondant est forcé à "A". Si cette zone est transmissible, elle n'est pas livrée. S'il s'agit de la dernière zone erronée de la grille, le code d'état AB (code retour ALMOST) est positionné. Lorsque qu'une longueur de zone reçue est supérieure à la longueur de zone sur la grille, le vecteur de sélection correspondant est forcé à "O". Si cette zone est transmissible, elle n'est pas livrée. S'il s'agit de la dernière zone erronée de la grille, le code d'état AB (code retour ALMOST) est positionné. 47 F2 37UT Rev02 6-3 TDS-TCP/IP Guide de l'utilisateur 6.2.4 Libération des grilles (CDRELS) Cette action n’ajoute aucune donnée dans le message. 6.2.5 Suppression des données d'entrée des grilles (CDPURGE) Cette action supprime tous les messages d'entrée en attente et donne le contrôle à l'application serveur. 6.2.6 Sélection des attributs de grille ou de liste (CDATTR ou CDATTL) Cette action n’ajoute aucune donnée dans le message, sauf si une action CLEAR a été indiquée par l'application serveur dans le vecteur de sélection. Dans ce cas, toutes les zones variables (NF) sont ajoutées dans le message à envoyer à l'application client. Sinon, un message vide est envoyé. 6.2.7 Identification des grilles (CDFIDI) Cette action renvoie le nom de la grille ayant des données en attente depuis le dernier message reçu du client. Si le nombre de zones reçu est différent du nombre de zones de la grille, un code d'état A7 (code retour RECARERR) est positionné, et aucune donnée n'est transférée vers l'application serveur. 6.2.8 Fonction de mécanisme des grilles (CDMECH) Cette action active le mécanisme de la fonction de contrôle. Cette action n’ajoute aucune donnée dans le message, sauf dans le cas suivant. Si un mécanisme CLEAR, INITAT ou INIT a été exécuté, et si une action CLEAR a été indiquée par l'application serveur dans le vecteur de sélection, toutes les zones variables (NF) sont placées dans le message à envoyer à l'application client ; sinon, un message vide est généré. 6-4 47 F2 37UT Rev02 Transactions TCP/IP utilisant FORMS 6.3 Restrictions La plupart des fonctionnalités de TDS FORMS sont acceptées par les transactions TDS-TCP/IP, avec les restrictions suivantes : • Les applications TELETRANS, fonctionnant avec l'activation du mode spécial <<T>> ne sont pas acceptées. Sous TDS-TCP/IP elles provoquent l'abandon de la transaction avec le code d'état AB (code retour FUNCNAV). • Le mécanisme CDMECH CPON/CPOFF, qui indique à l'application TDS la position du curseur au moment où la touche <<TRANSMIT>> est activée, n'est pas traité. Les transactions TCP/IP ayant un tel mécanisme se comportent comme un terminal n’offrant pas cette fonction. • Les attributs DETECTABLE, IMMEDIAT-TRANSMIT (concernant les terminaux dotés d'un photostyle) et INPUT-DEVICE-BD (concernant les terminaux dotés d'un lecteur de badges) ne sont pas traités. • Les données initiales définies à la génération des grilles ne sont pas récupérées dans la structure interne des grilles pendant le traitement CDGET. Elles sont perdues. 47 F2 37UT Rev02 6-5 TDS-TCP/IP Guide de l'utilisateur 6.4 Exemple de flux de données Supposons une application s'exécutant avec une grille F1. Cette grille commence par une zone fixe UF1, suivie d'une zone variable NF1 comportant des attributs protégés et non transmissibles, suivie d'une zone UF2 précédant une zone non protégée NF2, terminée par une zone UF3 suivie d'une zone non protégée NF3. Cette transaction débute par : une TPR1 qui exécute : CDGET F1 level=1 CDATTR F1 level=1 attribute = PR on NF3 CDSEND F1 level=3 "ABC" to NF1, "123" to NF3 une TPR2 exécutant un CDRECV sur les trois zones NF Après exécution de la TRP TPR1, le message suivant est envoyé au terminal ou au client : Au terminal UF1 UF2 UF 3 CP1 "ABC" CP3 PR "123" A l'application client TCP/IP Définition NF1 Définition NF2 Définition NF3 CP2 " " "ABC" TAB "123" " " TAB Au commencement de la TPR TPR2, si la réponse est "STOP" sur NF2, le message envoyé depuis le terminal ou le client est le suivant : Depuis le terminal "STOP" 6-6 TAB "123" Depuis l'application client TCP/IP "ABC" TAB "123" "STOP" TAB 47 F2 37UT Rev02 7. Protocole entre SA7 et l’application client L’application sur PC connectée à un TDS sécurisé doit attendre des messages provenant de SA7 et doit pouvoir y répondre. Ce protocole est disponible à partir de la version 3.5 de SA7 qui peut être installée avec le logiciel INTEROP7, appelé ISI7, version de bande minimale IS230. Pour un correspondant TCP/IP, les messages provenant de SA7 sont au format suivant : <en-tête>:<fonction>:<état>:<message> où (le signe « : » étant utilisé comme délimiteur) : • <en-tête> = « SA7TCP » : désigne une séquence de 6 caractères indiquant que le message est émis par SA7. • <fonction>, est un code constitué de 3 caractères : − = « 001 » : fin de la vérification − = « 002 » : demande de mot de passe − = « 003 » : demande de changement de mot de passe • <état>, est un code constitué de 3 caractères (les codes d’état sont utilisés par SECUR’ACCESS pour un correspondant de type TM ; ils sont définis dans le membre SAMES1 de la bibliothèque SA7.LIV.SL) : − = « 000 » : connexion acceptée si fonction = 001 modification de mot de passe acceptée si fonction = 003 − = lettre suivie de 2 chiffres indiquant le motif de demande de la fonction, par exemple : D41: « mot de passe initial » D73: « mot de passe incorrect, 2 essais disponibles » D74: « mot de passe incorrect, dernier essai » E48: « mot de passe périmé » E50: « expiration prochaine du mot de passe » ..... 47 F2 37UT Rev02 7-1 TDS-TCP/IP Guide de l'utilisateur − = 3 chiffres indiquant la raison du refus de connexion, par exemple : 060 : mot de passe périmé 068 : droits d’accès insuffisants 098 : mot de passe non indiqué 108 : date de validité dépassée ... • <message> : désigne le message associé à l’<état> ; ce message s’affiche dans la langue définie par l’utilisateur. Les réponses attendues par SA7 sont au format suivant : lorsqu’un mot de passe est demandé, <en-tête>:<fonction>:<code-action>:<nom-utilisateur>:<paramètre1> lorsqu’un changement de mot de passe est demandé, <en-tête>:<fonction>:<code-action>:<nomutilisateur>:<paramètre1>:<paramètre2> où : • <en-tête> (6 caractères) prend la même valeur que dans la demande émise par SA7 • <fonction> (3 caractères) est la valeur de la demande émise par SA7 • <code-action> (1 caractère) est un code utilisé pour valider ou ignorer la fonction : − = « A » : fonction ignorée − = « V » : fonction validée − = « C » : changement de mot de passe demandé pour répondre à une demande de mot de passe • <nom-utilisateur> (12 caractères) désigne le nom de l’utilisateur, lorsqu’il est différent du nom de connexion • <paramètre1> (12 caractères) est le mot de passe utilisateur • <paramètre2> (12 caractères) est le nouveau mot de passe utilisateur. Dans GCOS 7 TS 9764, les messages provenant des TPR SA7 sont considérés comme des messages de type application, l’API client doit donc se conformer au protocole décrit ci-dessus. De la même manière que sur un terminal DSA, l’option retenue pour le TS 9764 est d’autoriser au maximum 3 essais de saisie de mot de passe avant de refuser la connexion au TDS. 7-2 47 F2 37UT Rev02 Protocole entre SA7 et l’application client EXEMPLES DE DIALOGUES : 1. Connexion avec un mot de passe incorrect : SA7 émet : (Anglais) SA7TCP :002 :D73 :ERRONEOUS PASSWORD : TWO TRIES AGAIN (Français) SA7TCP :002 :D73 :MOT DE PASSE ERRONE : ENCORE 2 ESSAIS SA7 reçoit : SA7TCP :002 :V : :SA7U : SA7 émet : (SA7U password correct) SA7TCP :001 :000 : 2. Connexion avec un mot de passe correct mais bientôt périmé : SA7 émet : (Anglais) SA7TCP :003 :E50 :YOUR PASSWORD WILL EXPIRE SOON (Français) SA7TCP :003 :E50 :MOT DE PASSE BIENTOT PERIME SA7 reçoit : SA7TCP :003 :A : SA7 émet (connexion acceptée, modification de mot de passe facultative) : SA7TCP :001 :000 : 3. Connexion avec un mot de passe périmé : SA7 émet : (Anglais) SA7TCP :003 :E48 :PASSWORD HAS EXPIRED : MUST BE CHANGED (Français) SA7TCP :003 :E48 :MOT DE PASSE PERIME SA7 reçoit : SA7TCP :003 :V : :SA7U2 :USA7 : SA7 émet (mot de passe modifié de SA7U2 en USA7): SA7TCP :001 :000 : 47 F2 37UT Rev02 7-3 TDS-TCP/IP Guide de l'utilisateur 4. Changement de mot de passe demandé par l’utilisateur, transaction SAUTIL1 : SA7 émet : (Anglais) SA7TCP :003 :A31 :PASSWORD CHANGE (Français) SA7TCP :003 :A31 :CHANGEMENT DE MOT DE PASSE SA7 reçoit : SA7TCP :003 :V : :SA7U2 :AZER : SA7 émet (mot de passe modifié de SA7U2 en AZER) SA7TCP :003 :000 : 5. Connexion refusée pour un utilisateur ayant entré successivement 3 mots de passe incorrects : SA7 émet : (Anglais) SA7TCP :001 :098 : USER BLOCKED FOR PASSWORD (Français) SA7TCP :001 :098 : UTILISATEUR BLOQUE POUR MOT DE PASSE 7-4 47 F2 37UT Rev02 Glossaire API (Application Program Interface). Interface programmatique applicative. application client Dans le modèle Client/Serveur, désigne l’application qui demande un service fourni par l’application serveur. application serveur Dans le modèle Client/Serveur, désigne l’application qui réalise le service demandé par l’application client. correspondant Utilisateur d’une application PC dialoguant avec une transaction GCOS 7 à travers un lien TCP/IP (ou OSI/DSA). correspondant TM Terminaliste connecté à TDS par un lien OSI/DSA. correspondant XCP1 correspondant XCP2 Correspondants OSI/DSA. DLL (Windows Dynamic Link Library). Librairie de lien dynamique. Ethernet Technologie utilisée pour les réseaux LAN (Local Area Networks). FDDI (Fiber Distributed Data Interface). Technologie basée sur la fibre optique, utilisée dans les réseaux LAN (Local Area Networks). GXTI GCOS 7 XTI. Composant GCOS 7 qui implémente l’interface XTI (X/Open Transport Interface). 47 F2 37UT Rev02 g-1 TDS-TCP/IP Guide Utilisateur modèle Client/Serveur Nom générique définissant un mode de coopération standard pour les applications. Les deux applications coopérant peuvent être situées sur le même système ou sur deux systèmes différents et, dans ce dernier cas, les deux applications coopèrent via un lien de communication. OPEN 7 Sous-sytème GCOS 7 offrant un ensemble de fonctions du système UNIX. OSI/DSA (Open Systems Interconnection/Distributed Standard Architecture). DSA est le nom de l’implémentation du modèle de communication OSI par BULL. PC (Personal Computer). RAD tool (Rapid Application Development tool). Outil de développement d’application. SA7 Secur’Access7. Composant GCOS 7 assurant la sécurité d’accès aux applications. sockets Sockets Berkeley : APIs de communication, initialement développées pour les systèmes UNIX, supportant différents protocoles de communication, en particulier TCP/IP. La première implémentation de l’interface socket a été réalisée à Berkeley dans les années 80. SOCKG 7 SOCKet GCOS 7. Composant GCOS 7 offrant l’interface socket. TCP/IP (Transmission Control Protocol/Internet Protocol). Nom d’un ensemble de protocoles de communication, standard “de facto“ international, le réseau Internet est constitué de l’interconnexion de milliers de réseaux utilisant tous TCP/IP. Les protocoles TCP/IP sont le résultat de développements effectués à la fin des années 60 et dans les années 70 pour la DARPA (Defense Advanced Research Projects Agency). TCP (Transmission Control Protocol) est un protocole orienté connexion qui assure un flux sécurisé de caractères en full duplex pour les processes utilisateurs, TCP définit un ensemble de protocoles du niveau de la couche transport (niveau OSI 4). IP (Internet Protocol) assure le transport des paquets pour TCP (et pour d’autres comme UDP, ICMP,...), IP définit un ensemble de protocoles du niveau de la couche réseau (niveau OSI 3). g-2 47 F2 37UT Rev02 Glossaire TDS-HA (TDS High Availability). Fonctionnalité de TDS offrant la haute disponibilité. XATMI (X/Open Application Transaction Manager Interface). Interface standard du modèle DTP (Distributed Transaction Processing) d’ X/Open définissant une API entre applications dialoguant en mode Client/Serveur. 47 F2 37UT Rev02 g-3 TDS-TCP/IP Guide Utilisateur g-4 47 F2 37UT Rev02 Index A à chaud redémarrage (GCOS 7), 5-2 activation de la trace client, 5-10 adresses IP hôte, 4-1 ALLOW_NEW_TDS_COR, 3-6 API définition, g-1 programmation, 1-9 application client, 1-1 définition, g-1 développement, 4-1 serveur, 1-1 ATTACH SHARABLE MODULE, clause, 3-2 B basculement TDS-HA, 5-2 Berkeley, socket définition, g-2 bibliothèque DLL, 1-2 C CANCEL_TDS_COR, 3-7 CANCELCTX, 5-3 CDATTL, 6-4 CDATTR, 6-4 CDFIDI, 6-4 CDGET, 6-3 CDMECH, 6-4 47 F2 37UT Rev02 CDPURGE, 6-4 CDRECV, 6-3 CDRELS, 6-4 CDSEND, 6-3 choix du socket, 1-8 clauses ATTACH SHARABLE MODULE, 3-2 TCP-IP PROTOCOL, 3-1 client activation de la trace, 5-10 application (définition), g-1 compilation de programme, 4-4 développement d’applications, 1-4 états, 4-18 format de la trace, 5-11 messages d’erreur, 5-4 PC, 1-6, 1-8 trace, 5-10 client/serveur modèle (définition), g-2 CLOSE_TDS_SOCKET, 3-14 Codes Marketing, 1-7 commandes M SNDTU, 1-10 commandes maîtresses ALLOW_NEW_TDS_COR, 3-6 CANCEL_TDS_COR, 3-7 CLOSE_TDS_SOCKET, 3-14 DISPLAY_TDS, 3-8 DISPLAY_TDS_SOCKET, 3-15 LIST_TDS_COR, 3-10 OPEN_TDS_SOCKET, 3-16 PREVENT_NEW_TDS_COR, 3-12 compilation programme client, 4-4 conditions de livraison, 1-7 i-1 TDS-TCP/IP Guide de l'utilisateur conditions préalables logiciel, 1-6 matériel, 1-6 configuration GCOS 7, 3-3 PC, 4-1 correspondant définition, g-1 TM (définition), g-1 XCP1 (définition), g-1 XCP2 (définition), g-1 correspondants gestion (TCP/IP), 3-5 D délai pour tpconnect, 4-9 pour tprecv, 4-13 DISPLAY_TDS, 3-8 DISPLAY_TDS_SOCKET, 3-15 DLL définition, g-1 Documents associés, iv DPS 7000 serveur, 1-6 E en-tête dans message, 1-10 Ethernet définition, g-1 exemple de dialogue PC-TDS, 4-19 F FDDI définition, g-1 fermeture de socket, anormale, 5-1 fichier /etc/hosts, 3-3 fichier /etc/services, 3-3 fichier HOSTS, 4-1 fichier SERVICES, 4-1 fin de message, 1-10 fonction BREAK, 1-10 i-2 fonction pass-thru, 1-10 fonctions pass-thru, 1-10 format trace de client, 5-11 FORMS CDATTL, 6-4 CDATTR, 6-4 CDFIDI, 6-4 CDGET, 6-3 CDMECH, 6-4 CDPURGE, 6-4 CDRECV, 6-3 CDRELS, 6-4 CDSEND, 6-3 mode APPEND, 6-1 utilisation, 6-1 zones NF, 6-1 zones UF, 6-1 G GCOS 7 configuration, 3-3 redémarrage à chaud, 5-2 version requise, 1-6 génération dynamique vers un correspondant TCP, 1-10 gestion de session, 1-11 gestion des tampons, 1-9 GXTI déclarations, 3-4 définition, g-1 services, 1-2 I intégrité des séquences, 5-1 interface socket, 1-1 ISO 8859-1, norme, 6-1 J jeux de caractères PLW, 6-1 47 F2 37UT Rev02 Index L LIST_TDS_COR, 3-10 logiciel GCOS 7, 1-6 PC, 1-7 SOCKG 7, 1-6 logiciel requis, 1-6 M matériel DPS 7000, 1-6 PC, 1-6 matériel requis, 1-6 message d’erreur TP7GEN, 3-2 messages en-tête, 1-10 fin, 1-10 messages d’erreur MV79, 5-9 MV80, 5-9 TDS, 5-9 TG28, 3-2 messages d’erreur client, 5-4 messages de service, 1-10 mode APPEND FORMS, 6-1 MV79 message d’erreur, 5-9 MV80 message d’erreur, 5-9 OSI/DSA définition, g-2 outils Rapid Application Development, 1-2 P PC client, 1-6, 1-8 configuration, 4-1 définition, g-2 logiciel requis, 1-7 PLW, jeu de caractères, 6-1 PREVENT_NEW_TDS_COR, 3-12 programmation des API, 1-9 programmation des TPR, 1-10 programmation des transactions, 5-3 protocoles TCP/IP, 1-1 protocoles XATMI, 1-1 R RAD définition, g-2 outils, 1-2 redémarrage à chaud GCOS 7, 5-2 reprise après incident sur séquence, 5-3 responsabilité de l’utilisateur, 1-4 restauration non actualisée unité de consolidation, 5-2 restrictions, 1-10 N S NF, zones, 6-1 nombre de sessions prises en charge, 1-11 SA7 définition, g-2 SDPI, verbes, 6-3 Secur’Access 7 définition, g-2 sécurité, 1-9 serveur administration, 3-1 application (définition), g-1 DPS 7000, 1-6 O OPEN 7 déclarations, 3-3 définition, g-2 services, 1-2 OPEN_TDS_SOCKET, 3-16 47 F2 37UT Rev02 i-3 TDS-TCP/IP Guide de l'utilisateur service messages, 1-10 socket définition, g-2 fermeture anormale, 5-1 gestion, 3-13 interface, 1-1 SOCKG 7 définition, g-2 sockets, 1-8 utilisation, 1-1 utilisé par TDS-TCP/IP, 1-6 sous-fichier ETC_HOSTS, 3-4 sous-fichier ETC_SERVICES, 3-4 T TCP/IP caractéristiques, 1-1 composants, 1-3 correspondant, 1-2 définition, g-2 gestion des correspondants, 3-5 transactions, 1-2 TCP-IP PROTOCOL, clause, 3-1 TDS accès à partir du PC, 4-3 commandes maîtresses, 3-1 défaillance, 5-2 génération, 1-8, 3-1 messages d’erreur, 5-9 réinitialisation, 5-2 transactions existantes, 1-2, 1-4 verbes spécifiques, 1-2 TDS-HA basculement, 5-2 définition, g-3 TDS-TCP/IP API client, 1-4 TDS-TCP/IP API client, 4-4 TG28 message d’erreur, 3-2 TM, correspondant définition, g-1 TP7GEN i-4 message d’erreur, 3-2 tpalloc, 4-5 tpconnect, 4-7 tpdiscon, 4-10 tperrdtl, 4-17 tperrno, 4-16 tpfree, 4-11 TPR programmation, 1-10 tprecv, 4-12 tpsend, 4-14 trace client, 5-10 transaction programmation, 5-3 transactions TDS existantes, 1-2 types d’utilisateurs, 1-5 U UF, zones, 6-1 unité de consolidation restauration non actualisée, 5-2 V verbes SDPI, 6-3 verbes SEND comportant des adresses de routage, 1-10 versions requises GCOS 7, 1-6 W WINSOCKET, 1-1 47 F2 37UT Rev02 Index X XATMI définition, g-3 fonctions, 4-5 protocoles, 1-1 XCP1, correspondant définition, g-1 XCP2, correspondant définition, g-1 Z zones fixes. Voir UF, zones zones variables. Voir NF, zones 47 F2 37UT Rev02 i-5 TDS-TCP/IP Guide de l'utilisateur i-6 47 F2 37UT Rev02