HP DCE/9000 Application Development Tools for HP-UX 11i Release Note

19
HP DCE/9000 Version 1.8 Application Development Tools for HP-UX 11i Release Note
Developing DCE Applications with HP DCE/9000
DCE CMA exceptions should never be allowed to propagate into a C++ scope. Allowing this
to happen could result in destructors failing to be executed. This can lead to memory leaks
and unexpected behavior. For example, suppose some C++ code makes a call to a C
function. Within this C function, a CMA exception can be raised. It is very important that
the CMA exception also be caught within the C function. If it is not, then the CMA
exception could propagate into the C++ environment, resulting in unexpected behavior.
A DCE exception can also be caught in a C++ routine which has called a DCE function. You
must be sure that there are no memory allocations within the TRY block (note that some
conversions cause memory allocation):
Try {call a function which might do a DCE RAISE}
CATCH_ALL {handle it but don’t RERAISE}
ENDTRY
Note that some library calls, and most system calls, are CMA cancellation points, and
must be wrapped as described here.
Do not enable cancellation of a thread that is running C++ code. Asynchronous
cancellation may cause a DCE exception to be raised at any time. Synchronous
cancellation may cause a DCE exception to be raised any time a system routine is
executed.
The following item applies only when programming DCE applications using C++ and
standard DCE:
Do not use C++ exceptions in multi-threaded processes, including DCE servers and
managers. The stack unwinding that occurs when a C++ exception is raised is not
guaranteed to work in the presence of multiple RPC threads.
Notes on Programming with HP DCE
The following are miscellaneous notes on programming with HP DCE. Also see Programming
with Threads on HP-UX (B2355-90060).
Several features of interest to programmers are not supported at the HP DCE 1.8, including
support for the rdaclif routines for ACL managers. You should also be aware of future
changes to threads support. For details, see "Features Planned for a Future Release" in
Chapter 1 of Planning and Configuring HP DCE 1.8.
Appropriate Uses of the Cell Directory Service
The Cell Directory Service (CDS) was designed for a specific purpose: to store and retrieve
server bindings in a DCE cell. This mission implies numerous assumptions about the volume
of information that must be stored and about the types and frequency of access to that