Determine the proper startup and shutdown procedures, and write your startup and shutdown scripts.
Well-designed procedures for starting and stopping your system can speed startup and protect your data. The processes you need to start and stop include server and locator processes and your other GemFire applications, including clients. The procedures you use depend in part on your system’s configuration and the dependencies between your system processes.
Use the following guidelines to create startup and shutdown procedures and scripts. Some of these instructions use
You should follow certain order guidelines when starting your GemFire system.
Start servers before you start their client applications. In each cluster, follow these guidelines for member startup:
If you are starting up your locators and peer members all at once, you can use the
locator-wait-time property (in seconds) upon process start up. This timeout allows peers to wait for the locators to finish starting up before attempting to join the cluster.
If the process cannot initially reach a locator, it will sleep for
join-retry-sleep milliseconds between retries until it either connects or the number of seconds specified in
locator-wait-time has elapsed. By default,
locator-wait-time is set to zero meaning that a process that cannot connect to a locator upon startup will throw an exception.
Note: You can optionally override the default timeout period for shutting down individual processes. This override setting must be specified during member startup. See Shutting Down the System for details.
This information pertains to catastrophic loss of GemFire disk store files. If you lose disk store files, your next startup may hang, waiting for the lost disk stores to come back online. If your system hangs at startup, use the
show missing-disk-store to list missing disk stores and, if needed, revoke missing disk stores so your system startup can complete. You must use the Disk Store ID to revoke a disk store. These are the two commands:
gfsh>show missing-disk-stores Disk Store ID | Host | Directory ------------------------------------ | --------- | ------------------------------------- 60399215-532b-406f-b81f-9b5bd8d1b55a | excalibur | /usr/local/gemfire/deploy/disk_store1 gfsh>revoke missing-disk-store --id=60399215-532b-406f-b81f-9b5bd8d1b55a
gfsh command requires that you be connected to the cluster via a JMX Manager node.
Shut down your GemFire system by using either the
shutdown command or by shutting down individual members one at a time.
If you are using persistent regions, (members are persisting data to disk), you should use the
shutdown command to stop the running system in an orderly fashion. This command synchronizes persistent partitioned regions before shutting down, which makes the next startup of the cluster as efficient as possible.
If possible, all members should be running before you shut them down so synchronization can occur. Shut down the system using the following
By default, the shutdown command will only shut down data nodes. If you want to shut down all nodes including locators, specify the
--include-locators=true parameter. For example:
This will shut down all locators one by one, shutting down the manager last.
To shutdown all data members after a grace period, specify a time-out option (in seconds).
To shutdown all members including locators after a grace period, specify a time-out option (in seconds).
gfsh>shutdown --include-locators=true --time-out=60
If you are not using persistent regions, you can shut down the cluster by shutting down each member in the reverse order of their startup. (See Starting Up Your System for the recommended order of member startup.)
Shut down the cluster members according to the type of member. For example, use the following mechanisms to shut down members:
Shut down any cache servers. To shut down a server, issue the following
gfsh>stop server --name=<...>
gfsh>stop server --dir=<server_working_dir>
Shut down any locators. To shut down a locator, issue the following
gfsh>stop locator --name=<...>
gfsh>stop locator --dir=<locator_working_dir>
Do not use the command line
kill -9 to shut down a server under ordinary circumstances. Especially on systems with a small number of members, using a
kill instead of a
gfsh stop can cause the partition detection mechanism to place the system in an end state that will wait forever to reconnect to the terminated server, and there will be no way to restart that terminated server. If a
kill command appears the only way to rid the system of a server, then
kill all the processes of the cluster or use
kill -INT, which will allow an orderly shutdown of the process.
DISCONNECT_WAIT command line argument sets the maximum time for each individual step in the shutdown process. If any step takes longer than the specified amount, it is forced to end. Each operation is given this grace period, so the total length of time the cache member takes to shut down depends on the number of operations and the
DISCONNECT_WAIT setting. During the shutdown process, GemFire produces messages such as:
Disconnect listener still running
DISCONNECT_WAIT default is 10000 milliseconds.
To change it, set this system property on the Java command line used for member startup. For example:
gfsh>start server --J=-DDistributionManager.DISCONNECT_WAIT=<milliseconds>
Each process can have different