Cet extrait tiré d'un nouveau Redbook propose des exemples de programmes RPG IV utilisant les API de files d'attente de donnéesLes files d'attente de données sont des objets que l'on peut créer pour établir des communications entre des programmes en langage évolué (HLL : high-level language). Le principe en est le suivant : un programme HLL envoie des données à une file d'attente et un autre les reçoit. Le type le plus fréquent de file d'attente de données est constitué par les communications entre programmes HLL résidant sur le même système AS/400. Mais on peut aussi utiliser des files d'attente de type DDM (Distributed Data Management) pour faire communiquer des programmes HLL tournant sur des AS/400 différents.
Les files d'attente de données offrent de nombreux avantages :
· Elles constituent un moyen rapide de communications asynchrones
entre deux travaux, qui utilise moins de ressources systèmes que les échanges
via les fichiers base de données, les files d'attente de messages ou les zones
de données.
· Elles peuvent être communes à plusieurs travaux. C'est intéressant lorsqu'un
travail ne peut pas traiter un trop grand nombre d'entrées dans le temps imparti.
Ainsi, si plusieurs imprimantes sont prêtes à imprimer des commandes, une seule
file d'attente peut envoyer des données à un job distinct pour chaque imprimante,
en mode FIFO (premier entré/premier sorti), LIFO (dernier entré/premier sorti),
ou dans un ordre déterminé par clé.
· Elles peuvent attacher une ID d'émetteur à chaque message. L'ID d'émetteur
est un attribut de file d'attente de données établi au moment où elle est créée.
Il contient le nom de job qualifié et le profil utilisateur courant.
· Elles peuvent être assorties d'un délai (time-out) afin qu'un job récepteur
attende jusqu'à ce qu'il reçoive une certaine entrée en provenance d'une file
d'attente de données.
On peut aussi utiliser des files d'attente de données pour faire communiquer des programmes HLL tournant sur des AS/400 différents.
· Elles allègent la tâche d'un travail. Les API de file d'attente peuvent fournir un meilleur temps de réponse et diminuer la taille d'un programme interactif. Si, par exemple, plusieurs utilisateurs entrent des transactions pour mettre à jour plusieurs fichiers, on peut ordonner aux jobs interactifs de pousser les données dans une file d'attente pour un traitement asynchrone par un programme batch (plutôt que d'avoir chaque file d'attente de job interactif mettre à jour un fichier base de données). Seules les files d'attente de données permettent cette technique de programmation asynchrone.