Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere...

30
Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ , MQ ou WMQ

Transcript of Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere...

Page 1: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

IntroductionIBM – WebSphere MQ

WMQ

05/2009EQITP - MIDDLEWARE

Assimilés : MQSeries, WebSphere MQ , MQ ou WMQ

Page 2: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - 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

Page 3: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 4: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 5: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 6: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 7: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 8: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 9: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 10: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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.

Page 11: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 12: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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.

Page 13: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 14: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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!

Page 15: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

WMQ - Architectures

• Standalone • Point-to-Point  • Hub and Spoke • Cluster MQ

Which ONE ?

15

Page 16: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 17: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 18: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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( )

Page 19: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 20: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

WMQ – Monitoring / Alerts

20

Solutions divers

PatrollSysloadNagiosShellIntroscope MQ : MQMonitorQPasaMO71ETC

Page 21: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

WMQ – Monitoring / Alerts

Surveillance globale

Surveillance détaillée

Alertes :

Warning -> Console EM

Incident -> Tetracall

Danger -> Push mail

21

Page 22: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 23: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 24: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 25: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 26: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 27: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

Questions ?

WMQ - Questions

Page 28: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 29: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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

Page 30: Introduction IBM – WebSphere MQ WMQ 05/2009 EQITP - MIDDLEWARE Assimilés : MQSeries, WebSphere MQ, MQ ou WMQ.

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