rpc_clear_server_binding(3ncs) rpc_clear_server_binding(3ncs)
Name
rpc_clear_server_binding - unset the binding of an RPC handle to a server (client only)
Syntax
#include <idl/c/rpc.h>
void rpc_$clear_server_binding(handle, status)
handle_t handle;
status_$t *status;
Arguments
handle The RPC handle whose binding is being cleared.
status The completion status. If the completion status returned in is equal to status_$ok , then the routine that supplied it
was successful.
Description
The routine removes the association between an RPC handle and a particular server (that is, a particular port number), but does not remove
the associations with an object and with a host (that is, a network address). This call replaces a fully bound handle with a bound-to-host
handle. A bound-to-host handle identifies an object located on a particular host but does not identify a server exporting an interface to
the object.
If a client uses a bound-to-host handle to make a remote procedure call, the call is sent to the Local Location Broker (LLB) forwarding
port at the host identified by the handle. If the call's interface and the object identified by the handle are both registered with the
host's LLB, the LLB forwards the request to the registering server. When the client RPC runtime library receives a response, it binds the
handle to the server. Subsequent remote procedure calls that use this handle are then sent directly to the bound server's port.
The routine is useful for client error recovery when a server dies. The port that a server uses when it restarts is not necessarily the
same port that it used previously; therefore, the binding that the client was using may not be correct. This routine enables the client to
unbind from the dead server while retaining the binding to the host. When the client sends a request, the binding is automatically set to
the server's new port.
Diagnostics
This section lists status codes for errors returned by this routine in
rpc_$not_in_call An internal error.
rpc_$proto_error An internal protocol error.
Files
See Also
intro(3ncs), rpc_bind(3ncs), rpc_clear_binding(3ncs), rpc_set_binding(3ncs)
rpc_clear_server_binding(3ncs)