Oprava: Při nemůže získat přístup k informacím o zprávách MessageBox databáze nebo sledování zpráv v archivy v BizTalk Server 2004

Překlady článku Překlady článku
ID článku: 838454 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Chcete získat přístup sledované zprávy v databázi Microsoft BizTalk MessageBox nebo vaše archivy může najít. Schopnost výčet prostřednictvím seznamu zpráv a načíst kontextové a data datové části o jednotlivých zpráv nebyla v Microsoft BizTalk Server 2004.

Tato oprava hotfix přidá nový objekt MessageArchive. Objekt MessageArchive poskytuje možnost načíst výčtu přes texty zpráv sledované v databázi MessageBox nebo v databázi vlastní archivu.

Poznámka: Tato oprava hotfix je zahrnuta v Microsoft BizTalk Server 2004 Service Pack 1.

Řešení

Informace o aktualizaci Service Pack

Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro Microsoft BizTalk Server 2004. Další informace naleznete následujícím článku znalostní databáze Microsoft Knowledge Base:
888751Jak získat nejnovější aktualizaci service pack pro BizTalk Server 2004

Informace o opravě hotfix

K dispozici je podporovaná oprava hotfix od společnosti Microsoft. Tato oprava hotfix je však určena pouze k opravě problému popsanému v tomto článku. Použijte tuto opravu hotfix pouze u systémů, kde dochází k tomuto konkrétnímu problému. Tato oprava hotfix může být dále testována. Pokud Vás tento problém závažně nepostihuje, doporučujeme počkat na další aktualizaci softwaru, která bude tuto opravu hotfix obsahovat.

Pokud je oprava hotfix k dispozici ke stažení, v horní části tohoto článku je sekce "Hotfix stažení k dispozici". Pokud tento oddíl nevidíte, obraťte se na Technickou podpora společnosti Microsoft pro získání opravy hotfix.

Poznámka: Pokud vyskytnout další problémy nebo jakékoli řešení potíží je vyžadován, pravděpodobně budete muset vytvořit zvláštní požadavek na službu. Výdaje na technickou podporu se týkají dalších otázek a problémů, které nelze vyřešit pomocí této opravy konkrétní opravy hotfix. Navštivte následující web společnosti Microsoft pro získání telefonního čísla na Zákaznické centrum, nebo pokud chcete vytvořit samostatnou žádost o podporu:
http://support.microsoft.com/contactus/?ws=support
Poznámka: Zobrazí formulář "Hotfix stažení k dispozici" jazyky, pro které je oprava hotfix k dispozici. Pokud váš jazyk není zobrazen, oprava hotfix není k dispozici pro daný jazyk.

Požadavky

Neexistují žádné požadavky

Požadavek na restartování

Po instalaci této opravy hotfix není třeba počítač restartovat

Informace o nahrazení opravy hotfix

Tato oprava Hotfix nenahrazuje žádné další opravy Hotfix

INFORMACE O SOUBORECH

Anglická verze této opravy hotfix má následující (nebo pozdější) atributy souborů. Data a časy jednotlivých souborů jsou uvedeny ve formátu UTC (Coordinated Universal Time). Pokud zobrazíte informace o souboru, bude převedena na místní čas. Rozdíl mezi místním ČASEM a najít, použijte kartu časové pásmo v položce Datum a čas v ovládacím.
   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

Poznámka: Vzhledem k závislostem souborů může nejnovější oprava hotfix, která obsahuje tyto soubory obsahovat také další soubory.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.Tento problém byl opraven v BizTalk Server 2004 Service Pack 1.

Další informace

Jak archivovat data tělo zprávy

