Communicator e3000 MPE/iX Release 7.0 Express 1 (Software Release C.70.01) (30216-90328)
Chapter 5 115
Technical Articles
DCE to RPC 1.2.1
running MPE/iX version 6.0 or later. RPC 1.2.1 comes with some dependent patches. These
patches include a loader patch, a libc patch and the threads patch. The patch ID for the
current release of RPC 1.2.1 on MPE/iX is FRIKXN7C.
New Features in RPC/IDL 1.2.1
The following section lists the various new features in the RPC runtime library and IDL of
RPC 1.2.1 that are available. Both runtime library and IDL compiler have been
implemented to provide the new features in RPC/IDL 1.2.1.
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 with the logs to be written to a file named after the process-id of
the process, then 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. So now the
application developer can use the exception handling routines (TRY, CATCH, CATCH-ALL
etc.,).