Running vFabric GemFire in Pure Java Mode

vFabric GemFire can run in pure Java mode, meaning GemFire runs without the GemFire native code.

Running in pure Java mode enables vFabric GemFire to run with some functional differences on unsupported platforms. Unsupported platforms include any platforms that are not listed in vFabric GemFire Supported Configurations. Running in pure Java mode should not be used for production environments without consulting with VMware support first. In pure Java mode, distributed system members still have access to GemFire's caching and distribution capabilities, but the following features may be disabled:
  • Operating system statistics. Platform-specific machine and process statistics such as CPU usage and memory size.
  • Access to the process ID. Only affects log messages about the application. The process ID is set to "0" (zero) in pure Java mode.
In addition, in pure Java mode, the cache server startup and shutdown are handled in a different way than when running with the vFabric GemFire native code. If the cache server is shut down in an abnormal way, the next startup may require manual intervention. In pure Java mode, the cache server startup script checks for presence of a .cacheserver.ser file, and the server does not start if the file exists. It logs an error similar to this:
java.lang.Exception: A CacheServer is already running in directory "/home/jpearson"
 CacheServer pid: 16771 status: running
        at com.gemstone.gemfire.internal.cache.CacheServerLauncher.start(
        at com.gemstone.gemfire.internal.cache.CacheServerLauncher.main(
Error: A CacheServer is already running in directory "/home/jpearson"
 CacheServer pid: 16771 status: running

The .cacheserver.ser file is generated automatically by the cache server when it starts, and it is automatically deleted when the server closes properly. An abnormal server termination may prevent the file from being deleted, so subsequent attempts to start a cache server fail because the file exists. If the server terminates abnormally, check to be sure it has stopped, then delete the .cacheserver.ser file for the abnormally terminated server so another cache server can start.