OSF DCE Application Development Guide--Introduction and Style Guide
OSF DCE Application Development Guide—Introduction and Style Guide
1.6.3.1 The Possibility of Binding Failure
Perhaps the most important thing to mention about this step is that it may not at first
succeed. Remember that the client imported a partial binding to the server. Completion
of the binding, and therefore of the remote call, depends on the endpoint mapper’s being
able to successfully complete the incoming binding with a good endpoint for either the
specified server (if one is specified) or for one of its own choosing. This in turn depends
on the up-to-dateness of the host’s endpoint database, and that depends on such things as
other servers’ being conscientious about unregistering themselves when terminating, and
so on. Even the target host specified may not be valid when the call is made because of
any one of the various network problems that can occur.
In other words, the client should regard an unused binding not as a firm promise that
comes directly from the server, but rather as a well-meant expression of intent passed on
by the name service and based on circumstances not entirely under anyone’s control.
This is the reason for the series of binding import calls described earlier. The prudent
thing for a client to do after importing a binding is, therefore, to assume that it will have
to perform one or more times a series of steps something like the contents of the
following loop:
1. Annotate the binding handle for security.
2. Try it out: attempt a remote call with it.
3. If the call succeeds, discard the binding import context and proceed to step 5 in
this loop.
4. Otherwise, if the call fails, import the next binding and return to step 1 in this loop.
5. Proceed with remote operations until finished.
If all imported bindings happen to fail, this could be because the client’s cache of
bindings has become stale. The client could then try calling
rpc_ns_mgmt_handle_set_exp_age( ) with a low timeout value, and then retry the
previous loop. A last resort could be to allow the user to type in a string binding.
Note that if you are using the auto-binding method and the binding becomes unusable for
some reason, the RPC runtime will rebind under most conditions.
1.6.3.2 The Result of Successful Binding
If my_rpc_op( ) or its equivalent does succeed, the binding will as a result be complete
(even if it was partial before), and the information in it can be regarded with much more
assurance from then on. Subsequent remote procedure calls by the client to the same
server will go straight to the bound-to server.
1− 30 Tandem Computers Incorporated 124246










