FIX: WMI query returns incorrect results when a service instance ID is used in BizTalk Server

Applies to: Microsoft BizTalk Server 2006 R2 Service Pack 1BizTalk Server Branch 2010BizTalk Server Developer 2010


Assume that you run a Windows Management Instrumentation (WMI) query on a computer that is running BizTalk Server 2006 R2, BizTalk Server 2010, or BizTalk Server 2013. If the query uses a service instance ID against the MSBTS_MessageInstance WMI class, the query may return an incorrect result.

For example, assume that you use the following code to create a WMI query in a given service instance ID. If the service instance contains two messages, only one message is returned.

using System.Management; 
ManagementScope mgmtScope = new ManagementScope();
mgmtScope.Path.NamespacePath = "root\\MicrosoftBizTalkServer";
ManagementObjectSearcher objectSearcher = new ManagementObjectSearcher(mgmtScope, new SelectQuery("MSBTS_MessageInstance", "ServiceInstanceId = \"{" + SERVICE_INSTANCE_ID + "}\""));
objectSearcher.Options.EnsureLocatable = true;
ManagementObjectCollection coll = objectSearcher.Get();
Note SERVICE_INSTANCE_ID is a string representation of the service instance ID (GUID).


This issue occurs because of an error in the msgbox_application_logic.sql script.


Cumulative update information

This issue was first fixed in the following cumulative update of BizTalk Server:


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

More Information

For more information about the MSBTS_ServiceInstance WMI class, visit the following MSDN website: