Partager via


Génération et définition de LUWIDs]

L’identificateur d’unité de travail (LUWID) est utilisé pour identifier les conversations qui font partie d’une transaction de point de synchronisation unique. Toutes les conversations avec le même LUWID sont validées (ou annulées) en même temps.

Host Integration Server affecte deux LUWID à un programme de transaction lorsque le tp est démarré. Pour les TPs démarrés localement, il s’agit du moment où le verbe TP_STARTED est émis. Le premier LUWID est le LUWID protégé du TP. Il est utilisé par Host Integration Server comme LUWID pour toutes les conversations de niveau de synchronisation AP_SYNCPT allouées par le tp. Lorsque le TP émet un verbe ALLOCATE ou MC_ALLOCATE avec un niveau de synchronisation de AP_SYNCPT, Host Integration Server génère un attachement contenant le LUWID protégé actuel du TP.

Le deuxième LUWID est le LUWID non protégé du TP. Il est utilisé sur toutes les conversations allouées par le tp avec un niveau de synchronisation autre que AP_SYNCPT.

Pour les TPs initiés à distance, l’attachement entrant peut contenir un LUWID pour le TPit est obligatoire si la conversation a un niveau de synchronisation de AP_SYNCPT. Pour les conversations de point de synchronisation, Host Integration Server enregistre le LUWID en tant que LUWID protégé du TP et génère un nouveau LUWID non protégé pour celui-ci. Pour les conversations avec un niveau de synchronisation autre que le point de synchronisation (AP_SYNCPT), Host Integration Server enregistre le LUWID en tant que LUWID non protégé du TP et génère un LUWID protégé.

Host Integration Server génère des LUWID en concaténant les éléments suivants :

  • Nom complet de l’unité logique locale, précédé d’un octet unique indiquant sa longueur (à l’exclusive de l’octet de longueur).

  • Un numéro de instance LUW de 6 octets, généré à partir de la date et de l’heure actuelles (modifié pour garantir l’unicité si nécessaire).

  • Numéro séquentiel LUW de 2 octets, initialisé à 1.

    Si le composant de nom de lu complet du LUWID ne mesure pas 17 octets, Host Integration Server n’ajoute aucun remplissage entre ce composant et le numéro de instance LUW. L’application peut déterminer la longueur du LUWID et les décalages qu’il contient du numéro de instance LUW et du numéro séquentiel LUW en examinant le premier octet du LUWID, qui indique la longueur du nom complet de la lu.

    Lorsque Host Integration Server génère un LUWID protégé et un LUWID non protégé pour un tp, le LUWID non protégé est créé en incrémentant le numéro de instance du LUWID protégé.

    Le LUWID protégé doit être modifié par un TP pour l’une des quatre raisons suivantes :

  • Lorsqu’une transaction est annulée ou validée, le numéro de séquence LUWID doit être incrémenté.

  • Si l’arborescence des transactions est fractionnée, un nouveau LUWID doit être généré pour le tp.

  • Si l’application utilise plusieurs TPs logiques pour implémenter une transaction, chaque TP doit avoir le même LUWID (différent de celui attribué par Host Integration Server).

  • Si l’application joue le rôle de passerelle à partir d’un environnement non SNA et que les UNITÉS LUWID sont reçues par un moyen autre qu’un attachement.

    Pour permettre à un TP de définir ou de générer de nouveaux LUWID, un nouveau verbe , SET_TP_PROPERTIES, est fourni par l’API APPC. Ce verbe permet au TP de définir ses LUWIDs sur une valeur existante, en fournissant les LUWID, ou d’en générer de nouveaux et de les utiliser à partir de là. Lorsqu’un nouveau LUWID est généré par Host Integration Server, il est garanti qu’il est unique.

    Notez qu’il incombe à l’application (composant système de point de synchronisation) de transmettre le nouvel en-tête LUWID PS au système de point de synchronisation partenaire lorsque le LUWID protégé est modifié. De même, lorsqu’un nouvel en-tête PS LUWID est reçu, l’application doit informer l’unité logique en émettant SET_TP_PROPERTIES.