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.).