How to manually recreate missing BizTalk performance counters

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
BizTalk:File Receive Adapter
BizTalk:File Send Adapter
BizTalk:HTTP Receive Adapter
BizTalk:HTTP Send Adapter
BizTalk:POP3 Receive Adapter
BizTalk:FTP Receive Adapter
BizTalk:FTP Send Adapter
BizTalk:MSMQ Receive Adapter
BizTalk:MSMQ Send Adapter
BizTalk:SOAP Receive Adapter
BizTalk:SOAP Send Adapter
BizTalk:SMTP Send Adapter
BizTalk:SQL Receive Adapter
BizTalk:SQL Send Adapter
BizTalk:Messaging Latency

BTSPerfMonExt.dll BTSPerfMonExt.ini

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.EventBus.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,

For example,

InstallUtil /i /assemblyname "Microsoft.BizTalk.MsgBoxPerfCounters, Version=, 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:

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


Comments (8)

  1. In questo post viene spiegato come ripristinare i Performance Counters di BizTalk nel caso in cui qualche

  2. naren.sisodiya says:

    Is there any way to find out the max values for these performance counters ?

  3. Arno's Blog says:

    Voilà une astuce qui m’a été bien utile suite à la perte de l’ensemble des compteurs de performances

  4. himanshuz says:

    I am experiencing excessive no. of calls to stored procedure MsgBoxPerfCounters_GetPurgeJobInfo on the BizTalk Msgbox Database and it is driving up the CPU utilization of SQL server.  Do you have any suggestion about this issue?  Can I safely remove the BizTalk performance counters using

    InstallUtil /u /assemblyname "Microsoft.BizTalk.MsgBoxPerfCounters, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35" ?

  5. hunglukenguyen says:

    Hi Anzio,

    Have you seen the problem that Biztalk perfmon counters are watchable (live), but not recordable (blg files).

    This is so strange on our prod servers.

  6. RandyG says:

    I'm work at a data storage company. Can we create custom perfmon counters for our product and make them viewable in BizTalk?

  7. Ashish says:


    I performed these steps to create the performance counter manually, especially for BTSPerfMonExt. But still no luck in getting them listed?

Skip to main content