FIX: You cannot access information about messages in the MessageBox database or track messages in your archives in BizTalk Server 2004 (838454)



The information in this article applies to:

  • Microsoft BizTalk Server 2004 Standard Edition
  • Microsoft BizTalk Server 2004 Partner Edition
  • Microsoft BizTalk Server 2004 Enterprise Edition
  • Microsoft BizTalk Server 2004 Developer Edition

SYMPTOMS

You may find that you want to access the tracked messages in the Microsoft BizTalk MessageBox database or in your archives. The ability to enumerate over the list of messages and to retrieve contextual and payload data about individual messages was not provided in Microsoft BizTalk Server 2004.

This hotfix adds the new MessageArchive object. The MessageArchive object exposes the ability to retrieve an enumeration over the tracked message bodies in the MessageBox database or in a custom archive database.

RESOLUTION

Service pack information

To resolve this problem, obtain the latest service pack for Microsoft BizTalk Server 2004. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

888751 How to obtain the latest BizTalk Server 2004 service pack

Hotfix information

Prerequisites

No prerequisites are required

Restart requirement

You do not have to restart your computer after you apply this hotfix

Hotfix replacement information

This hotfix does not replace any other hotfixes

File information

The English version of this hotfix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   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 Because of file dependencies, the most recent hotfix that contains these files may also contain additional files.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section. This problem was corrected in BizTalk Server 2004 Service Pack 1.

MORE INFORMATION

MessageArchive object interfaces

The MessageArchive object implements the following interfaces:
  • public int CommandTimeout
    • Description: With this interface, the user can get and set the timeout that is associated with the underlying SQL connections.
    • Boundary conditions: The timeout should be more than or equal to 0. The maximum timeout will be one hour. 0 indicates an infinite timeout.
    • Error cases: Invalid values will generate an ArgumentOutOfRangeException exception.
  • public string ConnectionString
    • Description: With this interface, the user can get and set the connection string for the underlying archive database.
    • Boundary conditions: The string must not be null and must not be an empty string. After you set the connection one time successfully, you cannot reset the connection property.
    • Error cases: A null string or zero (0) length string causes an ArgumentException exception. Setting the property after it has already been set causes an InvalidOperationException exception. If the string is not a valid connection, SQL generates a connection exception.
  • public int BatchSize
    • Description: With this interface, the user can get and set the size of the batches of data to retrieve from the database. This action prevents BizTalk Server from using too much memory at any one time. The default value is 50.
    • Boundary conditions: The BatchSize must be more than or equal to 0. A BatchSize of 0 means that the MessageArchive object should retrieve all data, up to the maximum number of matches. The maximum BatchSize is 1000 because it does not make sense to load more than that in memory.
    • Error cases: BatchSizes that are outside the acceptable range generate an ArgumentOutOfRangeException exception.
  • public int MaxMatches
    • Description: With this interface, the user can get and set the maximum number of messages that are retrieved for the enumeration. This interface differs from the BatchSize interface in that MaxMatches is the total number of messages before the MoveNext method of the enumeration returns false.
    • Boundary conditions: MaxMatches must be more than or equal to 0. A value of 0 means retrieve all messages.
    • Error cases: If the value of MaxMatches is less than 0, an ArgumentOutOfRangeException exception is generated.
  • public DateTime From
    • Description: With this interface, the user can filter the set of messages that they would want to retrieve based on a certain date and time range. Setting this property indicates that the MessageArchive object should only retrieve messages that are published at or after the specified date and time.
    • Boundary conditions: If the Until time has already been specified, the From time must be equal to or before the Until time.
    • Error cases: If the From time is later than the Until time, an ArgumentException exception is generated.
  • public DateTime Until
    • Description: With this interface, the user can filter the set of messages that they would want to retrieve based on a certain date and time range. Setting this property indicates the MessageArchive object should only retrieve messages that are published at or before the specified time.
    • Boundary conditions: If the From time has already been specified, the Until time must be equal to or after the From time.
    • Error cases: If the Until time is before the From time, an ArgumentException exception is generated.
  • public IEnumerable Messages
    • Description: With this interface, the user can retrieve an interface that they can enumerate all the messages over. An enumeration is used because no Count property is provided.
    • Boundary conditions: This interface takes no parameters.
    • Error cases: If the connection has not yet been set, an InvalidOperationException exception is generated. All other errors are caused by SQL connectivity issues.
    • The Messages enumeration returns objects of type ArchivedMessage. These objects can be cast into IBaseMessage interfaces. For more information about IBaseMessage, see the Microsoft BizTalk Server 2004 online documentation.
All the following functions or methods are not supported by the MessageArchive object and will generate 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)
Also included in this hotfix are some new properties that you can use in BizTalk Server solutions:
  • The AdapterReceiveCompleteTime property is populated when a message is received from the adapter and before the receive pipeline starts processing the message.
  • The AdapterTransmitBeginTime property is populated before the adapter starts transmitting the message.
  • The AdapterTransmitCompleteTime property is populated after the adapter successfully transmits the message. This property is not supported for the BizTalk Message Queuing Adapter (MSMQT).
These properties belong to the following namespace:
http://schemas.microsoft.com/BizTalk/2003/messagetracking-properties
All three properties have type VT_DATE (or DateTime).

For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates


Modification Type:MinorLast Reviewed:8/17/2006
Keywords:kbbiztalk2004-2006swept kbBizTalk2004sp1fix kbBizTalk2004preSP1fix kbbug kbfix kbHotfixServer kbQFE KB838454 kbAudDeveloper