introduction ibm – websphere mq wmq 05/2009 eqitp - middleware assimilés : mqseries, websphere...
TRANSCRIPT
IntroductionIBM – WebSphere MQ
WMQ
05/2009EQITP - MIDDLEWARE
Assimilés : MQSeries, WebSphere MQ , MQ ou WMQ
Présentation
Historique
Versions
Architectures
Bonnes pratiques
Sécurité
Performances
Administration / Monitoring
Haute Disponibilité
WMQ - Sommaire
WMQ - Présentation
• Pourquoi utiliser IBM- MQSeries / WMQ ?
IBM WebSphere MQ est une famille de logiciels d'intégration et de messagerie interapplicative qui simplifient la connexion dynamique des applications en environnement hétérogène. WebSphere MQ permet l'échange d'informations et l'exécution de transactions entre les plates-formes d'exploitation différentes, facilitant la tâche des programmeurs chargés du développement et de la mise en œuvre dans le cadre de projets d'intégration.
Une domination sans partage d'IBM
Websphere MQ représentait 80 % du marché de la messagerie critique en 2006. 85 % en 2008. Le besoin en MOM continue de s'accroître rapidement.Estimé à 718 M$ en 2006, il dépassera 1 Md$ en 2009 et 2,24 Md$ en 2013.
• Concurrence : MSMQ (Microsoft) Active MQ (Open Source) DecMessageQ, Tibco RdV, … => Non inter-opérables avec WMQ
3
WMQ - Présentation
WebSphere MQ fournit :
Asynchrone « time independance » Très haute fiabilité (standard bancaire) Découplage des applications et des platesformes « loosely coupled » Disponible sur plus de 80 plates-formes API communs, nombreux langage
Caractéristiques :
Une infrastructure de transport, pour les messages MQ et JMS Moteurs de messaging locaux Clients MQ Fonctions de clustering (Load Balancing, Haute Disponibilité) Interface avec les applications (API) Interface d’administration (API, GUI, events) Support des transactions (syncpoint)
4
WMQ - Historique
Mars 1992 : IBM lance MQSeries. Décembre 1994 : Tibco Software commercialise son MOM, Rendezvous. Septembre 1998 : lancement de Message Queue Server 1.0 par Microsoft. Fin 1999 : Progress Software lance SonicMQ, premier ESB sur le marché. Mars 2002 : MQSeries devient Websphere MQ.2003 : début du développement d'un
système de messagerie interne par JPMorgan. 2001 : publication des spécifications JMS 1.0 par Sun Microsystems. 2006 : premières spécifications AMQP. Fin 2008 : version 1.0 d'AMQP.
15 ans d'initiatives des acteurs du MOM
5
WMQ - Versions
• Version BNP Paribas utilisé
Warning : Fin du support IBM de la Version 5.3 depuis 09/2008.
EQITP MIDDLEWARE recommande l’utilisation de la :
v6.0.2.5
Depuis fin 2008, la nouvelle version V7 est sortie mais ne possède qu'un seul fixPAck 7.0.0.1 auj. trop jeune.
6
WMQ – API
Plusieurs types d’API disponibles :
MQI ( C, C++, Cobol, RPG (OPM & ILE), MQ Java (WMQ classes for Java),..)
AMI (deprecated)
XMS (IBM advanced)
Dot Net (C#,…)
JMSWrappers ( Perl, PHP, Python, Jython, PL/SQL (Oracle), Delphi / Pascal / Kylix, PL1, Rexx, …)
7
WMQ - Plates-formes supportées
• ServeurAIX, AT&T GS Unix, Compaq NSK/NSS, Compaq Open VMS Alpha & Vax, Compacq, Tru 64 Unix, DC/Osx, Digital UNIX, DYNIX/ptx, Hitachi, HP/UX, IRIX, Linux Intel & zSeries, MVS/ESA, NCR, Numa-Q (Sequent), OpenVMS, OS/2, OS/390, OS/400, SCO OpenServer, SCO Unixware, SGI, Siemens Nixdorf SINIX DC/Osx, Sinix, Sun Solaris Intel & Sparc, TPF, Unisys OS2000, 2200 & MCP, UnixWare, VSE/ESA, Windows NT4, 2000, XP, 2003, Vista, Z/OS
• Client
AIX, Apple MacOS, AT&T GS Unix, Compaq NonStop Kernel, Compaq Open VMS Alpha & Vax, Compacq Tru 64 Unix, DC/Osx, Digital Unix DG/Ux, DOS, HP/UX , HP 3000 MPE/iX, DG/UX, DYNIX/ptx - IRIX - SINIX, Java, Linux Intel & zSeries, .Net, Numa-Q (Sequent), OS/2, SCO OpenServer - SCO Unixware, SGI, Siemens Nixdorf SINIX DC/OSx, Sun Solaris, Sun Solaris Intel, Stratus VOS, TPF, Unisys A, OS2000 & MCP, VM/ESA, Windows 3.1/95/98/Me/NT/2000/XP/2003, Vista, z/VM
8
WMQ - Terminologie
• Queue Manager (ou QM ou GFA: Gestionnaire de files d’attente)– Un queue manager est un composant qui porte un ensemble de files
d'attentes et gère leur utilisation par les applications
• Listener– Le composant listener a pour rôle d’écouter les différents réseaux
(TCP/IP, IPC, etc) et de router les demandes de connexion vers une instance cible
• Canal message– On appelle canal message un lien entre deux Queue Manager qui
communiquent et s’échangent des messages
• Canal client MQI (Message Queue Interface)– On appelle canal client un canal de connexion entre une application
et un Queue Manager
• MCA (Message Channel Agent)– Le MCA est l’agent qui établit la communication entre deux Queue
Managers
Terminologie : Les Files d’attente
Structures de donnéesServent au stockage des messages
Une queue “ appartient ” à un Queue Manager et un
seul.
Trois types principaux de files d’attente :
1. File locales : décrites localement, contiennent les messages
2. Files éloignées (remote) : description locale d’une file d’attente située sur un Queue Manager distant
3. Files alias : pointeurs sur une file locale ou sur une file éloignée
Les applications peuvent utiliser indifféremment les files locales, remote, ou alias.
Terminologie : Le message
Message = buffer de données
Deux parties :
en-tête (header) : informations d ’enveloppedonnées d’applications (data) : longueur variable, 0 à plusieurs dizaines de Mo (100 Mo max sinon le message est découpé)
11
Header data
WMQ – Typologies Applicatives
12
QueueManager
Application 1
Application 2
QueueManager
Application3
Typologies de communication possibles
– Communication locale (binding)– Communication distante serveur-serveur– Communication distante client-serveur
Problématiques liées
• Hébergement des Queue Managers• Organisation des Queue Managers par application• Connexion au Queue Manager• Sécurisation des échanges
Application4
1
2
3
1
2
3
Client MQ
Toutes ces typologies sont mises en œuvre actuellement à la Banque.
WMQ - Architectures
Client-ServeurQueue Manager : QMZ
Serveur Z
QL.A.B.TEST
QMZ.CX.APPA01
Application A
Client
Q.A.B.TEST.PUTQMZ.CX.APPB01
MQPUT MQGET
Q.A.B.TEST. GET
QMZ_LSTR
Application B
ClientMQPUT MQGET
Queue ManagerQMB
Queue ManagerQMA
Server A Server B
Q.A.B.TEST.PUT QMBQR.A.B.TEST QL.A.B.TEST Q.A.B.TEST.GET
QMA.CH.QMB
QMB_LSTRQMA_LSTR
Application A Application B
MQGETMQPUT
Serveur-Serveur
13
WMQ - Architectures
Client-Serveur
Serveur-Serveur
14
define channel(APPLINAME) chltype(SVRCONN) MCAUSER(‘appliUID’) MAXMSGL(sizeOctets) replaceou
def chl(APPLIA.APPLIA) chltype(SDR) conname(‘IP(port)’) locladdr(‘IPHOME’) replace
def chl(APPLIA.APPLIA) chltype(RCVR) replace
Il s’agit des paramètres minimales pour leur création, il existe plus d’une trentaine d’options du canal à configurer!
WMQ - Architectures
• Standalone • Point-to-Point • Hub and Spoke • Cluster MQ
Which ONE ?
15
WMQ - Administration
L’administration MQ : Installation, Configuration, Sécurité, Support,…
Solution dite locale Solution dite distante
ssh machine
login/password
su – geneqdml
su – mqm
runmqsc QMGRName
Utilisation du client MQ : MO71
- QManagerName
- XXX.XXX.XXX.XXX(port)
- Un channel SVRCONN doit exister : « MIDDLEWARE »
++ Admin rapide et limité
-- Mise en place de sécurité
++ Sécurité forte
-- Admin complète mais complexe
16
WMQ – Administration / MO71
1/ création d'un groupe gmqmadm 2/ création du user mqmadm appartenant au groupe gmqmadm 3/ setmqaut pour le groupe 4/ mcauser = 'mqmadm' dans le channel svrconn QM=QMNAMEGRP1=gmqmadm
echo Affectation des droits MQ pour le groupe $GRP1 sur le QM $QM ...# minimum pour se connecter avec un outil d'admin :setmqaut -m $QM -t qmgr -g $GRP1 +connect +inq +dspsetmqaut -m $QM -t q -n SYSTEM.DEFAULT.MODEL.QUEUE -g $GRP1 +get +put +set +dsp +browse +inqsetmqaut -m $QM -t q -n SYSTEM.ADMIN.COMMAND.QUEUE -g $GRP1 +put +dsp +inqsetmqaut -m $QM -t q -n SYSTEM.AUTH.DATA.QUEUE -g $GRP1 -all# accès en dsp (display) à l'ensemble des objets du QM $QMsetmqaut -m $QM -t q -n \** -g $GRP1 +dsp +browsesetmqaut -m $QM -t prcs -n \** -g $GRP1 +dspsetmqaut -m $QM -t chl -n \** -g $GRP1 +dspsetmqaut -m $QM -t lstr -n \** -g $GRP1 +dsp
L’administration DISTANTE via GUI IBM : SupportPack MO71
17
DEFINE CHANNEL(MIDDLEWARE) +
CHLTYPE(SVRCONN) +
TRPTYPE(TCP) +
DESCR('Channel EQITP MIDDLEWARE') +
MCAUSER(‘mqmadm') +
REPLACE
WMQ – Administration / MO71
mqm@machine> dspmq
QMNAME(qmgrx) STATUS(‘etat’)
mqm@machine> runmqsc QMGR1
display objet(*) all
…..
….
dis ql(‘ql.name’) curdepth
…
end
Exemple =>
mqm@machine> runmqsc QMGR1 –v < modifQMGR1.mqs > modifQMGR1.mqs.log
“-v” pour tester le script sans execution
L’administration LOCALE via : runmqsc QMGR
18
dis chl(SYSTEM.DEF.SENDER) ALLAMQ8414: Affichage des détails relatifs au canal. CHANNEL(SYSTEM.DEF.SENDER) CHLTYPE(SDR) ALTDATE(2009-05-06) ALTTIME(15.55.59) BATCHHB(0) BATCHINT(0) BATCHSZ(50) COMPHDR(NONE) COMPMSG(NONE) CONNAME( ) CONVERT(NO) DESCR( ) DISCINT(6000) HBINT(300) KAINT(AUTO) LOCLADDR( ) LONGRTY(999999999) LONGTMR(1200) MAXMSGL(4194304) MCANAME( ) MCATYPE(PROCESS) MCAUSER( ) MODENAME( ) MONCHL(QMGR) MSGDATA( ) MSGEXIT( ) NPMSPEED(FAST) PASSWORD( ) PROPCTL(COMPAT) RCVDATA( ) RCVEXIT( ) SCYDATA( ) SCYEXIT( ) SENDDATA( ) SENDEXIT( ) SEQWRAP(999999999) SHORTRTY(10) SHORTTMR(60) SSLCIPH( ) SSLPEER( ) STATCHL(QMGR) TPNAME( ) TRPTYPE(TCP) USERID( ) XMITQ( )
WMQ – Administration / LOG
File System des logs messages:
cd /var/mqm/log/QMNAME/active
File System des logs errors :
cd /var/mqm/qmgrs/QMNAME/errors
=> 3 fichiers rotatifs : AMQERR01.LOG, AMQERR02.LOG, AMQERR03.LOG
Une fois l’erreur identifié : mqrc renvoit le descriptif de l’erreur et permet d’apporter une solution
mqm@machine> mqrc code
Exemple :
C:\>mqrc 2035
2035 0x000007f3 MQRC_NOT_AUTHORIZED
=> Problème de droits utilisateur
19
WMQ – Monitoring / Alerts
20
Solutions divers
PatrollSysloadNagiosShellIntroscope MQ : MQMonitorQPasaMO71ETC
WMQ – Monitoring / Alerts
Surveillance globale
Surveillance détaillée
Alertes :
Warning -> Console EM
Incident -> Tetracall
Danger -> Push mail
21
WMQ - Sécurité
Droits des objets MQ : setmqaut et dspmqaut => Habilitations par user ou group sur les objets MQ droits PUT ou GET par user..
Mise en place du SSL -> voir procédure (certificats, CA, validité, magasin, etc)
Suppression de certains objets par défaut -> faille de sécurité.
Mise en place Firewall / DMZ
22
WMQ - Performances
• Mode Client VS Local• NPMSPEED(FAST) Channels but no commit• Persistence message ou pas• Log circulaire ou linéaire• Quid MQ version• SSL Algorithms• Size message• Machine/OS/HARDWARE
23
WMQ - Haute Disponibilité
SOLUTION 1: Serveur de secours
• Opérations – Déplacement de l’ IP avec IFCONFIG –a ou F5
• Points forts – Facilité de mise en oeuvre – Rapidité de la bascule – Pas ou peu de coopération nécessaire du QM partenaire
• Points faibles – Messages prisonniers
• Pas de service pendant la bascule sauf si F5
24
WMQ - Haute Disponibilité
SOLUTION 2 : Serveur de secours + disque partagé
• Opérations – Detach/Attach du disque externe– Déplacement de l’ IP l’– Démarrage de QMA sur serveur 2
• Points forts – Pas de messages prisonniers – Pas de RESET CHANNEL – Pas de coopération nécessaire du QM partenaire
• Points faibles – Le redémarrage de QMA sur S2 peut être long si beaucoup
de messa ges en instance messages
• Pas de service pendant la bascule
25
WMQ - Haute Disponibilité
SOLUTION 3 : solution 2 + cluster MQ si partenaire MQServer et non client MQ
• Opérations – Detach/Attach du disque externe– Déplacement de l’ IP l’– Démarrage de QMA sur serveur 2
• Points forts – Pas de messages prisonniers – Pas de RESET CHANNEL – Pas de coopération nécessaire du QM partenaire
• Points faibles – Mise en place et administration plus complexe – Coopération nécessaire du QM partenaire (même cluster
MQ)26
Questions ?
WMQ - Questions
Autres sujets :
WMQ – Sujets divers
Mise en place DLQMise en place de l’agent WilyGestion des ‘poison message’Failover avec F5, avec Cluster MQNomenclatureJMSAdmin ( Annuaire JNDI)QMName aliasListener.TCPInstallation / MigrationMise en place SSLExitsetc
Travaux pratiques :
1.Créer un Qmgr : QM12. l’auditer avec MO71
3. Déposer un message dans la file ‘QL.TEST’4.Vider la file ‘QL.TEST’
Chaque étape est validée par la suivante
WMQ – TP 1
Travaux pratiques :
Créer deux Qmgrs : QM1 & QM2Vous devez envoyer un message de QM1 vers la File QL.QM2
sur QM2 :
1. Via Point à Point (Qremote)2.Via un Cluster MQ (Qcluster)
Chaque étape est validée par la réception du message sur QM2
WMQ – TP 2