Partager via


Génération et configuration 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 au démarrage du TP. Pour les TPS démarrées localement, c’est le moment où le verbe TP_STARTED est émis. Le premier LUWID est le LUWID protégé par le 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 une 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ées à distance, l’attachement entrant peut contenir un LUWID pour le TP, il 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é par le 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 nouveau LUWID protégé.

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

  • Nom qualifié complet de l’unité logique locale, précédé d’un octet unique indiquant sa longueur sans compter l’octet de longueur.

  • Numéro d’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 de séquence LUW de 2 octets, initialisé à 1.

    Si le composant du nom complet et qualifié du LUWID n'a pas une longueur de 17 octets, Host Integration Server n’ajoute aucun remplissage entre celui-ci et le numéro d’instance LUW. L’application peut déterminer la longueur du LUWID et les décalages du numéro d’instance LUW et du numéro de séquence LUW dans celui-ci, en examinant le premier octet du LUWID, qui indique la longueur du nom LU entièrement qualifié.

    Lorsque Host Integration Server génère à la fois 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 d’instance de 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 agit en tant que passerelle depuis un environnement non-SNA et que les LUWID sont reçus par un moyen autre qu’un Attach.

    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 LUWID sur une valeur existante, en fournissant les LUWID, ou en générant de nouveaux éléments et en les utilisant à partir de là. Lorsqu’un nouvel ID LUWID est généré par Host Integration Server, il est garanti qu’il soit unique.

    Notez qu’il incombe à l’application (composant système de point de synchronisation) de transmettre le nouvel en-tête PS LUWID 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 la LU par l'émission de SET_TP_PROPERTIES.