OSF DCE Application Development Guide--Core Components
OSF DCE Application Development Guide—Core Components
1. The RPC thread begins in the client process, as a client application thread makes a
remote procedure call to its stub; at this point, the client thread becomes part of the
RPC thread.
2. The RPC thread extends across the network to the server address space.
3. The RPC thread extends into a call thread, where the remote procedure executes.
While a called remote procedure is executing, the call thread becomes part of the
RPC thread. When the call finishes executing, the call thread ceases being part of
the RPC thread.
4. The RPC thread then retracts across the network to the client.
5. When the RPC thread arrives at the calling client application thread, the remote
procedure call returns any call results and the client application thread ceases to be
part of the RPC thread.
Figure 14-4 shows a server executing remote procedures in its two call threads, while the
server application thread listens.
Figure 14-4. Concurrent Call Threads Executing in Shared Address Space
Calling
code
Concurrent remote procedure calls
Called
remote
procedure
Call thread
Client
Server
Calling
code
Called
remote
procedure
Client
Call thread
Maximum concurrent calls = 2
A client application
thread
A client application
thread
thread
The server application
address
Single
space
RPC thread
RPC thread
Note: Although a remote procedure can be viewed logically as executing within
the exclusive control of an RPC thread, some parallel activity does occur
in both the client and server.
An RPC server can concurrently execute as many remote procedure calls as it has call
threads. When a server is using all of its call threads, the server application thread
continues listening for incoming remote procedure calls. While waiting for a call thread
to become available, DCE RPC server runtimes can queue incoming calls. Queuing
14 − 4 Tandem Computers Incorporated 124245