Accéder correctif : vous ne pouvez pas aux informations sur messages dans les messages de base de données ou suivi MessageBox dans vos archives dans BizTalk Server 2004

Traductions disponibles Traductions disponibles
Numéro d'article: 838454 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Symptômes

Vous pouvez constater que vous souhaitez accéder les messages de suivi dans la base de données Microsoft BizTalk MessageBox ou dans vos archives. Permet d'énumérer la liste des messages et pour récupérer contextuel et la charge utile des données concernant des messages individuels n'était pas offerte dans Microsoft BizTalk Server 2004.

Ce correctif logiciel ajoute le nouvel objet MessageArchive . L'objet MessageArchive expose la capacité à récupérer une énumération sur le corps de message suivi dans la base de données MessageBox ou dans une base de données personnalisé archive.

note Ce correctif est inclus dans Microsoft BizTalk Server 2004 Service Pack 1.

Résolution

Informations sur le service pack

Pour résoudre ce problème, procurez-vous le dernier service pack Microsoft BizTalk Server 2004. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
888751 Comment obtenir le dernier pack de service BizTalk Server 2004

Informations sur le correctif

Un correctif est disponible auprès de Microsoft. Toutefois, ce correctif est conçu pour corriger le problème décrit dans cet article. Appliquer ce correctif uniquement aux systèmes rencontrant ce problème spécifique. Ce correctif peut subir des tests supplémentaires. Par conséquent, si vous n'êtes pas gravement touché par ce problème, nous vous recommandons d'attendre la prochaine mise à jour logicielles qui contiendra ce correctif.

Si le correctif est disponible pour le téléchargement, il est une section « téléchargement correctif disponible » en haut de cet article de la base de connaissances. Si cette section n'apparaît pas, contactez le service clientèle Microsoft et de support pour obtenir le correctif.

note Si des problèmes supplémentaires se produisent ou si n'importe quel dépannage est nécessaire, vous devrez peut-être créer une demande de service distincte. Les coûts habituels du support technique s'appliqueront aux autres questions et problèmes non traités par ce correctif spécifique. Pour une liste complète des Microsoft client service et support numéros de téléphone ou pour créer une demande de service distincte, reportez-vous au site de Web Microsoft suivant :
http://support.microsoft.com/contactus/?ws=support
note L'écran de « téléchargement correctif disponible » affiche les langues pour lesquelles le correctif est disponible. Si vous ne voyez pas la langue, il est car un correctif logiciel n'est pas disponible pour cette langue.

Conditions préalables

Aucune condition préalable n'est requise

Demande de redémarrage

Vous ne devrez pas redémarrer votre ordinateur après avoir appliqué ce correctif

Informations sur le remplacement de correctif

Ce correctif n'en remplace tout autre

Informations de fichier

