AppStateMonitor (Oracle - Berkeley DB Java Edition API)
Date: 2014-12-16

com.sleepycat.je.rep

## Interface AppStateMonitor

-     public interface AppStateMonitor

  A mechanism for adding application specific information when asynchronously tracking the state of a running JE HA application.

  `NodeState` provides information about the current state of a member of the replication group. The application can obtain NodeState via `ReplicationGroupAdmin.getNodeState(com.sleepycat.je.rep.ReplicationNode, int)` or `DbPing.getNodeState()`. A NodeState contains mostly JE-centric information, such as whether the node is a master or replica. However, it may be important to add in some application specific information to enable the best use of the status.

  For example, an application may want to direct operations to specific nodes based on whether the node is available. The fields in `NodeState` will tell the application whether the node is up and available in a JE HA sense, but the application may also need information about an application level resource, which would affect the load balancing decision. The AppStateMonitor is a way for the application to inject this kind of application specific information into the replicated node status.

  The AppStateMonitor is registered with the replicated environment using `ReplicatedEnvironment.registerAppStateMonitor(AppStateMonitor)`. There is at most one AppStateMonitor associated with the actual environment (not an `Environment` handle) at any given time. JE HA calls `getAppState()` when it is assembling status information for a given node.

  After registration, the application can obtain this application specific information along with other JE HA status information when it obtains a `NodeState`, through `NodeState.getAppState()`.

  `getAppState()` returns a byte array whose length should be larger than 0. An IllegalStateException will be thrown if the returned byte array is 0 size. Users are responsible for serializing and deserializing the desired information into this byte array.

  Since:
    5.0

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `getAppState()` Return a byte array which holds information about the application's state.

- - ### Method Detail

    - #### getAppState

          byte[] getAppState()

      Return a byte array which holds information about the application's state. The application is responsible for serialize and deserialize this information.

      Note the returned byte array's length should be larger than 0.

      Returns:
        the application state

Copyright (c) 2004, 2014 Oracle and/or its affiliates. All rights reserved.