Service SQL IBM i (AS/400) · Procédure
QSYS2.SEND_DATA_QUEUE
Envoyer un message dans une file de données
Procédure qui dépose un message dans une file de données (*DTAQ), avec une clé facultative et un envoi synchrone ou asynchrone.
À quoi ça sert
Cette procédure écrit une entrée dans une file de données, comme le ferait un programme avec l'API d'envoi. Elle prend les données du message (MESSAGE_DATA), le nom de la file (DATA_QUEUE) et sa bibliothèque (DATA_QUEUE_LIBRARY, *LIBL par défaut). Pour une file à clé, KEY_DATA fournit la clé.
Le paramètre ASYNCHRONOUS vaut NO par défaut : l'envoi est alors synchrone. Elle est pratique pour tester une application qui lit une file de données, ou pour envoyer un signal à un travail depuis SQL. La lecture se fait avec QSYS2.RECEIVE_DATA_QUEUE.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
CALL QSYS2.CLEAR_DATA_QUEUE('DEMODQ2', 'JOBISQL');
CALL QSYS2.SEND_DATA_QUEUE(MESSAGE_DATA => 'Commande 2001 à préparer', DATA_QUEUE => 'DEMODQ2', DATA_QUEUE_LIBRARY => 'JOBISQL');
CALL QSYS2.SEND_DATA_QUEUE(MESSAGE_DATA => 'Commande 2002 à expédier', DATA_QUEUE => 'DEMODQ2', DATA_QUEUE_LIBRARY => 'JOBISQL');
SELECT ORDINAL_POSITION, MESSAGE_DATA, MESSAGE_ENQUEUE_TIMESTAMP FROM TABLE(QSYS2.DATA_QUEUE_ENTRIES(DATA_QUEUE => 'DEMODQ2', DATA_QUEUE_LIBRARY => 'JOBISQL')) X
Ce que l'IBM i a renvoyé le 01/10/2026 (2 lignes au plus) :
| ORDINAL_POSITION | MESSAGE_DATA | MESSAGE_ENQUEUE_TIMESTAMP |
|---|---|---|
| 1 | Commande 2001 à préparer | 2026-10-01 09:11:18 |
| 2 | Commande 2002 à expédier | 2026-10-01 09:11:19 |
Données anonymisées : les noms de système, de profils, de
bibliothèques, de postes et les adresses IP ont été remplacés. Les objets du schéma
JOBISQL sont des objets de démonstration créés pour ce site.
L'exemple d'IBM
Envoyer un message dans la file de données DQ1 de la bibliothèque TESTLIB avec la clé 456.
-- Description: Send a message to data queue DQ1 in TESTLIB with key 456.
CALL QSYS2.SEND_DATA_QUEUE('MESSAGE', 'DQ1', 'TESTLIB', KEY_DATA => '456');
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
MESSAGE_DATA |
CHAR LARGE OBJECT | obligatoire | Données du message |
DATA_QUEUE |
VARCHAR(10) | obligatoire | Nom de la file de données |
DATA_QUEUE_LIBRARY |
VARCHAR(10) | '*LIBL' | Bibliothèque de la file de données |
KEY_DATA |
VARCHAR(256) | NULL | Données de la clé |
ASYNCHRONOUS |
VARCHAR(3) | 'NO' | Envoi asynchrone |