Můžete odkazovat souboru Microsoft.BizTalk.MessageBoxOM.dll archivovat data tělo zprávy v tabulkách v databázi MessageBox Tracking_Spool1 a Tracking_Spool2. Postupujte takto:
  1. Odkaz souboru Microsoft.BizTalk.MessageBoxOM.dll. Microsoft.BizTalk.MessageBoxOM.dll soubor je umístěn v Global Assembly Cache (GAC). Nelze přidat odkaz na součást, která je umístěna v GAC v projekty Microsoft Visual Studio .NET 2003. Chcete-li odkazovat na soubor Microsoft.BizTalk.MessageBoxOM.dll v projektu Visual Studio .NET 2003, použijte jednu z následujících metod:
    • Metoda 1: extrahovat soubor Microsoft.BizTalk.MessageBoxOM.dll z GAC

      K extrahování souboru Microsoft.BizTalk.MessageBoxOM.dll z GAC spusťte následující příkaz příkazového řádku. V tomto příkazu představuje DestinationPath umístění souboru na pevném disku. Můžete například použít následující příkaz k extrahování souboru Microsoft.BizTalk.MessageBoxOM.dll do složky obsahující soubory projektu Visual Studio .NET 2003:
      kopie %systemroot%\assembly\GAC\Microsoft.BizTalk.MessageBoxOM\3.0.1.0__31bf3856ad364e35\Microsoft.BizTalk.MessageBoxOM.dll DestinationPath
    • Metoda 2: ručně upravte soubor projektu Visual Studio .NET 2003

      Přidat odkaz na součást, která je umístěna GAC ručně upravit soubor projektu Visual Studio .NET 2003 v textovém editoru. Například soubory .csproj a .btproj jsou soubory projektu. Přidat následující příklad kódu prvek odkaz v souboru projektu.
      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. Vytvoření aplikace konzoly v Visual Studio .NET 2003. Aplikace konzoly potom přidat odkazy na následující součásti:
    • Microsoft.BizTalk.messageboxom.dll

      Poznámka: Odkaz na soubor Microsoft.biztalk.messageboxom.dll přidat pouze extrahujte soubor do umístění na pevném disku v kroku 1.
    • \Microsoft 2004\Microsoft.BizTalk.Messaging.dll BizTalk Server
    • \Microsoft 2004\Microsoft.BizTalk.Pipeline.dll BizTalk Server
    • System.Xml
  3. Přidat kód aplikace konzoly, který umožňuje archivovat data tělo zprávy. Potom kompilace aplikace. Například použít kód podobná následující příklad kódu 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. Spuštění aplikace konzoly. Při spuštění aplikace konzoly aplikace konzoly načítá data tělo sledované zprávy z neaktivní tabulky v databázi MessageBox. Neaktivní tabulka je tabulka Tracking_Spool1 nebo tabulce Tracking_Spool2. Objekt MessageArchive nelze získat přístup k aktivní tabulce.

    Ve výchozím nastavení je tabulka Tracking_Spool1 aktivní tabulky. Proto vrácena žádná data je při prvním spuštění aplikace konzoly. Aby Tracking_Spool2 tabulky aktivní tabulky, spusťte úlohu TrackingSpool_Cleanup_BizTalkMsgBoxDb v SQL Server.

    Poznámka: Úlohy TrackingSpool_Cleanup_BizTalkMsgBoxDb není ve výchozím nastavení povolena. Úloha TrackingSpool_Cleanup_BizTalkMsgBoxDb odstraní data tělo zprávy.

    Po spuštění úlohy TrackingSpool_Cleanup_BizTalkMsgBoxDb spuštění aplikace konzoly archivovat data tělo zprávy v tabulce Tracking_Spool1.

    Poznámka: Protože úloha TrackingSpool_Cleanup_BizTalkMsgBoxDb odstraní data tělo zprávy z neaktivní, je nutné spustit aplikace konzoly před spuštěním úlohy TrackingSpool_Cleanup_BizTalkMsgBoxDb znovu,

    Například následujícím postupem archivovat data tělo zprávy v databázi MessageBox:
    1. Vytvořit plán pro archivaci data tělo zprávy. Například spustit úlohu TrackingSpool_Cleanup_BizTalkMsgBoxDb jednou každé dva týdny, budete mít dva týdny dat pro sledování data tělo zprávy.
    2. Spustit úlohu TrackingSpool_Cleanup_BizTalkMsgBoxDb. Při prvním spuštění této úlohy Tracking_Spool2 tabulky je označen jako aktivní tabulky. Tracking_Spool2 tabulka je prázdná. Proto je ztracena žádná data.
    3. Spuštění aplikace konzoly archivovat data tělo zprávy uložené v tabulce Tracking_Spool1.
    4. Pokud chcete archivovat data tělo zprávy znovu spustit úlohu TrackingSpool_Cleanup_BizTalkMsgBoxDb. Tato úloha odstraní data, která je v tabulce Tracking_Spool1 a označí tabulky Tracking_Spool1 jako aktivní.
    5. Spuštění aplikace konzoly archivovat data tělo zprávy uložené v tabulce Tracking_Spool2.
    6. Opakujte kroky 4a 4e podle plánu navázat v kroku 4a.
    Další informace o úloze TrackingSpool_Cleanup_BizTalkMsgBoxDb klepnutím na následující číslo článku databáze Microsoft Knowledge Base:
    907661Tracking_Spool1 nebo Tracking_Spool2 tabulek v databázi BiztalkMsgBoxDb stanou velmi velké v BizTalk Server 2004

Objekt rozhraní MessageArchive

