CORBA 2.6.1 Programmer's Guide for C++

Using the mapped Comm Server if mapping is present. (If the mapping is older than 24 hours, it updates the timestamp in the record.)
Creating a new mapping for the Comm Server if no mapping is present. To create the mapping, the LSD searches the csmap@load_table for
the least busy server, skipping dedicated comm_servers, and writes the new record in
csmap@map_table, keyed by client’s TCP/IP address.
(If Parallel TCP/IP is configured, the LSD doesn't search the load table, but picks the next logical Comm Server using a round-robin
technique.)
Sends the forwarding reply, which contains a new reference with the Comm Server address and the original object key.
Client ORB Tries Again (flows 6 and 7 in the figure)
The client ORB receives and demarshals the new reference (flow 6 in the figure).
The client ORB resends the original request (flow 7 in the figure). When the client ORB resends, it:
Connects to the address in the IIOP profile of the Comm Server
Sends an _is_a request to the Comm Server
Comm Server Receives and Relays Request (flows 7 and 8 in the figure)
The Comm Server now initiates the following actions:
The Comm Server receives the connection (flow 7 in the figure) and creates an IIOP client_agent.
The client_agent demarshals the request up through the object key.
The client_agent demarshals the object key to find the state policy = STATELESS, and to find the tsmp relay profile.
The client_agent gets the tsmp server_agent. The key is tsmp profile. The agent asks the server_agent to relay the request. The server_agent
interposes a server_agent scoped request ID and sends the request to the server via LINKMON.
LINKMON delivers the request to the Naming Service based on the TS/MP load (flow 8 in the figure).
Naming Service Processes Request (flows 8 and 9 in the figure)
The chosen server ORB receives (flow 8 in the figure) and processes the request. The ORB:
Demarshals the request.
Dispatches the request to the target object. The CORBA::Object handles the is_a request, and the result is TRUE.
Builds the reply.
Sends the tsmp reply (flow 9 in the figure).
Comm Server Receives and Relays Reply (flows 9 and 10 in the figure)
When the server_agent receives the reply, it
Demarshals the reply through the request ID.
Interposes original request ID.
Asks the originating client_agent to relay the reply.
The
client_agent then relays the reply (flow 10 in the figure), sending the reply message on its connection.
Client ORB Processes an is_a Reply
Now the client ORB demarshals the reply. It
Sees the result is true.
Returns the duplicate cast as a CosNaming::NamingContext.
At this point the client is ready to execute methods against the root naming context.
Summary
This walkthrough describes only one of many scenarios for message flows in NonStop CORBA. If, for example, the Interoperable Naming Service had been
used in addition to the Naming Service, additional steps would have been necessary.
Chapter 12. Writing Wrappers for Legacy Clients and
Servers
Appendix B. Object References