- 1.1. Quels sont les objets MQSERIES ?
- Gestionnaire de files d'attente (Queue Manager)
- File d'attente (Queue)
- Processus (triggering)
- Canaux
- Liste des noms (liste de diffusion)
- Storage classe (MVS/ESA)
Ces objets possèdent des propriétés ou attributs qui indiquent la façon dont MQSeries doit traiter ces entités.
- 1.2. Quels sont les types de files d'attente ?
- QLOCAL
- QREMOTE
- QALIAS
- QMODEL
- 1.3. Comment nomme-t-on les objets MQSERIES ?
- Le nom MQSERIES est unique.
Les caractères autorisés sont A-Z a-Z 0-9 . / _ %.
Les noms sont case sensitive.
Les noms de gestionnaire, file et procesus font 48 caractères maximum, sauf sous MVS
où le gestionnaire fait 4 caractères.
Le nom des canaux est limité à 20.
- 1.4. Qu'est ce qu'un message ?
C'est un ensemble de données constitué par un en-tête et des données envoyé par un programme à un autre programme.
L'entête contient des informations techniques comme le type de caractère, une réponse obligatoire à un message ou à une série de message, la file d'attente de destination ...
Elle correspond à une structure MQMD (MQ Message Descriptor).
Il n'y a pas de limite sur le contenu des données (à l'exception de certaines plateformes).
- 3.1. Comment créer un gestionnaire de queue?
crtmqm -c "test2" -t 10000 -u DLQ.TEST2 -q avril.t1
WebSphere MQ queue manager created.
Creating or replacing default objects for avril.t1.
Default objects statistics : 31 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.
Pensez à préciser une file de rebut.
SYSTEM.DEAD.LETTER.QUEUE est créée automatiquement.
- 3.2. Quels sont les options de création d'un gestionnaire ?
-c | description du gestionnaire |
-d | file de transmission par défaut |
-h | nombre maximal de connexions |
-q | gestionnaire par défaut |
-t | intervalle pour le déclenchement automatique |
-u | file de rebut systeme |
-x | nombre maximal de messages non commités |
-z | suppression des messages d'erreur |
-lc | journalisation circulaire |
-ll | journalisation linéaire |
-ld | répertoire pour les fichiers journaaux |
-lp | nombre des fichiers journaux primaires |
-ls | nombre des fichiers journaux secondaires |
Si le paramètre de journalisation est omis, la journalisation est définie dans le fichier mqs.ini. Sinon la journalisation est circulaire.
- 3.3. Comment démarrer un gestionnaire ?
strmqm mars.t1
WebSphere MQ queue manager 'mars.t1' started.
En option: -z suppresion des messages d'erreur
- 3.4. Quels sont les processus démarrés immédiatement ?
ps -ef | grep am
mqm 151772 405554 0 10:48:58 - 0:00 amqzlaa0 -mmars.t1 -fip0
mqm 159938 405554 0 10:48:58 - 0:00 /usr/mqm/bin/amqzdmaa -m mars.t1
mqm 270384 405554 0 10:48:58 - 0:00 amqzllp0 -mmars.t1 ?
mqm 299016 405554 0 10:48:58 - 0:00 amqhasmx mars!t1 /var/mqm
mqm 303150 405554 0 10:48:57 - 0:00 /usr/mqm/bin/amqzfuma -m mars.t1
mqm 352348 405554 0 10:48:58 - 0:00 /usr/mqm/bin/amqrrmfa -t2332800 -s2592000 -p2592000 -g5184000 -c3600 -m mars.t1
mqm 405554 1 0 10:48:57 - 0:00 amqzxma0 -m mars.t1
- 3.5. Où se trouve le fichier de configuration du gestionnaire?
- Dans /var/mqm/qmgrs/[gestionnire]. Son nom est qm.ini.
- 3.6. Comment arrêter un gestionnaire proprement?
$ endmqm mars.t1
Quiesce request accepted. The queue manager will stop when all outstanding work
is complete.
options
-c | arrêt contrôlé progressif (par défaut) |
-w | arrêt contrôlé synchrone |
-i | arrêt immédiat |
-p | arrêt forcé (pre-emptive), non controlé |
- Arrêt normal: le gestionnaire s'arrête quand toutes les applications sont arrêtées. Aucune connexion n'est autorisée.
- Arrêt immédiat: l'arrêt a lieu dès la fin de tous les ordres en cours. Toutes les autres opérations sont annulées.
- Arrêt forcé: pas d'attente, il peut y avoir des résultats imprévisibles.
- 3.7. Comment arrêter un gestionnaire manuellement?
$ ps-ef| grep mqm
kill-9 de chaque process dans l'ordre:
amqhasmx | gestion du journal |
amqharmx | programme de formatage journal (journeaux de type LINEAR uniquement) |
amqzllp0 | processus de point contrôle |
amqzlaa0 | agents du gestionnaire de files d'attente |
amqzxma0 | contrôleur de traitement |
- 3.8. Comment supprimer un gestionnaire?
$dlmtmqm mars.t1
En option: -z suppresion des messages d'erreur
Le gestionnaire est arrêté, mais ATTENTION on perd les données
- 3.9. Comment supprimer manuellement un gestionnaire?
- supprimer les répertoires
- modifier le fichier mqs.ini
- 5.1. Comment afficher toutes les files locales?
DISPLAY QLOCAL(*)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.ADMIN.CHANNEL.EVENT)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.ADMIN.COMMAND.QUEUE)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.ADMIN.PERFM.EVENT)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.ADMIN.QMGR.EVENT)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.AUTH.DATA.QUEUE)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.CHANNEL.INITQ)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.CHANNEL.SYNCQ)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.CICS.INITIATION.QUEUE)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.CLUSTER.COMMAND.QUEUE)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.CLUSTER.REPOSITORY.QUEUE)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.DEAD.LETTER.QUEUE)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.DEFAULT.INITIATION.QUEUE)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.DEFAULT.LOCAL.QUEUE)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.PENDING.DATA.QUEUE)
- 5.2. Comment créer une queue locale?
DEFINE QLOCAL(mars.ql1)
AMQ8006: WebSphere MQ queue created.
- 5.3. Comment afficher les attributs d'une queue locale?
DISPLAY QLOCAL(mars.ql1)
2 : display ql(mars.ql1)
AMQ8409: Display Queue details.
DESCR(WebSphere MQ Default Local Queue)
PROCESS( ) BOQNAME( )
INITQ( ) TRIGDATA( )
CLUSTER( ) CLUSNL( )
QUEUE(MARS.QL1) CRDATE(2006-05-17)
CRTIME(09.13.18) ALTDATE(2006-05-17)
ALTTIME(09.13.18) GET(ENABLED)
PUT(ENABLED) DEFPRTY(0)
DEFPSIST(NO) MAXDEPTH(5000)
MAXMSGL(4194304) BOTHRESH(0)
SHARE DEFSOPT(SHARED)
HARDENBO MSGDLVSQ(PRIORITY)
RETINTVL(999999999) USAGE(NORMAL)
NOTRIGGER TRIGTYPE(FIRST)
TRIGDPTH(1) TRIGMPRI(0)
QDEPTHHI(80) QDEPTHLO(20)
QDPMAXEV(ENABLED) QDPHIEV(DISABLED)
QDPLOEV(DISABLED) QSVCINT(999999999)
QSVCIEV(NONE) DISTL(NO)
DEFTYPE(PREDEFINED) TYPE(QLOCAL)
SCOPE(QMGR) DEFBIND(OPEN)
IPPROCS(0) OPPROCS(0)
CURDEPTH(0)
- 5.4. Comment modifier des attributs d'une queue locale?
5 : def ql(mars.ql1) replace +
descr('mon test')
: descr('mon test')
AMQ8006: WebSphere MQ queue created.
7 : display qlocal(mars.ql1)
AMQ8409: Display Queue details.
DESCR(mon test) PROCESS( )
BOQNAME( ) INITQ( )
...
- 5.5. Comment comment afficher le status d'une queue locale?
11 : display qstatus(mars.ql1)
AMQ8450: Display queue status details.
QUEUE(MARS.QL1) IPPROCS(0)
OPPROCS(0) CURDEPTH(0)
UNCOM(NO)
- 5.6. Quels sont les parametres d'une queue locale?
def ql
AMQ8427: Valid syntax for the MQSC command:
DEFINE QLOCAL(q_name)
[ BOQNAME(string) ] [ BOTHRESH(integer) ]
[ CLUSNL(namelist_name) ] [ CLUSTER(cluster_name) ]
[ DEFBIND( NOTFIXED | OPEN ) ] [ DEFPRTY(integer) ]
[ DEFPSIST( NO | YES ) ] [ DESCR(string) ]
[ DEFSOPT( EXCL | SHARED ) ] [ DISTL( NO | YES ) ]
[ GET( ENABLED | DISABLED ) ] [ INITQ(string) ]
[ LIKE(qlocal_name) ] [ MAXDEPTH(integer) ]
[ MAXMSGL(integer) ] [ MSGDLVSQ( PRIORITY | FIFO ) ]
[ NOHARDENBO | HARDENBO ] [ NOREPLACE | REPLACE ]
[ NOSHARE | SHARE ] [ NOTRIGGER | TRIGGER ]
[ PROCESS(string) ] [ PUT( ENABLED | DISABLED ) ]
[ QDEPTHHI(integer) ] [ QDEPTHLO(integer) ]
[ QDPHIEV( ENABLED | DISABLED ) ] [ QDPLOEV( ENABLED | DISABLED ) ]
[ QDPMAXEV( ENABLED | DISABLED ) ] [ QSVCIEV( NONE | HIGH | OK ) ]
[ QSVCINT(integer) ] [ RETINTVL(integer) ]
[ SCOPE( QMGR | CELL ) ] [ TRIGDATA(string) ]
[ TRIGDPTH(integer) ] [ TRIGMPRI(integer) ]
[ TRIGTYPE( FIRST | EVERY | DEPTH |
NONE ) ] [ USAGE( NORMAL | XMITQ ) ]
DEFPRTY | priorité des messages |
DEFPSIST | persistance de messages |
DESCR | description des messages |
PUT | autorisation d'écriture |
GET | autorisation de lecture |
DISTL | distribution de la liste supportée ou non |
MAXDEPTH | nombre maximum de messages dans la file |
MAXMSGL | longueur maximum des messages dans la file |
MSGDLVSQ | règle de lecture des messages |
NOHARDENBO | HARDENBO | sauvegarde du compteur backout en cas d'arrêt du gestionnaire |
NOSHARE | SHARE | lecture partagée des messages |
USAGE | indique si la file est à usage normale ou si c'est une file de transmission
(XMTIQ |
BOQNAME | nom de la file où le message est stocké après dépassement du compteur
BOTHRESH |
BOTHRESH | nombre de lectures possibles avec backout |
DEFSOPT | option par défaut d'ouverture de file |
- 5.7. Comment définir une file alias?
def qalias(mars.qa1) targq(mars.ql1)
13 : def qalias(mars.qa1) targq(mars.ql1)
AMQ8006: WebSphere MQ queue created.
- 5.8. Comment afficher les files alias?
display qalias(*)
16 : display qalias(*)
AMQ8409: Display Queue details.
QUEUE(MARS.QA1)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.DEFAULT.ALIAS.QUEUE)
- 5.9. Quels sont les attributs d'un file alias?
display qalias(mars.qa1)
15 : display qalias(mars.qa1)
AMQ8409: Display Queue details.
DESCR( ) TARGQ(MARS.QL1)
CLUSTER( ) CLUSNL( )
QUEUE(MARS.QA1) ALTDATE(2006-05-17)
ALTTIME(09.56.29) GET(ENABLED)
PUT(ENABLED) DEFPRTY(0)
DEFPSIST(NO) SCOPE(QMGR)
DEFBIND(OPEN) TYPE(QALIAS)
- 5.10. Comment définir une file modèle?
define qmodel(mars.qm1) deftype(PERMDYN)
type possible :
- PERMDYN
- TEMPDYN (valeur par défaut) une file dynamique temporaire est créée. Cette file n'accepte pas
les messages persistants et est automatiquement détruite lors de MQCLOSE.
PERMDYN une file dynamique permanente est créee et n'est détruite que si un programme demande
volontairement sa destruction.
- 5.11. Comment définir une file modèle?
define qmodel(mars.qm) deftype(PERMDYN)
- 5.12. Comment définir une file par copie "LIKE" ?
def qlocal(mars.ql1) like (mars.like)
- 5.13. Comment modifier les attributs d'une file ?
- ALTER QLOCAL(mars.ql1)
- ALTER ALIAS(mars.qa1)
- ALTER MODEL(mars.qm1)
exemple:
22 : alter qlocal(mars.ql1) descr('description')
AMQ8008: WebSphere MQ queue changed.
display ql(mars.ql1)
24 : display ql(mars.ql1)
AMQ8409: Display Queue details.
DESCR(description) PROCESS( )
BOQNAME( ) INITQ( )
- 5.14. Comment supprimer une file ?
- DELETE QLOCAL(mars.ql1)
- DELETE ALIAS(mars.qa1)
- DELETE MODEL(mars.qm1)
Une file ne peut être supprimée si elle contient des messages non commités.
exemple:
display qmodel(*)
3 : display qmodel(*)
AMQ8409: Display Queue details.
QUEUE(MARS.QM1)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.DEFAULT.MODEL.QUEUE)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.MQSC.REPLY.QUEUE)
4 : delete qmodel(mars.qm1)
AMQ8007: WebSphere MQ queue deleted.
display qmodel(*)
5 : display qmodel(*)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.DEFAULT.MODEL.QUEUE)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.MQSC.REPLY.QUEUE)
- 5.15. Comment supprimer une file qui contient des messages ?
DELETE QLOCAL(mars.ql1) PURGE
- 5.16. Comment vider une file ?
CLEAR QLOCAL(mars.ql1)
Attention la commande échoue si la file contient des messages non commités, ou si la file est ouverte par
une application (quelles que soient les options d'ouverture).