Créer une file d’attente avec JACL

Comme j’ai promis dans un premier article qui décrit la manière de créer une fabrique de connexion MQ avec jacl, je reviens sur cet article pour présenter un tutoriel permettant de créer une file d’attente dans un serveur WAS (Websphere Application Server) en utilisant un script jacl.

Idem à la création de la fabrique de connexion, on aura besoin de déterminer la cellule et le nœud de du profile serveur sur le quelle sera exécuter le script jacl. L’identification des profils, cellules, et nœuds ne seront pas traités dans cet article (je suis un peu paresseux 😀 ), pour connaître comment peut-on les identifier consulter l’article « Créer une fabrique de connexion MQ avec jacl ».

Pour la suite de l’article on va supposer :

  • Serveur : myServerProfile
  • Cellule : myServerCell
  • Nœud : myServerNode

Après l’identification de la cellule et le nœud, passant maintenant au script en définissant le fournisseur de la fabrique :

set myProviderType « WebSphere MQ JMS Provider »

D’autre variables seront utiles pour rendre ce script facile à utiliser, je parle surtout des variables suivantes :

set myServerCell « myServerCell »
set myServerNode « myServerNode »
set myServer « myServerProfile »

Pour importer l’environnement d’exécution du script on ajoute la variable :

set newjmsp [$AdminConfig getid /Cell:$myServerCell/Node:$myServerNode/Server:$myServer/JMSProvider:$myProviderType/]

Tout ce qu’on vient de voir est commun entre la fabrique de connexion et les files d’attente, mais ce qui suit ne concerne que les files d’attente MQ.
Pour créer la file d’attente il faut identifier des variables spécifiques, pour connaître celles qui sont requises utiliser la commande :

$AdminConfig required MQQueue

sinon pour connaître la liste des variables possibles utiliser :

$AdminConfig attributes MQQueue

Pour cet exemple, on va se baser sur les variables suivantes :

set name [list name MyService.Consult]
set jndi [list jndiName jms/myserviceconsult]
set baseQN [list baseQueueName MYMQ.SERVICE.CONSULT]

le paramètre « baseQueueName » représente le nom de la file d’attente dans IBM MQ Manager. Ces différents paramètre doivent être regroupés dans une seul variable pour qu’on puisse les passer en un seul paramètre pour cela on utilise :

set mqqAttrs [list $baseQNMBM $name $jndi $baseQN $targetclient]

Et en Dernier lieu, pour créer la file d’attente on va faire appel à la commande :

$AdminConfig create MQQueue $newjmsp $mqqAttrs

Ce qui va manquer à ce script c’est de pouvoir enregistrée la création pour qu’elle soit effective et donc prise en compte par le server WAS, pour cela on ajoute la ligne :

$AdminConfig save

Le code complet du script est le suivant :

set myProviderType « WebSphere MQ JMS Provider »
set myServerCell « myServerCell »
set myServerNode « myServerNode »
set myServer « myServerProfile »
set newjmsp [$AdminConfig getid /Cell:$myServerCell/Node:$myServerNode/Server:$myServer/JMSProvider:$myProviderType/]
set name [list name MyService.Consult]
set jndi [list jndiName jms/myserviceconsult]
set baseQN [list baseQueueName MYMQ.SERVICE.CONSULT]
set mqqAttrs [list $baseQNMBM $name $jndi $baseQN $targetclient]
$AdminConfig create MQQueue $newjmsp $mqqAttrs
$AdminConfig save

Le script est maintenant opérationnel, je vais juste rappeler la maniéré par laquelle on peut l’exécuter (je ne suis pas trop paresseux 😀 ). La commande wsadmin se charge d’exécuter les scripts dans WAS. Deux appel sont possible :

  1. A partir du bin du WAS :
    wsadmin -profileName myServerProfile -f myScriptPath.jacl
  2. A partir du bin du profile :
    wsadmin -f myScriptPath.jacl

A propos de l'auteur

Faut il vraiment porter des lunettes, pour travailler la nuit, sur un terminal vert sur noire, pour être Geek pour devenir root ?