FIX: ╚ impossibile accedere al informazioni sui messaggi i messaggi di database o di traccia del MessageBox negli archivi in BizTalk Server 2004

Traduzione articoli Traduzione articoli
Identificativo articolo: 838454 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

╚ probabile che si desidera accedere ai messaggi rilevati nel database MessageBox BizTalk Microsoft o negli archivi. La possibilitÓ di enumerare l'elenco dei messaggi e recuperare contestuali e dati del payload sui singoli messaggi non Ŕ stata fornita in Microsoft BizTalk Server 2004.

Questo hotfix aggiunge il nuovo oggetto MessageArchive . L'oggetto di MessageArchive espone la capacitÓ di recupero di un'enumerazione tramite i corpi del messaggio rilevato nel database MessageBox o in un database archivio personalizzato.

Nota Questo hotfix Ŕ incluso in BizTalk Server 2004 Service Pack 1.

Risoluzione

Informazioni sul Service pack

Per risolvere il problema, ottenere il service pack pi¨ recente per Microsoft BizTalk Server 2004. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
888751Come ottenere il service pack pi¨ recente per BizTalk Server 2004

Informazioni sull'hotfix

╚ disponibile un hotfix supportato. Questo hotfix Ŕ tuttavia destinato esclusivamente alla risoluzione del problema descritto in questo articolo. Consente di applicare questo aggiornamento rapido (hotfix) solo ai sistemi in cui si verifica questo problema specifico. Questo aggiornamento rapido (hotfix) potrebbe essere eseguiti ulteriori test. Se non si Ŕ notevolmente interessati da questo problema, si consiglia pertanto di attendere il successivo aggiornamento di software che contiene questo aggiornamento rapido (hotfix).

Se l'hotfix Ŕ disponibile per il download, Ŕ una sezione "Hotfix disponibile per il download" all'inizio di questo articolo della Knowledge Base. Se non viene visualizzato in questa sezione, Ŕ necessario contattare servizio clienti Microsoft e supporto tecnico per ottenere l'hotfix.

Nota Se si verificano ulteriori problemi o se la risoluzione dei problemi Ŕ necessario, potrebbe essere necessario creare una richiesta di servizio separato. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare nello specifico hotfix in questione. Per un elenco completo, di Microsoft Customer Service and Support numeri di telefono o a creare una richiesta di servizio distinto, visitare il seguente sito Web Microsoft:
http://support.microsoft.com/contactus/?ws=support
Nota Il modulo "Hotfix disponibile per il download" Visualizza le lingue per cui Ŕ disponibile l'aggiornamento rapido. Se non viene visualizzata la lingua, Ŕ perchÚ un aggiornamento rapido (hotfix) non Ŕ disponibile per tale lingua.

Prerequisiti

Non Ŕ richiesto alcun prerequisito

NecessitÓ di riavvio

Non Ŕ necessario riavviare il computer dopo avere applicato questo aggiornamento rapido (hotfix)

Informazioni sulla sostituzione della correzione

Questo hotfix non sostituisce eventuali altri aggiornamenti rapidi

Informazioni sui file

La versione di lingua inglese di questo aggiornamento rapido (hotfix) presenta gli attributi di file (o attributi successivi) elencati nella tabella riportata di seguito. Le date e le ore per questi file sono indicati in UTC (Coordinated Universal Time). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e l'ora locale, utilizzare la scheda fuso orario dello data e ora nel Pannello di controllo.
   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

Nota A causa delle dipendenze fra i file, Ŕ possibile che l'aggiornamento rapido pi¨ recente contenente i file contengano ulteriori file.

Status

Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a".Questo problema Ŕ stato corretto in BizTalk Server 2004 Service Pack 1.

Informazioni

Come archiviare i dati del corpo del messaggio

