HP NonStop DCE Application Programming Guide Abstract This guide describes the HP NonStop™ Distributed Computing Environment (DCE) application development environment for use in the HP NonStop Open System Services (OSS) environment of the HP NonStop operating system. This guide provides guidelines for developing DCE applications. Product Version NonStop DCE 1.
Document History Part Number Product Version Published 124247 NonStop DCE 1.1 August 1996 422626-001 NonStop DCE 1.1 June 1999 429551-001 NonStop DCE 1.1 November 2001 429551-002 NonStop DCE 1.1 August 2004 429551-003 NonStop DCE 1.
HP NonStop DCE Application Programming Guide Glossary Index Figures What’s New in This Guide vii Guide Information vii New and Changed Information About This Guide ix Audience ix Organization ix Further Reading x Notation Conventions Tables vii xii 1.
2. Application Design Considerations (continued) Contents 2. Application Design Considerations (continued) Using a Fault-Tolerant Backing Store 2-9 3.
. Porting Applications (continued) Contents 5. Porting Applications (continued) Required Change 5-2 Improvements 5-2 Conversion to the DCE 1.1 Server Initialization API Changes to the Server Module 5-3 Starting the Server 5-4 5-2 A.
Glossary Contents Glossary Index Figures Figure 2-1. Figure A-1. Figure A-2. Figure A-3. Figure A-4. Figure A-5. Figure A-6. Figure A-7. Figure A-8. Figure A-9. Figure A-10. Figure A-11. Figure A-12. Figure A-13. Figure B-1. Figure B-2. Figure B-3. Figure B-4. Figure B-5. Figure B-6. Figure B-7. Figure C-1. Figure C-2. Figure C-3. Figure C-4. Figure C-5. Figure C-6. Figure C-7. Figure C-8. Figure C-9. Figure C-10.
Tables Contents Tables Table 1-1. Table 2-1. Table 2-2. Table 2-3. Table 3-1. Table 3-2. Table 3-3. Table 4-1.
Contents HP NonStop DCE Application Programming Guide —429551-003 vi
What’s New in This Guide Guide Information HP NonStop DCE Application Programming Guide Abstract This guide describes the HP NonStop™ Distributed Computing Environment (DCE) application development environment for use in the HP NonStop Open System Services (OSS) environment of the HP NonStop operating system. This guide provides guidelines for developing DCE applications. Product Version NonStop DCE 1.
What’s New in This Guide • • New and Changed Information In Section 4, Building, Running, and Debugging NonStop DCE Applications, the example of building a NonStop DCE program is updated to reflect TNS/E compilation and linking with DLLs. Appendix A, Sample Application Listings is updated with example makefiles for TNS/E.
About This Guide This guide is an introduction to the DCE application development environment. It provides the information needed to develop applications compliant with the Open Software Foundation (OSF) implementation of DCE and to take advantage of the special features of the DCE product. This guide also highlights the differences between DCE and OSF DCE. Audience This guide is intended for application developers who are creating DCE applications for an HP NonStop server.
Further Reading About This Guide Further Reading For additional information about DCE, see: • NonStop DCE documents: DCE Installation, Configuration, and Management Guide NonStop DCE customized reference pages • OSF DCE documents provided by HP; these books are also published by Prentice Hall: OSF DCE Administration Guide-Introduction OSF DCE Administration Guide-Core Components OSF DCE Application Development Guide-Introduction and Style Guide OSF DCE Application Development Guide-Core Components OSF
Notation Conventions About This Guide Notation Conventions The subsections that follow describe: • • • • Hypertext Links on page -xi General Syntax Notation on page -xi Notation for Messages on page xiii Change Bar Notation on page xiv Hypertext Links Blue underline is used to indicate a hypertext link within text. By clicking a passage of text with a blue underline, you are taken to the location described.
General Syntax Notation About This Guide each side of the list, or horizontally, enclosed in a pair of brackets and separated by vertical lines. For example: FC [ num ] [ -num] [ text] K [ X | D ] address-1 { } Braces. A group of items enclosed in braces is a list from which you are required to choose one item. The items in the list may be arranged either vertically, with aligned braces on each side of the list, or horizontally, enclosed in a pair of braces and separated by vertical lines.
Notation for Messages About This Guide Line Spacing. If the syntax of a command is too long to fit on a single line, each continuation line is indented three spaces and is separated from the preceding line by a blank line. This spacing distinguishes items in a continuation line from items in a vertical list of selections. For example: ALTER [ / OUT file-spec / ] LINE [ , attribute-spec ]...
Change Bar Notation About This Guide either vertically, with aligned braces on each side of the list, or horizontally, enclosed in a pair of braces and separated by vertical lines. For example: obj-type obj-name state changed to state, caused by { Object | Operator | Service } process-name State changed from old-objstate to objstate { Operator Request. } { Unknown. } | Vertical Line. A vertical line separates alternatives in a horizontal list that is enclosed in brackets or braces.
1 NonStop DCE Application Development Environment This section gives an overview of these topics: • • • NonStop DCE Components on page 1-1 Unsupported Features on page 1-5 Working in the Application Development Environment on page 1-7 NonStop DCE Components NonStop DCE provides a fully compliant DCE product for the NonStop server. Support for the OSF-defined protocols allows interoperability with DCE-compliant implementations on systems from other manufacturers.
NonStop DCE Application Development Environment Application Development Environment Application Development Environment The DCE application development environment consists of APIs and development tools for these OSF DCE components: • DCE functions to provide facilities that apply to more than one DCE component: ° DCE attribute interface functions These functions allow applications to define and access attribute types (schema entries) in a schema of your choice.
NonStop DCE Application Development Environment ° The RPC API, which supports RPC clients, servers, and management programs include these functions: • • • • • • ° • • Functions to control the initialization and management of the RPC run-time code Endpoint-map service functions Binding functions, including the RPC name service interface (NSI) functions, which provide an RPC-specific layer over the DCE cell directory service (CDS) Security functions that provide support for authenticated RPC DCE server
NonStop DCE Application Development Environment ° Run-Time Services Thread API error reporting using exceptions The names of procedures that are not in the draft standard are distinguished with the suffix _np.
NonStop DCE Application Development Environment • Unsupported Features Virtual hosts A virtual host is a NonStop Availability feature.
NonStop DCE Application Development Environment • NonStop DCE DTS does not provide: ° ° • Unsupported Features The network time protocol (NTP) time provider. Time inaccuracy when retrieving the system time. Both the utc_gettime() and the utc_getusertime() functions always return the inaccuracy as infinite. NonStop DCE threads do not support: ° Preemptive scheduling The preemptive thread scheduling policies are not supported. Only first-in, firstout (FIFO) scheduling is supported.
NonStop DCE Application Development Environment ° ° Working in the Application Development Environment The chpass and su utilities are not implemented. Integration of DCE login with the local operating system login into a single operation is not supported. The DCE registry and the local NonStop operating system user IDs are not integrated. A user must log on to the NonStop system with an operating system user ID and start an OSS shell before executing the dce_login utility.
NonStop DCE Application Development Environment Environmental Dependencies Environmental Dependencies NonStop DCE has these dependencies on the development and run-time environment: • • • NonStop DCE supports only applications written using the ANSI-standard C programming language or a combination of C and COBOL, as described in Using a Fault-Tolerant Backing Store on page 2-9.
NonStop DCE Application Development Environment The Location of Files The Location of Files The NonStop DCE application development environment is installed using the dce_config utility. These directories and files are installed: /usr/include/dce This directory contains the NonStop DCE header files and idl files, which support the NonStop DCE API and data types. /usr/lib For a TNS installation of NonStop DCE, this directory contains the file libdce.so and might contain the file libdcehostname.so.
NonStop DCE Application Development Environment Using DCE Documentation The OSS shell man command truncates logical section designators of more than one character. The NonStop DCE reference pages therefore use one-character section designators. References within OSF documentation to four-character section designators should be interpreted accordingly.
2 Application Design Considerations This section discusses: • • • • • Choosing a Server Model on page 2-1 RPC Considerations and Limits on page 2-2 Interprocess Communication With Non-DCE Programs on page 2-6 Programming Languages on page 2-8 Using a Fault-Tolerant Backing Store on page 2-9 Choosing a Server Model When designing server applications for NonStop DCE, developers must use the standard multithreaded DCE server model from the OSF. This server model has advantages and disadvantages.
Application Design Considerations 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.
Application Design Considerations UDP Versus TCP Protocol Sequences Table 2-1. Choosing a Protocol Sequence Issue Preferred Protocol Client and Server Thread Blocking on page 2-3 TCP Server Capacity on page 2-3 UDP TCP/IP Fault Tolerance on page 2-4 UDP Client and Server Thread Blocking Applications that make calls that block the process for significant periods of time should use the TCP connection protocol.
Capacity and Limits Application Design Considerations Table 2-2. Protocol Sequence File Opens Protocol Server ncacn_ip_tcp (TCP) N + 1 files, where N is the number of active ncadg_ip_udp (UDP) One file associations for the protocol. A server can have as many as M associations from a client, where M is the maximum number of concurrent remote procedure calls from the client.
Capacity and Limits Application Design Considerations choose the ncadg_ip_udp protocol sequence. Also, such a server should be configured with many threads (see Table 2-3 and its notes). Table 2-3.
Application Design Considerations Interprocess Communication With Non-DCE Programs Interprocess Communication With Non-DCE Programs NonStop DCE allows interoperability between DCE and non-DCE environments. A NonStop DCE server or a non-DCE application on a NonStop server can have the access described under: • • Access to DCE Servers on page 2-6 Access to Non-DCE Servers on page 2-7 Access to DCE Servers Usually, DCE servers can be accessed only through RPC.
Access to Non-DCE Servers Application Design Considerations Figure 2-1. Accessing a DCE Server Using an Intermediate Server Class READUPDATE() $RECEIVE . . SERVERCLASSSEND( ) . . Guardian Process Map message fields to input parameters Process incoming RPC Issue RPC Map output parameters to message fields REPLY() Application call threads of DCE Server Process Single-threaded OSS processes written in C VST002.
Application Design Considerations Programming Languages SERVERCLASS_DIALOG_ABORT_ jacket (the DCE_SERVERCLASS_DIALOG_ABORT_() function). SERVERCLASS_SEND_, SERVERCLASS_DIALOG_BEGIN_, SERVERCLASS_DIALOG_SEND_, SERVERCLASS_DIALOG_END_, and SERVERCLASS_DIALOG_ABORT_ jackets have the advantage of not blocking the process. Programming Languages Most applications for NonStop DCE are written in C, but C and COBOL can be combined in a single application.
Application Design Considerations • Using a Fault-Tolerant Backing Store Note that HP COBOL for NonStop Systems compiler is located as follows: ° ° ° The TNS version is located at /bin/cobol The TNS/R version is located at /usr/bin/nmcobol. The TNS/E version is located at /usr/bin/ecobol. Each version supports different compilation and linking options.
Application Design Considerations Using a Fault-Tolerant Backing Store HP NonStop DCE Application Programming Guide —429551-003 2- 10
3 Application Programming With NonStop DCE Threads NonStop DCE threads is a user space implementation of OSF DCE threads for use by OSS processes. This section provides guidelines for developing NonStop DCE applications and assumes that the reader is familiar with the information in the volumes of the OSF DCE Application Development Guide. NonStop DCE Threads Threads are scheduled for execution by the threads library, not the NonStop operating system.
Application Programming With NonStop DCE Threads Threads Error Reporting Table 3-1.
Application Programming With NonStop DCE Threads Portability of Threads and the signal is considered handled; otherwise, the default signal action is taken. For a terminating signal, the default action is to terminate the process. Portability of Threads DCE threads follow the POSIX threads draft standard 1003.4a (draft 4). Using threads API procedures whose names have the suffix _np decreases the portability of a program because these functions are extensions to the standard.
Application Programming With NonStop DCE Threads Threading Considerations for NonStop DCE Applications Threading Considerations for NonStop DCE Applications Application designers must be aware of several general threading considerations when developing a NonStop DCE application. These considerations are summarized and discussed in Table 3-2. Table 3-2.
Application Programming With NonStop DCE Threads Using Standard Libraries Using Standard Libraries These subsections discuss the use of standard libraries: • • • No Need for Jackets on page 3-5 No Asynchronous Cancels on page 3-5 Using Standard Libraries With Static Data on page 3-5 No Need for Jackets With NonStop DCE, threads execute until they relinquish control. A thread can never be preempted while executing code in a standard library.
Application Programming With NonStop DCE Threads Addressing the Thread Stack program can get unexpected results if two different threads use these functions without synchronizing their calls. Consider using a mutex to protect implicit context maintained by a standard library, for example by bracketing a series of library calls with the lock and unlock of a mutual exclusion (mutex) operation. This technique should be considered only in a short-lived context.
Application Programming With NonStop DCE Threads • Using Nowait Input or Output Inspect, Native Inspect, and Visual Inspect symbolic debuggers. Each of these debuggers can block a process indefinitely. Applications that make calls that block the process for significant periods of time should use the TCP connection protocol. Using Nowait Input or Output Programs that use threads cannot call the Guardian AWAITIO or AWAITIOX procedure with -1 as a file parameter.
Application Programming With NonStop DCE Threads Spawning a New Process Spawning a New Process Using any version of the fork functions in a multithreaded environment can cause problems. Section 8.13 of the OSF DCE Application Development Guide discusses the various problems associated with using those functions.
Application Programming With NonStop DCE Threads NonStop DCE Jacket Routines These jacket routines are not included in the standard DCE shared run-time library but are released in a separate library that can be statically bound to an application that needs them. This library is named libdce_scs.a and is installed in /usr/lib. Installing a TNS/R version of NonStop DCE can cause the TNS version of this library to be relocated or removed.
Application Programming With NonStop DCE Threads NonStop DCE Jacket Routines A program using the SERVERCLASS_DIALOG_BEGIN_ jacket is built using at least two libraries: a static library for the jackets and a dynamic library for the rest of the DCE functions. For example: /nonnative/bin/c89 -o program program.o -l dce_scs -l dce Appendix C, NonStop DCE Jacket Functions, contains reference information for the SERVERCLASS_DIALOG_BEGIN_ jacket routines.
Application Programming With NonStop DCE Threads NonStop DCE Jacket Routines that can be statically bound to an application that needs it. This library is named libdce_scs.a and is installed in /usr/lib. Installing a TNS/R version of NonStop DCE can cause the TNS version of this library to be relocated or removed. If you need to continue using the TNS version of this library, check with your DCE administrator for its correct location in a specific virtual host.
Application Programming With NonStop DCE Threads NonStop DCE Jacket Routines DCE_ENDTRANSACTION() DCE_RESUMETRANSACTION() The syntax and semantics of these function calls are the same as those of the similarly named TMF calls. When using TMF transaction jackets: • • • • • • • • • • The transaction_tag parameter of the DCE_BEGINTRANSACTION() function is not optional. Each thread can have at most one current transaction.
Application Programming With NonStop DCE Threads Single Versus Multiple Application Threads Single Versus Multiple Application Threads DCE programs can be classified by the way the application uses threads.
Application Programming With NonStop DCE Threads Programs With Multiple Independent Application Threads application thread can use the TMF transaction-demarcation API without concern that another thread might change the current transaction of the process. • One application thread cannot block another. The thread cannot block other application threads from executing, which minimizes the effect of process-blocking operations. • One application thread cannot corrupt another.
Application Programming With NonStop DCE Threads Programs With Multiple Interdependent Application Threads state internally and that most servers can be context-free. In cases where context must be maintained across multiple requests, the context is generally private to the client and should not be shared. Table 3-2 on page 3-4 summarizes the general considerations an application designer must be aware of when developing a DCE program with multiple independent application threads.
Application Programming With NonStop DCE Threads Keeping Application Design Simple HP NonStop DCE Application Programming Guide —429551-003 3- 16
4 Building, Running, and Debugging NonStop DCE Applications This section describes: • • • Building NonStop DCE Programs Running NonStop DCE Programs on page 4-3 Debugging NonStop DCE Programs on page 4-6 Building NonStop DCE Programs NonStop DCE applications are compiled and either bound or linked using an OSS c89 utility. The compiler and linker options you use differ according to whether you are building.
Building, Running, and Debugging NonStop DCE Applications Building NonStop DCE Programs Note that when linking a TNS/R native PIC program, you must use the ld linker. When linking a TNS/E native program, you must use the eld linker to link the DLL located at \$system.zdce.ldce. You must also specify the specify the -WTandem_float flag so that the program uses TNS floating-point format, and not IEEE floating-point format, as in the following example: /usr/bin/c89 -o my_server my_server.
Building, Running, and Debugging NonStop DCE Applications Running NonStop DCE Programs For more information about the linking tools nld, ld, and eld in the OSS environment, see the nld(1), ld(1), and eld(1) reference pages either online or in the Open System Services Shell and Utilities Reference Manual.
Building, Running, and Debugging NonStop DCE Applications Using NonStop DCE Environment Variables Using NonStop DCE Environment Variables NonStop DCE supports environment variables for controlling program execution. The NonStop DCE environment variables useful to application programmers include: • Message catalogs DCE message catalogs contain the text of the messages used by the DCE product.
Building, Running, and Debugging NonStop DCE Applications • Using NonStop DCE Environment Variables Distributed time services (DTS) information ° An application can determine whether client and server clocks are tested for synchronization by checking the CHECK_TIME environment variable, which can have these values: y indicates that time is checked n indicates that time is not checked The default value is y.
Building, Running, and Debugging NonStop DCE Applications • Debugging NonStop DCE Programs DCE demon execution priority An application can determine the default Guardian execution priority for a process that is started as a NonStop DCE demon by checking the DEFAULT_PRI environment variable. The default value is 155. • Security services information An application can determine the name of the machine on which the cell's master security server runs by checking the SEC_SERVER environment variable.
Building, Running, and Debugging NonStop DCE Applications Starting Programs in Inspect, Native Inspect, or Visual Inspect Starting Programs in Inspect, Native Inspect, or Visual Inspect You can use the OSS shell run command to start a program in the Inspect symbolic debugger (on TNS/R systems) or Native Inspect synbolic debugger (on TNS/E systems).
Building, Running, and Debugging NonStop DCE Applications Debugging With Threads Difficulty in Debugging Multiple Application Threads Debugging multithreaded applications can be difficult because of the interaction and synchronization of the threads. The simplest multithreaded applications to debug are those that have no interdependent threads. Many standard DCE servers are in this category (see the discussion of Single Versus Multiple Application Threads on page 3-13).
5 Porting Applications This section describes the porting of a sample application named “Information Please” to NonStop DCE. This application was developed by Harold Lockhart, Jr. and Fred Oldfield and is described in OSF DCE: Guide to Developing Distributed Applications. The application server is ported in two forms, once as a straight port to NonStop DCE and once converting it to the DCE release 1.1 server initialization API.
Required Change Porting Applications Required Change Only one source change was required to port this application—changing the name of an include file to use the standard POSIX name: infpls_s.c The errno.h file is now included instead of the sys/errno.h file when the program is compiled on a POSIX-compliant system. This change is marked (a) in the listing of Figure A-4 on page A-5.
Changes to the Server Module Porting Applications included to illustrate the conversion process. In addition, the converted server is an example of a program that can execute as a standard multithreaded server. The server module infpls_s.c is used as the basis for a new module infpls_s_v11.c. Only minimal changes are required; all changes are for process and serviceability initialization and shutdown. The new file inf.sams is created to define the server messages.
Starting the Server Porting Applications • • • Added the function init_serviceability() (item B8 in the listing on page A-20) for initializing serviceability. Also added a prototype definition for the function (item B4 in the listing on page A-18) and a call to the function (item B5 in the listing on page A-19). Replaced the printf() call that displays the startup message with a call to the dce_svc_printf() function (item B6 in the listing on page A-19).
A Sample Application Listings This appendix contains the complete listings for the sample DCE applications described in Section 5, Porting Applications. These sample programs are based on the Information Please application developed by Harold Lockhart, Jr. and Fred Oldfield and described in OSF DCE: Guide to Developing Distributed Applications. The Information Please server is ported in two forms: • • As a straight port to NonStop DCE, described in Straight Port to NonStop DCE.
Sample Application Listings The Attribute Configuration File (ACF) Figure A-1. The IDL File in a Straight Port /* infpls.IDL Information Server /* /* * (c) Copyright 1993 Harold W. Lockhart and Frederic M. Oldfield * ALL RIGHTS RESERVED * * Permission is hereby granted to use, copy, modify and freely * distribute this software for any purpose without fee, provided * that the above copyright notice and this permission notice are * retained in it.
Sample Application Listings The Error Macro File Figure A-2. The ACF in a Straight Port /* INFOPLS.ACF Information Server */ /* * (c) Copyright 1993 Harold W. Lockhart and Frederic M. Oldfield * ALL RIGHTS RESERVED * * Permission is hereby granted to use, copy, modify and freely * distribute this software for any purpose without fee, provided * that the above copyright notice and this permission notice are * retained in it.
Sample Application Listings The Server File Figure A-3. The Error Macro File in a Straight Port /* * (c) Copyright 1993 Harold W. Lockhart and Frederic M. Oldfield * ALL RIGHTS RESERVED * * Permission is hereby granted to use, copy, modify and freely * distribute this software for any purpose without fee, provided * that the above copyright notice and this permission notice are * retained in it. * * The authors make no representations about the suitability of * this software for any purpose.
The Server File Sample Application Listings Figure A-4. The Server File in a Straight Port (page 1 of 2) /* infpls_s.c */ /* * (c) Copyright 1993 Harold W. Lockhart and Frederic M. Oldfield * ALL RIGHTS RESERVED * * Permission is hereby granted to use, copy, modify and freely * distribute this software for any purpose without fee, provided * that the above copyright notice and this permission notice are * retained in it.
The Server File Sample Application Listings Figure A-4. The Server File in a Straight Port (page 2 of 2) rpc_server_inq_bindings( &bindings, &status); ERR_CHK(status,"Could not get binding vector"); /* (3) */ /* Bindings are exported to the namespace by the install program.
The Client File Sample Application Listings The Client File The client file is shown in Figure A-5. Figure A-5. The Client File in a Straight Port (page 1 of 2) /* infpls_c.c */ /* * (c) Copyright 1993 Harold W. Lockhart and Frederic M. Oldfield * ALL RIGHTS RESERVED * * Permission is hereby granted to use, copy, modify and freely * distribute this software for any purpose without fee, provided * that the above copyright notice and this permission notice are * retained in it.
The Client File Sample Application Listings Figure A-5. The Client File in a Straight Port (page 2 of 2) status = get_system_info(binding, &system_info); if (status == rpc_s_ok) { printf("Directory Service Name = %s\n" "System Name = %s\n" "Node Name = %s\n" "Release = %s\n" "Version = %s\n" "Machine Type = %s\n", ptr_check ptr_check ptr_check ptr_check ptr_check ptr_check /* (3) */ /* (b) */ (server_name_p), (system_info.sysname_p), (system_info.nodename_p), (system_info.release_p), (system_info.
The Installation File Sample Application Listings The Installation File The installation file is shown in Figure A-6. Figure A-6. The Installation File in a Straight Port (page 1 of 3) /* infpls_i.c */ /* * (c) Copyright 1993 Harold W. Lockhart and Frederic M. Oldfield * ALL RIGHTS RESERVED * * Permission is hereby granted to use, copy, modify and freely * distribute this software for any purpose without fee, provided * that the above copyright notice and this permission notice are * retained in it.
Sample Application Listings The Installation File Figure A-6. The Installation File in a Straight Port (page 2 of 3) if (argc = 2) { dce_cf_get_host_name(&hostname_p, &status); ERR_CHK(status,"Could not get host name"); cp = strstr (hostname_p, "hosts/"); if (cp==NULL) { printf ("Can't interpret local host name format"); exit (1); } cp = strchr (cp, '/')+1; } else { cp = argv[2]; } sprintf ((char *)name, "/.
Sample Application Listings The Make File Figure A-6. The Installation File in a Straight Port (page 3 of 3) rpc_ns_group_mbr_remove( rpc_c_ns_syntax_default, /* (7) */ group_name, rpc_c_ns_syntax_default, name, &status); ERR_CHK(status,"Could not remove server entry from group"); /* Add code here for additional de-installation tasks */ } else { printf("Usage: %s -i [ host name ] or %s -r [ host name ]\n", argv[0], argv[0]); exit(1); } } The Make File The make file is shown in Figure A-7 on page A-12.
Sample Application Listings The README File Figure A-7. The Make File in a Straight Port # # # # # # # # # # # # # # # # # (c) Copyright 1993 Harold W. Lockhart and Frederic M. Oldfield ALL RIGHTS RESERVED Permission is hereby granted to use, copy, modify and freely distribute this software for any purpose without fee, provided that the above copyright notice and this permission notice are retained in it. The authors make no representations about the suitability of this software for any purpose.
The README File Sample Application Listings Figure A-8. The README File in a Straight Port (page 1 of 2) This is the README file for the Information Server Application. A detailed description of it can be found in chapter 18 of OSF DCE: A Guide to Developing Distributed Applications. =============================================================== (c) Copyright 1993 Harold W. Lockhart and Frederic M.
Sample Application Listings Port to Use the DCE Version 1.1 Server Initialization API Figure A-8. The README File in a Straight Port (page 2 of 2) which can write into /.:/applications. Then type: infpls_i.out -i To run the server type: infpls_s.out To run the client, set the environment variable RPC_DEFAULT_ENTRY to /.:/applications/info_server_group for example, using the C-shell type: setenv RPC_DEFAULT_ENTRY /.:/applications/info_server_group Using the Korn shell type: export RPC_DEFAULT_ENTRY=/.
The sams File Sample Application Listings The remaining files are modified as indicated in Conversion to the DCE 1.1 Server Initialization API on page 5-2. The changed areas of files are printed in bold type. The sams File The sams file is shown in Figure A-9. Figure A-9. The sams File in a Release 1.1 Port (page 1 of 2) ############################################################# # # sams input file for infpls_s.
The Error Macro File Sample Application Listings Figure A-9. The sams File in a Release 1.1 Port (page 2 of 2) start code sub-component attributes text explanation action end inf_s_dce_error inf_s_server "svc_c_sev_fatal | svc_c_action_exit_bad" "%s\nDCE Error: %s." "A DCE error occurred." "" start code sub-component attributes text explanation action end inf_s_dce_warning inf_s_server "svc_c_sev_warning" "%s\nDCE Error: %s." "A DCE error occurred. Processing continues.
Sample Application Listings Figure A-10. The Error Macro File in a Release 1.1 Port /* * (c) Copyright 1993 Harold W. Lockhart and Frederic M. Oldfield * ALL RIGHTS RESERVED * * Permission is hereby granted to use, copy, modify and freely * distribute this software for any purpose without fee, provided * that the above copyright notice and this permission notice are * retained in it. * * The authors make no representations about the suitability of * this software for any purpose.
Sample Application Listings The Server File Figure A-11. The Server File in a Release 1.1 Port (page 1 of 3) /* infpls_s_v11.c/ /* * (c) Copyright 1993 Harold W. Lockhart and Frederic M. Oldfield * ALL RIGHTS RESERVED * * Permission is hereby granted to use, copy, modify and freely * distribute this software for any purpose without fee, provided * that the above copyright notice and this permission notice are * retained in it.
The Server File Sample Application Listings Figure A-11. The Server File in a Release 1.1 Port (page 2 of 3) if (argc < 2 ) { max_threads = rpc_c_listen_max_calls_default; } else max_threads = atol(argv[1]); init_serviceability( argv[0] ); /* (B5) */ /* Get server configuration information */ dce_server_inq_server( &server_conf, &status ); ERR_CHK(status, "Could not retrieve server configuration."); /* (A3) */ /* Register with DCE */ register_data.ifhandle = infpls_v1_0_s_ifspec; register_data.
The Make File Sample Application Listings Figure A-11. The Server File in a Release 1.
Sample Application Listings The Make File Figure A-12. The Make File in a Release 1.1 Port # # (c) Copyright 1993 Harold W. Lockhart and Frederic M. Oldfield # ALL RIGHTS RESERVED # # Permission is hereby granted to use, copy, modify and freely # distribute this software for any purpose without fee, provided # that the above copyright notice and this permission notice are # retained in it. # # The authors make no representations about the suitability of # this software for any purpose.
Sample Application Listings The README File Modifications for TNS/E systems: GM=infpls DCE=/opt/dcelocal G_CC_PATH=/usr/bin DCELIB=-L $(DCE)/lib LIBS=-Weld="libname \$system.zdce.ldce" IDL=$(DCE)/bin/idl CC=$G_CC_PATH)/c89 -g -WTandem_float -Wextensions -Wfieldalign=shared2 SAMS=$(DCE)/bin/sams SVC_FILES = dceinfmsg.h dceinfmsg.c dceinfmac.h dceinfsvc.c \ dceinfsvc.h dceinf.cat dceinf.msg SVC_OFILES = dceinfmsg.o dceinfsvc.o default: $(PGM)_c.out $(PGM)_s.out $(PGM)_i.out $(PGM)_s_v11.out $(PGM)_c.
The README File Sample Application Listings Figure A-13. The README File in a Release 1.1 Port (page 1 of 2) This is the README file for the Information Server Application. A detailed description of it can be found in chapter 18 of OSF DCE: A Guide to Developing Distributed Applications. =============================================================== (c) Copyright 1993 Harold W. Lockhart and Frederic M.
Sample Application Listings The README File Figure A-13. The README File in a Release 1.1 Port (page 2 of 2) EXECUTION Create a directory "/.:/applications" if it does not already exist, with the commands: dcecp directory create /.:/applications The installation program must be run on each system on which a server will run. To run the installation program first dce_login to an account which can write into /.:/applications. Then type: infpls_i.out -i To run the server type: infpls_s.out To run the V1.
B Sample Mixed-Language Application This appendix discusses: • • • • • • • The Interface Definition Language (IDL) File on page B-1 The Attribute Configuration File (ACF) on page B-2 The Server File on page B-2 The Client File on page B-4 The COBOL File on page B-7 The Make File on page B-8 The README File on page B-9 This client/server application uses the same error macro definitions as those used by the Information Please application in Appendix A, Sample Application Listings; therefore, that file (er
Sample Mixed-Language Application The Attribute Configuration File (ACF) Figure B-1. The IDL File in a Mixed-Language Application /* turnaround.idl */ [ uuid (B14AAF44-698B-101B-8AAE-32000004A0000), version(1.
The Server File Sample Mixed-Language Application Figure B-3. The Server File in a Mixed-Language Application (page 2 of 3) #define Max_Concurrent_Calls 10 /* Prototype for Cobol routine.
Sample Mixed-Language Application The Client File Figure B-3. The Server File in a Mixed-Language Application (page 3 of 3) void TurnaroundCobol (unsigned long *iterations, unsigned long buflen, unsigned char *buffer) { (void) COBOLADDONE (iterations, &buflen, buffer); } The Client File The client file is shown in Figure B-4 on page B-5.
The Client File Sample Mixed-Language Application Figure B-4. The Client File in a Mixed-Language Application (page 1 of 3) #include #include #include #include #include #include #include “errmac.h” “turnaround.
Sample Mixed-Language Application The Client File Figure B-4. The Client File in a Mixed-Language Application (page 2 of 3) if( !(pszProtocolSequence = getenv(“PROTSEQ”)) ) { ERROR(“Protocol sequence of server not set.”); } if( !(pszNetworkAddress = getenv(“IPADDRESS”)) ) { ERROR(“IPADDRESS of server not set.”); /* Create the binding handle for the server.
Sample Mixed-Language Application The COBOL File Figure B-4. The Client File in a Mixed-Language Application (page 3 of 3) printf(“Elapsed %ld seconds for %ld calls.\n”, end_time - start_time,currcounter - 1); printf(“\nTransfered %ld bytes.\n”,loopCount * transferSize * 2); if (end_time - start_time) { avg1 = ldiv(loopCount, end_time - start_time); printf(“This is an average of %ld RPC calls per second.\n”, avg1.
Sample Mixed-Language Application The Make File Figure B-5. The COBOL File in a Mixed-Language Application ?ANSI ?ENV COMMON IDENTIFICATION DIVISION. PROGRAM-ID. COBOLADDONE. AUTHOR. Monika. * ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. NONSTOP_SERVER. OBJECT-COMPUTER. NONSTOP_SERVER. * DATA DIVISION. * WORKING-STORAGE SECTION. EXTENDED-STORAGE SECTION. * LINKAGE SECTION. * 01 iterations PIC S9(9) COMP. 01 buflen PIC S9(9) COMP. 01 buffer PIC X(100000).
Sample Mixed-Language Application Figure B-6. The Make File in a Mixed-Language Application # # Makefile for simple client-server example. # INT=turnaround DCE=/opt/dcelocal DCELIB=-L $(DCE)/lib LIBS=$(DCELIB) -l dce IDL=$(DCE)/bin/idl -cc_opt ‘-g’ CC=/nonnative/bin/c89 -g COBOL=/bin/cobol -g -c -Wcobol=”ansi” default: client server client : client.c $(INT).h $(INT)_cstub.o $(CC) -o client $(LIBS) $(INT)_cstub.o client.c server : server.c $(INT).h $(INT)_sstub.o $(INT)_cob.
The README File Sample Mixed-Language Application Figure B-7. The README File in a Mixed-Language Application (page 1 of 2) The Turnaround application is a very simple DCE client-server application where the server is a mixture of C and COBOL. =============================================================== FILES readme.txt turnaround.idl turnaround.acf errmac.h server.c client.c turnaround.
Sample Mixed-Language Application The README File Figure B-7. The README File in a Mixed-Language Application (page 2 of 2) Then type: client [ T | C ] Where: T: Call Turnaround C: Call TurnaroundCobol For example: client T 100 1000 The client will print out a report like this: Starting 100 RPCs of size 1000 bytes. Start time: Thu Oct 26 13:21:38 1995 End time: Thu Oct 26 13:21:40 1995 Elapsed 2 seconds for 100 calls. Transfered 200000 bytes.
Sample Mixed-Language Application HP NonStop DCE Application Programming Guide —429551-003 B -12 The README File
C NonStop DCE Jacket Functions This appendix describes the syntax of the jacket functions provided for Guardian procedures that perform these operations: • • • • • • SERVERCLASS_SEND_ on page C-1 SERVERCLASS_DIALOG_BEGIN_ on page C-7 SERVERCLASS_DIALOG_SEND_ on page C-11 SERVERCLASS_DIALOG_END_ on page C-15 SERVERCLASS_DIALOG_ABORT_ on page C-16 TMF Transaction Demarcation on page C-17 SERVERCLASS_SEND_ The reference pages for the SERVERCLASS_SEND_ jacket functions are in these figures: Figure C-1 on p
NonStop DCE Jacket Functions SERVERCLASS_SEND_ Figure C-1. DCE_SERVERCLASS_SEND_(3) Reference Page (page 1 of 3) NAME DCE_SERVERCLASS_SEND_ - Sends a message to and receives a reply message from a server process in a Pathway server class SYNOPSIS #include
NonStop DCE Jacket Functions SERVERCLASS_SEND_ Figure C-1. DCE_SERVERCLASS_SEND_(3) Reference Page (page 2 of 3) timeout (optional) If provided, contains the maximum amount of time, in hundredths of a second, that LINKMON waits for the completion of this send. This value must be either -1 or greater than 0. The default value is -1 (wait indefinitely). If the send is still in progress when this timeout expires, the send is canceled.
NonStop DCE Jacket Functions SERVERCLASS_SEND_ Figure C-1. DCE_SERVERCLASS_SEND_(3) Reference Page (page 3 of 3) The thread is suspended for the duration of the send operation. Other threads in the process will be scheduled to run. The timeout parameter can be used to specify that the send be canceled after a specified interval. Alternatively, pthread_cancel() can be used (by another thread) to cancel the send operation in progress in a thread.
NonStop DCE Jacket Functions SERVERCLASS_SEND_ Figure C-2. DCE_SERVERCLASS_SEND_INFO_(3) Reference Page (page 1 of 2) NAME DCE_SERVERCLASS_SEND_INFO_ - Returns information about the last DCE_SERVERCLASS_SEND_() operation by a thread SYNOPSIS #include signed16 DCE_SERVERCLASS_SEND_INFO_( [signed16 *Pathsend_error, ] [signed16 *file_system_error ] ); PARAMETERS Output Pathsend_error (optional) Returns the Pathsend error number.
NonStop DCE Jacket Functions SERVERCLASS_SEND_ Figure C-2. DCE_SERVERCLASS_SEND_INFO_(3) Reference Page (page 2 of 2) RELATED INFORMATION Functions: DCE_SERVERCLASS_SEND_(3).
SERVERCLASS_DIALOG_BEGIN_ NonStop DCE Jacket Functions SERVERCLASS_DIALOG_BEGIN_ The reference pages for the SERVERCLASS_DIALOG_BEGIN_ jacket functions are in these figures: Figure C-3 on page C-7 DCE_SERVERCLASS_DIALOG_BEGIN_(3) Figure C-2 on page C-5 DCE_SERVERCLASS_SEND_INFO_(3) Figure C-3.
NonStop DCE Jacket Functions SERVERCLASS_DIALOG_BEGIN_ Figure C-3. DCE_SERVERCLASS_DIALOG_BEGIN_(3) Reference Page (page 2 of 4) PARAMETERS Input pathmon_process_name Contains the external process name of the PATHMON process control ling the serverclass (for example, $PM or \AB.$PM). pathmon_process_name_len Contains the character length of pathmon_process_name. server_class_name Contains the name of the server class to send to. server_class_name_len Contains the character length of server_class_name.
NonStop DCE Jacket Functions SERVERCLASS_DIALOG_BEGIN_ Figure C-3. DCE_SERVERCLASS_DIALOG_BEGIN_(3) Reference Page (page 3 of 4) Output dialog_id The identifier returned by this call, which must be used on subsequent operations on this dialog. message_buffer On successful completion of the begin operation, the message_buffer contains the reply from the server process. actual_reply_len (Optional) Returns a count of the number of bytes returned in the server process reply.
NonStop DCE Jacket Functions SERVERCLASS_DIALOG_BEGIN_ Figure C-3. DCE_SERVERCLASS_DIALOG_BEGIN_(3) Reference Page (page 4 of 4) cannot determine whether the canceled message was sent or canceled before the server process finished processing the request.
SERVERCLASS_DIALOG_SEND_ NonStop DCE Jacket Functions SERVERCLASS_DIALOG_SEND_ The reference pages for the SERVERCLASS_DIALOG_SEND_ jacket functions are in: Figure C-4 on page C-12 DCE_SERVERCLASS_DIALOG_SEND_(3) Figure C-2 on page C-5 DCE_SERVERCLASS_SEND_INFO_(3) HP NonStop DCE Application Programming Guide —429551-003 C -11
NonStop DCE Jacket Functions SERVERCLASS_DIALOG_SEND_ Figure C-4. DCE_SERVERCLASS_DIALOG_SEND_(3) Reference Page (page 1 of 3) NAME DCE_SERVERCLASS_DIALOG_SEND_ - sends a message within the dialog to and receives a reply from a server process in a Pathway server class. This procedure performs an I/O operation. SYNOPSIS #include
NonStop DCE Jacket Functions SERVERCLASS_DIALOG_SEND_ Figure C-4. DCE_SERVERCLASS_DIALOG_SEND_(3) Reference Page (page 2 of 3) Output message_buffer On successful completion of the send operation, it contains the reply from the server process. actual_reply_len (Optional) Contains the number of bytes returned in the server process reply. sc_send_opnum (Optional) Returns the server class send operation number.
NonStop DCE Jacket Functions SERVERCLASS_DIALOG_SEND_ Figure C-4. DCE_SERVERCLASS_DIALOG_SEND_(3) Reference Page (page 3 of 3) 70 (FEContinue)ND_.3 Server is ready for next message in the dialog. 233 (FEScError) Call DCE_SERVERCLASS_SEND_INFO_( ) to get more information about the error. RELATED INFORMATION Functions: DCE_SERVERCLASS_SEND_INFO_(3), DCE_SERVERCLASS_DIALOG_BEGIN_(3). Books: TS/MP Pathsend and Server Programming Manual.
SERVERCLASS_DIALOG_END_ NonStop DCE Jacket Functions SERVERCLASS_DIALOG_END_ The reference pages for the SERVERCLASS_DIALOG_END_ jacket functions are in: Figure C-5 on page C-15 DCE_SERVERCLASS_DIALOG_END_(3) Figure C-2 on page C-5 DCE_SERVERCLASS_SEND_INFO_(3) Figure C-5. DCE_SERVERCLASS_DIALOG_END_(3) Reference Page NAME DCE_SERVERCLASS_DIALOG_END_ - ends the dialog corresponding to the dialog id. This procedure does not perform an I/O operation. SYNOPSIS #include
SERVERCLASS_DIALOG_ABORT_ NonStop DCE Jacket Functions SERVERCLASS_DIALOG_ABORT_ The reference pages for the SERVERCLASS_DIALOG_ABORT_ jacket functions are in: Figure C-6 on page C-16 DCE_SERVERCLASS_DIALOG_ABORT_(3) Figure C-2 on page C-5 DCE_SERVERCLASS_SEND_INFO_(3) Figure C-6. DCE_SERVERCLASS_DIALOG_ABORT_(3) Reference Page NAME DCE_SERVERCLASS_DIALOG_ABORT_ - Aborts the dialog specified by the dialog ID. This procedure doesn't perform I/O operations. SYNOPSIS #include
TMF Transaction Demarcation NonStop DCE Jacket Functions TMF Transaction Demarcation The reference pages for the TMF transaction-demarcation jacket functions are in: Figure C-7 on page C-17: DCE_BEGINTRANSACTION(3) Figure C-8 on page C-18: DCE_ENDTRANSACTION(3) Figure C-9 on page C-19: DCE_ABORTTRANSACTION(3) Figure C-10 on page C-20: DCE_RESUMETRANSACTION(3) Figure C-7.
NonStop DCE Jacket Functions TMF Transaction Demarcation Figure C-8. DCE_ENDTRANSACTION(3) Reference Page NAME DCE_ENDTRANSACTION - Ends a transaction associated with the current process and current thread SYNOPSIS #include
TMF Transaction Demarcation NonStop DCE Jacket Functions Figure C-9. DCE_ABORTTRANSACTION(3) Reference Page NAME DCE_ABORTTRANSACTION - Aborts and backs out a transaction associated with the current process and the current thread SYNOPSIS #include signed16 DCE_ABORTTRANSACTION( void ); DESCRIPTION This function aborts and backs out a transaction associated with the current process and the current thread. RETURN VALUES A status word is returned.
TMF Transaction Demarcation NonStop DCE Jacket Functions Figure C-10. DCE_RESUMETRANSACTION(3) Reference Page NAME DCE_RESUMETRANSACTION - Restores a transaction associated with the current process and the current thread SYNOPSIS #include signed16 DCE_RESUMETRANSACTION( signed32 trans-begin-tag ); PARAMETERS Input trans-begin-tag is the value returned for this transaction by the trans-begin-tag parameter of DCE_BEGINTRANSACTION().
Glossary agent. In HP NonStop DCE, a simplified type of DCE server that contains a single call thread and receives all incoming calls from a distributor. See also distributor. API. See application program interface (API). application program interface (API). A set of services (such as programming language functions or procedures) that are called by an application program to communicate with other software components.
context handle Glossary context handle. In a remote procedure call (RPC), a distinguished type of RPC parameter that provides a reference to the application state maintained across remote procedure calls by a server on behalf of a client. context sensitive. In a remote procedure call (RPC), a server that can maintain client context across calls. See also context handle and context free. DCE control program (dcecp). A control program that provides a consolidated user interface across DCE.
endpoint map Glossary endpoint map. In a remote procedure call (RPC), a systemwide database where local RPC servers register binding information associated with their interface identifiers and object universal unique identifiers. The endpoint map is maintained by the endpoint map service. See also endpoint and endpoint map service. endpoint map service. In a remote procedure call (RPC), a service provided by the DCE demon that maintains a system’s endpoint map for local RPC servers.
Interface Definition Language (IDL) Glossary Interface Definition Language (IDL). In a remote procedure call (RPC), the high-level declarative language used to define the procedure prototypes, such as input parameters and output parameters, for procedures that are invoked using DCE RPC. The definitions are compiled by the idl compiler into stub files that are bound into client and server applications. See also stub. Kerberos. The authentication protocol implemented by DCE shared-secret authentication.
partially bound binding handle Glossary partially bound binding handle. In a remote procedure call (RPC), a binding handle with a server address that does not have a specific endpoint. See also endpoint, binding handle, and fully bound binding handle. profile entry. In a remote procedure call (RPC), an RPC name service entry that contains search paths for name service interface import operations. See also group entry, server entry, and RPC name service. .profile file.
shared run-time library (SRL) Glossary shared run-time library (SRL). A collection of procedures whose code and data can be loaded and executed only at a specific assigned virtual memory address (the same address in all processes). SRLs use direct addressing and do not have run-time resolution of links to and from the main program and other independent libraries. SRLs are not supported on TNS/E systems. Contrast with dynamic-link library (DLL). SRL. See shared run-time library (SRL). stub.
Index A Configuration functions 1-2 Attribute interface routines 1-2 Automatic key management 3-3 AWAITIOX procedure 2-6, 3-7, 3-14 D B Backing store fault-tolerant 2-9 routines 1-2 Binding OSS c89 utility 4-1 partial 3-3 routines 1-3 C Cancelability 3-5 CDS description of 1-1 unsupported capabilities 1-5 cdsadv 1-5 cdsclerk, on virtual host 1-5 cdsd, on virtual host 1-5 CDS_ADVERTISEMENTS 4-4 Cell directory service (CDS) See CDS CHECK_TIME 4-5 Client blocking run-time code 3-3 intermediate Pathway ser
E Index Distributed file service (DFS) 1-1 Distributed time service (DTS) See DTS DTS API 1-4 DCE component 1-1 unsupported features 1-6 E Endpoint map and threading 3-3 service routines 1-3 Environment variables CDS_ADVERTISEMENTS 4-4 CHECK_TIME 4-5 DCEVH 4-5 DEFAULT_PRI 4-6 LANG 4-4 NLSPATH 4-4 RPC_DEFAULT_ENTRY 4-4 SEC_SERVER 4-6 TCPIP_PROCESS_NAME 4-5 TIME_SERVER 4-5 TOLERANCE_SEC 4-5 TOTAL_CLERKS 4-4 Error reporting 3-2 exec() function 3-8, 3-14 F Fault isolation 3-8 fork() function 3-8, 3-14 G Gl
M Index Library and debugging 4-8 context across calls 3-5 for SERVERCLASS_DIALOG_ABORT_ 3-11 for SERVERCLASS_DIALOG_BEGIN_ 3-9 for SERVERCLASS_DIALOG_END_ 3-11 for SERVERCLASS_DIALOG_SEND_ 3-10 for SERVERCLASS_SEND_ 3-9 NonStop DCE shared 4-1 pointers 3-5 RPC run-time 1-3 standard and single-threading 3-13 no asynchronous cancels 3-5 no need for jackets 3-5 with static data 3-5 threads 3-1, 3-8 Limits processing 2-4 threading 2-5 Login 1-7 longjmp() function 3-7 M Message catalogs LANG 4-4 NLSPATH 4-4 M
R Index Private resources 3-1 Process blocking calls clients that read from terminal 3-6 file operations 3-6 Pathway servers 3-6 SQL operations 3-6 choosing protocol sequence 2-3 examples 3-6 jackets to prevent 2-2 with multithreaded servers 2-2 with single-threaded servers 3-14 Process resources 3-4 Programming languages COBOL 2-9 mixing restrictions 2-8 sample application 2-8 Protocol sequences See also TCP/IP See also UDP/IP choosing 2-2, 2-3 file opens 2-3 issues server capacity 2-3 TCP/IP fault toler
T Index Server (continued) model, standard multithreaded 2-1 non-DCE 2-7 routines 1-2 Server initialization API 5-2/5-4, A-14/A-25 SERVERCLASS_DIALOG_ABORT_ 3-8 SERVERCLASS_DIALOG_BEGIN_ 3-8 SERVERCLASS_DIALOG_END_ 3-8 SERVERCLASS_DIALOG_SEND_ 3-8 SERVERCLASS_SEND_ 3-8 jacket functions C-1/C-17 to access non-DCE servers 2-8 to prevent process blocking 2-2 Serviceability routines 1-2 setjmp() function 3-7 sigaction() function 3-2 Signals 3-7 sigwait() function 3-2 Single-threading versus multithreading 3-1
U Index TIME_SERVER 4-5 TMF description of 3-11/3-12 jacket functions C-17/C-20 TOLERANCE_SEC 4-5 TOTAL_CLERKS 4-4 Transaction jackets defined 3-11 to prevent process blocking 2-2 Transaction Management Facility (TMF) see TMF Transmission Control Protocol/Internet Protocol (TCP/IP) See TCP/IP Special Characters $RECEIVE 2-6, 3-6 /opt/dcelocal.hostname/bin 1-9 /opt/dcelocal.hostname/usr/examples 1-9 /usr/include/dce 1-9 /usr/lib 1-9 /usr/lib/nls/msg/en_US.
Content Feedback First Name: __________________ Phone: _____________________ Company: ___________________ Last Name: _________________ e-mail address: ______________ (All contact information fields are required.) If you’re reporting an error or omission, is your issue: Minor: I can continue to work, but eventual resolution is requested. Major: I can continue to work, but prompt resolution is requested. Critical: I cannot continue to work without immediate response.
What’s New in This Guide What’s New in This Guide vii Guide Information vii New and Changed Information About This Guide ix Audience ix Organization ix Further Reading x Notation Conventions vii xi 1.
4.
B. Sample Mixed-Language Application The Error Macro File A-3 The Server File A-4 The Client File A-7 The Installation File A-9 The Make File A-11 The README File A-12 Port to Use the DCE Version 1.1 Server Initialization API The sams File A-15 The Error Macro File A-16 The Server File A-17 The Make File A-20 The README File A-22 A-14 B.
Index HP NonStop DCE Application Programming Guide —429551-003 4
Examples Examples HP NonStop DCE Application Programming Guide —429551-003 1
Examples HP NonStop DCE Application Programming Guide —429551-003 2
Figures Figures Figure 2-1. Figure A-1. Figure A-2. Figure A-3. Figure A-4. Figure A-5. Figure A-6. Figure A-7. Figure A-8. Figure A-9. Figure A-10. Figure A-11. Figure A-12. Figure A-13. Figure B-1. Figure B-2. Figure B-3. Figure B-4. Figure B-5. Figure B-6. Figure B-7. Figure C-1. Figure C-2. Figure C-3. Figure C-4. Figure C-5. Figure C-6. Figure C-7. Figure C-8. Figure C-9. Figure C-10.
Figures HP NonStop DCE Application Programming Guide —429551-003 2
Tables Tables Table 1-1. Table 2-1. Table 2-2. Table 2-3. Table 3-1. Table 3-2. Table 3-3. Table 4-1.