# Synchronized State

## Using synchronized state with process panels Synchronized state can be used with I-P2 or agents that are implemented as Ip2 subclasses such as I-Plan and I-Serve. For a group of agents that are coordinating their state, one must be selected as a server; the others are clients. The agent extension mechanism is used to tell an agent to use synchronized state. The server's list of extension-classes must inclide `ix.ip2.SyncStateServer`, for instance by specifying a command-line argument or props file entry
       extension-classes=ix.ip2.SyncStateServer
The server must be started and be fully up and running before any clients start running. A client's extension-classes must include `ix.ip2.SyncStateClient`. In addition it must have a command-line argument or props file entry for "sync-state-server". The value is the symbol/ipc name of the agent that is acting as the server. For example, a props file could contain:
       extension-classes=ix.ip2.SyncStateClient
       sync-state-server=demo-iserve
## Some current limitations The server must not use multiple options. "Undo" should not be used in an option that has synchronized state. Clients register automatically with the server as soon as they start up. In clients, the state will be synchronized only in the option-for-input.