DCE for the HP e3000 (B3821-90003)
Chapter 6 51
Introduction to RPC
Runtime Library
Runtime Library
Private Client Sockets
Previously a common pool of sockets was shared by concurrent RPC
requests. Making this concurrency work requires that there be a
“helper” thread created to read from all of the open sockets, passing
received data onto the call thread for which it is intended. Now with
“Private client sockets” there are a couple of sockets (2/3) which will be
used only for individual requests (private to the request thread). This
reduces the overhead of “helper” thread in case of small applications.
However, when we run out of private sockets, the sharing of sockets
comes into effect.
Serviceability
This is another new feature, which has been added to RPC runtime.
This feature logs messages during the runtime to a specified log file.
The level of the messages and the components can be configured using
the routing file (/opt/dcelocal/var/svc/routing).
This feature will be helpful during analysis of a problem.
By default the routing file is picked from
“/opt/dcelocal/var/svc/routing”. The
DCE_SVC_ROUTING_FILE environment variable can be used to
name an alternate location for the file.
The various switches that can be used are as below:
“general” “mutex” “xmit” “recv” “dg_state” “cancel” “orphan” “cn_state”
“cn_pkt” “pkt_quotas” “auth” “source” “stats” “mem” “mem_type”
“dg_pktlog” “thread_id” “timestamp” “cn_errors” “conv_thread” “pid”
“atfork” “inherit” “dg_sockets” “timer” “threads” “server_call” “nsi”
“dg_pkt” “libidl”.
The level of messaging ranges from 0-9, where level 9 is the highest
level and gives the maximum details. The file to which the logs should
be redirected can also be configured. For example: for the RPC, if we
want to generate log files with “general” and “cn_pkt” switch enabled at
level 9 and the logs to be written to a file named after the process-id of
the process, the line would be something like:
rpc:general.9,cn_pkt,9:FILE:/tmp/%ld.log
Exception Handling
The new version RPC 1.2.1 supports the exception-handling feature of
RPC. Now, the application developer can use the exception handling
routines (TRY, CATCH, CATCH-ALL, etc.).