Ice.ACM.*

On this page:

Ice.ACM.Close

Synopsis

Ice.ACM.Close=num

Description

This property determines when Active Connection Management (ACM) closes a connection. Legal values for num correspond directly to the ACMClose enumerators found in Connection.ice:

Slice
local enum ACMClose
{
    CloseOff,
    CloseOnIdle,
    CloseOnInvocation,
    CloseOnInvocationAndIdle,
    CloseOnIdleForceful
}

The table below describes the semantics of each value:

EnumeratorProperty ValueDescription
CloseOff0Disables automatic connection closure. A connection will be closed when the communicator is destroyed, when there's a network failure or when the peer closes it.
CloseOnIdle1Gracefully closes a connection that has been idle for the configured timeout period. A connection is considered to be idle if it has not sent or received any messages, and is not waiting for the completion of any outgoing invocations or incoming requests.
CloseOnInvocation2Forcefully closes a connection with pending outgoing invocations that has otherwise been idle for the configured timeout period, meaning it has not sent or received any messages, and is not waiting for the completion of any incoming requests. This is useful when you don't want an idle connection to be closed but still want the connection to be forcefully closed when outgoing invocations are in progress and no messages are received from the server, potentially indicating that the server is dead. This setting should be used with a heartbeat configuration where heartbeats are sent at regular intervals by a server while a request is being dispatched (such as HeartbeatOnDispatch, HeartbeatOnIdle or HeartbeatAlways). Hearbeat messages prevent a connection from becoming idle, and the sudden lack of heartbeat messages from a server typically indicate a problem in the server.
CloseOnInvocationAndIdle3Combines the behaviors of CloseOnIdle and CloseOnInvocation, meaning an idle connection is closed gracefully, while an otherwise idle connection with pending outgoing invocations is closed forcefully.
CloseOnIdleForceful4Forcefully closes a connection that has been idle for the configured timeout period, regardless of whether the connection has pending outgoing invocations or incoming requests. This is typically used together with a heartbeat configuration that keeps idle connections alive.

You must set a non-zero value for Ice.ACM.Timeout for this property to have any effect. Use Ice.ACM.Close in conjunction with Ice.ACM.Heartbeat to tailor a connection management policy for your application. Use the corresponding Ice.ACM.Client.Close or Ice.ACM.Server.Close properties to override this setting in a client or server context, respectively. See Connection Closure for more information on closing connections.

If not defined, the default value is 3 in a client context and 2 in a server context.

Ice.ACM.Heartbeat

Synopsis

Ice.ACM.Heartbeat=num

Description

This property determines whether heartbeats are enabled. You can use heartbeats in conjunction with the Ice.ACM.Close and Ice.ACM.Timeout properties to create a connection management policy as part of Active Connection Management (ACM). Legal values for num correspond directly to the ACMHeartbeat enumerators found in Connection.ice:

Slice
local enum ACMHeartbeat
{
    HeartbeatOff,
    HeartbeatOnDispatch,
    HeartbeatOnIdle,
    HeartbeatAlways
}

The table below describes the semantics of each value:

EnumeratorProperty ValueDescription
HeartbeatOff0Disables heartbeats.
HeartbeatOnDispatch1Send a heartbeat at regular intervals if the connection is idle and only if there are pending dispatch. This is useful if you don't want to send heartbeats when the connection is idle but still want the connection to notify the client that it's alive while the dispatch are in progress.
HeartbeatOnIdle2Send a heartbeat at regular intervals when the connection is idle.
HeartbeatAlways3Send a heartbeat at regular intervals until the connection is closed.

You must set a non-zero value for Ice.ACM.Timeout for this property to have any effect. Use the corresponding Ice.ACM.Client.Heartbeat or Ice.ACM.Server.Heartbeat properties to override this setting in a client or server context, respectively.

To send a heartbeat, the Ice run time sends a validate connection message to the remote end. Heartbeats are not supported on datagram connections.

If not defined, the default value is 1.

Ice.ACM.Timeout

Synopsis

Ice.ACM.Timeout=num

Description

The value for num represents a timeout in seconds for Active Connection Management (ACM). The setting for Ice.ACM.Close determines when connections are automatically closed, and the setting for Ice.ACM.Heartbeat can be used to prevent connections from being closed prematurely. Use the corresponding Ice.ACM.Client.Timeout or Ice.ACM.Server.Timeout properties to override this setting in a client or server context, respectively. The value must be positive or 0. Setting the timeout to 0 disables ACM which is equivalent to setting CloseOff and HeartbeatOff for the close and heartbeat ACM settings respectively.

If not defined, the default value is 60.

Ice.ACM.Client.Close

Synopsis

Ice.ACM.Client.Close=num

Description

Overrides the value of Ice.ACM.Close in a client context, meaning for outgoing connections.

Ice.ACM.Client.Heartbeat

Synopsis

Ice.ACM.Client.Heartbeat=num

Description

Overrides the value of Ice.ACM.Heartbeat in a client context, meaning for outgoing connections.

Ice.ACM.Client.Timeout

Synopsis

Ice.ACM.Client.Timeout=num

Description

Overrides the value of Ice.ACM.Timeout in a client context, meaning for outgoing connections.

Ice.ACM.Server.Close

Synopsis

Ice.ACM.Server.Close=num

Description

Overrides the value of Ice.ACM.Close in a server context, meaning for incoming connections.

Ice.ACM.Server.Heartbeat

Synopsis

Ice.ACM.Server.Heartbeat=num

Description

Overrides the value of Ice.ACM.Heartbeat in a server context, meaning for incoming connections.

Ice.ACM.Server.Timeout

Synopsis

Ice.ACM.Server.Timeout=num

Description

Overrides the value of Ice.ACM.Timeout in a server context, meaning for incoming connections.