SQLH2PerfCollector on 64-bit

May 20, 2009 at 8:51 AM

I need to run SQLH2 collector and SQLH2Perf Collector on the same 64-bit Windows 2003 SP2 computer. There are a couple of issues:

1) None of the  2.1 versions of SQLH2PerfCollector service will start on my 64-bit Windows 2003 Server - it complains it cannot find a registry key (I think it is HKLM\Software\Microsoft\SQLH2PerfCollector). I have reverted to the original Microsoft 2.0.027 Perf service as this at least does start up OK and collect from local/remote machines.

2) However, the SQLH2 Collector running on 64-bit does not load the performance data - I get the common error "Couldn't find required registry key on Perf Provider". Again I think it is looking for HKLM\Software\Microsoft\SQLH2PerfCollector.

Kludge solution

On my 64-bit Windows Server 2003 the PerfCollector installer has installled its registry key to HKLM\Software\Wow6432Node\Microsoft\SQLH2PerfCollector rather than the key expected by the Collector and PerfCollector code. I have very limited C# coding skills but have managed to change the registry value in PerfProvider.cs in H2Collector and compile it as 32-bit. This has worked for me.

Preferred solution

It would be better to have the code for PerfCollector service and the H2 Collector itself to look in both registry locations for the SQLH2PerfCollector key before throwing an error. Alternatively, some instructions on how to build an installer for 64-bit targets where the installer puts the reistry keys in the 'correct' locations and not down the Wow6432Node. I am using Visual Studio 2005.