troubleshooting msmq
TRANSCRIPT
Prsentation MSMQDpannage
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 middlewareIntegre
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 scuritDirectory Service Directory Service
Queue Manager
Modle de communication (5)Sender
Apps
Les messages peuvent transiter par plusieurs serveursQueue 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 programmationApplications
COM+ Queued Components
MSMQ API & COM
MSMQ Services
Modle de programmationSend request Receive Process RespondResponse Queue. . . .
Request Queue
Confirm or reconcile
Pour accder MSMQ
4 fonctions de base (C API)MQOpenQueue, MQCloseQueue MQSendQueue, MQReceiveQueue
Fonctions complmentairesCreate,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 densembleCommunication asynchrone. Objets MSMQ ( files, msg) Architecture ( deps clients, routing) Audit et scurit
Communication asynchroneDonne 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 lAsynchroneDconnect 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 timoutsMaxTimeToReachQueue: 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 ManagerMaxTimeToReceive: 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 DTCSynchrone NB: MSDTC does not provide asynchronous distributed transactions
Mchanisme interne de MSMQ
Asynchrone
Architecture
MSMQ : architectureArchitecture 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)
ArchitectureMachine 1Application 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 CloseRecv C Sys
Close
Queue ManagerA B Sys
MSG Queues System
ArchitectureMachine 1Application 1 Application 2
Machine 2Application 3 Application 4
Open
Send
MSMQ API Recv CloseRecv C Sys
Close
Network
Open
MSMQ API Send Recv CloseSend Recv Sys D E
Close
Queue ManagerA B Sys
Queue ManagerSys F
MSG Queues
System
System
MSG Queues
Topologie rseau MSMQ
Le service dannuaireMSMQ 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 directM 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 workgroupAucun service dannuaire Restrictions :
Connectivit directe, pas de routage Cration et gestion de files prives Utilisation de certificats externes
MSMQ 3.0Plus 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 APIOpen 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 APIOpen Send Recv Close
Client Proxy MSMQ ServerClient 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
APIOpen 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 Sites Servers 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 msmq Computers msmq
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 () : 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 () : Type, label, quota, journal quota Cration : configuration ou API MSMQ Certificats utilisateur () : 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 messagesVrification 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 DpannageOutils 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 MSMQRecommandations Evaluation de la monte en charge Dpannage Disaster recovery
RecommandationsImplmentation 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 + < quotas queue Processor + %Processor Time < 90 %
MonitoringProcessor + %Processor Memory + %Committed Bytes in Use MSMQ Service + Sessions
Etapes du dpannage MSMQ1.
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 connectivitMqping Mqsender
Mqsender /f:direct=os:computer\queue /c:10 Mqsender /p:.\private$\queue /c:10 /t /trq /tbr /aqcr
MSMQ APIMsmq 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
BackupMSMQ Storage MSMQ Registry MSMQ Service et Driver Certificats
Utilitaire MQBackupNe 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