DCE Application Programming Guide
Application Design Considerations
HP NonStop DCE Application Programming Guide—429551-003
2-2
RPC Considerations and Limits
The standard server has the advantage of being readily portable to other platforms.
Also, performance can be better than with the distributor-agent extension, where the
cost of an interprocess communication is added to every RPC.
The standard multithreaded server does have significant disadvantages, however:
•
No load distribution
Scalability is limited because the work of the server cannot be distributed across
multiple processors.
•
Process blocking
Making system and library calls from a multithreaded program blocks the entire
process, not just the calling thread. This blocking can inhibit other threads that
require timely execution. Among the calls that block processes are SQL/MP calls
and file input or output calls.
To resolve this situation, implementations of DCE threads from some
manufacturers provide jacket routines for system calls. The jacket routine invokes
a nonblocking, or nowait, version of the system call and suspends the thread until
the thread’s operation is complete.
NonStop DCE provides jacket routines for SERVERCLASS_SEND_ procedure
calls and for TMF transaction demarcation. These jackets are described in
Section 3, Application Programming With NonStop DCE Threads, and in
Appendix C, NonStop DCE Jacket Functions. Four new jacket routines have been
included for the Guardian Procedures SERVERCLASS_DIALOG_BEGIN_,
SERVERCLASS_DIALOG_SEND_, SERVERCLASS_DIALOG_END_, and
SERVERCLASS_DIALOG_ABORT_.
•
Difficulty of threading
A multithreaded application is more difficult both to implement and to debug than a
single-threaded application.
RPC Considerations and Limits
When designing DCE applications to use RPC, you should consider threading issues,
understand the consequences of choosing a particular protocol sequence, and know
the capacity and limits of NonStop DCE. Section 3, Application Programming With
NonStop DCE Threads, discusses threading issues. Protocol sequences and the limits
of NonStop DCE are discussed next.
UDP Versus TCP Protocol Sequences
Certain limitations in NonStop DCE affect which protocol sequence to choose for an
application. When deciding upon a protocol sequence, a programmer must consider
the issues outlined in Table 2-1 on page 2-3.