Programmes transactionnels appelables
Un TP invokable est un TP qui peut être appelé par un autre TP. Les TPs invocables sont écrits ou configurés via des variables de registre ou d’environnement pour fournir leurs noms à Host Integration Server en tant que notification indiquant qu’ils sont disponibles pour les demandes entrantes. Les TPs invocables peuvent être exécutés sur n’importe quel client Host Integration Server ou serveur exécutant Windows.
Il existe deux types de TPs invocables :
Tps invocables démarrés par l’opérateur
Un TP invokable démarré par l’opérateur doit être démarré par un opérateur avant de pouvoir appeler le TP. Lorsque le tp invokable démarré par l’opérateur est démarré, il notifie Host Integration Server de sa disponibilité en émettant un verbe RECEIVE_ALLOCATE . L’RECEIVE_ALLOCATE entraîne la communication du nom du tp invokable, ainsi que de l’alias d’une unité logique associée s’il a été configuré via un registre ou une variable d’environnement, à tous les serveurs exécutant Host Integration Server dans le domaine SNA.
Tps invokables démarrés automatiquement
Un tp invokable démarré automatiquement peut être démarré par Host Integration Server si nécessaire. Le tp doit être inscrit via des entrées de Registre ou des variables d’environnement sur son système local, afin qu’il puisse être identifié au composant SnaBase du logiciel client Host Integration Server. Les informations inscrites définissent le TP comme étant en démarrage automatique et doivent spécifier le nom du TP. Les informations inscrites peuvent également spécifier l’alias de lu local que le TP invokable utilisera.
La méthode recommandée pour définir des variables de registre ou d’environnement pour les programmes d’appel automatique consiste à utiliser l’exemple de programme de configuration TP, TPSETUP ou du code similaire écrit dans votre propre programme d’installation. Pour plus d’informations sur les variables de Registre ou d’environnement pour les TPS invocables, consultez Configuration des TPS invocables.
Si aucun alias d’unité logique locale n’est inscrit avec des TPs de démarrage automatique, la configuration de Host Integration Server peut être plus flexible pour répondre aux demandes d’appel. Pour plus d’informations sur ces configurations flexibles, consultez Tp Name Not Unique ; Alias lu local Non spécifié.
Une fois qu’un TP invokable démarré automatiquement est démarré par Host Integration Server, le TP RECEIVE_ALLOCATE comme le fait un TP démarré par l’opérateur. RECEIVE_ALLOCATE devez fournir le nom de TP qui a été enregistré pour le TP.
Les TPs de démarrage automatique doivent être configurés via des variables de registre ou d’environnement pour être mis en file d’attente ou sans file d’attente. Tous les TPs démarrés par l’opérateur agissent en tant que TPs mis en file d’attente.
TPs mis en file d’attente
Si un TP démarré automatiquement est configuré en file d’attente, ou si le TP est démarré par l’opérateur, les demandes d’allocation entrantes sont mises en file d’attente, puis envoyées uniquement lorsque les problèmes tp invocables RECEIVE_ALLOCATE. Pour les TPS appelants démarrés automatiquement, si une copie du TP n’est pas encore en cours d’exécution, une est démarrée lorsqu’une demande d’allocation entrante spécifie ce TP.
Notes
Pour Windows, une seule copie d’un service peut être exécutée à un moment donné ; Cela signifie que tous les TPs de démarrage automatique qui s’exécutent en tant que services sous Windows doivent être mis en file d’attente. Pour écrire un tp autodémarré afin qu’il s’exécute sous Windows as a service et s’exécute également de manière non file d’attente, écrivez un programme multithread avec un RECEIVE_ALLOCATE toujours exceptionnel.
TPs non mis en file d’attente
Si un TP démarré automatiquement est configuré comme non mis en file d’attente, une nouvelle copie est démarrée chaque fois qu’un ALLOCATE ou un MC_ALLOCATE est reçu pour le TP. Les TPs non mis en file d’attente doivent traiter la conversation qui leur a été allouée, puis quitter, car ils ne recevront pas de demandes ALLOCATE ou MC_ALLOCATE supplémentaires.