Update: 6 Aout 2006
Version: 1.0
Author: Jean-Louis Bicquelet-Salaün
Location: http://jlbicquelet.free.fr
Copyright: (c) 2004-2006 Jean-Louis BICQUELET-SALAÜN
Pour plus d’information au sujet de cette faq, contactez Jean-Louis BICQUELET FAQ Revised: Wednesday 30 August 2006 13:16:3 |
Table of Contents
- 1. concepts
- 2. installation
- 3. gestionnaire
-
- 3.1. Comment créer un gestionnaire de queue?
- 3.2. Quels sont les options de création d’un gestionnaire ?
- 3.3. Comment démarrer un gestionnaire ?
- 3.4. Quels sont les processus démarrés immédiatement ?
- 3.5. Où se trouve le fichier de configuration du gestionnaire?
- 3.6. Comment arrêter un gestionnaire proprement?
- 3.7. Comment arrêter un gestionnaire manuellement?
- 3.8. Comment supprimer un gestionnaire?
- 3.9. Comment supprimer manuellement un gestionnaire?
- 4. serveur de commandes
- 5. queue
-
- 5.1. Comment afficher toutes les files locales?
- 5.2. Comment créer une queue locale?
- 5.3. Comment afficher les attributs d’une queue locale?
- 5.4. Comment modifier des attributs d’une queue locale?
- 5.5. Comment comment afficher le status d’une queue locale?
- 5.6. Quels sont les parametres d’une queue locale?
- 5.7. Comment définir une file alias?
- 5.8. Comment afficher les files alias?
- 5.9. Quels sont les attributs d’un file alias?
- 5.10. Comment définir une file modèle?
- 5.11. Comment définir une file modèle?
- 5.12. Comment définir une file par copie “LIKE” ?
- 5.13. Comment modifier les attributs d’une file ?
- 5.14. Comment supprimer une file ?
- 5.15. Comment supprimer une file qui contient des messages ?
- 5.16. Comment vider une file ?
- 6. transactions
- 7. utilisation
- 8. licence
- 9. log
1. concepts
- 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
- QDYNTEMP
- QDYMPERM
- 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).
2. installation
- 2.1. Comment installe-t-on MQSERIES?
-
En fonction des système il faut utiliser:
AIX smitty ou installp HP-UX swinstall ou update Solaris sysadm ou pkgadd windows setup - 2.2. Où est installé MQSERIES?
-
/var/mqm gestionnaire et files /var/mqm/log logs des gestionnaires /usr/lpp/mqm code MQSERIES AIX /opt/mqm code MQSERIES HP-UX ou Sun Solaris - 2.3. Comment passer des commandes MQSERIES?
-
MQSeries crée un user mqm de groupe mqm. C’est cet utilisateur qu’il faut utiliser pour lancer les commandes MQSeries.
3. gestionnaire
- 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
1WebSphere 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 ?
-
12345678ps -ef | grep ammqm 151772 405554 0 10:48:58 - 0:00 amqzlaa0 -mmars.t1 -fip0mqm 159938 405554 0 10:48:58 - 0:00 /usr/mqm/bin/amqzdmaa -m mars.t1mqm 270384 405554 0 10:48:58 - 0:00 amqzllp0 -mmars.t1 ?mqm 299016 405554 0 10:48:58 - 0:00 amqhasmx mars!t1 /var/mqmmqm 303150 405554 0 10:48:57 - 0:00 /usr/mqm/bin/amqzfuma -m mars.t1mqm 352348 405554 0 10:48:58 - 0:00 /usr/mqm/bin/amqrrmfa -t2332800 -s2592000 -p2592000 -g5184000 -c3600 -m mars.t1mqm 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
12Quiesce request accepted. The queue manager will stop when all outstanding workis 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
4. serveur de commandes
- 4.1. Comment démarrer le serveur de commandes?
-
$ strmqcsv mars.t1 WebSphere MQ command server started.
- 4.2. Comment afficher l’état du serveur de commandes?
- $strmqcsv
12<strong>AMQ8146: WebSphere MQ queue manager not available.</strong>$ dspmqcsv mars.t1
12<strong>WebSphere MQ Command Server Status . . : Running</strong> - 4.3. Quels sont les états du serveur de commandes?
-
Starting en cours de démarrage Running en cours d’execution Running with SYSTEM.ADMIN.COMMAND.QUEUE Ending en cours d’arrêt Stopped serveur arrêté - 4.4. Comment arrêter le serveur de commandes?
-
$endmqmcsv mars.t1
12WebSphere MQ command server ending.WebSphere MQ command server ended.Le serveur peut être arrêté de la manière suivante:
- -c arrêt controlé (par défaut)
- -i arrêt immédiat
5. queue
- 5.1. Comment afficher toutes les files locales?
-
DISPLAY QLOCAL(*)
123456789101112131415161718192021222324252627282930AMQ8409: 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)
1AMQ8006: WebSphere MQ queue created. - 5.3. Comment afficher les attributs d’une queue locale?
-
DISPLAY QLOCAL(mars.ql1)
123456789101112131415161718192021222324252 : 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’)
1234567: 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)
1234AMQ8450: 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
12345678910111213141516171819202122AMQ8427: 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)
1213 : def qalias(mars.qa1) targq(mars.ql1)AMQ8006: WebSphere MQ queue created. - 5.8. Comment afficher les files alias?
-
display qalias(*)
1234516 : 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)
12345678915 : 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:
123456722 : 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:
12345678910111213141516display 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).
6. transactions
- 6.1. Comment afficher les transactions ?
-
$ dspmqtrn
123There are no prepared transactions.$ dspmqtrn -m mars.t1There are no prepared transactions. - 6.2. Comment résoudre les problèmes liés aux transactions douteuses?
-
$ dspmqtrn [option] -m mars.t1 transaction option peut être:
- -c commit de la transaction
- -b backout de la transaction
7. utilisation
- 7.1. Comment lancer un interpréteur de commande?
-
runmqsc mars.t1
125724-B41 (C) Copyright IBM Corp. 1994, 2002. ALL RIGHTS RESERVED.Starting MQSC for queue manager mars.t1.ou runmqsc mars.t1 -q nomfichier
La sortie se fait par la commande END.
On peut lancer un flot de commande avec < fichier
8. licence
9. log
- 9.1. Comment obtenir l’image formatée des logs?
-
$ dmpmqlog
12345678AMQ7701: DMPMQLOG command is starting.AMQ7718: DMPMQLOG command is using a default of 'mars.t1' for the queue manager name.AMQ7005: The queue manager is running.AMQ7716: DMPMQLOG command has finished unsuccessfully.$ dmpmqlog -m mars.t1AMQ7701: DMPMQLOG command is starting.AMQ7005: The queue manager is running.AMQ7716: DMPMQLOG command has finished unsuccessfully.Si le nom n’est pas spécifié, le gestionnaire par défaut est utilisé.
- 9.2. Où se trouve les logs?
-
Dans le répertoire Errors. Le fichier log qui contient les dernières informations est AMQERR1.LOG