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

Documents pareils