HP DCE/9000 Version 1.7 Application Development Tools for HP-UX 11.
Notice The information contained in this document is subject to change without notice. HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Hewlett-Packard shall not be liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance or use of this material.
About This Document This document is the release note for the HP DCE/9000 Version 1.7 (HP DCE 1.7) Application Development Tools for HP-UX 11.0. HP DCE 1.
iv HP DCE 1.
Contents 1. What’s In This Version Application Development Tools Product Options . . . . . . . . . . . . . . . . . . .8 New Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 2. Known Problems and Work Arounds DCE-CoreTools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 DCE-C-Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 DCE-OO-Tools . . . . . . . . .
Contents 7. Developing DCE Applications with HP DCE/ 9000 Building DCE Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Notes on Debugging HP DCE Applications . . . . . . . . . . . . . . . . . . . . . . 32 Using HP DCE with C++ Applications . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Notes on Programming with HP DCE . . . . . . . . . . . . . . . . . . . . . . . . . . Appropriate Uses of the Cell Directory Service. . . . . . . . . . . . . . . . . .
1 What’s In This Version The HP DCE Version 1.7 Application Development Tools for HP-UX 11.0 help users to develop HP DCE 1.7 applications. HP DCE 1.
What’s In This Version Application Development Tools Product Options Application Development Tools Product Options The HP DCE Version 1.7 Application Development Tools for HP-UX 11.0 consists of two optional products. The licenses you have purchased from Hewlett-Packard determine whether you can install either or both products. The two optional products are: • HP DCE Application Development Tools (the DCE-C-Tools product) assist in the development of HP DCE programs written in C.
What’s In This Version New Features New Features There are no new features in the HP DCE 1.7 Application Development Tools for HP-UX 11.0. HP DCE 1.
What’s In This Version New Features 10 HP DCE 1.
2 Known Problems and Work Arounds This section describes known problems in the HP DCE Version 1.7 Application Development Tools for HP-UX 11.0. HP DCE 1.
Known Problems and Work Arounds DCE-CoreTools DCE-CoreTools As of DCE 1.6, the DCE_SVC_DEBUG macro was changed to acquire a SVC mutex lock (in prior releases this was done in the serviceability library). Because of this, DCE applications based on DCE 1.5 and earlier releases that make use of this macro will be binary incompatible with DCE 1.6 applications and so must be recompiled under DCE 1.6 on HP-UX 10.30. 12 HP DCE 1.
Known Problems and Work Arounds DCE-C-Tools DCE-C-Tools There are no problems in HP DCE-C-Tools discovered at HP DCE 1.5, 1.6, or 1.7. HP DCE 1.
Known Problems and Work Arounds DCE-OO-Tools DCE-OO-Tools The following problems and work arounds in HP DCE-OO-Tools, documented at HP DCE 1.4.1, 1.5, and 1.6, are also applicable at this version: • You should minimize your application’s dependencies on protected and private members and member functions as their features may change in a future release. • When using C++ to develop DCE applications, you should adhere to the following advice: ✓ Do not enable cancellation of a thread.
3 Compatibility Information and Installation Requirements This section provides a brief overview of the installation process for the HP DCE Version 1.7 Application Development Tools for HP-UX 11.0 and the software prerequisites and disk space requirements that must be met before you can install the software. HP DCE 1.
Compatibility Information and Installation Requirements Overview Overview The following is a brief overview of the installation process: 1. Verify that your site meets the hardware and software prerequisites described in the following subsections. 2. Use the swcopy tool to load HP DCE/9000 (Version 1.7) Application Development Tools software from the media to the same network distribution area that contains the HP DCE/9000 Core Services release software. 3.
Compatibility Information and Installation Requirements Prerequisites Prerequisites The prerequisites for installation of DCE Version 1.7 Application Development Tools for HP-UX 11.0 are: DCE-C-Tools • HP Series 700/800 Computer • HP-UX 11.0 release, including the following filesets: ✓ DCE-Core.DCE-CORE-RUN ✓ DCE-Core.DCE-CORE-SHLIB ✓ DCE-CoreTools.DCE-BPRG The first two filesets listed are included with the HP-UX 11.0 Core OS media. The last fileset is included with the HP-UX 11.
Compatibility Information and Installation Requirements Prerequisites • HP C++ Compiler (Version A.10.11) • HP C Compiler (Version A.11.0) • The DCE-C-Tools Programming Libraries fileset, DCE-TOOLS-LIB • At least 5 Mbytes (5,000 Kbytes) of available disk space to accommodate the filesets of the HP-DCE-OO-Tools product you will be installing: ✓ DCE-OO-HELP (HP OODCE Online Help) ✓ DCE-OO-TOOLS (HP OODCE Application Tools) NOTE The HP DDE debugger is highly recommended for multithreaded debugging support.
4 What’s Fixed In This Version This section describes bug fixes in the HP DCE Version 1.7 Application Development Tools for HP-UX 11.0. HP DCE 1.
What’s Fixed In This Version DCE-C-Tools DCE-C-Tools No major fixes were made at HP DCE Version 1.7. NOTE Refer to the README notes associated with each sample application for minor changes in that application. 20 HP DCE 1.
What’s Fixed In This Version DCE-OO-Tools DCE-OO-Tools The following fixes were made at HP DCE Version 1.4.1: • Fixed DCEServer class symbols unique and multiple by renaming the DCEHostPolicy enum members unique to DCEunique and multiple to DCEmultiple to avoid conflict with similar names used in customer’s code.
What’s Fixed In This Version DCE-OO-Tools 22 HP DCE 1.
5 What Manuals Are Available For This Version Describes the documentation available for the HP DCE Version 1.7 Application Development Tools for HP-UX 11.0. HP DCE 1.
What Manuals Are Available For This Version Printed Documentation Printed Documentation The printed documentation for the Application Development Tools consists of the following: • This document, which describes both the DCE-C-Tools and DCE-OO-Tools products. • The NCS 1.5.1 to DCE RPC Transition Guide (B3193-9002), which is shipped with DCE-C-Tools. All other documentation for these products is available online only; you can print the online files through the standard help and man page print functions.
What Manuals Are Available For This Version Online Documentation Online Documentation DCE-C-Tools DCE-C-Tools includes the following online documentation: • The following CDE Help volumes: ✓ HP DCE Application Development Tools (access to man pages) ✓ HP Sample Applications Online Help To access these volumes, select HP DCE Application Development Tools from the CDE Front Panel. • HP DCE Version 1.
What Manuals Are Available For This Version Online Documentation • HP DCE Version 1.7 Application Development Tools for HP-UX 11.0 Release Note, an ASCII version of this document • The following manual, provided in PostScript format only: HP Object Oriented DCE C++ Class Library Programmer’s Guide ( /opt/dce/share/hptools/doc/oodce/users_gd.ps) • Man pages NOTE To access the HP OODCE man pages from the HP Help System, include the directory /opt/dce/share/usr/man in your MANPATH environment variable.
6 Software Availability in Native Languages The HP DCE 1.7 Application Development Tools for HP-UX 11.0 are currently available in English only. HP DCE 1.
Software Availability in Native Languages 28 HP DCE 1.
7 Developing DCE Applications with HP DCE/ 9000 This chapter provides information about developing, building, and debugging DCE applications with HP DCE/9000. NOTE The HP DCE application development software, including the IDL compiler, the NIDL-to-IDL translator, DCE interface definition files and header files, the International version of the DCE archive library, and the pthreads archive library, may not be included in the HP-UX bundle that you installed.
Developing DCE Applications with HP DCE/ 9000 Building DCE Programs Building DCE Programs NOTE Hewlett-Packard supports only the ANSI C compiler for building HP DCE applications. Hewlett-Packard cannot provide support for problems with HP DCE applications not compiled using ANSI C. This restriction also applies to applications on HP-UX 10.x systems built using the HP-UX user-space threads library (libcma).
Developing DCE Applications with HP DCE/ 9000 Building DCE Programs • If you link in libdce, libcma is automatically linked in; if you are using libcma without libdce, you must link libcma first, as follows: -lcma other_libraries • libdce and libc must be either both shared or both archived library versions; a mixed environment with one of the libraries the shared version and the other the archived version is not supported.
Developing DCE Applications with HP DCE/ 9000 Notes on Debugging HP DCE Applications Notes on Debugging HP DCE Applications The following are tips on debugging HP DCE applications. Also see Programming with Threads on HP-UX (B2355-90060) for additional information about debugging HP DCE Applications. • To debug an HP DCE threads application with DDE, use the -dce_thread option. By default, DDE assumes that the application is single- or kernel-threaded.
Developing DCE Applications with HP DCE/ 9000 Notes on Debugging HP DCE Applications • Run the server side of your application under the debugger so that exceptions raised in server code will trap into the debugger rather than being reflected back to the client process via RPC. This makes it easier to identify bugs in the server that might otherwise appear to be client bugs. See the README file and server_debug.
Developing DCE Applications with HP DCE/ 9000 Using HP DCE with C++ Applications Using HP DCE with C++ Applications If you want to use C++ with either standard DCE or HP’s OODCE to create DCE applications, there are some practices you must avoid. Most of these relate to lack of thread-safeness of C++ operations. The following list describes the practices you should avoid. These guidelines apply to HP C++ compiler version A.3.70 and later.
Developing DCE Applications with HP DCE/ 9000 Using HP DCE with C++ Applications 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. HP DCE 1.
Developing DCE Applications with HP DCE/ 9000 Notes on Programming with HP DCE 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.7, including support for the rdaclif routines for ACL managers. You should also be aware of future changes to threads support.
Developing DCE Applications with HP DCE/ 9000 Notes on Programming with HP DCE Cell Directory Service Programming Interfaces The supported programming interfaces to CDS are the RPC Name Service Independent (RPC_NS) interface and the X/Open Directory Service (XDS) interface. The RPC_NS function call prototypes are in the include file /usr/include/dce/rpc.h. The XDS function call prototypes are in the include file / usr/include/xds.h.
Developing DCE Applications with HP DCE/ 9000 Notes on Programming with HP DCE For example: ncacn_ip_tcp[5000-5110,5500-5521]:ncadg_ip_udp[6500-7000] To use RPC_RESTRICTED_PORTS for DCE itself, set the environment variable before starting your cell. The environment variable must be set whenever you restart DCE. Note that this facility does not add any security to RPC and is not intended as a security feature. It merely facilitates configuring a network “fire wall” to allow incoming calls to DCE servers.
Developing DCE Applications with HP DCE/ 9000 Notes on Programming with HP DCE manager access function will have to make an access decision based on this fact. Note that in such a case, no meaningful authentication or authorization information is returned from rpc_binding_inq_auth_client(). RPC Data Transfer Limitation The bulk data transfer (for example, IN/OUT-pipes) over the connection-oriented (TCP/IP) RPC protocol is limited by the performance difference between the client and server machines.
Developing DCE Applications with HP DCE/ 9000 Notes on Programming with HP DCE Calling exec() from a DCE Application Care must be used when calling exec() from a DCE application. HP DCE Threads sometimes sets open file descriptors to non-blocking mode, so that I/O calls block only the calling thread, not the entire process. This occurs unbeknownst to the application itself.
Developing DCE Applications with HP DCE/ 9000 Notes on Programming with HP DCE Process forking from within RPC applications that use the connectionless protocol (UDP/IP) is supported, with the following restrictions: • For client-side applications, the UDP/IP protocol is fork safe. It is the responsibility of the application developer to ensure that all other application threads are capable of crossing forks safely.
Developing DCE Applications with HP DCE/ 9000 Notes on Programming with HP DCE sec_login_valid_and_cert_ident() The sec_login_valid_and_cert_ident() routine uses fcntl() for file locking, and should not be called by more than one thread at a time. If you must use sec_login_valid_and_cert_ident() in multiple threads, use a mutex to insure that only one thread at a time executes the call. No HP DCE programming interfaces call sec_login_valid_and_cert_ident() internally.
Developing DCE Applications with HP DCE/ 9000 Notes on Programming with HP DCE vfork() The HP DCE Threads vfork() wrapper cannot be circumvented. The methods used to circumvent other wrappers (defining _CMA_NOWRAPPERS_, undefining vfork, defining vfork to be _vfork_sys) do not work. HP DCE 1.
Developing DCE Applications with HP DCE/ 9000 Notes on Programming with HP DCE 44 HP DCE 1.