Symptoms
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).
Cause
This issue occurs because of an error in the msgbox_application_logic.sql script.
Resolution
Cumulative update information
This issue was first fixed in the following cumulative update of BizTalk Server:
Status
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:
General information about the MSBTS_ServiceInstance WMI class