╚ possibile fare riferimento il file Microsoft.BizTalk.MessageBoxOM.dll per archiviare i dati del corpo del messaggio nelle tabelle Tracking_Spool1 e Tracking_Spool2 nel database MessageBox. Per effettuare questa operazione, attenersi alla seguente procedura:
  1. Fare riferimento al file Microsoft.BizTalk.MessageBoxOM.dll. Il file Microsoft.BizTalk.MessageBoxOM.dll si trova nella Global Assembly Cache (GAC). Non Ŕ possibile aggiungere un riferimento a un componente che si trova nella Global Assembly Cache nei progetti di Microsoft Visual Studio .NET 2003. Per fare riferimento il file Microsoft.BizTalk.MessageBoxOM.dll in un progetto di Visual Studio .NET 2003, utilizzare uno dei metodi descritti di seguito:
    • metodo 1: Estrai il file Microsoft.BizTalk.MessageBoxOM.dll dalla GAC

      Per estrarre il file Microsoft.BizTalk.MessageBoxOM.dll dalla GAC, eseguire il comando seguente al prompt dei comandi. In questo comando DestinationPath rappresenta un percorso di file sul disco rigido. Ad esempio, puoi utilizzare il seguente comando per estrarre il file Microsoft.BizTalk.MessageBoxOM.dll la cartella che contiene i file per il progetto di Visual Studio .NET 2003:
      copia %systemroot%\assembly\GAC\Microsoft.BizTalk.MessageBoxOM\3.0.1.0__31bf3856ad364e35\Microsoft.BizTalk.MessageBoxOM.dll DestinationPath
    • 2: modificare manualmente il file di progetto Visual Studio .NET 2003

      Per aggiungere un riferimento a un componente che si trova nella Global Assembly Cache, modificare manualmente il file di progetto di Visual Studio .NET 2003 in un editor di testo. Ad esempio, i file csproj e .btproj sono file di progetto. Aggiungere il seguente esempio di codice all'elemento di riferimento nel file di progetto.
      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. Creare un'applicazione console in Visual Studio .NET 2003. Nell'applicazione console, aggiungere riferimenti ai componenti seguenti:
    • Microsoft.BizTalk.messageboxom.dll

      Nota Consente di aggiungere solo un riferimento al file Microsoft.biztalk.messageboxom.dll se si estrae il file in una posizione sul disco rigido in passaggio 1.
    • \Microsoft BizTalk Server 2004\Microsoft.BizTalk.Messaging.dll
    • \Microsoft BizTalk Server 2004\Microsoft.BizTalk.Pipeline.dll
    • System.Xml
  3. Aggiungere codice all'applicazione console che consente di archiviare i dati del corpo del messaggio. Quindi, compilare l'applicazione. Ad esempio, utilizzare codice simile a nell'esempio di codice 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. Eseguire l'applicazione di console. Quando si esegue l'applicazione console, l'applicazione console estratto dati del corpo messaggio rilevato dalla tabella inattiva nel database MessageBox. La tabella inattiva Ŕ la tabella di Tracking_Spool1 o la tabella Tracking_Spool2 . L'oggetto MessageArchive Impossibile accedere a tabella attiva.

    Per impostazione predefinita, la tabella Tracking_Spool1 Ŕ la tabella attiva. Di conseguenza, non vengono restituiti dati la prima volta che eseguire l'applicazione console. Per rendere il Tracking_Spool2 tabella tabella attiva, Ŕ possibile eseguire il processo di TrackingSpool_Cleanup_BizTalkMsgBoxDb in SQL Server.

    Nota Per impostazione predefinita, il processo di TrackingSpool_Cleanup_BizTalkMsgBoxDb non attivata. Il processo di TrackingSpool_Cleanup_BizTalkMsgBoxDb Elimina i dati del corpo del messaggio.

    Dopo aver eseguito il processo di TrackingSpool_Cleanup_BizTalkMsgBoxDb, eseguire l'applicazione di console per archiviare i dati del corpo di messaggio nella tabella Tracking_Spool1 .

    Nota PoichÚ il processo di TrackingSpool_Cleanup_BizTalkMsgBoxDb Elimina i dati del corpo del messaggio dal non attivo, Ŕ necessario eseguire l'applicazione di console prima di eseguire nuovamente il processo di TrackingSpool_Cleanup_BizTalkMsgBoxDb

    Ad esempio, attenersi alla seguente procedura per archiviare i dati del corpo del messaggio nel database MessageBox:
    1. Consente di stabilire una pianificazione per l'archiviazione dati del corpo del messaggio. Ad esempio, se si esegue il processo di TrackingSpool_Cleanup_BizTalkMsgBoxDb una volta ogni due settimane, sarÓ necessario due settimane di dati per il rilevamento dei dati del corpo di messaggio.
    2. Eseguire il processo di TrackingSpool_Cleanup_BizTalkMsgBoxDb. La prima volta che si esegue questo processo, la configurazione delle tabella Tracking_Spool2 Ŕ contrassegnata come tabella attiva. La tabella Tracking_Spool2 Ŕ vuota. Di conseguenza, non sono dati persi.
    3. Eseguire l'applicazione console per archiviare i dati del corpo di messaggio che sono memorizzati nella tabella Tracking_Spool1 .
    4. Quando si desidera archiviare nuovamente i dati del corpo del messaggio, Ŕ necessario eseguire il processo di TrackingSpool_Cleanup_BizTalkMsgBoxDb. Questo processo elimina i dati nella tabella Tracking_Spool1 e contrassegna la tabella Tracking_Spool1 come attiva.
    5. Eseguire l'applicazione console per archiviare i dati del corpo di messaggio che sono memorizzati nella tabella Tracking_Spool2 .
    6. Ripetere i passaggi 4a-4e in base alla pianificazione che stabiliscono nel passaggio 4a.
    Per ulteriori informazioni relative al processo TrackingSpool_Cleanup_BizTalkMsgBoxDb, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
    907661Le tabelle Tracking_Spool1 o Tracking_Spool2 il database BiztalkMsgBoxDb diventano molto grande in BizTalk Server 2004

Interfacce oggetto MessageArchive

L'oggetto MessageArchive implementa le interfacce seguenti:
    public int CommandTimeout
    • Descrizione: Con questa interfaccia, l'utente pu˛ ottenere e impostare il timeout Ŕ associato con le connessioni SQL sottostante.
    • condizioni limite: Il timeout deve essere pi¨ o uguale a 0. Il timeout massimo sarÓ un'ora. 0 indica un timeout infinito.
    • casi di errore: Valori non validi genererÓ un'eccezione ArgumentOutOfRangeException .

    public string ConnectionString
    • Descrizione: Con questa interfaccia, l'utente pu˛ ottenere e impostare la stringa di connessione per il database archivio sottostante.
    • condizioni limite: La stringa non deve essere null e non deve essere una stringa vuota. Dopo aver impostato correttamente la connessione una volta, non puoi reimpostare la proprietÓ di connessione.
    • casi di errore: Una stringa null o zero stringa di lunghezza (0) Ŕ necessario genera un'eccezione ArgumentException . Dopo che Ŕ giÓ stata impostata l'impostazione della proprietÓ genera un'eccezione di InvalidOperationException . Se la stringa non Ŕ una connessione valida, SQL genera un'eccezione di connessione.

    public int BatchSize
    • Descrizione: Con questa interfaccia, l'utente pu˛ ottenere e impostare le dimensioni del batch di dati da recuperare dal database. Questa azione impedisce BizTalk Server di utilizzare il troppa memoria in qualsiasi momento. Il valore predefinito Ŕ 50.
    • condizioni limite: Il BatchSize deve essere pi¨ o uguale a 0. BatchSize pari a 0 indica che l'oggetto MessageArchive deve recuperare tutti i dati, backup il numero massimo di corrispondenze. BatchSize il massimo Ŕ 1000 perchÚ non ha senso caricare in pi¨ rispetto a quello in memoria.
    • casi di errore: BatchSizes che non rientrano nell'intervallo accettabile generare un'eccezione ArgumentOutOfRangeException .

    public int MaxMatches
    • Descrizione: Con questa interfaccia, l'utente pu˛ ottenere e impostare il numero massimo di messaggi che vengono recuperati per l'enumerazione. Questa interfaccia Ŕ diversa dal BatchSize interfaccia MaxMatches Ŕ il numero totale di messaggi prima il metodo MoveNext dell'enumerazione restituisce false.
    • condizioni limite: MaxMatches deve essere pi¨ o uguale a 0. Un valore pari a 0 significa recuperare tutti i messaggi.
    • casi di errore: Se il valore di MaxMatches Ŕ minore di 0, verrÓ generata un'eccezione ArgumentOutOfRangeException .

    public DateTime From
    • Descrizione: Con questa interfaccia, l'utente pu˛ filtrare l'insieme di messaggi che si desiderano recuperare in base a un determinato intervallo di data e ora. L'impostazione questa proprietÓ indica che l'oggetto MessageArchive deve recuperare solo i messaggi che vengono pubblicati in o dopo la data e ora specificate.
    • condizioni limite: Se il tempo di Until Ŕ giÓ stato specificato, l'ora da deve essere uguale a o prima dell'ora Until.
    • casi di errore: Se l'ora da Ŕ successiva all'ora di Until, viene generata un'eccezione ArgumentException .

    public DateTime Until
    • Descrizione: Con questa interfaccia, l'utente pu˛ filtrare l'insieme di messaggi che si desiderano recuperare in base a un determinato intervallo di data e ora. L'impostazione di questa proprietÓ indica l'oggetto MessageArchive deve recuperare solo i messaggi che vengono pubblicati in o prima dell'ora specificato.
    • condizioni limite: Se l'ora da Ŕ giÓ stato specificato, il tempo di Until deve essere uguale o dopo l'ora da.
    • casi di errore: Se l'ora di Until Ŕ prima dell'ora da, viene generata un'eccezione ArgumentException .

    public IEnumerable Messages
    • Descrizione: Con questa interfaccia, l'utente pu˛ recuperare un'interfaccia che Ŕ possibile enumerare tutti i messaggi. Un'enumerazione viene utilizzata quanto non viene fornita alcuna proprietÓ Count .
    • condizioni limite: Questa interfaccia non accetta parametri.
    • casi di errore: Se la connessione non Ŕ ancora stata impostata, viene generata un'eccezione InvalidOperationException . Tutti gli altri errori sono causati da problemi di connettivitÓ SQL.
    • L'enumerazione di messaggi restituisce oggetti di tipo ArchivedMessage. Questi oggetti possono essere convertiti in IBaseMessage interfacce. Per ulteriori informazioni su IBaseMessage, vedere la documentazione in linea di Microsoft BizTalk Server 2004.

