Aller au contenu

$jms.read

Description

Lit un ou plusieurs messages depuis une queue ou un topic JMS

Syntaxe

$jms.read( options )

Paramètres

options map

Map pouvant contenir les options suivantes:

connection string
Nom de connexion définie dans le fichier de configuration. Fait référence à un name d'entrée jms.connection du config.
timeout number

Délai d'attente max, en millisecondes

Le délai d'attente par défaut est de 1000 (1 seconde). Si la valeur est nulle (0) ou négative, la méthode se met en attente tant que la queue ne fournit pas de message. Veuillez noter que cela peut mettre l'exécution du script en attente indéfiniment.

maxcount number

Nombre de messages maximum à lire. La valeur par défaut est 1.

Une valeur inférieure à 0 signifie que l'on ne met pas de limite sur le nombre de messages lus (on lit la queue ou le topic tant que l'on reçoit des messages).

La méthode retourne un array de message si maxcount contient une valeur supérieure à 1 (indépendamment du nombre de messages réellement reçus).

type string
Type de source JMS. Les valeurs possibles sont queue ou topic. La valeur par défaut est queue.
name string
Nom de la queue ou du topic JMS
url string
URL de la queue ou du topic JMS
username string
Nom d'utilisateur à utiliser pour la connexion
password string
Mot de passe associé au nom d'utilisateur

Retour

Retourne un objet unique si maxcount est égal à 1 (ou non défini).

Retourne un array d'objets si maxcount est supérieur à 1.

Retourne null si la queue ou le topic ne contient ou ne délivre aucun message.

Exemple

Exemple d'envoi et de lecture de messages vers et depuis une queue JMS.

// envoi de 3 messages
for (var i = 1; i <= 3; ++i) {
    var res = $jms.send("msg ${i}", {
        connection: "test"
    });
    $logger.info(res);
}

// envoi de 2 messages supplémentaires groupés
var res = $jms.send(["msg 4", "msg 5"], {
    url: "tcp://localhost:61616",
    name: "test.queue"
});
$logger.info(res);

var msg = $jms.read({
    connection: "test",
    maxcount: 10
});
$logger.info(msg);

L'exemple ci-dessus utilise différentes façons de spécifier les paramètres de connexion. Il fonctionne à condition qu'une connection "test" soit définie dans la config :

<jms>
    <connection name="test">
        <url>tcp://localhost:61616</url>
        <name>test.queue</name>
    </connection>
</jms>

Le script génère les traces suivantes :

1
1
1
2
[msg 1, msg 2, msg 3, msg 4, msg 5]