XAP

Viewing Clustered Space Status

The status of clustered spaces can be viewed using different logging levels. This status is managed by two threads - a Monitor and a Detector.

The Monitor monitors the status of live spaces and reports disconnections, while the Detector detects the status of disconnected spaces and reports reconnection. The space status frequency can be configured using the CONFIG logging level.

See the Proxy Connectivity for details how to tune the Monitor and Detector behavior.

The com.gigaspaces.client.cluster.liveness logger is set by default (in xap_logging.properties) to INFO:

com.gigaspaces.client.cluster.liveness.level = INFO

The different logging levels are detailed below:

Level Description
CONFIG Displays default configurations and available configuration options for both Monitor and Detector threads.
FINE In addition to the CONFIG level, displays disconnections logged by the Monitor and reconnections logged by the Detector.
FINER In addition to the FINE level, displays disconnections logged by user operations and by the detector.
FINEST In addition to the FINEST, displays reconnections logged by user operations and by the detector.

Logging granularity and information assists in tracing the availability of cluster members when using load-balancing or failover policies.

Examples

May 30, 2007 7:13:42 PM
CONFIG [com.gigaspaces.client.cluster.liveness]: [fooSpace] SpaceClosed Where GigaSpaces data is stored. It is the logical cache that holds data objects in memory and might also hold them in layered in tiering. Data is hosted from multiple SoRs, consolidated as a unified data model. status Monitor frequency is configured to 10000 ms.
Use -Dcom.gs.cluster.livenessMonitorFrequency=<value in milliseconds> to configure differently.
May 30, 2007 7:13:42 PM
CONFIG [com.gigaspaces.client.cluster.liveness]: [fooSpace] Space status detector frequency is configured to 5000 ms.
Use -Dcom.gs.cluster.livenessDetectorFrequency=<value in milliseconds> to configure differently.
May 30, 2007 7:14:22 PM
FINE [com.gigaspaces.client.cluster.liveness]: [fooSpace] Space status Monitor disconnected from member: [fooSpace_container1_1:fooSpace]
URL: [jini://*/fooSpace_container1_1/fooSpace?groups=foo-group&ignoreValidation=true]
Caused by: java.rmi.ConnectException: An existing connection was forcefully closed by the remote host; nested exception is:
java.io.IOException: An existing connection was focefully closed by the remote host
May 30, 2007 7:15:27 PM
FINE [com.gigaspaces.client.cluster.liveness]: [fooSpace] Liveness-detector reconnected with Member: [fooSpace_container1_1:foSpace]
URL: [jini://*/fooSpace_container1_1/foSpace?groups=foo-group&ignoreValidation=true]

Configuration

System Property Description Default Value
-Dcom.gs.cluster.livenessMonitorFrequency Defines the frequency in which liveness of "live' members in a cluster is monitored. (Checks if available members become unavailable). 10000 ms
-Dcom.gs.cluster.livenessDetectorFrequency Defines the frequency in which liveness of members in a cluster is detected. (Detects if an unavailable member becomes available). 5000 ms

In most cases, livenessDetectorFrequency is the property you need to alter, since it is responsible for detecting spaces that are unavailable.

The unavailability of cluster members is noticed when a direct operation is performed on them. The livenessMonitorFrequency property timely monitors all live cluster members. Usually, when you have backup-only spaces, this is most important. The only time an operation is performed on a backup-only space is when it becomes active (i.e., primary), and thus you want it's availability status to be noticed beforehand.

It is recommended to increase the value of the Monitor thread to a maximum if there are many clients or if a large cluster is used.

Usually, when there is no failover or when there are no backup-only spaces, the Monitor thread can be safely set to its maximum value, since clients directly interact with the space members. If either is detected as unavailable, the Detector thread is responsible for detecting whether they become available again.