While the client and servers are disconnected, their operation varies depending on the circumstances.

Normal disconnect

When a durable client disconnects normally, the Cache.close request states whether to maintain the client’s message queue and durable subscriptions. The servers stop sending messages to the client and release its connection. See Disconnecting From the Server for more information.

If requested, the servers maintain the queues and durable interest list until the client reconnects or times out. The non-durable interest list is discarded. The servers continue to queue up incoming messages for entries on the durable interest list. All messages that were in the queue when the client disconnected remain in the queue, including messages for entries on the non-durable list.

If the client requests to not have its subscriptions maintained, or if there are no durable subscriptions, the servers unregister the client and perform the same cleanup as for a non-durable client.

Abnormal disconnect

If the client crashes or loses its connections to all servers, the servers automatically maintain its message queue and durable subscriptions until the client reconnects or times out.

Client disconnected but operational

If the client operates while it is disconnected, it gets what data it can from the local cache. Since updates are not allowed, the data can become stale. An UnconnectedException occurs if an update is attempted.

Timing out while disconnected

The servers track how long to keep a durable client queue alive based on the durable-client-timeout setting. If the client remains disconnected longer than the timeout, the servers unregister the client and do the same cleanup that is performed for a non-durable client. The servers also log an alert. When a timed-out client reconnects, the servers treat it as a new client making its initial connection.