La version anglaise de ce correctif dispose les attributs de fichier (ou attributs de fichier version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, il est convertie en heure locale. Pour connaître le décalage entre l'heure UTC et l'heure locale, utilisez l'onglet Fuseau horaire dans l'élément Date et heure du Panneau de configuration.
   Date        Time    Version     Size       File name
   --------------------------------------------------------------------------------------
   08-Jul-2004  22:15  3.0.5320.0    144,896  Btshttpreceive.dll
   08-Jul-2004  22:15  3.0.5320.0  1,026,048  Btsmsgcore.dll
   08-Jul-2004  22:53  3.0.5320.0     32,768  Microsoft.biztalk.cachingservice.dll
   08-Jul-2004  22:50  3.0.5320.0    221,184  Microsoft.biztalk.flatfileextension.dll
   08-Jul-2004  22:48  3.0.5320.0    729,088  Microsoft.biztalk.globalpropertyschemas.dll
   08-Jul-2004  22:48  3.0.5320.0     69,632  Microsoft.biztalk.httptransport.dll
   08-Jul-2004  22:42  3.0.5320.0     77,824  Microsoft.biztalk.messageboxom.dll
   08-Jul-2004  22:50  3.0.5320.0     49,152  Microsoft.biztalk.messaging.dll
   08-Jul-2004  22:53  3.0.5320.0    217,088  Microsoft.biztalk.pipeline.dll
   08-Jul-2004  21:46                145,598  Msgboxlogic.sql
   08-Jul-2004  21:46                 12,158  Msgbox_tracking_schema.sql

note En raison des dépendances de fichiers, le correctif plus récent contenant ces fichiers peut également contenir des fichiers.

Statut

Microsoft a confirmé que c'est un problème dans les produits Microsoft répertoriés dans la section « S'applique à ». Ce problème a été corrigé dans BizTalk Server 2004 Service Pack 1.

Plus d'informations

Comment faire pour archiver les données du corps du message

Vous pouvez référencer le fichier Microsoft.BizTalk.MessageBoxOM.dll pour archiver les données du corps de message dans les tables Tracking_Spool1 et Tracking_Spool2 dans la base de données MessageBox. Pour ce faire, procédez comme suit :
  1. Référence le fichier Microsoft.BizTalk.MessageBoxOM.dll. Le fichier Microsoft.BizTalk.MessageBoxOM.dll se trouve dans le Global Assembly Cache (GAC). Vous ne pouvez pas ajouter une référence à un composant qui se trouve dans le GAC dans projets Visual Studio .NET 2003. Pour référencer le fichier Microsoft.BizTalk.MessageBoxOM.dll dans un projet Visual Studio .NET 2003, appliquez l'une des méthodes suivantes :
    • Méthode 1: extraire le fichier Microsoft.BizTalk.MessageBoxOM.dll dans le GAC

      Pour extraire le fichier Microsoft.BizTalk.MessageBoxOM.dll dans le cas, exécutez la commande suivante à partir d'une invite de commandes. Dans cette commande, DestinationPath représente un emplacement de fichier sur le disque dur. Par exemple, vous pouvez utiliser la commande suivante pour extraire le fichier Microsoft.BizTalk.MessageBoxOM.dll au dossier qui contient les fichiers de votre projet Visual Studio .NET 2003 :
      copie %systemroot%\assembly\GAC\Microsoft.BizTalk.MessageBoxOM\3.0.1.0__31bf3856ad364e35\Microsoft.BizTalk.MessageBoxOM.dll DestinationPath
    • 2: modifiez manuellement le fichier de projet de Visual Studio .NET 2003

      Pour ajouter une référence à un composant qui se trouve dans le cas, modifiez manuellement le fichier de projet de Visual Studio .NET 2003 dans un éditeur de texte. Par exemple, les fichiers .csproj et .btproj sont des fichiers de projet. Ajouter l'exemple de code à l'élément de référence dans le fichier projet.
      Name = "Microsoft.BizTalk.MessageBoxOM"
      AssemblyName = "Microsoft.BizTalk.MessageBoxOM"
      HintPath = "<SystemRoot>\assembly\GAC\Microsoft.BizTalk.MessageBoxOM\3.0.1.0__31bf3856ad364e35\Microsoft.BizTalk.MessageBoxOM.dll"
  2. Créer une application console dans Visual Studio .NET 2003. Puis, ajoutez les références aux composants suivants dans l'application de console :
    • Microsoft.BizTalk.messageboxom.dll

      note Ajouter une référence au fichier Microsoft.biztalk.messageboxom.dll uniquement si vous extrayez le fichier à un emplacement sur le disque dur dans l'étape 1.
    • \Microsoft 2004\Microsoft.BizTalk.Messaging.dll BizTalk
    • \Microsoft 2004\Microsoft.BizTalk.Pipeline.dll BizTalk
    • System.XML
  3. Ajoutez du code à l'application de console qui vous permet d'archiver les données du corps du message. Ensuite, compilez l'application. Par exemple, utiliser code semblable à l'exemple de code Microsoft Visual C#.
    using System;
    using System.IO;
    using Microsoft.BizTalk.Message.Interop;
    using Microsoft.BizTalk.MessageBoxOM;
    using System.Collections;
    using System.Diagnostics;
    
    namespace ConsoleApplication1
    {
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class Class1
    {
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    MessageArchive archive = new MessageArchive();
    archive.ConnectionString = "Persist Security Info=False;Integrated Security=SSPI;database=BizTalkMsgboxDb;server=."
    
    foreach (IBaseMessage msg in archive.Messages)
    {
    int cnt = msg.PartCount;
    UInt64 lSize;
    bool fImplemented;
    msg.GetSize(out lSize, out fImplemented);
    //Trace.WriteLine("Message ID: " + msg.MessageID.ToString());
    //Trace.WriteLine("Message Size: " + lSize.ToString());
    Console.WriteLine("Message ID: " + msg.MessageID.ToString());
    Console.WriteLine("Message Size: " + lSize.ToString());
    String partName;
    IBaseMessagePart part = msg.GetPartByIndex(0, out partName);
    Stream data = part.Data;
    string contentType = part.ContentType;
    string charset = part.Charset;
    
    
    //byte[] arr = new byte[data.Length];
    //data.Read(arr, 0, (int)data.Length);
    //file.Write(arr, 0, (int)data.Length);
    
    FileStream file = new FileStream(@"<full path of where you want to store the tracked messages>\" + msg.MessageID + ".xml", FileMode.Create);
    
    byte[] arr = new byte[1024];
    int bytesRead = 0;
    while ( (bytesRead = data.Read(arr, 0, 1024) ) > 0) 
    {
    file.Write(arr, 0, bytesRead);
    if (bytesRead < 1024)
    break;
    }
    
    file.Close();
    
    }
    
    archive.Dispose(); 
    }
    }
    }
  4. Exécutez l'application de console. Lorsque vous exécutez l'application de console, l'application de console copie les données du corps du message suivi de la table inactive dans la base de données MessageBox. La table inactive est la table Tracking_Spool1 ou la table Tracking_Spool2 . L'objet MessageArchive ne peut pas accéder la table active ;

    Par défaut, la table Tracking_Spool1 est la table active. Par conséquent, aucune donnée n'est retournée la première fois que vous exécutez l'application de console. Pour vous Tracking_Spool2 table de la table active, exécuter le travail TrackingSpool_Cleanup_BizTalkMsgBoxDb dans SQL Server.

    note Par défaut, le travail TrackingSpool_Cleanup_BizTalkMsgBoxDb est désactivée. Le travail TrackingSpool_Cleanup_BizTalkMsgBoxDb supprime les données du corps du message.

    Après avoir exécuté le travail TrackingSpool_Cleanup_BizTalkMsgBoxDb, exécutez l'application console pour archiver les données de corps du message dans la table Tracking_Spool1 .

    note Étant donné que le travail TrackingSpool_Cleanup_BizTalkMsgBoxDb purge des données du corps du message de l'inactivité, vous devez exécuter l'application de console avant d'exécuter à nouveau le travail TrackingSpool_Cleanup_BizTalkMsgBoxDb

    Par exemple, procédez comme suit pour archiver les données de corps du message dans la base de données MessageBox :
    1. Établir une planification pour l'archivage des données du corps du message. Par exemple, si vous exécutez le travail TrackingSpool_Cleanup_BizTalkMsgBoxDb une fois toutes les deux semaines, vous aurez deux semaines de données pour les données corps du message de suivi.
    2. Exécuter le travail TrackingSpool_Cleanup_BizTalkMsgBoxDb. La première fois que vous exécutez ce travail, la table Tracking_Spool2 est en la table active. La table Tracking_Spool2 est vide. Par conséquent, aucune donnée n'est perdue.
    3. Exécutez l'application console pour archiver les données de corps du message qui sont stockées dans la table Tracking_Spool1 .
    4. Lorsque vous souhaitez archiver à nouveau les données du corps du message, exécuter le travail TrackingSpool_Cleanup_BizTalkMsgBoxDb. Ce travail purge les données qui se trouve dans la table Tracking_Spool1 et marque la table Tracking_Spool1 comme active.
    5. Exécutez l'application console pour archiver les données de corps du message qui sont stockées dans la table Tracking_Spool2 .
    6. Répétez les étapes 4 a-4e conformément à la grille qui établissent en étape 4 a.
    Pour plus d'informations sur le travail TrackingSpool_Cleanup_BizTalkMsgBoxDb, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
    907661 Les tables Tracking_Spool1 ou Tracking_Spool2 de la base de données BiztalkMsgBoxDb deviennent très volumineuses dans BizTalk Server 2004

Interfaces d'objet MessageArchive

L'objet MessageArchive implémente les interfaces suivantes :
    public int CommandTimeout
    • description : Avec cette interface, l'utilisateur peut obtenir et définir le délai associé avec les connexions SQL sous-jacente.
    • limite conditions : Le délai d'attente doit être plus ou égal à 0. Le délai maximal sera une heure. la valeur 0 indique un délai infini.
    • cas d'erreur : Valeur non valide génère une exception ArgumentOutOfRangeException .

    public string ConnectionString
    • description : Avec cette interface, l'utilisateur peut obtenir et définir la chaîne de connexion la base de données archive sous-jacente.
    • limite conditions : La chaîne ne doit pas être nulle et ne doit pas être une chaîne vide. Après avoir défini la connexion une fois avec succès, vous ne pouvez pas redéfinissez la propriété connexion.
    • cas d'erreur : Une chaîne nulle ou zéro chaîne de longueur (0) provoque une exception exception d'argument . Définir la propriété une fois qu'il a déjà été définie provoque une exception de InvalidOperationException . Si la chaîne n'est pas une connexion valide, SQL génère une exception de connexion.

    public int BatchSize
    • description : Avec cette interface, l'utilisateur peut obtenir et définir la taille des feuilles de données à extraire de la base de données. Cette action empêche le serveur BizTalk d'utiliser trop de mémoire à tout moment. La valeur par défaut est 50.
    • limite conditions : Le BatchSize doit être plus ou égal à 0. BatchSize de 0 signifie que l'objet MessageArchive doit extraire toutes les données, le nombre maximal de correspondances. Le BatchSize maximale est 1 000, car il est inutile pour charger plusieurs dans la mémoire.
    • cas d'erreur : BatchSizes en dehors de la plage acceptable génèrent une exception ArgumentOutOfRangeException .

    public int MaxMatches
    • description : Avec cette interface, l'utilisateur peut obtenir et définir le nombre maximal de messages qui proviennent de l'énumération. Cette interface diffère de la BatchSize interface en que MaxMatches est le nombre total de messages avant la méthode MoveNext de l'énumération renvoie false.
    • limite conditions : MaxMatches doit être plus ou égal à 0. Une valeur de 0 signifie récupérer tous les messages.
    • cas d'erreur : Si la valeur de MaxMatches est inférieur à 0, une exception ArgumentOutOfRangeException est générée.

    public DateTime From
    • description : Avec cette interface, l'utilisateur pouvez filtrer l'ensemble des messages qu'ils souhaitez extraire selon une certaine plage de date et heure. Définir cette propriété indique que l'objet MessageArchive doit récupérer uniquement les messages qui sont publiés à ou après la date spécifiée et l'heure.
    • limite conditions : Si l'heure Until a déjà été spécifiée, l'heure de début doit être égal à ou avant l'heure Until.
    • cas d'erreur : Si l'heure de début est postérieure à l'heure Until, une exception exception d'argument est générée.

    public DateTime Until
    • description : Avec cette interface, l'utilisateur pouvez filtrer l'ensemble des messages qu'ils souhaitez extraire selon une certaine plage de date et heure. Définir cette propriété indique l'objet MessageArchive doit récupérer uniquement les messages qui sont publiés à ou avant l'heure spécifiée.
    • limite conditions : Si l'heure de début a déjà été spécifiée, l'heure Until doit être égal à ou après l'heure de début.
    • cas d'erreur : Si l'heure Until est avant l'heure de début, une exception exception d'argument est générée.

    public IEnumerable Messages
    • description : Avec cette interface, l'utilisateur peut récupérer une interface qui ils peuvent énumérer tous les messages. Une énumération est utilisée car aucune propriété Count n'est fournie.
    • limite conditions : Cette interface prend sans paramètres.
    • cas d'erreur : Si la connexion n'a pas encore été définie, une exception InvalidOperationException est générée. Toutes les autres erreurs sont dues aux problèmes de connectivité SQL.
    • L'énumération des messages renvoie des objets de type ArchivedMessage. Ces objets peuvent être convertis en interfaces IBaseMessage. Pour plus d'informations IBaseMessage, consultez la documentation en ligne Microsoft BizTalk Server 2004.

Toutes les fonctions suivantes ou méthodes ne sont pas prises en charge par l'objet MessageArchive et génèrent une exception InvalidOperationException exceptions :
  • public void AddPart(string partName, IBaseMessagePart part, [MarshalAs(UnmanagedType.Bool)] bool bBody)
  • public IBaseMessagePart GetPart(string partName)
  • public void RemovePart(string partName)
  • public Exception GetErrorInfo()
  • public void SetErrorInfo(Exception errInfo)
Certaines nouveau propriétés que vous pouvez utiliser de solutions de BizTalk Server sont également incluses dans ce correctif :
  • La propriété AdapterReceiveCompleteTime est alimentée lorsqu'un message est reçu de la carte et avant la réception pipeline commence traitement du message.
  • La propriété AdapterTransmitBeginTime est remplie avant que la carte commence à transmettre le message.
  • La propriété AdapterTransmitCompleteTime indique une fois que l'adaptateur transmet correctement le message. Cette propriété n'est pas prise en charge pour BizTalk Message Queuing carte (MSMQT).
Ces propriétés appartiennent à l'espace de noms suivant :
http://schemas.microsoft.com/BizTalk/2003/messagetracking-properties
tous les trois propriétés ont tapez VT_DATE (ou DateTime).

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
824684 Description de la terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft

Propriétés

Numéro d'article: 838454 - Dernière mise à jour: vendredi 29 décembre 2006 - Version: 4.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft BizTalk Server 2004 Standard Edition
  • Microsoft BizTalk Server 2004 Partner Edition
  • Microsoft BizTalk Server 2004 Enterprise Edition
  • Microsoft BizTalk Server 2004 Developer Edition
Mots-clés : 
kbmt kbautohotfix kbbiztalk2004-2006swept kbbiztalk2004sp1fix kbbiztalk2004presp1fix kbbug kbfix kbhotfixserver kbqfe KB838454 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 838454
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com