When a client thread requests a response from a CM, the thread sleeps, or appears to have stopped responding to the client, until the thread receives a response from a coordination module.
A client connection is activated only by a CM response, or the client disconnecting before a CM response is issued. Coordination requests issued by threads are broadcast to all connected CMs via Open Client™ notification procedures.
A
notification is a special registered procedure that has no associated action
or code, but that can be used to notify Open Client applications
when certain events occur within OpenSwitch. See Chapter 8, “Notification Procedures,” in
the OpenSwitch Administration Guide.
Notification procedures provide asynchronous communication with one or more client applications, which allows multiple CMs to be attached to an OpenSwitch server at any given time.
Each CM receives a copy of every notification broadcast.
However, you must ensure that no more than one CM attempts to respond
to any given message.
OpenSwitch uses an internal notification procedure, np_req_srv, to communicate with a CM and notify it of connections that are waiting for a response. This procedure is used by OpenSwitch internally to indicate that the connection is blocked and is awaiting a response from the CM, which can come in the form of a call to rp_set_srv, rp_switch, or rp_kill. Only these registered procedures (rp_set_srv, rp_switch, or rp_kill) or a disconnection from the client can “wake up” a connection waiting for a response.
np_req_srv is issued
only if at least one CM is attached and the coordination mode is
AVAIL, ALWAYS, or ENFORCED. For more information, see “Coordination modes”.