Group message 2 (-GRP2)

Utilisez la commande d’adaptateur Group Message 2 (-GRP2) pour les sources de données afin de spécifier l’extraction des groupes de messages et des messages hors groupes depuis la file d’attente source.

-GRP2

La commande d’adaptateur -GRP2 permet un meilleur contrôle des messages de groupe que la commande d’adaptateur -GRP. La plus grande différence entre les commandes d’adaptateur -GRP2 et -GRP est que -GRP2 peut être utilisée pour traiter plusieurs groupes de messages sur la file d’attente source. En outre, les groupes de messages sont traités comme une unité avec -GRP2 et non comme des messages individuels.

Alors que la commande d’adaptateur -GRP détecte un groupe sur la file d’attente, puis commence à récupérer les messages qui appartiennent uniquement à ce groupe, la commande d’adaptateur -GRP2 détecte un groupe dans la file d’attente, extrait tous les messages de ce groupe dans un seul bloc de données et continue à rechercher dans la file d’attente d'autres groupes de messages et d'autres messages individuels hors groupe.

Les restrictions suivantes s'appliquent à la commande GRP2 :

  • Elle n’a pas d’argument.
  • Elle ne peut être utilisé que sur une entrée (cartes d'entrée et fonction de mappe GET).
  • Elle ne peut pas être combinée à la commande d’adaptateur -GRP.
  • Elle suppose l’utilisation des commandes d’adaptateur -XGRP, -ALLSEGet -ALLMSG. Que cela soit explicitement spécifié ou non, ces trois commandes d’adaptateur sont automatiquement incluses par la commande d’adaptateur -GRP2.
  • Elle peut être utilisée avec les commandes d’adaptateur -EQMN et -EQN. En cas d’erreur, tous les messages de groupes extraits ainsi que tous les messages hors groupe extraits sont déplacés vers la file d’attente des erreurs spécifiée.
  • dans le scénario du moteur de flux, elle peut être combinée à la commande d'adaptateur -REFRESH. Ceci est particulièrement utile lorsqu’il existe une possibilité que le groupe de messages incomplet soit ignoré par le curseur de la file d’attente afin d’obtenir un autre groupe de messages complet (ou un message hors groupe) et que le groupe ignoré soit completé ultérieurement.

La table ci-dessous répertorie quelques exemples d'utilisation de la commande d'adaptateur -GRP2.

Supposons que le contenu suivant de la file d’attente QUEUE1 soit défini sous le gestionnaire de files d’attente QMNAME :

ID message Message d’un groupe ? ID de groupe Numéro de séquence logique Dernier message du groupe ? Message segmenté ? Position début Dernier segment ? Données
1 NON PhysMess01
2 OUI 1 1 NON NON PhysMess02
3 OUI 1 2 OUI NON PhysMess03
4 NON PhysMess04
5 OUI 1 3 NON NON PhysMess05
6 OUI 2 1 NON NON PhysMess06
7 NON PhysMess07
8 NON PhysMess08
9 OUI 2 2 NON OUI 0 NON PhysMess09
10 OUI 2 2 NON OUI 10 NON PhysMess10
11 OUI 2 2 NON OUI 20 OUI PhysMess11
12 OUI 2 3 OUI NON PhysMess12
13 OUI 3 1 OUI NON PhysMess13
14 NON PhysMess14

Il y a peu de choses importantes à noter dans ce tableau :

  • Les messages physiques en position 1, 4, 7, 8 et 14 sont des messages logiques qui n’appartiennent à aucun groupe.
  • Les messages physiques en position 2, 3 et 5 sont des messages logiques appartenant à un groupe dont l'ID de groupe est "1".
  • Les messages physiques en position 6, 9, 10, 11 et 12 appartiennent à un groupe dont l'ID de groupe est "2". Les messages physiques en position 6 et 12 sont des messages logiques et les messages physiques en position 9, 10 et 11 sont des segments de message qui forment, ensemble, un seul message logique. Le message physique en position 11 est le dernier segment du message logique. Le message physique en position 12 est le dernier message logique du groupe.
  • Le message physique en position 13 est un message logique et il appartient à un groupe dont l'ID de groupe est "3". Ce message est le seul message logique dans le groupe.

Supposons qu’une mappe dispose d’une carte d'entrée et d’une carte de sortie. La carte d'entrée est de type IBM® MQ et la carte de sortie est de type "Fichier". Le contenu de données obtenu dans la carte d'entrée est stocké dans un fichier spécifié dans la carte de sortie.