To identify performance issues in a BizTalk solution, you should rely on the performance counters that BizTalk Server uses. All the BizTalk performance counters should be added to the registry when you run the configuration wizard. If the registry keys were overwritten somehow, those performance counters were gone. You could use the configuration wizard to recreate those missing BizTalk performance counters, but it requires reconfiguring the features that use the performance counters. To do so you should unconfigure them first, which is something you might not want to do. Even though it is undocumented, you can manually populate those resister keys for the missing performance counters.
There are two types of the performance libraries that BizTalk Server uses:
1. BTSPerfMonExt.dll for the performance objects that the unmanaged code of BizTalk Server uses.
2. netfxperf.dll for the performance objects that the managed code of BizTalk Server uses.
- Note: netfxperf.dll is a .NET framework component. It is shared for all .NET performance counters. For more information about netfxperf.dll see .NET Performance Counters.
The following tables shows which performance library is used for each BizTalk performance object:
Object | Performance Counter Library | Installer |
BizTalk:Message Box:* | netfxperf.dll | Microsoft.BizTalk.MsgBoxPerfCounters.dll |
BizTalk:Message Agent |
BTSPerfMonExt.dll | BTSPerfMonExt.ini BTSPerfMonExt.h |
BizTalk: BAS TPM Management Web Service |
netfxperf.dll | Microsoft.BizTalk.KwTpm.TPMgmtWSPerf.dll |
BizTalk: BAS TPM Publishing Web Service | netfxperf.dll | Microsoft.BizTalk.KwTpm.TPPubWSPerf.dll |
BizTalk:Windows SharePoint Services Adapter | netfxperf.dll | Microsoft.BizTalk.KwTpm.WssAdapter.Runtime.dll |
BizTalk:TDDS | netfxperf.dll | Microsoft.BizTalk.Bam.EventObservation.dll |
To recreate the performance counters using netfxperf.dll, you can use InstallUtil.exe in the .NET Framework. If the assembly is installed in the GAC, you can run InstallUtil.exe as follows:
Installutil /i /assemblyname “<InstallerFileName>, Version=<VersionNumOfTheInstaller>, Culture=neutral,
PublicKeyToken=<PublicKeyOfTheInstaller>“
For example,
InstallUtil /i /assemblyname “Microsoft.BizTalk.MsgBoxPerfCounters, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”
If it is not, you can run InstallUtil.exe as follows:
InstallUtil /i <Installer>
For example,
InstallUtil /i Microsoft.BizTalk.KwTpm.TPMgmtWS.dll
To recreate the performance counters using BTSPerfMonExt.dll, you can use lodctr.exe and unlodctr.exe as follows:
- Note: lodctr.exe is a tool for registering new performance counters, and unlodctr.exe is for removing performance counters. For more information about these tools, see How to manually rebuild Performance Counter Library values.
1. Copy the BTSPerfMonExt.ini and BTSPerfMonExt.h files to the %windir%\system32 folder.
2. At a command prompt, go to the the %windir%\system32 folder, and then type the following command to uninstall the damaged performance counters.
unlodctr “BTSSvc.3.0”
3. Then, type the following command to reinstall the BizTalk performance counters:
lodctr BTSPerfMonExt.ini
Thanks,
Young