Vous êtes sur la page 1sur 68

Prsentation MSMQ

Dpannage

Prsent par Emmanuel Dreux

Agenda
Introduction. Vue

densemble. Dpannage. Rfrences.

Introduction

Modle de communication et de programmation.


Environnement

distribu. Connections fiables/non fiables. Garantie la dlivrance du message.

MSMQ technologie middleware


Integre

avec SQL Integre avec COM+ Integre avec BizTalk

Modle de communication (1)

Sender

Receiver

Apps

Apps

Modle de communication (2)


Sender Receiver

Apps Dependent Independent Server

Apps

Appel dune API dun client MSMQ

Modle de communication (3)


Sender Receiver

Apps

Apps

Queue Manager

Le message est accept par le QM et le send est termin Le QM dun client dpendant est sur le serveur MSMQ

Modle de communication (4)


Sender

Apps

Les messages sont transmis aux queues de destination par les QM

Receiver

Apps

Queue Manager

Les QM interrogent le service dannnuaire si besoin pour la MSMQ Server localisation et la MSMQ Server scurit
Directory Service Directory Service

Queue Manager

Modle de communication (5)


Sender

Apps

Les messages peuvent transiter par plusieurs serveurs


Queue Manager Queue Manager

Receiver

Apps

Queue Manager

Queue Manager

MSMQ Server Directory Service

MSMQ Server Directory Service

Modle de communication (6)


Sender

Mode Workgroup

Receiver

Apps

Apps

Queue Manager

Queue Manager

Modle de programmation
Applications

COM+ Queued Components

MSMQ API & COM

MSMQ Services

Modle de programmation
Send request Receive Process Respond
Response Queue
. . . .

Request Queue

Confirm or reconcile

Pour accder MSMQ

4 fonctions de base (C API)


MQOpenQueue, MQCloseQueue MQSendQueue, MQReceiveQueue

Fonctions complmentaires
Create,Delete Look up Set, Get proprits des queues Set, Get scurit des Queues

Fondation pour les objets COM MSMQ et les QC (Queued Components)

Sample dans MSDN

Vue densemble
Communication asynchrone. Objets MSMQ ( files, msg) Architecture ( deps clients, routing) Audit et scurit

Communication asynchrone
Donne la possibilit aux applications de communiquer de manire asynchrone

Type de communication traditionnel des applications : Synchrone


DCOM,

RPC, Canaux Nomms, etc.

MSMQ : Communication Asynchrone

Asynchrone (suite).
Apport de MSMQ et de lAsynchrone
Dconnect Htrogne Garantie de remise Routage Scurit Prise en charge des transactions Gestion de priorit

File de messages

Stockage logique des messages Herberge sur une machine donne Dfinie par un ensemble de proprits Associe avec des ACLs Type de files :

Publiques: publies dans lannuaire Prives: dfinies en local

Toutes sont manipules avec les mme fonctions.

File spciale

Journal

Source: messages sortant dune machine Cible: messages entrant dans une file

Lettre morte Lettre morte transactionnelle Administration: ACK/NACK Rapport: route du message Systme

Proprits des files


Label Type Instance ID Pathname Target journal Quota Base priority Transactional Privacy and authentication Creation and modification times

Format de nom des files

Permets dadresser une file dans plusieurs fonctions comme open et delete PUBLIC=QueueID[;JOURNAL] PRIVATE=MachineID\QueueNumber[;JOURNAL] DIRECT= TCP|SPX|OS:MachineAddress\ [PRIVATE$\]QueueName (uniquement po lenvoie sans routage) MACHINE= MachineID; JOURNAL|DEADLETTER|DEADXACT Ce nest pas une proprit dune file Retourn la cration dune file Obtenu par les fonctions de localisation Obtenu dans les messages (response, adm queue) Construit par lapplication

Message

Unit dinformation Texte ou binaire Peut tre crypt Contenu dfini par lapplication Dfini par un ensemble de proprits Taille limite 4 Mb

Proprits dun message


Body Label Delivery mode: express, recoverable, or transactional Priority Time-out to reach queue or be received Response and administration queues

Proprits dun message

Acknowledgement level: none, positive, negative Encryption Authentication Sent and arrived times Message ID Correlation ID Application defined

Utilisation des timouts


MaxTimeToReachQueue: Proprit du message qui determine combien de temps un message peut mettre pour atteindre la machine cible ReceiveTimeout: Paramtre pour le receveur qui determine combien de temps lapplication attends sur cette fonction Receiver

Sender

Apps Queue Manager


MaxTimeToReceive: Proprit du message qui dtermine combien de temps un message attends destination avant dexpirer.

