Aller au contenu

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ètreTypePar défautSignification
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