CORBA 2.6.1 Programmer's Guide for C++

The Comm Server process relays the first request to the server using the GIOP over TS/MP protocol, and TS/MP selects a server process,
within the application server pool, to host a factory object. The factory object creates a stateless worker object and returns the worker's object
reference to the Comm Server, which relays the object reference to the client. Subsequent requests from the client are routed through the same
Comm Server and sent directly to the same worker object. Communications between the worker and the Comm Server use the GIOP over
Guardian file system protocol. In this scenario, all three transport protocols (IIOP, GIOP over TS/MP, and GIOP over Guardian file system) must
be configured in the application profile.
If more than one client process is used, TS/MP can route requests from different clients to different Comm Server processes and thus to
different factory servers; a Comm Server process is typically configured to use an application server within its own processor whenever possible.
This arrangement provides for additional load balancing.
If you use a stateful POA for a servant in a TS/MP process, always set the DELETEDELAY parameter in the TS/MP configuration to zero.
Otherwise, TS/MP server processes are deleted if they are inactive for some time, even if a stateful session is still in progress. The use of
stateful servants thus disallows dynamic shrinking of the server pool.
Adjusting TS/MP Configuration Parameters
If you use server pools for your application server processes, you can support increased request traffic by adjusting parameters in your TS/MP
configuration. And because the NonStop CORBA communications services processes—the Comm Servers, LSD, ILSD, and BSD processes—
are implemented as server pools, you can also adjust the configuration parameters for those processes. (In TS/MP documentation, server pools
are called server classes.)
TS/MP parameters that you might want to reconfigure include:
You can increase the maximum number of server processes in a server pool by increasing the value of the MAXSERVERS parameter for
the server pool.
For performance tuning, you can adjust the selection of processors in which your server processes will run by using the CPUS parameter
for the server pool.
You can increase the total number of LINKMON processes that can communicate with servers in the server pools by increasing the value
of the MAXLINKMONS parameter in your TS/MP configuration. Because there is one LINKMON process per processor on a NonStop
system, increasing MAXLINKMONS is advantageous in a distributed environment, where requests could be coming from one of a large
number of processors.
If your application performs thread-blocking operations, you can also increase throughput by increasing the value of the
MAXLINKS parameter for the server pool. Doing so increases the maximum allowable number of outstanding requests from a LINKMON
process to a server process, so that queuing of requests occurs at the server rather than at the LINKMON process. (If your application
performs process-blocking operations, such as SQL database accesses, you should keep the MAXLINKS setting at 1.)
You can adjust TS/MP parameters by using the Console (the recommended method) or by using PATHCOM commands (either interactively or
by modifying and running the
nsdstart script). For further information, refer to the NonStop CORBA 2.6.1 Administration Guide.
Using Parallel Library TCP/IP
Another way to increase capacity and fault tolerance is to configure your NonStop CORBA communications processes—the Comm Server, LSD,
ILSD, and BSD processes—to use Parallel Library TCP/IP. Parallel Library TCP/IP enables you to scale up to sixteen processes with minimal
change to your NonStop CORBA configuration.
In a traditional configuration without Parallel Library TCP/IP, each configured Comm Server, LSD, ILSD, and BSD process runs as a server pool
consisting of one process listening at an assigned TCP/IP port; thus there is a one-to-one ratio between communications processes and ports.
When you configure these processes with Parallel Library TCP/IP, up to sixteen Comm Server, LSD, ILSD, or BSD processes running in a