OSF DCE Application Development Guide--Core Components

Attribute Configuration Language
18.3.3 The include Statement
This statement specifies any additional header files you want included in the generated
stub code. You can specify more than one header file. Do not specify the directory name
or file extension when you use the include statement. The compiler appends the correct
extension for the language you are using. For C, the compiler appends the .h extension.
If you want to specify the directory name(s), use the -cc_opt or -I IDL compiler
command arguments.
Use the include statement whenever you use the represent_as, implicit_handle,or
cs_char attributes and the specified type is not defined or imported in the IDL file.
The include statement has the following syntax. (An example is shown with the
represent_as example in Section 18.3.9.)
include "filename";
18.3.4 The auto_handle Attribute
This attribute causes the client stub and RPC runtime to manage the binding to the server
by using a directory service. Any operation in the interface that has no parameter
containing binding information is bound automatically to a server so the client does not
have to specify a binding to a server.
When an operation is automatically bound, the client does not have to specify the server
on which an operation executes. If you make a call on an operation without explicit
binding information in an interface for which you have specified auto_handle, and no
client/server binding currently exists, the client stub selects an available server and
establishes a binding. This binding is used for this call and subsequent calls to all
operations in the interface that do not include explicit binding information, while the
server is still available.
Server termination, network failure, or other problems can cause a break in binding. If
this occurs during the execution of an automatically bound operation, the client stub
issues the call to another server, provided one is available and the operation is
idempotent, or it determines that the call did not start to run on the server. Similarly, if a
communications or server failure occurs between calls, the client stub binds to another
server for the next call, if a server is available.
If the client stub is unable to find a server to run the operation, it reports this by returning
the status code rpc_s_no_more_bindings in the comm_status parameter, or by raising
the exception rpc_x_no_more_bindings if the operation does not use the comm_status
attribute for error reporting. Note that, if a binding breaks, the search for another server
begins at the directory service entry following the one where the binding broke. This
means that, even if a server earlier in the list becomes available, it is not treated as a
candidate for binding. After the RPC runtime tries each server in the list, it reinitializes
the list of server candidates and tries again. If the second attempt is unsuccessful, the
RPC runtime reports the status code rpc_s_no_more_bindings. The next call on an
124245 Tandem Computers Incorporated 185