Tutte le seguenti funzioni o metodi non sono supportati dall'oggetto MessageArchive e generano eccezioni 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)
Incluso anche in questo aggiornamento rapido (hotfix) sono alcune nuove proprietÓ che Ŕ possibile utilizzare nelle soluzioni di BizTalk Server:
  • La proprietÓ AdapterReceiveCompleteTime viene compilata quando un messaggio viene ricevuto dall'adapter e prima della ricezione pipeline avvia l'elaborazione del messaggio.
  • La proprietÓ di AdapterTransmitBeginTime viene compilata prima la scheda avvio la trasmissione del messaggio.
  • La proprietÓ di AdapterTransmitCompleteTime viene compilata dopo l'adattatore trasmette correttamente il messaggio. Questa proprietÓ non Ŕ supportata per il BizTalk Accodamento scheda (MSMQT).
Queste proprietÓ appartengono allo spazio dei nomi seguente:
http://schemas.microsoft.com/BizTalk/2003/messagetracking-properties
tutte le tre proprietÓ hanno digitare VT_DATE (o DateTime).

Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
824684Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft

ProprietÓ

Identificativo articolo: 838454 - Ultima modifica: venerdý 29 dicembre 2006 - Revisione: 4.2
Le informazioni in questo articolo si applicano a:
  • Microsoft BizTalk Server 2004 Standard Edition
  • Microsoft BizTalk Server 2004 Partner Edition
  • Microsoft BizTalk Server 2004 Enterprise Edition
  • Microsoft BizTalk Server 2004 Developer Edition
Chiavi:á
kbmt kbautohotfix kbbiztalk2004-2006swept kbbiztalk2004sp1fix kbbiztalk2004presp1fix kbbug kbfix kbhotfixserver kbqfe KB838454 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 838454
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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