Apps Queue Manager

Options de lecture

Reception

Lecture destructive Le message est supprim de la file Lecture non destructive Le message reste dans la file

Peek

Lecture synchrone / asynchrone Lecture du premier message ou utilisation de curseur

Message transactionnel

Peut tre inclus dans une transaction COM Assure que le message narrive quune fois Assure que les messages arrivent dans lordre Utilise un accus de reception

Message transactionnel

Utilisation de DTC
Synchrone NB: MSDTC does not provide asynchronous distributed transactions

Mchanisme interne de MSMQ

Asynchrone

Architecture

MSMQ : architecture
Architecture Topologie Les composants de MSMQ Utilisation de la base MQIS (MSMQ 1.0) Utilisation de lactive directory (MSMQ 2.0, 3.0 et 4.0)

Architecture
Machine 1
Application 1 Application 2

Les messages sont stocks dans des files dattente Les files sont gres par des gesionnaires de file (QM) Les applications accdent aux files dattente via des APIs simples

Open

Send

MSMQ API Recv Close


Recv C Sys

Close

Queue Manager
A B Sys

MSG Queues System

Architecture
Machine 1
Application 1 Application 2

Machine 2
Application 3 Application 4

Open

Send

MSMQ API Recv Close


Recv C Sys

Close

Network

Open

MSMQ API Send Recv Close


Send Recv Sys D E

Close

Queue Manager
A B Sys

Queue Manager
Sys F

MSG Queues

System

System

MSG Queues

Topologie rseau MSMQ

Le service dannuaire
MSMQ 1.0 : base SQL MQIS MSMQ 2.0, 3.0, 4.0 :

utilisation

de lactive directory Mode Workgroup

Lentreprise MSMQ Les sites MSMQ Les machines Les messages Les files dattente

MSMQ 2.0 et Active Directory

MSMQ 2.0 utilise AD pour stocker les objets MSMQ


Configuration de lentreprise
Entreprise

== fort

Informations de routage Configuration MSMQ par machine Queues publiques Certificat utilisateur Site tranger et information sur les machines

Les messages ne sont pas stocks dans lAD

MSMQ 2.0 et la fort

Une fort est un ensemble dun ou plusieurs arbres qui ne forment pas un espace de nom contigu. Les arbres partagent un schema et les serveurs GC fort == entreprise MSMQ Un GC a la vue sur la fort Support inter fort : envoie de message avec le format direct
M icrosoft .Com S oftIm age .Com

P S .M B icrosoft .Com

Finance .S oftIm age

.Com

NTDev .P S .M B icrosoft

.Com

MSMQ 2.0 et les Sites

Site Windows 2000 : sous reseau IP qui peut communiquer rapidement Le reseau MSMQ est divis en sites windows 2000

MSMQ ne dfini pas de site additionnel, sauf pour les sites tranger et la migration

Le site est une partition qui reflte le reseau physique, il est Indpendant de la topologie de domaines

MSMQ utilise les sites pour :


Mcanisme de routage Dcouverte des serveurs MSMQ DC

Rsolution des serveurs MSMQ 2.0 DS

Le client DS MSMQ accde toujours un serveur MSMQ DS dans son site


DC du domaine de la machine Puis : autres DC MSMQ DS client (D1)

DC1,D1 DC2,D1 DC3,D2

DC4,D 2

Dploiement MSMQ 2.0

MSMQ doit tre install sur plusieurs DC par site


Redondance sur chaque site Pas de prrequis pour avoir MSMQ DS dans chaque domaine mais !

Configuration recommande -> un serveur MSMQ/DC dans chaque domaine

MSMQ/GC est requis pour lajout de serveur MSMQ dans le domaine

Un GC par site Prrequis supplmentaire pour la compatibilit ascendante Le rseau windows 2000 (kerberos, DNS) doit tre fonctionnel

MSMQ 2.0 mode workgroup


Aucun service dannuaire Restrictions :

Connectivit directe, pas de routage Cration et gestion de files prives Utilisation de certificats externes

MSMQ 3.0
Plus besoin dinstaller MSMQ sur des DC, sauf pour le support de clients MSMQ 2.0 ( installs sur des Windows 2000). MSMQ dialogue maintenant nativement avec lAD.

Serveur MSMQ

Backbone du reseau MSMQ


Application 1

Application 2

Service msmq Hberge les queues Stocke les messages Envoie et recoit les messages

MSMQ Server API


Open Send Recv Close Client Proxy Server Queue Manager A B C Directory Server Routing Server Sys Sys

Accs a AD Service de routage Service de cluster Support pour les clients dpendants

