Enabling PAL CPU Counters Using the pr3native Library
Summary
The UseNativeLibrary setting in the prconfig.xml file can be used to control whether the pr3native library is used in the system.
Suggested Approach
The pr3native file is an optional library (written in the C programming language) used by the PegaRULES system. Among other things, it is used for obtaining CPU data from the operating system (if available - only the Process CPU is tracked for UNIX systems) and for getting more "fine-grained" data (to many decimal points) for elapsed time information from the operating system (if available).
Because of the way such libraries interact with the Java Virtual Machine (JVM), there may be issues when redeploying or restarting individual applications without restarting the application server. For example, in WebSphere, when the PegaRULES system is stopped and then restarted, the pr3native library may not be loaded because the classloader used by the original PegaRULES instance still exists (the application server has not yet cleared all references to the classloader). This can be particularly disruptive in development or testing environment that routinely restart or redeploy application war or ear files.
Therefore, a new configuration setting was added to the prconfig.xml file: the UseNativeLibrary setting.
<env name="Initialization/usenativelibrary" value="false" />
The default for this setting has changed in Process Commander versions:
- Version 5.1 – true
- Version 5.2 – false
- Version 5.3 - true
Setting this entry to false will suppress loading of the pr3native library. This will eliminate the error messages that occur if PegaRULES is stopped and started again, and should be used when developers are writing the application, and may have to start and stop the program frequently.
Note that setting this entry to false will also turn off the CPU readings. For operating systems where the CPU PAL readings are available (such as Windows systems), CPU times will not be tracked if the use of the pr3native library is disabled.
Pegasystems recommends that the UseNativeLibrary entry be set to true in most situations – having CPU data in PAL is an important part of the development and testing process (to gauge the potential scalability of the application) and an important metric to monitor production performance.
Set the value to false only if issues are encountered during redeployment of the PegaRULES application and the application will be redeployed on an ongoing and routine basis (typically in a development setting). In WebSphere, redeployment problems associated with pr3native will appear in the application server log file as an indication that the pr3native file could not be deleted when the application was undeployed (this message does not appear in the administrative console).
NOTE: In Version 5.3, if the system is using Java 5, it is possible to get fine-grained detail in the elapsed time readings without the pr3native library. If the system is using Java 1.4.2, however, then the pr3native library is still needed; the UseNativeLibrary entry must be set to true to get the detailed elapsed time readings.
Previous topic Can use a servlet rather than a hardware device for HTTP load-balancing across a cluster Next topic How to run the DBTrace tool in a production system (V5)