Troubleshooting
This section provides troubleshooting information for the client.
Cannot Acquire Windows Performance Data
When you attempt to run performance measurements for the client on Windows, you may encounter the following error message in the run logs:
Can't get Windows performance data. RegQueryValueEx returned 5
This can occur because incorrect information is returned when a Win32 application calls the ANSI version of RegQueryValueEx
Win32 API with HKEY_PERFORMANCE_DATA
. This error is described in Microsoft KB article ID 226371 at http://support.microsoft.com/kb/226371/en-us.
To successfully acquire Windows performance data, you need to verify that you have the proper registry key access permissions in the system registry. In particular, make sure that Perflib
in the following registry path is readable (KEY_READ
access) by the GemFire process:
HKEY_LOCAL_MACHINE\
SOFTWARE\
Microsoft\
Windows NT\
CurrentVersion\
Perflib
An example of reasonable security on the performance data would be to grant administrators KEY_ALL_ACCESS
and interactive users KEY_READ
access. This particular configuration prevents non-administrator remote users from querying performance data.
See http://support.microsoft.com/kb/310426 and http://support.microsoft.com/kb/146906 for instructions about how to ensure that GemFire processes have access to the registry keys associated with performance.
Generating a Process Memory Dump Image for Fatal Errors
You can generate a process memory dump image (core files in Unix systems and minidumps in Windows). The image is produced when a fatal error occurs that normally terminates the program.
When the system property crash-dump-enabled
is set to true
, a dump image is generated (the default is true
). The dump file is generated in the same location as the log-file
directory, and has the same prefix as the log file. The name is <prefix>-<time>.core.<pid>
in Unix, and <prefix>-<time>-<pid>.dmp
in Windows).
Unix systems generate core files automatically for such errors, but this option is useful for providing a custom location and name, as well as for systems where core dump generation is disabled. For Unix, when system core dump generation is turned on (ulimit -c
) this property can be set to false
.
For .NET clients, when this property is set then AccessViolation
exceptions are trapped and a crash dump is created to assist with further analysis. Applications receive a FatalInternalException
for this case, with the InnerException
set to the originating AccessViolationException
.
This requires the availability of dbghelp.dll
on Windows, either in the same directory as apache-geode.dll
or in the system PATH
. The file is installed by default, though for Windows 2000 a newer version may be required for minidumps. For Unix systems, the gcore
command should be available (gdb > 5.2 on Linux; available by default in Solaris).