Client dpendant MSMQ

Envoie et recoit les messages Pas de stockage local des messages Repose sur un serveur MSMQ Facilit dadministration Scnario connect LAN

Applications

MSMQ Client API


Open Send Recv Close

Client Proxy MSMQ Server


Client Proxy Server Queue Manager A B C Directory Server Routing Server Sys Sys

Client indpendant MSMQ

Envoie et recoit les messages Peut stocker des messages Fonctionne en mode dconnect Ne supporte pas de client Ne fonctionne pas comme routeur

Application 1

Application 2

MSMQ Workstation

API
Open Send Recv Close Queue Manager A B C Sys Sys

Messages stockage (1)

Rappel :

Compos de corps + entte Taille 4 Mo Cre par lapplication (contenu, proprits)

Fichiers multiples de 4 Meg Format propritaire (Q174307) Overhead sur le rseau : ~150 octets Fichiers mapps en mmoire

Limites du stockage Les quotas Passage en low memory mode

Messages stockage (2)

Messages stockage (3)

Messages stockage (4)

Rpertoire msmq\storage Fichiers (r,p,j,l).mq : messages Pas de relation entre files et fichiers QMlogfile : fichier circulaire de lhistorique du traitement de messages MQInseq.lg1/2, MQTrans.lg1/2 : Fichiers dtat Rpertoire msmq\storage\lqs Fichier texte dcrivant les proprits des queues nnnnnnnn.hhhhhhhh : Files dattentes prives aaaaaaaabbbbccccddddeeeeeeeeeeee.hhhhhhh h : Cache des files dattentes publiques heberges sur la machine

Objets MSMQ dans lAD (1)

snap-in AD Sites and Services :


Configuration de lentreprise:

Services MsmqServices Services MsmqServices <Msmq routing objects> Sites <SiteName>Servers <serverName> Msmq Settings

Information de routage (si configur):

Sections supplmentaires pour RS et DS

snap-in AD Users and Computers :


Configuration MSMQ spcifique une machine:


Computers <computerName> msmq Computers <computerName> msmq <queueName>

Files dattente publiques:

Certificats utilisateur:

Objets MSMQ dans lAD (2)

Le snap-in Local Computer Management snap-in permet dadministrer :


Files dattente publiques Files dattente prives File dattente sortante

Permets de grer en local et distant Outil dadministration en mode workgroup

Objets MSMQ dans lAD (3)

Objets de configuration de lentreprise (msmqServices) : TTL des messages par defaut, scurit pour le support des clients NT Cration: DCPROMO ATTENTION NE JAMAIS SUPPRIMER Information de routage (<routing-link-name>) : Sites connects, passerelles inter-site, cout des liens Cration : configuration par ladmin Configuration MSMQ par machine MSMQ (msmq) : Quota, journal quota, cl dencryption publique, type de service, Cration : Lors de linstallation (sauf pour un client dpendant) Au moment du rattachement au domaine

Objets MSMQ dans lAD (4)

Files dattente publiques (<queue-name>) : Type, label, quota, journal quota Cration : configuration ou API MSMQ Certificats utilisateur (<user-name>) : Cl publique Creation: Installation, premier logon dun utilisateur, renouvellement des certificats

Limit aux utilisateurs du domaine

Les ACLs des objets comprennent les droits tendus MSMQ Les objets peuvent tre manipuls par ADSI/LDAP (MSMQ nest pas inform)

Utilisation du GC

Les donnes MSMQ sont rpliques sur le GC Authentification des messages entre domaine Localisation des files de messages entre domaine MQLocateQueue/MSMQQuery.LookupQueue fait TOUJOURS rfrence au GC Les objets de configuration (entreprise, site) font rfrence au GC Pour les autres oprations: Essai dun DC Puis si lobjet nest pas trouv, contact du GC

Architecture DS MSMQ

application MSMQ (DS client) (mqdscli.dll) service MSMQ (DS client) (msqdscli.dll)

RPC

service DS MSMQ (on DC or GC) (mqdssrv.dll + mqads.dll)

Trafic MSMQ-DS (1)


Boot : vrification de linstallation et mise jour du cache des files dattentes publique Appel des fonctions suivantes :

MSMQQueueInfo.Open MSMQQueueInfo.Create MSMQQuery.LookupQueue MSMQQueueInfo.Pathname MSMQApplication.RegisterCertificate

Trafic MSMQ-DS(2)

Transmission des messages :

MSMQ rafraichit les informations de routage en cas dchec de connection au saut suivant

Reception des messages


Vrification de donne de la queue Autorisation Authentification

