DTAQ File d'attente de données # Une file d'attente de données permet de communiquer et de stocker les données utilisées par plusieurs programmes d'un même travail ou réparties dans différents travaux pouvant être de types différents. (communication asynchrone entre interactif(s) et batch(s).) Le système identifie une file d'attente de données comme un type d'objet spécifique, dont l'identificateur est *DTAQ. La longueur des données pouvant être stockées est choisie à la création. Depuis la V2R1.0 une DTAQ peut contenir une notion de clé. Une DTAQ est crée et supprimées par les commandes système CRTDTAQ DLTDTAQ Fin manipulable par les API QSNDDTAQ,QRCVDTAQ,QCLRDTAQ QMHQRDQD (V2R1.0) QMHRDQM (V2R3.0) |
Créer une file de données (CRTDTAQ) Indiquez vos choix, puis appuyez sur Entrée. File d'attente de données . . . DTAQ ########## Bibliothèque . . . . . . . . . *CURLIB Longueur maximale de poste . . . MAXLEN ###### ................ Séquence . . . . . . . . . . . . SEQ *FIFO <-- : *FIFO : Longueur de clé . . . . . . . . KEYLEN : *LIFO : Texte 'descriptif' . . . . . . . TEXT *BLANK : *KEYED : : (dans ce cas : : renseigner : Autres paramètres : KEYLEN) : :..............: Forcer sur mémoire secondaire . FORCE *NO ................ Inclure ID émetteur . . . . . . SENDERID *NO <--- : Inclure ID : Droits . . . . . . . . . . . . . AUT *LIBCRTAUT : émetteur : : (ID = JOB : : + USER) : :..............: Fin |
EXEMPLE Créer une file de données (CRTDTAQ) Indiquez vos choix, puis appuyez sur Entrée. File d'attente de données . . . DTAQ > ESSAI Bibliothèque . . . . . . . . . QTEMP Longueur maximale de poste . . . MAXLEN > 20 Séquence . . . . . . . . . . . . SEQ > *KEYED <-- Longueur de clé . . . . . . . . KEYLEN > 4 <-- Texte 'descriptif' . . . . . . . TEXT > DTAQ pour exemple Autres paramètres Forcer sur mémoire secondaire . FORCE *NO Inclure ID émetteur . . . . . . SENDERID > *YES <-- Droits . . . . . . . . . . . . . AUT *LIBCRTAUT Fin |
FORMAT INTERNE DE CETTE DTAQ (via DMPOBJ apres 2 envois) QUEUE MESSAGES- . 00001- .ENQUEUE DATE- 23/08/91 ENQUEUE TIME- 15:11:33 .KEY- -- 000000 C3D3C5F1 !> Notion de clé *CLE1 * -- .MESSAGE- 000000 C4E2D7F0 F1404040 4040C3C8 D9C9E2E3 C9C1D540 F1F7F4F6 F1F1C3C8 D9C9 000020 C9C1D540 F1859940 9485A2A2 81878500 00000000 00000000 *DSP01 QSECOFR 174611QSECOF* -- *R 1er message * !> Contenu:ID sur 36 c . 00002- -- data sur 20 .ENQUEUE DATE- 23/08/91 ENQUEUE TIME- 15:11:50 .KEY- 000000 C3D3C5F2 *CLE2 * .MESSAGE- 000000 C4E2D7F0 F1404040 4040C3C8 D9C9E2E3 C9C1D540 F1F7F4F6 F1F1C3C8 D9C9 000020 C9C1D540 F2859485 409485A2 A2818700 00000000 00000000 *DSP01 QSECOFR 174611QSECOF* *R 2eme message * |
API de manipulation de DTAQ : Envoi de données + QSNDDTAQ - CHAR(10) nom de la dtaq - CHAR(10) nom bibliothèque - PCK(5,0) Lg data (< ou = à MAXLEN) - CHAR(?) data ------------------Parametres à renseigner si KEYED ---- - PCK(3,0) Lg de la clé (= KEYLEN) - CHAR(?) clé Mise à blanc + QCLRDTAQ - CHAR(10) nom de la dtaq - CHAR(10) nom bibliothèque |
API de manipulation de DTAQ : Réception(lecture) + QRCVDTAQ - CHAR(10) nom de la dtaq - CHAR(10) nom bibliothèque - PCK(5,0) Lg data (< ou = à MAXLEN) - CHAR(?) variable de retour pour data - PCK(5,0) temps d'attente (nb secondes, 0 = pas d'attente, <0 = attente illimitée) ------------------Parametres optionnels---------------- - CHAR(2) Critere de position. (EQ,GT,GE,...) ....................... - PCK(3,0) Lg de la clé (= KEYLEN ou 0) : Ces paramètres : - CHAR(?) clé (argument de position.) : représentent un tout: - PCK(3,0) Lg du paramètre suivant : il faut donc en : - CHAR(?) variable de retour pour SENDER ID : utiliser aucun ou : maxi 44: PCK(5,0) lg demandée : les utiliser tous. : PCK(5,0) lg utilse :.....................: CHAR(26) job qualifié CHAR(10) profil en cours |
API de manipulation de DTAQ : Retrouver définition + QMHQRDQD - CHAR(?) variable de retour découpée comme suit: DE A fmt signification 1 à 4 Binaire lg des données extraites 5 8 " lg des données disponibles 9 12 " lg maxi des données MAXLEN 13 16 " lg clé (0 = pas de clé) 17 17 Char séquence K = KEYED F = FIFO L = LIFO 18 18 Char SENDERID Y=YES,N=NO 19 19 Char FORCE Y=YES,N=NO 20 69 Char Texte de l'objet - BIN(4,0) Lg variable de retour - CHAR(8) Format API = "RDQD0100" - CHAR(20) <nom dtaq><nom biblio> 10 c 10 c |
API de manipulation de DTAQ : Lit (sans détruire) le contenu d'une DTAQ + QMHRDQM - CHAR(?) variable de retour (format RDQM0100) - BIN(4,0) Lg variable de retour - CHAR(8) Format API = "RDQM0100" - CHAR(20) <nom dtaq><nom biblio> 10 c 10 c - CHAR(??) sélection (suivant format RDQS0100/200) RDQS0100 (sélection /DTAQ sans clé) | RDQS0200 (DTAQ avec clé) |CHAR(1) Type 'A'= all,'F'=first,'L'=last| -idem- | |CHAR(3) réservé | CHAR(2) critère EQ,GE,GT,...| | | CHAR(1) réservé | |BIN(4) nbr d'entrées à retourner | -idem- | | | BIN(4) lg-clé à retourner | | | BIN(4) lg argument | | | CHAR(??) argument/comparaison - BIN(4) lg de la sélection - CHAR(8) format de sélection (RDQS0100/RDQS0200) - CHAR(??) code erreur |