Objekt MessageArchive implementuje následující rozhraní:
    public int CommandTimeout
    • Popis: Toto rozhraní může uživatel získat a nastavit časový limit, který je přidružen k podkladové připojení SQL.
    • Hranice podmínek: Časový limit by měl být větší nebo rovna 0. Maximální časový limit bude jednu hodinu. 0 znamená neomezený časový limit.
    • Případech Chyba: Výjimku ArgumentOutOfRangeException bude generovat neplatné hodnoty.

    public string ConnectionString
    • Popis: Toto rozhraní může uživatel získat a nastavit připojovací řetězec podkladové databáze archivu.
    • Hranice podmínek: Řetězec nesmí být null a nesmí být prázdný řetězec. Po nastavení připojení jednou úspěšně nelze vynulovat vlastnost připojení.
    • Případech Chyba: Řetězec null nebo řetězec nulové délky (0) způsobí výjimku ArgumentException. Nastavení vlastnosti po již byla nastavena způsobí výjimku InvalidOperationException. Pokud řetězec je platné připojení, generuje SQL výjimka připojení.

    public int BatchSize
    • Popis: Toto rozhraní může uživatel získat a nastavit velikost listů data načíst z databáze. Tato akce zabrání BizTalk Server pomocí v jednom okamžiku příliš mnoho paměti. Výchozí hodnota je 50.
    • Hranice podmínek: BatchSize musí být větší nebo rovna 0. BatchSize 0 znamená, že objekt MessageArchive měli načíst všechna data až do maximální počet shod. Maximální BatchSize je 1000, protože jej nedává smysl načíst více než v paměti.
    • Případech Chyba: BatchSizes jsou mimo přijatelný rozsah generovat výjimku ArgumentOutOfRangeException.

    public int MaxMatches
    • Popis: Toto rozhraní může uživatel získat a nastavit maximální počet zpráv, které jsou načteny pro výčet. Toto rozhraní se liší od BatchSize rozhraní, že je celkový počet zpráv před metodu MoveNext výčtu MaxMatches vrátí hodnotu false.
    • Hranice podmínek: MaxMatches musí být větší nebo rovna 0. Hodnota 0 znamená načíst všechny zprávy.
    • Případech Chyba: Pokud je hodnota MaxMatches menší než 0, je generována výjimka ArgumentOutOfRangeException.

    public DateTime From
    • Popis: S tímto rozhraním může uživatel filtrovat sada zpráv, jejich by chcete načíst do určité oblasti datum a čas na základě. Nastavení této vlastnosti označuje, že objekt MessageArchive pouze načtení zpráv, které jsou publikovány na nebo po zadané datum a čas.
    • Hranice podmínek: Dokud čas byl již zadán, musí být rovno nebo před dokud čas od času.
    • Případech Chyba: Pokud čas od je pozdější než čas dokud, je generována výjimka ArgumentException.

    public DateTime Until
    • Popis: S tímto rozhraním může uživatel filtrovat sada zpráv, jejich by chcete načíst do určité oblasti datum a čas na základě. Nastavení této vlastnosti označuje objekt MessageArchive měli načíst pouze zprávy, které jsou publikovány na nebo dříve zadaný čas.
    • Hranice podmínek: Čas od již byla určena, dokud čas musí být rovno nebo po dobu od.
    • Případech Chyba: Pokud je před čas od času dokud, je generována výjimku ArgumentException.

    public IEnumerable Messages
    • Popis: S tímto rozhraním může uživatel načíst rozhraní, které lze jejich výčet všech zpráv přes. Výčet je použita, protože je k dispozici žádné vlastnosti.
    • Hranice podmínek: Toto rozhraní trvá žádné parametry.
    • Případech Chyba: Pokud připojení nebyl dosud nastaven, je generována výjimka InvalidOperationException. Všechny chyby jsou způsobeny problémy s připojením SQL.
    • Výčet zprávy vrátí objekty typu ArchivedMessage. Tyto objekty můžete přetypovat do rozhraní IBaseMessage. Další informace o IBaseMessage naleznete v dokumentaci online Microsoft BizTalk Server 2004.

Všechny následující funkce nebo metody nejsou podporovány MessageArchive objekt a bude generovat výjimky InvalidOperationException:
  • 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)
Některé nové vlastnosti, které lze použít v BizTalk serveru řešení také součástí této opravy hotfix jsou:
  • Vlastnost AdapterReceiveCompleteTime je naplněn, když je přijata zpráva od adaptéru a před příjem potrubí spustí zpracování zprávy.
  • Vlastnost AdapterTransmitBeginTime je naplněna před spuštěním adaptéru přenosu zprávy.
  • Vlastnost AdapterTransmitCompleteTime je naplněn po adaptér úspěšně přenáší zprávy. Tato vlastnost není podporována pro BizTalk Message Queuing adaptér (MSMQT).
Tyto vlastnosti patří následující obor názvů:
http://schemas.microsoft.com/BizTalk/2003/messagetracking-properties
mít všechny tři vlastnosti zadejte VT_DATE (nebo DateTime).

Další informace naleznete následujícím článku znalostní databáze Microsoft Knowledge Base:
824684Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft

Vlastnosti

ID článku: 838454 - Poslední aktualizace: 29. prosince 2006 - Revize: 4.2
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft BizTalk Server 2004 Standard Edition
  • Microsoft BizTalk Server 2004 Partner Edition
  • Microsoft BizTalk Server 2004 Enterprise Edition
  • Microsoft BizTalk Server 2004 Developer Edition
Klíčová slova: 
kbmt kbautohotfix kbbiztalk2004-2006swept kbbiztalk2004sp1fix kbbiztalk2004presp1fix kbbug kbfix kbhotfixserver kbqfe KB838454 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:838454

Dejte nám zpětnou vazbu

 

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