*DMLONGKEEPALIVE (GETMODE)
9.1E
*DMLONGKEEPALIVE={value}
This control reports the keep-alive handshaking mode between the client and the server. Prior to version 9.2, this keyword was *DMLONGKEEPALIVE. The handshaking allows the server to detect a possibly hung client thread. The server terminates the thread after the specified number of minutes with no activity.
The {value} returned is one of the following:
|
Value |
Long Keep Alive processing is ... |
|
0 |
OFF. (default) |
|
1 |
ON. |
Note the following:
The keyword 'DM_LONGKEEPALIVE={minutes}' may be specified in the [environment] section of the SUNDM configuration file. The {minutes} value has a minimum of three minutes. If this keyword is not specified, the default long keepalive time is sixty minutes. This SUNDM keyword takes affect when the data manager creates any new child thread.
When the SUNDM data manager receives a long keepalive message from a client runtime, the data manager waits for the current long keepalive time frame to receive the next message.
If the data manager does not receive another message from the client runtime within the long keepalive time duration, the data manager child thread is terminated after a child recovery is attempted.
If the data manager receives a message from the client runtime before the long keepalive time duration expires, the SUNDM data manager reverts to the normal keepalive processing. The normal keepalive processing expects that a keepalive message must be received by the data manager child thread within the keepalive time specified by the 'DM_KEEPALIVE={minutes}' time frame.
If the SETMODE *DMLONGKEEPALIVE {mode} is set to a zero value, the client runtime sends a message to all data managers currently being accessed that causes the use of normal keepalive processing.
When the SETMODE *DMLONGKEEPALIVE {mode} is set to a non-zero value, only long keepalive messages are sent to the data managers. Once the SETMODE *DMLONGKEEPALIVE {mode} is set to a non-zero value, the execution of a PLB WINAPI or PLB method for an AUTOMATION, CONTAINER, or CONTROL object causes a long keepalive message to be sent to the SUNDM data manager.
This implementation is needed to prevent unexpected termination of data manager child threads caused by excessively long execution times for these PLB instructions. This can prevent unexpected I81 errors.
See Also: List Controls (GETMODE), GETMODE
![]() |