Audit et scurit.
Queue journal Machine journal Dead-letter queue Access Control List-based security Authentication Encryption

Administration Dpannage
Outils dadministation MSMQ Dpannage.

Outils dadministration MSMQ

Computer management snap-in

Gestion des files et des messages

Active Directory Users and Computers snapin

Gestion des machines, files et messages Gestion du routage et des sites etrangers Gestion des certificats et des cls de cryptage

Active Directory Sites and Services snap-in

Message Queuing control panel

Taches administratives dtailles dans laide en ligne

Administation Dpannage

Exploitation de MSMQ
Recommandations Evaluation de la monte en charge Dpannage Disaster recovery

Recommandations
Implmentation de quotas Surveillance de lespace disque Surveillance des files Surveillance des files lettre morte Disposer dun plan de backup et dune stratgie de restauration Suivre les SP et les hotfixes

Suivi de la monte en charge

Mise en place dalertes :


MSMQ services total bytes in all queues < quota machine MSMQ Queue + Messages in Queue + Computer Queues > 1 MSMQ Queue + Bytes in Queue + <application queues> < quotas queue Processor + %Processor Time < 90 %

Monitoring
Processor + %Processor Memory + %Committed Bytes in Use MSMQ Service + Sessions

Etapes du dpannage MSMQ


1.

1.

Utilisation des outils du systme Local Computer MSMQ management snap-in Fonctionne en local ou distant Permets dInspecter les Outgoing Queue Permets de monitorer les queues journal et deadletter Journal dvenements Perfmon sur les objet MSMQ (volumtrie), mqsvc (utilisation des ressources) Vrification de la connectivit rseau ping, mqping NetMon (parsers msmq) Recherche des incidents connus (MSDN)

Etapes de dpannage

Event Log Console MSMQ MQLOG


Creation dun fichier de log des erreurs Donne un status sur ltat gnral de MSMQ, permets de fixer des corruptions du storage

TMQ

Mqsender et Mqreceiver : tests denvoi / rception de messages.

Outil : MQLOG

MSMQ dispose dun enregistrement derreur

Mqlog [ on | off ] %windir%\debug\msmq.log


Bas sur une cl de registre Le log montre uniquement les erreurs, ce nest pas un fichier de trace Possibilit dactiver le log cyclique. (Ncessite analyse par Microsoft).

Outil : TMQ

Shell TMQ et des dlls de diagnostic State: safe general diagnostics inspects MSMQ state/configuration Site: verifies MSMQ site/server data Reports/compares/reconciles site/server data from NT, registry, DS Sock: verifies session between 2 machines Closely simulates MSMQ code with additional tracing. Store: inspects MSMQ storage Can fix checkpoint integrity problems Active: lists active queues Adds to mmc\local admin, enables EOD-resend Try: generic mechanism to send/receive MSMQ messages

Autres outils

Console MSMQ Permet de dterminer o sont coincs les messages : la source, en attente dun ack etc. DeadLetter Queues MSMQ NETMON parser analyse des change rseau MSMQ MQSender et MQReceiver Permet de tester lenvoi et rception de messages entre 2 ordinateurs, ou sur le mme.

Tests connectivit
Mqping Mqsender

Mqsender /f:direct=os:computer\queue /c:10 Mqsender /p:.\private$\queue /c:10 /t /trq /tbr /aqcr

MSMQ API
Msmq api + tools en ligne de commande. Pause / resume queue. Purge queue. List active queues. Display queues properties.

La mmoire et les quotas

Mappage de tous les fichiers de message en mmoire ->limite de lespace dadressage (plus vrai en 2003) Utilisation de 60 octets de paged pool par message (allocation interne) -> limite du nombre de messages MSMQ passe en low memory mode si

Recommandations

80% de la paged pool ou non paged pool est utilise Lespace dadressage est satur Lespace disque est satur

Connatre les limites de larchitecture : MSMQ nest pas un systme de stockage de donnes Mise en place de quotas et dalerte Dmarrer MSMQ avant les services applicatifs

DRP MSMQ

Backup
MSMQ Storage MSMQ Registry MSMQ Service et Driver Certificats

Utilitaire MQBackup
Ne sauvegarde pas objets de lAD Ne sauvegarde pas Certificats. Ne sauvegarde pas messages Express

Rfrences

MSMQ FAQ MSMQ Best Practices MSMQ Home Page

http://download.microsoft.com/download/F/C/9/FC9989A2-DA75-4D96-B

http://download.microsoft.com/download/F/C/9/FC998

http://www.microsoft.com/windowsserver2003/techno

MgmtInfo

http://support.microsoft.com/kb/242471