NonStop SOAP User’s Manual Abstract This manual provides reference and user information for HP NonStop™ SOAP, a product that provides Simple Object Access Protocol (SOAP) or Extensible Markup Language (XML) access to services for HP NonStop TS/MP and NonStop processes. NonStop SOAP allows TS/MP services and NonStop processes to be made available in a Web services environment. Product Version NonStop SOAP Release 3.0 Supported Release Version Updates (RVUs) This publication supports J06.
Document History Part Number Product Version Published 520501-008 NonStop SOAP Release 3.0 August 2006 520501-009 NonStop SOAP Release 3.0 May 2007 520501-010 NonStop SOAP Release 3.0 August 2007 520501-011 NonStop SOAP Release 3.0 May 2008 520501-012 NonStop SOAP Release 3.
Legal Notices © Copyright 2009 Hewlett-Packard Development Company L.P. Confidential computer software. Valid license from HP required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. The information contained herein is subject to change without notice.
NonStop SOAP User’s Manual Glossary Index Examples Figures Tables Legal Notices What’s New in This Manual xi Manual Information xi New and Changed Information About This Manual xiii Prerequisites xiii Notation Conventions xi xiv 1.
2. Installing NonStop SOAP (continued) Contents 2.
Contents 4. NonStop SOAP Features and Functions (continued) 4.
4. NonStop SOAP Features and Functions (continued) Contents 4.
5. Using the SOAP Admin Tool (continued) Contents 5. Using the SOAP Admin Tool (continued) Process Service Definition Errors 5-15 Memory Allocation Errors 5-16 Internal Processing Errors 5-16 Status and Error Messages 5-17 Pathway Status Messages 5-19 Process Status Messages 5-20 Multicast Errors 5-20 SoapServerCL Generated Messages 5-21 6.
6. Using NonStop SOAP with a TS/MP Application and NonStop Processes (continued) Contents 6. Using NonStop SOAP with a TS/MP Application and NonStop Processes (continued) Checking DDL Definitions with the cddf Utility cddf Command Format 6-85 cddf Example 6-86 cddf Output Example 6-86 cddf Errors 6-88 6-84 7.
8. Customizing the SOAP Server (continued) Contents 8.
Contents C. NonStop SOAP User-Exits (continued) C.
Examples (continued) Contents Examples (continued) Example 4-15. Example 4-16. Example 4-17. Example 4-18. Example 4-19. Example 4-20. Example 4-21. Example 4-22. Example 4-23. Example 4-24. Example 4-25. Example 4-26. Example 4-27. Example 4-28. Example 4-29. Example 4-30. Example 4-31. Example 4-32. Example 4-33. Example 4-34. Example 4-35. Example 4-36. Example 4-37. Example 4-38. Example 4-39. Example 4-40. Example 4-41. Example 4-42. Example 4-43. Example 7-1. Example 7-2. Example 8-1. Example 8-2.
Examples (continued) Contents Examples (continued) Example 8-5. Example 8-6. Example 8-7. Response SOAP Message 8-42 Sample Code Accessing Headers - I Sample Code Accessing Headers - I 8-43 8-44 Figures Figure 1-1. Figure 1-2. Figure 1-3. Figure 1-4. Figure 1-5. Figure 1-6. Figure 4-1. Figure 4-2. Figure 4-3. Figure 4-4. Figure 4-5. Figure 7-1. Figure 8-1. 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. Figure C-11. Figure C-12.
Tables (continued) Contents Tables (continued) Table 6-1. Table 6-2. Table 6-3. Table A-1. Table B-1. Faults for Unmarshal Errors 6-49 Faults from Errors Processing the Document 6-53 Faults from Marshal Errors 6-57 Support for SOAP 1.
Contents NonStop SOAP User’s Manual—520501-012 xii
What’s New in This Manual Manual Information NonStop SOAP User’s Manual Abstract This manual provides reference and user information for HP NonStop™ SOAP, a product that provides Simple Object Access Protocol (SOAP) or Extensible Markup Language (XML) access to services for HP NonStop TS/MP and NonStop processes. NonStop SOAP allows TS/MP services and NonStop processes to be made available in a Web services environment. Product Version NonStop SOAP Release 3.
Changes in the H06.14/J06.03 Manual What’s New in This Manual • Updated information about Large Message Support on page 4-78. Changes in the H06.14/J06.03 Manual • • • Supported release statements have been updated to include J-series RVUs. Added a new section with information on Digital Signatures as Section 7, NonStop SOAP with Digital Signatures. Added new appendix with information on user exits as Appendix C, NonStop SOAP User-Exits. Changes in the H06.
About This Manual This manual describes NonStop SOAP, a product that runs on an HP NonStop S-series system or HP Integrity NonStop NS-series system and allows you to use XML or SOAP clients for access to TS/MP services and NonStop processes. This manual is intended for customers who wish to expose their TS/MP applications or NonStop processes as Web services.
Related HP Products About This Manual • Extensible Markup Language (XML) http://www.w3.org/TR/REC-xml • Simple Object Access Protocol (SOAP) http://www.w3.org/TR/SOAP • SOAP 1.1 Specification http://www.w3.org/TR/SOAP/ • SOAP 1.2 Specification http://www.w3.org/TR/soap12-part1/ • Web Services Description Language (WSDL) http://www.w3.org/TR/WSDL.html • XML Schema Specification http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/ • SOAP Messages with Attachments http://www.w3.
General Syntax Notation About This Manual General Syntax Notation This list summarizes the notation conventions for syntax presentation in this manual. UPPERCASE LETTERS. Uppercase letters indicate keywords and reserved words; enter these items exactly as shown. Items not enclosed in brackets are required. For example: MAXATTACH lowercase italic letters. Lowercase italic letters indicate variable items that you supply. Items not enclosed in brackets are required. For example: file-name computer type.
General Syntax Notation About This Manual | Vertical Line. A vertical line separates alternatives in a horizontal list that is enclosed in brackets or braces. For example: INSPECT { OFF | ON | SAVEABEND } … Ellipsis. An ellipsis immediately following a pair of brackets or braces indicates that you can repeat the enclosed sequence of syntax items any number of times.
Notation for Messages About This Manual !i,o. In procedure calls, the !i,o notation follows an input/output parameter (one that both passes data to the called procedure and returns data to the calling program). For example: error := COMPRESSEDIT ( filenum ) ; !i:i. !i,o In procedure calls, the !i:i notation follows an input string parameter that has a corresponding parameter specifying the length of the string in bytes.
Change Bar Notation About This Manual horizontally, enclosed in a pair of brackets and separated by vertical lines. For example: proc-name trapped [ in SQL | in SQL file system ] { } Braces. A group of items enclosed in braces is a list of all possible items that can be displayed, of which one is actually displayed. The items in the list might 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.
1 Introduction to NonStop SOAP NonStop SOAP is a product that runs on an HP NonStop system and allows an Extensible Markup Language (XML) or Simple Object Access Protocol (SOAP) client to communicate with TS/MP services and NonStop processes as shown in Figure 1-1 and Figure 1-2 on page 1-2. NonStop SOAP allows TS/MP services and NonStop processes to be made available in a Web services environment.
Introduction to NonStop SOAP Features of NonStop SOAP Figure 1-2. XML or SOAP Client Access to a NonStop Process XML or SOAP Document XML or SOAP Client NonStop Process READ/WRITE SOAP Server VST01A.vsd Features of NonStop SOAP NonStop SOAP includes: • A prebuilt SOAP server, which allows an XML or SOAP client to use TS/MP services and NonStop processes. This server translates between SOAP message format and the message format expected by the TS/MP service or NonStop process.
Introduction to NonStop SOAP Architectural Overview executable can run from the command line or as a Pathway_CGI server class in the iTP WebServer environment. • ° An HTML client, including client-side JavaScript, and XML files containing empty requests, for use in prototyping. ° WSDL (Web Services Description Language) and schema files for each service in the SDL.
Introduction to NonStop SOAP Design-Time Architecture 2. The SOAP Admin tool reads the request and response definitions from the DDL Dictionary. If a problem arises in reading the DDL Dictionary, the SOAP Admin tool displays an error message. Note. NonStop SOAP does not support DDL figurative constants. The workaround is to specify the literal alphanumeric string (" ", 0, ....) in place of the DDL keywords (SPACES, ZEROES, .....). 3.
Introduction to NonStop SOAP Design-Time Architecture Figure 1-3. SOAP Admin Tool Service Description Language (SDL) Input File Service Definition Repository (SDR) SoapAdmin Tool Data Definition Language Dictionary HTML/JavaScript Client User Exit Source and Header Filles OSS Makefile XML Document Type Definitions (DTDs) and Schema Files WSDL Sample Requests and Responses NonStop SOAP User’s Manual—520501-012 1 -5 VST002.
Introduction to NonStop SOAP Run-Time Architecture Run-Time Architecture The prebuilt server, or a custom server you build with output from the SOAP Admin tool, can use existing TS/MP services or NonStop processes without requiring you to do programming on the server side. This manual discusses how to make customizations to a server, but most applications do not require such customizations. At run time, the SOAP server: 1. Checks whether the request is a well-formed XML document. 2.
Introduction to NonStop SOAP Transaction Management In the case of context-sensitive access, a session can also encompass calls to multiple server classes. The dialog with each server class is a subsession within the session. A SOAP server class that provides access to context-sensitive services must consist of only one server process (Maxservers=1 in the server class configuration). A client requests a session by including a specific element in the SOAP request header.
Introduction to NonStop SOAP Transaction Management In the case of context-free access, a transaction can span calls to multiple services, in one or more server classes. Multiple transactions can occur, one after another, within the same session. In the case of context-sensitive access, the number of transactions that can occur within a session depends on the transaction model supported by the target server classes.
Introduction to NonStop SOAP Internationalization I Figure 1-5.
Introduction to NonStop SOAP Design-Time Tasks for Access to TS/MP Services and NonStop Processes The client specifies the desired output encoding as the value of a SOAP header element. The SDL file can specify the default output encoding to be used for each target service. NonStop SOAP supports all encodings defined by the ICU library, version 2.61. Figure 1-6 represents encoding conversion by a SOAP server. For more information, see Section 4, NonStop SOAP Features and Functions. Figure 1-6.
Introduction to NonStop SOAP Design-Time Tasks for Access to TS/MP Services and NonStop Processes 4. Check for any error messages. If there are errors, correct them and run the SOAP Admin tool again. For information on SOAP Admin tool errors, see SOAP Admin Tool Error Messages on page 5-13. 5.
Introduction to NonStop SOAP Deployment-Time Tasks Deployment-Time Tasks These are the steps you must take to deploy a SOAP server as a Pathway_CGI process. For more detailed information, see Configuring and Running the Server in a WebServer Environment on page 6-60. 1. Copy the Pathway_CGI executable, the DTDs, and the SDL file to an appropriate directory under the iTP WebServer root directory. 2. Create/update the NonStop SOAP configuration file containing environment variables for the SOAP server.
Introduction to NonStop SOAP Supported Standards HTTP and for the executable to run as a server class in a WebServer environment, you must have the iTP WebServer installed.) There is also a prebuilt SOAP server which runs from the command line. • • • NonStop XML parser version 5.0 installed.
Introduction to NonStop SOAP • • • • Interoperability Appendix A, SOAP Support for the W3C SOAP 1.2 Optional Requirements lists the optional parts of the specifications that NonStop SOAP supports and does not support. NonStop SOAP supports multi-referenced simple or compound values (see the W3C SOAP 1.2 specification) in SOAP request messages. NonStop SOAP does not generate a SOAP response with multi-referenced simple or compound values.
Introduction to NonStop SOAP • • • • • • Compatibility and Migration The C++ code generation option available with prior releases is discontinued with NonStop SOAP 3.0. The Makefile generated to build the user-exit code uses C++ Version 3. The installation script will need to be run to migrate NonStop SOAP 2.4 SDRs to the NonStop SOAP 3.0 SDR. The WSDL documents generated in NonStop SOAP 3.
Introduction to NonStop SOAP Compatibility and Migration NonStop SOAP User’s Manual—520501-012 1-16
2 Installing NonStop SOAP This section details the installation considerations for NonStop SOAP and has the following subsections: • • • • • Installing NonStop SOAP on G-Series RVUs Installing NonStop SOAP on H-Series RVUs NonStop SOAP Directory Structure Post-Installation Script Creation of Basic SDR Database Installing NonStop SOAP on G-Series RVUs For systems running G-series RVUs, use the NonStop SOAP CD.
Installing NonStop SOAP Installation Overview Install NonStop SOAP on the Host System The host system is an HP NonStop system. The installers run on your workstation. Run the IPSetup Program Exit all other Windows applications before starting to place NonStop SOAP software on the host. 1. Open the product CD by double-clicking the CD drive. 2. Click the View Readme file button. Setup opens the readme file in Notepad. Be sure to review the entire readme before proceeding. 3.
Installing NonStop SOAP Installing NonStop SOAP on H-Series RVUs 2. Change the volume to the location containing the transferred files, then run: TACL>$SYSTEM.ZOSSUTL.COPYOSS T0603PAX This command unpacks the NonStop SOAP product files and installs them under the directory /usr/tandem/nssoap/t0603v30. Installing NonStop SOAP on H-Series RVUs For systems running H-series RVUs, use DSM/SCM to install NonStop SOAP. NonStop SOAP will be installed under the directory location, /usr/tandem/nssoap/t0603h01.
Installing NonStop SOAP Post-Installation Script ° SoapLibrary.a. This library is required to build a custom SOAP server (Pathway_CGI or command-line executable). ° SoapMain_CGI.a. This library is required to build a custom SOAP server that runs as a Pathway_CGI server class. A server runs in this configuration if the environment variable PATHWAY_SOAP_CGI is set. ° SoapMain_CommandLine.a. This library is required to build a custom SOAP server that runs from the OSS command-line.
Installing NonStop SOAP Post-Installation Script The script supports these optional installation tasks: • • • • Migrating the NonStop SOAP Service Definition Repository (SDR) from an earlier release. Deploying a CGI version of the NonStop SOAP server on an iTP WebServer environment (considering that the SOAP environment already exists). Setting the TS/MP serverclass and DDL definitions for the samples. Installing the NonStop SOAP Admin server for the GUI-based NonStop SOAP Admin Tool.
Installing NonStop SOAP Creation of Basic SDR Database Creation of Basic SDR Database The basic SDR database can be created by any of the following steps: • • • Migrating the NonStop SOAP Service Definition Repository (SDR) from a prior release Installation Steps for Samples on page 2-6 Installing GUI-Based NonStop SOAP Admin Tool on page 2-8 Installation Steps for Samples Set up the SDR for Samples Environment The primary sample application to be installed is the employee database application.
Installing NonStop SOAP Installation Steps for Samples Deploy the SOAP Server To deploy the SOAP server: 1. Open empsdl.xml at: /usr/tandem/nssoap/t0603v30/samples/pathway/employee_db/soap4nsk. 2. Update the empsdl.xml file. Update the SDL attributes URL, ExeName, and ServerAddress: sdl Url=/nssoap/SoapServer.pway ExeName=SoapServer.pway ServerAddress=http://204.160.19.110/ 3.
Installing NonStop SOAP Installing GUI-Based NonStop SOAP Admin Tool Installing GUI-Based NonStop SOAP Admin Tool To install a GUI-based SOAP Admin tool: 1. Enter the directory location where NonStop SOAP version 3.0 has been installed. The accepted default is /usr/tandem/nssoap/t0603h01 (for H-series systems only). 2. Enter the directory location where the NonStop XML parser version 5.0 has been installed. The default directory is /usr/tandem/xml/T0563H01 (for H-series systems only). 3.
Installing NonStop SOAP Installing GUI-Based NonStop SOAP Admin Tool 2. Extract the contents of the TAR file using an archive tool like WinZip. The contents should be extracted to C:\HP\NonStop\SoapAdmin. 3. After extraction, the contents of the SoapAdmin directory should contain: • • • • • • lib – a directory AdminTool.bat – a batch file to run the NonStop SOAP Admin GUI config.xml – the configuration file for the NonStop SOAP Admin GUI License – licensing terms for various components properties.
Installing NonStop SOAP Installing GUI-Based NonStop SOAP Admin Tool NonStop SOAP User’s Manual—520501-012 2- 10
3 The Service Description Language (SDL) These Service Description Language (SDL) document type definitions (DTDs) are used by the SOAP Admin tool at design-time to validate the input file that describes target services. The SDL (Service Map Definitions) document can be: • • • An input to the SOAP Admin tool to transfer Web-service definitions to the Service Definition Repository (SDR), which is referenced by the SOAP server at run time. See SoapAdminCL Command Syntax on page 5-2.
The Service Description Language (SDL) SDL DTD for TS/MP and NonStop Processes WebServer environment. For example, the attribute Url could have the value: Url='/applications/C/Finapp.pway.' The ExeName attribute specifies the executable name for a Pathway_CGI server class or a command-line process. For a Pathway_CGI server class, include the extension.pway.
The Service Description Language (SDL) SDL DTD for TS/MP and NonStop Processes ELEMENT Pathway The same SDL file can define services in multiple TS/MP environments. Note. The CreateDDLDefFile attribute of the TS/MP environment is not used in NonStop SOAP 2.4 or later releases. It appears in the SDL DTD for backward compatibility.
The Service Description Language (SDL) SDL DTD for TS/MP and NonStop Processes ELEMENT Process In NonStop SOAP 3.0 you can define a NonStop process, in addition to a TS/MP server class. The NonStop process must be a valid process running under the OSS/Guardian operating system. The SDL has a new element hierarchy added to its structure. The new element Process appears under the root element.
The Service Description Language (SDL) SDL DTD for TS/MP and NonStop Processes ELEMENT Service
The Service Description Language (SDL) SDL DTD for TS/MP and NonStop Processes The ServiceName attribute can have a maximum of 256 bytes. If the length specified is greater than the maximum length, an error is generated when parsing the SDL file.
The Service Description Language (SDL) SDL DTD for TS/MP and NonStop Processes NonStop SOAP server can now process a SOAP request which is of RPC style and contain multi-reference elements. For example, here is a SOAP request from an Apache Axis client containing a multi-reference element. PAGE 58The Service Description Language (SDL) SDL DTD for TS/MP and NonStop Processes default value is "no" --> The SoapDDLAttribute provides a way for tagging all the DDL fields of a definition without having to make any changes to the DDL dictionary. For more information on using this attribute, see Exposing DDL Fields as XML Attributes on page 4-30.
The Service Description Language (SDL) SDL DTD for TS/MP and NonStop Processes Certain types of resource limitations can also limit caching. The setting of OneTxnPerDialog attribute must be consistent with the logic of the service. A value of "yes" implies that the dialog consists of one transaction. A value of "no" implies that multiple transactions can occur within a dialog.
The Service Description Language (SDL) SDL DTD for TS/MP and NonStop Processes The SvcDescription element can be a maximum of 256 bytes. If the length specified is greater than the maximum length, the first 256 bytes are used.
The Service Description Language (SDL) SDL DTD for TS/MP and NonStop Processes The BufVal attribute can be a maximum of 512 bytes. If the length specified is greater than the maximum length, an error is generated when parsing the SDL file.
The Service Description Language (SDL) Handling Different Response Selections in the SDL Handling Different Response Selections in the SDL NonStop SOAP supports marshaling different response messages based on selection criteria specified in the ResponseSelection elements of the SDL. A response can be marked as default and will be used when no selection criteria is specified or if none of the conditions specified in the selection criteria are true.
4 NonStop SOAP Features and Functions The SOAP server is available in two versions: one version runs from the command line, the other as a Pathway_CGI server class in an iTP WebServer environment.
NonStop SOAP Features and Functions NonStop SOAP Header NonStop SOAP Header To delimit a session, control a transaction, or specify an output encoding for SOAP responses, the client uses elements of the NonStop SOAP header. These elements belong to the namespace urn:compaq_nsk_oss_SoapHeader, as illustrated in examples throughout this section. Header Elements for Sessions and Transactions This DTD specifies the NonStop SOAP Header element used to request actions related to sessions and transactions.
NonStop SOAP Features and Functions Session Management This DTD specifies the NonStop SOAP Header element used to specify an output encoding for SOAP messages. The use of this element is described in Exposing a Subset of DDL as a Web Service on page 4-18. Session Management A session is a logical grouping of a series of requests.
NonStop SOAP Features and Functions Subsessions When a client requests a session, the SOAP server returns a session ID. Thereafter, any request that includes the session ID is regarded as belonging to the same session. Similarly, in the response from a service, the SOAP server includes the session ID, unless the response signifies the end of the session. Note.
NonStop SOAP Features and Functions Starting a Session A request to start a session must not include a value for the SessionID attribute of the session element. If it does, the server returns a fault. After starting the session, the SOAP server returns a response that includes the session ID as the value of the SessionID attribute. In Example 4-1, the client requests the SOAP server to run a service within a new session. Notice the namespace specified for the NonStop SOAP header elements. Example 4-1.
NonStop SOAP Features and Functions Continuing a Session Example 4-3. Session Initiation Request with Empty Body PAGE 69NonStop SOAP Features and Functions Aborting a Subsession Example 4-5. Response Showing Session Still in Progress PAGE 70NonStop SOAP Features and Functions Ending a Session Client Request to End a Session To request an end to the session, the client sends a SOAP message specifying a value of “End” for the SessionCommand attribute of the SOAP header. If the body of the SOAP message contains a request, the SOAP server processes the request, then ends the session. If the body of the SOAP message is empty, the SOAP server ends the session.
NonStop SOAP Features and Functions Ending a Session Example 4-8. Response to Last Request of Session 1621 In Example 4-9, the client requests an end to the session without invoking any other service. Example 4-9. Ending a Session without Invoking a Service PAGE 72NonStop SOAP Features and Functions Server-Side Cookie File SOAP_SESSION_TIMEOUT has a default value of 30 minutes. If you specify a value greater than 432000, the SOAP server uses the value 432000 (that is, 300 days). If you specify a value less than 0, the SOAP server returns an error. Note. TMF has an autoabort function that causes a transaction to be aborted if it exceeds an amount of time called the autoabort threshold.
NonStop SOAP Features and Functions Server-Side Cookie File If you specify an existing file, ensure that the SOAP server has read and write access to the file. The SOAP server reads a record from the cookie file whenever a SOAP request specifies a session ID. The SOAP server also locks the records exclusively until it responds to the client. While the session record is locked, other SOAP servers trying to access the same session record are blocked.
NonStop SOAP Features and Functions Server-Side Cookie File SoapServerCL is the executable name of the server. options can have any of these values: (empty) prints a page of help text about the use of the command-line executable. [-s ] ... produces an output message, on the standard output file, for each specified . The server processes the input files in the order in which you specify them.
NonStop SOAP Features and Functions Server-Side Cookie File For example, if a session has a SOAP_SESSION_TIMEOUT value of 36 minutes and the last use of the session was 19 minutes ago: • A value of 10 would cause the session record to be deleted because 19 is greater than 10. • A value of 50 would not cause the session record to be deleted because 19 is less than 36.
NonStop SOAP Features and Functions Server-Side Cookie File Example 4-13. Specifying the Session ID on the SOAP Server Command Line >SoapServerCL -s 320ab file1 file2 file1: PAGE 77NonStop SOAP Features and Functions Transaction Management Transaction Management A transaction is a series of requests that are valid only as a unit: if any request in the series fails, the effects of earlier requests must be undone, or rolled back, usually to ensure database consistency. On a NonStop system transaction management is a function of TMF. That product is required to be installed and running if you wish to use the transaction management features of NonStop SOAP.
NonStop SOAP Features and Functions Starting a Transaction A SOAP server does not begin, abort, or end a transaction implicitly (without the knowledge of the SOAP client), except in these cases: • • • • When a context-sensitive server ends a dialog, and the service permits only one transaction per dialog. In this case, the SOAP server ends the transaction but not the session.
NonStop SOAP Features and Functions Committing a Transaction Committing a Transaction To commit a transaction, causing all the changes to take effect, the client sends a SOAP message, specifying a value of “End” for the CurrentTransactionCommand attribute of the Session element of the NonStop SOAP header. The SOAP server commits the transaction before it processes the body of the request. The body of the request can be empty. This attribute cannot be specified within a request to start a new session.
NonStop SOAP Features and Functions Session and Transaction Examples Session and Transaction Examples For examples of SOAP messages that conduct transactions with TS/MP services, see Sessions and Transactions with TS/MP Servers and NonStop Processes on page 6-24. Exposing a Subset of DDL as a Web Service NonStop SOAP allows you to expose a subset of a DDL definition as a Web service. Often DDL declarations are large and have inherited fields that can be hidden or omitted in a business process request.
NonStop SOAP Features and Functions • Exposing a Subset of DDL as a Web Service @SOAP_SUPPRESS_INOUT: Do not expose this field in the SOAP request as well as the response message. For a table describing the valid combinations of comment tags and a description of the order of processing of these comment tags, see Appendix B, Using DDL Comment Tags . The comment tags should be the first set of nonwhite space character following the "*" character (which denotes that DDL line as a comment).
NonStop SOAP Features and Functions Exposing a Subset of DDL as a Web Service For a DDL comment to be visible to SOAP Admin before adding the modified DDL definition, you must specify the directive "?COMMENTS" to the DDL utility. An example is: TACL> DDL ?DICT ?COMMENTS Definition EMPLOYEE-DEF. 02 EMPLOYEE-NUMBER Pic "9999". 02 EMPNAME. * 03 FIRST Pic "X(20)". 03 LAST Pic "X(30)". @SOAP_OPTIONAL 03 MIDDLE * Pic "X". @SOAP_SUPPRESS_INOUT 02 REGNUM Pic "99".
NonStop SOAP Features and Functions Dynamic Refresh of the SOAP Server Dynamic Refresh of the SOAP Server Dynamic refresh of the Pathway_CGI server means that the SOAP server reads any changes made to the Service Definition Repository (SDR) without you having to restart the server. The SDR is a persistent store of the SDL specified by the service provider.
NonStop SOAP Features and Functions • Dynamic Refresh of the SOAP Server DEL_SDR_PW * Informs the SOAP server that the specified service names (separated by spaces) have been deleted from the SDR. • PURGE_CACHE_SDR All the SDR cache entries are removed. The SOAP server reads from the SDR from this point forward and rebuilds its SDR cache. • PURGE_CACHE_PW * Deletes the Metadata cache for the definitions specified (separated by spaces).
NonStop SOAP Features and Functions Enhanced Caching The SOAP server closes the current trace log file and attempts to use the specified file name as the trace file name prefix. Enhanced Caching Enhanced caching boosts the performance of cached services. For NonStop SOAP, enhanced caching and dynamic refresh of SDL contents means that you do not have to restart the SOAP server after you make changes in the SDL. The dynamic cache feature depends on the usage of services.
NonStop SOAP Features and Functions Enhanced Caching SDL at startup (all entries not shown): ...
NonStop SOAP Features and Functions Enhanced Caching Figure 4-1. Startup Processing of Cache Service - A SOAP Server SOAP Client Cache Service - A (LRU) Service - C Service - G (MRU) VST204.vsd Example 2: Request Received for Service-A Service-A becomes the MRU service moving the other services up in the list. . Figure 4-2. Request Received for Service A Service - A SOAP Server SOAP Client Cache Service - C (LRU) Service - G Service - A (MRU) VST205.
NonStop SOAP Features and Functions Enhanced Caching Figure 4-4. Request Received for Service B Service - B SOAP Server SOAP Client Cache Service - G (LRU) Service - A Service - H (MRU) VST207.vsd However, if the SOAP server receives a Dynamic SDL refresh for the Interface element defined in the SDL in Example 4-4, the new SDL contents become: ...
NonStop SOAP Features and Functions The SOAP Administration Tool The SOAP Administration Tool The SOAP Admin tool parses an XML input file conforming to the SDL DTD and schema languages to create these types of files: • • • • • WSDL and schema files for each service in the SDL Optional Makefile for building the server process and generating user-exit code DTDs and schemas for the requests and responses described in the DDL HTML client including client-side JavaScript and XML files containing empty reque
NonStop SOAP Features and Functions Internationalization and Encoding These changes have been made to the method InvokeSoap(): • • • The method has been compiled as a C function. The object file SoapInvoke.o is now available in the /lib directory, instead of the /samples/pathway/LinkSoapLib directory. A header file, invoke_soap.h in the directory /include contains the signature of the method InvokeSoap().
NonStop SOAP Features and Functions Specifying the Default Output Encoding for a Service Example 4-16. Fault for Unsupported Encoding SOAP-ENV:Client.
NonStop SOAP Features and Functions Specifying the Server Encoding Specifying the Server Encoding NonStop SOAP 3.0 supports new server encodings, in addition to UTF-8. The new encodings are supported only in the prebuilt SOAP servers (the servers that are distributed in the /bin directory), and are not supported for SOAP servers built using the generated code.
NonStop SOAP Features and Functions Setting the SoapDDLAttribute in the SDL Note. DDL leaf fields which are REDEFINED are always treated as elements. The attribute related features described in this section will be ignored for such DDL leaf fields. For example, this message is an attribute centric XML fragment for the same DDL. Example 4-19.
NonStop SOAP Features and Functions Flagging a DDL Field with SOAP DDL Comment Tags Example 4-21. Sample XML Representation ... The SoapDDLAttribute is not available for services with the “rpc” style message types in the SDL.
NonStop SOAP Features and Functions Flagging a DDL Field with SOAP DDL Comment Tags *@SOAP_ATTRIBUTE 02 FIRST PIC X(20) ..... ..... The presence of the @SOAP_ATTRIBUTE comment tag at a leaf level denotes that the field is represented as an XML attribute and at the group level denotes that all the child leaf fields are represented as XML attributes.
NonStop SOAP Features and Functions Flagging a DDL Field with SOAP DDL Comment Tags Note. The SoapDDLAttribute is independent of the ProcessSoapDDLComments SDL attribute.
NonStop SOAP Features and Functions Flagging a DDL Field with SOAP DDL Comment Tags Examples These examples show the usage of the DDL comment tags (shown above). Example 4-22 shows the @SOAP_ATTRIBUTE and @SOAP_ELEMENT at leaf and group levels. Example 4-22. DDL Definition ?comments ...... 02 PATIENT-DATA. * @SOAP_ATTRIBUTE 03 ID PIC 9(5). 03 AGE PIC 9(3). * @SOAP_ATTRIBUTE 03 NAME. 04 FIRST PIC X(20). 04 MIDDLE PIC X. 04 LAST PIC X(25). * @SOAP_ATTRIBUTE 03 HOSPITAL. 04 HOSP-NAME PIC X(30).
NonStop SOAP Features and Functions Flagging a DDL Field with SOAP DDL Comment Tags Example 4-23 shows the XML message and schema representation corresponding to the DDL definition. Example 4-23. XML Message 55 365 Hospital Dr.
NonStop SOAP Features and Functions Flagging a DDL Field with SOAP DDL Comment Tags Example 4-24.
NonStop SOAP Features and Functions Flagging a DDL Field with SOAP DDL Comment Tags Example 4-25.
NonStop SOAP Features and Functions Case-Sensitivity in NonStop SOAP This table is applicable only for Services having their SoapMessageType attribute set as “document” style. For “rpc” style services the XML representation is always element centric. For more information on the processing of multiple comment tags, see Appendix B, Using DDL Comment Tags.
NonStop SOAP Features and Functions Specifying Base64 Encoding End. Now, compile the DDL as: ddl/in < ddl file-name>/ Caution. The DDL should not be compiled with the output_sensitive flag in the command line. Note. During run time, the requests will be properly validated with the SDR. The contents of the SDR will be in mixed case even if the EnableOutputSensitive attribute is set to “no” in the SDL file.
NonStop SOAP Features and Functions Specifying Base64 Encoding Example 4-26. DDL Definition 02 PATIENT-DATA. 03 ID PIC 9(5). 03 AGE PIC 9(3). 03 NAME. 04 FIRST PIC X(20). 04 MIDDLE PIC X. 04 LAST PIC X(25). * @SOAP_BASE64 03 BINARY-CONTENT type binary 32. Example 4-27.
NonStop SOAP Features and Functions Specifying Base64 Encoding Example 4-28.
NonStop SOAP Features and Functions SOAP Faults Generated by the NonStop SOAP Server SOAP Faults Generated by the NonStop SOAP Server This marshal SOAP fault is generated by the NonStop SOAP server when an error occurs while Base64 encoding the value of a DDL field containing the @SOAP_BASE64 comment tag. Example 4-29. Error Encoding Base64 Value PAGE 106NonStop SOAP Features and Functions Generated HTML Clients This unmarshal SOAP fault is generated by the NonStop SOAP server when there is an error decoding a Base64 encoded value present in the request SOAP/XML message. Example 4-30. Error Decoding Base64 Value SOAP-ENV:Client.
NonStop SOAP Features and Functions Enhanced DDL Comment Tag @SOAP_OPTIONAL Enhanced DDL Comment Tag @SOAP_OPTIONAL NonStop SOAP currently supports flagging a field as optional using the SOAP DDL comment tag @SOAP_OPTIONAL. In releases prior to NonStop SOAP 3.0 if a group field is tagged as optional then it applies only to that particular field and does not propagate to its children (that is, the group field can be present only when all of its children are present in the request/response XML message).
NonStop SOAP Features and Functions Enhanced DDL Comment Tag @SOAP_OPTIONAL Example 4-32.
NonStop SOAP Features and Functions Enhanced DDL Comment Tag @SOAP_OPTIONAL Example 4-33.
NonStop SOAP Features and Functions Enhanced DDL Comment Tag @SOAP_OPTIONAL Example 4-35. XML Message 2
In this message, the ADDRESS element is not present. This is valid because the parent element is HOSPITAL and the HOSPITAL element is optional.
NonStop SOAP Features and Functions Enhanced DDL Comment Tag @SOAP_OPTIONAL Example 4-36. XML Message 3 XML Message 3:
In this message, the COUNTY-NAME element is not present.
NonStop SOAP Features and Functions Restricting String Length in WSDL Documents Restricting String Length in WSDL Documents Currently, a DDL field defined as pic X(50) gets mapped to a schema data type xsd:string. To pass this field (of a maximum length of 50), this feature puts a restriction on the data type, limiting it to a length no greater than that accepted by the DDL field. Example 4-37 shows the current and new length-restricted schemas generation for this DDL definition: ?DICT DEF emp-details.
NonStop SOAP Features and Functions Generated Files Generated Files These SOAP Admin generated files are affected as a result of the string length restriction: • • • Schema. The schema files in the pway-xsd/ contain the change. WSDL. The WSDL files in the pway-wsdl/ contain the schema changes. HTML Clients. The HTML clients in the pway-client/ contain restrictions on the number of characters that the user can enter.
NonStop SOAP Features and Functions • • • DDL Field Requirements PIC 9(4) COMP PIC S9(5) PIC S9(5) COMP Some of the invalid field types are: • • • • • • PIC X PIC X(10) PIC 9999V99 TYPE FLOAT TYPE FLOAT 64 TYPE LOGICAL 4 DDL Field Requirements NonStop SOAP requires that the DDL field to which the @SOAP_OCCURS_DEP_ON field can be applied must be an OCCURS field.
NonStop SOAP Features and Functions DDL Field Requirements Example 4-38. Valid use of @SOAP_OCCURS_DEP_ON DEF books-in-lib. 02 fiction_count PIC 9(4) COMP. 02 libraries_fic PIC 9(4) COMP. 02 magazines_count PIC 9(4) COMP. 02 libraries_mag PIC 9(4) COMP. 02 duplicate-count. 03 fiction_count PIC 9(4) COMP. * @SOAP_OCCURS_DEP_ON duplicate-count.fiction_count 02 fiction-details 03 call-num OCCURS 1000 TIMES. PIC 9(10). * @SOAP_OCCURS_DEP_ON libraries_fic 03 library PIC X(40) OCCURS 50 TIMES.
NonStop SOAP Features and Functions Sample XML, Schema, and WSDL Files Example 4-39. Invalid use of @SOAP_OCCURS_DEP_ON DEF books-in-lib. 02 fiction_count PIC X(4). 02 num_count PIC 9(8). * @SOAP_OCCURS_DEP_ON fiction_count 02 fiction-details 03 call-num OCCURS 1000 TIMES. PIC 9(10). ** @SOAP_OCCURS_DEP_ON libraries_fic 03 library PIC X(40) OCCURS 50 TIMES. * @SOAP_OCCURS_DEP_ON num_count 02 author PIC X(64).
NonStop SOAP Features and Functions Communicating with a Process Communicating with a Process Currently, NonStop SOAP communicates only with a TS/MP server class. In NonStop SOAP 3.0 you can define a NonStop process, in addition to a TS/MP server class. The NonStop process must be a valid process running under the OSS/Guardian operating system. SDL Changes The SDL has a new element hierarchy added to its structure. A new element called appears under the root element.
NonStop SOAP Features and Functions Sample SDL Sample SDL This SDL enlists a Process named “$PROC” that has a service “EmpInfo”. It follows the DTD discussed previously. In this example $PROC represents the name of a valid process running under OSS/Guardian operating system. PAGE 119NonStop SOAP Features and Functions Sample SDL ERROR-REPLY
These attributes are ignored for a defined within the scope of a as they do not apply to a process: • • Type OneTxnPerDialog The errors reported by the SOAP Admin tool
NonStop SOAP Features and Functions Pathmon Mapping Pathmon Mapping Pathmon mapping allows you to override the PATHMON name defined in the SDL with a different PATHMON name during the SOAP server’s runtime execution. A typical example might be a situation where you have multiple SOAP servers deployed under the iTP WebServer supplying the same functionality but using services located in different Pathmons.
NonStop SOAP Features and Functions Sample Pathmon Mapping File Config File # 2 (For EUROPE and MIDDLE-EAST Region) .........> Config File # 3 (For ASIA PACIFIC Region)
NonStop SOAP Features and Functions NonStop SOAP Configuration File For example, if the SDL file contained four Pathmons ($PMON1, $PMON2, $PMON3 and $PMON4), then the pmon.map is: You can then edit the value in the pmon.map and copy it into the nssoap.
NonStop SOAP Features and Functions NonStop SOAP Configuration File This DTD describes the structure of the NonStop SOAP configuration file. For information about using this file, see Configuring and Running the Server in a WebServer Environment on page 6-60.
NonStop SOAP Features and Functions NonStop SOAP Configuration File Example 4-40. NonStop SOAP Configuration File PAGE 125NonStop SOAP Features and Functions Error Messages Error Messages Based on the error condition, the NonStop SOAP server prints out these messages: Error Condition Message Displayed If the structure of the does not follow the required structure For SoapServerCL, this message is printed on the screen: Error parsing the Soap Config File: : An error occurred during parsing Message: Error at line x, column y Message: : Soap Server exiting. For SoapServer.
NonStop SOAP Features and Functions Error Reporting Error Reporting NonStop SOAP reports errors and other noteworthy conditions in these ways: • • • • SOAP Faults Error Log File Trace File EMS Messages SOAP Faults If an error occurs while the SOAP server is handling a request from a client, a SOAP fault message is returned. This section lists the SOAP faults related to the features described in this section. Faults specific to the SOAP server are listed and described in Fault Messages on page 6-46.
NonStop SOAP Features and Functions SOAP Faults Table 4-3. SOAP Faults (page 2 of 5) Detail Code Detail String Notes -1 System error [] from transaction commit. The specified error was encountered while committing a transaction. The error number is a TMF error code. Look up the error number in the TMF manual set, and take any appropriate corrective action. -1 System error [] from transaction suspend. The specified error was encountered while suspending a transaction.
NonStop SOAP Features and Functions SOAP Faults Table 4-3. SOAP Faults (page 3 of 5) Detail Code Detail String Notes -403 Marshal Error: error encoding the Base64 node: . A marshal error occurred when attempting to Base64 encode the value present in the specified code. -1001 SessionID was not found in the server, or SOAP session identified by the SessionID has expired. Please check the SessionID or start a new session if necessary.
NonStop SOAP Features and Functions SOAP Faults Table 4-3. SOAP Faults (page 4 of 5) Detail Code Detail String Notes -1010 Invalid tag found in the Header element. The header element contains an invalid tag. Correct the syntax of the header element, and retry the request. -1011 Invalid attribute found in tag . The header element contains an attribute not valid for the element. Correct the syntax, and retry the request.
NonStop SOAP Features and Functions SOAP Faults Table 4-3. SOAP Faults (page 5 of 5) Detail Code Detail String Notes -1020 Error getting the first token. The specified error was encountered parsing the header of the XML document. -1021 . The specified error was encountered parsing the header of the XML document. -1022 Unknown exception occurred. The specified error was encountered parsing the header of the XML document.
NonStop SOAP Features and Functions Error Log File Error Log File The SOAP server logs error messages to a file, even if you do not request a trace (using the SET_TRACE_FILE and SET_TRACE_LEVEL environment variables). By default, the file used for error logging is soapcgi.err, in the current working directory). You can specify a different file in your NonStop SOAP configuration, using the environment variable SOAP_ERROR_FILE.
NonStop SOAP Features and Functions Trace File Log Messages The log contains several types of error messages, including: • • • Errors parsing the SDL input file, as described in SOAP Admin Tool Error Messages on page 5-13. For most of these errors, the corrective action is to correct the SDL input file and restart the server. SOAP faults, as described in SOAP Faults on page 4-64. Initialization messages, described here.
NonStop SOAP Features and Functions Mapping Between Faults, Error Logs, and Trace Records 1. Look at the detailString element of the fault message. (If you are writing a client and wish for users to report faults as described here, you must externalize the ts attribute and the text message in this element.) 2. Examine the error log. Find the record that matches the ts attribute and text of the fault message, and note the process name. Skip this step if you ran the SOAP server from the command line. 3.
NonStop SOAP Features and Functions Mapping Between Faults, Error Logs, and Trace Records Error Log This error log entry corresponds to the SOAP fault and identifies the server process name as CM01. Example 4-42. Mapping Between Fault Message, Error Log, and Trace Entry (Error Log) >> 2001/8/21 16:06:22: CM01:16.105.86.110:Logon:<< Error occurred, ts=2001/08/21 16:06:22 >> 2001/8/21 16:06:22: CM01:16.105.86.110:Logon:<< Unmarshal Error: node: test64 is either NULL or not present.
NonStop SOAP Features and Functions Mapping Between Faults, Error Logs, and Trace Records Example 4-43. Mapping Between Fault Message, Error Log, and Trace File (Trace File) >> 2001/8/21 16:06:22: :<< SoapDocumentHandler::process: After the call to parser->parse() >> 2001/8/21 16:06:22: :<< SoapServerPWDocumentHandler::unmarshal() >> 2001/8/21 16:06:22: :<< Unmarshal Error: node: test64 is either NULL or not present. Incorrect sequence of nodes in request.
NonStop SOAP Features and Functions EMS Messages EMS Messages The SOAP server reports errors and other significant events to the Event Management Service (EMS). By default, events are reported to the process named $0; however, you can specify an alternate EMS collector as the value of the environment variable EMS_COLLECTOR,as described in Configuring and Running the Server in a WebServer Environment on page 6-60. An event message has this format: yyyy-mm-dd hh:mm:ss \sys.
NonStop SOAP Features and Functions EMS Messages NonStop SOAP servers report these events. The SOAP server can also report events listed in Checking DDL Definitions with the cddf Utility on page 6-84. NSSOAP: System error from open of This message provides the file-system error number to use in identifying the problem that arose when the server tried to open the specified file or process. Look up the error, and take any appropriate action.
NonStop SOAP Features and Functions EMS Messages NSSOAP: Invalid Soap Config File: SOAP Server exiting. This message indicates that the SOAP configuration file is invalid. The command-line process or server class stops. Ensure that the configuration file is a valid XML document of the form specified in NonStop SOAP Configuration File on page 4-60.
NonStop SOAP Features and Functions EMS Messages This message indicates an internal error while opening a SDR file. The SDR file can be the PWAYSDL file or the PWYMDATA file. When this error is generated the command line SOAP Server / Pathway CGI server stops. You must restart the SOAP server. If the problem continues, report it to HP Support. NSSOAP: ERROR >> Internal application error - key length and/or record length specified as 0. This message indicates an internal error while opening a SDR file.
NonStop SOAP Features and Functions Large Message Support Large Message Support NonStop SOAP supports context-free SOAP messages of up to 2 MB in size. NonStop SOAP leverages related features of the DDL compiler and the TS/MP architecture to provide support for messages and perform context-free Pathsend calls of up to 2 MB data size. To use this feature you must have the DDL compiler version 9 or later and TS/MP 2.4 or later installed on your NonStop system.
5 Using the SOAP Admin Tool The SOAP Admin tool manages the Service Definition Repository (SDR). In prior NonStop SOAP releases, the service provider edited an SDL document and the SOAP server referenced the SDL file at run time. In NonStop SOAP 3.0, the service provider must transfer the SDL information to the Service Definition Repository (SDR), which is implemented as a Guardian Enscribe database. At run time, the SOAP server references the SDR, instead of the SDL document.
Using the SOAP Admin Tool Using the SOAP Admin Tool File Description (page 2 of 2) pway-wsdl This directory includes WSDL files generated. pway-client This directory includes all the client files generated. userexit-cpp This directory includes source and header files generated for user-exits. Using the SOAP Admin Tool The SOAP Admin tool is a standalone program and runs from the OSS command line.
Using the SOAP Admin Tool SoapAdminCL Command Syntax import options can appear before -i or after the : -nocpp suppresses the generation of user-exits code when the GenerateUserExits attribute is set to “yes” in the SDL service. -genOnly generate all files. Do not modify the SDR. This option ignores the DeployOption attribute for TS/MP services and NonStop processes in the SDL. The SOAP Admin tool does not generate files if the Pathway service does not exist in the SDR.
Using the SOAP Admin Tool SoapAdminCL Command Syntax -env all entries under the specified TS/MP environment name(s) (space separated without the leading $ sign) are extracted. For example: SoapAdminCL -e -pathway -env • \$lib -process all entries under the process hierarchy are extracted. -env all entries under the specified process environment name(s) (space separated without the leading $ sign) are extracted.
Using the SOAP Admin Tool Using SoapAdminCL file containing messages to be multicast specifies the file name containing the multicast message. For more information about the multicast options for TS/MP services, see Explicit Multicast on page 5-7. Using SoapAdminCL To extract an SDL file from the SDR for TS/MP services, use this command: SoapAdminCL list ] -e sdl file name -pathway [-env pathway env sdl file name is the name of the SDL input file that contains service specifications.
Using the SOAP Admin Tool Using SoapAdminCL PAGE 147Using the SOAP Admin Tool Using SoapAdminCL with Implicit Multicast Using SoapAdminCL with Implicit Multicast After processing an SDL file (with addUpdate, add, update, or delete DeployOptions) for TS/MP, the SOAP Admin tool queries you whether a multicast has to be performed. (The text below in italics is the SOAP Admin query.) 1. Do you want to send administrative message to all the instances of a SOAP server Pathway CGI? (yes)/no: 2. If the answer is "yes" a. Enter the Pathmon Name: $PM b.
Using the SOAP Admin Tool Generated Files name, use a back slash (\) to escape the dollar sign ($) and any other back slash. For example: SoapAdmin -multicast -p \\ALPINE.\$PM -s MySoapServer -m "UPDATE SDR FlightInfo BookItinerary" Note. The SOAP Admin tool validates the message to be multicast. To prevent validation, append bang (!) to the multicast switch.
Using the SOAP Admin Tool • Makefile TS/MP service EmpInfo Then SoapUEHandler_impl.h consists of these class declarations: • • SoapPW_UEHandler_EmpInfo SoapUEHandler_Generic Each class is derived from SoapUEHandler. Makefile The NSK OSS Makefile compiles all the user-exit source files and builds a Pathway_CGI process or a command-line executable. Depending on whether the environment variable PATHWAY_SOAP_CGI is set, the Makefile links the .cpp files with either SoapMain_CGI.
Using the SOAP Admin Tool WSDL Files Namespace for SOAP Encoding in the WSDL The namespace for SOAP encoding in the generated WSDL points to W3C SOAP 1.1 encoding (http://schemas.xmlsoap.org/soap/encoding). Generated Files for a Request Definition The full name of the generated file for a request definition has this form:
Using the SOAP Admin Tool WSDL Files For descriptions of SOAP classes, see Files Released and Generated on page 8-46. • empSoapPW_EmpInfo.dtd. This file contains a DTD to validate a SOAP message corresponding to the DDL definition EmpDetails00 DDL Definition. The DTD is: Notice that the DTD specifies only the structure of the DDL Definition.
Using the SOAP Admin Tool • • WSDL Files SoapUEHandler_impl.h. This file consists of class declarations of all user-exits. Each class is derived from SoapUEHandler. The class factory instantiates a SoapUEHandler_Generic object, which includes an internal SoapUEHandler corresponding to a TS/MP service. empSoapPW_EmpInfo.html. This file, when opened in a browser, displays an html form representing the request definition EmpDetails00.
Using the SOAP Admin Tool SOAP Admin Tool Error Messages SoapMain_CGI.a implements the method CGI_main(), and SoapMain_CommandLine.a implements the method main(). The pseudo-code of the implementation in SoapMain_CGI.a is: CGI_main (){ // Extract the Input Soap Message SoapDocumentHandler *pSdh = 0; SoapProcessor sp; pSdh = Sp.
Using the SOAP Admin Tool Pathway Service Definition Errors Pathway Service Definition. Error>> Length of Server Class: is greater than 15. The server class name must have 15 or fewer characters. Check the spelling of the name in the configuration. Pathway Service Definition. Error>> Invalid DDL Dictionary Name: The specified DDL dictionary name has an invalid format. It must be a valid Guardian subvolume name.
Using the SOAP Admin Tool Process Service Definition Errors Process Service Definition Errors These error messages report invalid values in the SDL file. If you receive one of these errors, you will need to rerun the SOAP Admin tool. If the process name entered is an invalid process name, then this error appears: SOAPADMIN Process Service Definition.
Using the SOAP Admin Tool Memory Allocation Errors Memory Allocation Errors These log messages signify memory allocation errors. Often such errors are transient and will not reoccur after you rerun the SOAP Admin tool. If problems persist, contact the system administrator about making more memory available.
Using the SOAP Admin Tool Status and Error Messages Parser - Internal Error>>SdlPway::parse - Unexpected Node Type Parser - Internal Error>>SdlPway::getSrvrClasses - Unexpected Node Type Parser - Error>>Internal error (SdlPway::getServices:Null parameter1 Parser - Error>>Internal error (SdlPway::getServices:Null parameter2 Parser - Error>>Internal error (SdlPway::getServices:No Response Node Parser - Error>>Internal error (SdlPway::getAllResponseInfo:Null parameter1 Parser - Error>>Internal error (SdlPway
Using the SOAP Admin Tool Status and Error Messages SOAPADMIN ERROR >> Error processing DDL definition for Service . The SOAP DDL comment tags "@SOAP_ATTRIBUTE" and "@SOAP_ELEMENT" cannot be present for a single DDL field. SOAPADMIN ERROR >> Error processing DDL definition for service . The "@SOAP_BASE64" DDL comment tag cannot be present at a group level DDL field .
Using the SOAP Admin Tool Status and Error Messages SOAPADMIN ERROR >> The extract options -pathway and -process cannot be specified at the same time. Run SoapAdmin again with the correct usage. Parser - Error while parsing the input at Line: x, Column: y Detail Error: SOAPADMIN Parser - Error >> The service already exists in the SDR within a different hierarchy.
Using the SOAP Admin Tool Status and Error Messages Only one attribute can have a value of "yes" for a TS/MP service. Process Status Messages Status messages for processes: Processing services for process and serverclass ... SOAPADMIN>> Service deleted. SOAPADMIN>> Service updated. SOAPADMIN>> Service added. SOAPADMIN>> Generated response files successfully for service: ...
Using the SOAP Admin Tool Status and Error Messages >> 2004/1/1 12:00:00::<< Multicast update config file failed. Error: Invalid SDR location: $ You must specify a valid SDL_DB_LOC. This is an invalid SDR location. This message appears in the trace or error file(s). >> 2004/1/1 12:00:00: :<< Multicast message received for: UPDT_NSSOAP_CONFIG This is the message that reaches the SOAP server instance. This message appears in the trace file(s).
Using the SOAP Admin Tool Status and Error Messages NonStop SOAP User’s Manual—520501-012 5- 22
6 Using NonStop SOAP with a TS/MP Application and NonStop Processes Overview of Tasks To enable an XML or SOAP client to use TS/MP services or a NonStop process, you perform these tasks. Underlined text is a link to the detailed discussion of a task. 1. Use the Service Description Language (SDL) to describe TS/MP or NonStop process requests, responses, and services: Using SDL to Describe Services, Requests, and Responses. 2.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Links to Examples Links to Examples This section includes these annotated examples: Defining TS/MP Services • • • Example 1: One Service, No Client-Initiated Transactions on page 6-6 Example 2: Multiple Services, Transaction Support on page 6-10 Example 3: Multiple TS/MP Environments on page 6-17 Using Sessions and Transactions • • • Example 4: Session with a Context-Free Service on page 6-24 Example 5: One Transaction Per Dialog on p
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using SDL to Describe Services, Requests, and Responses Using SDL to Describe Services, Requests, and Responses To describe the requests, responses, and services of the target TS/MP application or NonStop process, you create an XML document consistent with the SDL Document Type Definition described in Section 3, The Service Description Language (SDL). The SDL file is used by the SOAP Admin tool.
Using NonStop SOAP with a TS/MP Application and NonStop Processes NonStop Process DTD Notes. If the request and response formats for the TS/MP service are not yet described in a DDL dictionary, you must use DDL to specify those formats. The SOAP Admin tool supports all DDL data types except COMPLEX. However, you should not use the type BINARY or COMPUTATIONAL if the request data might have digits to the right of a decimal point (for example, the number 5.3).
Using NonStop SOAP with a TS/MP Application and NonStop Processes Common Elements for TS/MP and NonStop Process SDL DTD: Common Elements for TS/MP and NonStop Process SDL DTD: • Service definition: ELEMENT Service • • • • • • • • • • • • • • • • The name Whether the input and output are compliant with SOAP or plain XML Whether the server must validate input against the DTD or schema Whether the service requires the client to initiate transactions Whether to abort a transaction if the response indicate
Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for TS/MP conversion operator (in case the value in the buffer must be converted before comparison). You also specify whether a given response is the default (used if the response does not satisfy any other criteria) and whether the response denotes a fault. A fault response from a server class causes a SOAP fault to be returned to client.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for TS/MP namespace qualified, the SOAP message type is document, the server must validate input against the DTD, and the output filename prefix is emp.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for TS/MP The corresponding DDL definition, which is not part of the SDL file, is: definition employee-def. 02 employee-number pic 9999. 02 empname. 03 first pic x(20). 03 last pic x(30). 03 middle pic x. 02 regnum pic 99. 02 branchnum pic 99. 02 d401k pic 99. 02 reqaccep pic x. end definition employee-reply. 02 reply-code pic 99. 02 employee-info type employee-def.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for TS/MP value of Fault attribute is “yes,” indicating an error response, which will cause the running process to generate a SOAP fault.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for TS/MP Response Message This example is a response that could be returned to the client, corresponding to the response structure EmployeeReply: PAGE 173Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for TS/MP These lines specify the server class EmpSvr. The attributes indicate that the server is written in C or C++ and that the strings are null terminated. The DDLDictionaryLocation attribute specifies the location of the DDL dictionary that defines the request and response message formats: PAGE 174Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for TS/MP These lines specify a response structure ErrorReply, used when the first 2 bytes of the response have the value “03.”The value of the Fault attribute is “yes,” indicating an error response, which will cause the running process to generate a SOAP fault.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for TS/MP validate the input SOAP message, DDL definitions will be cached by the SOAP server on startup, and that the service is context sensitive.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for TS/MP These lines are closing tags. These lines specify the server class AccountSvr. The attributes indicate that the server is written in C or C++ and that the strings are null terminated.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for TS/MP attribute DDLDictionaryLocation of the element ServerClass. This response is the default and does not cause a SOAP fault. acct-rp-def These lines are closing tags. These lines specify the server class LibSvr.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for TS/MP These lines specify that the name of the DDL definition describing the request is book-rq-def. This definition must be present in the DDL Dictionary specified by the attribute DDLDictionaryLocationof the element ServerClass. book-rq-def These lines specify that the name of the DDL definition describing the reply is bookrp-def.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for TS/MP Example 3: Multiple TS/MP Environments This example demonstrates that the same SDL file can define services in multiple TS/MP environments. The LOGON and BISSUE server classes run in the environment controlled by the PATHMON process $LIB. The EMPSVR server class runs in the PATHMON environment controlled by the PATHMON process $EMP. PAGE 180Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for NonStop Process Annotated Example SDL Files for NonStop Process This example is a valid SDL input file describing Process named “$PROC” that has a service “EmpInfo.” These lines specify that this is an SDL input file for a NonStop process and $PROC represents the name of a valid NonStop process under the OSS/Guardian operating system.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for NonStop Process GenerateUserExits attribute specifies that no user-exit code is generated for the interface.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for NonStop Process The corresponding DDL definition, which is not part of the SDL file, is: definition employee-def. 02 employee-number pic 9999. 02 empname. 03 first pic x(20). 03 last pic x(30). 03 middle pic x. 02 regnum pic 99. 02 branchnum pic 99. 02 d401k pic 99. 02 reqaccep pic x. end definition employee-reply. 02 reply-code pic 99. 02 employee-info type employee-def.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for NonStop Process These lines are closing tags: Request Message This example is a SOAP document consistent with the request definition in the example above: PAGE 184Using NonStop SOAP with a TS/MP Application and NonStop Processes Annotated Example SDL Files for NonStop Process Response Message This example is a response that could be returned to the client, corresponding to the response structure EmployeeReply: PAGE 185Using NonStop SOAP with a TS/MP Application and NonStop Processes Writing a Client Writing a Client Writing a new HTTP client is the most obvious customization required by a real application. The generated client uses field names from the DDL definition in a format straightforward to developers but not attractive or meaningful to users. You’ll want to modify the client to: • • • • Support multiple requests, possibly to multiple services. Present a meaningful and attractive look and feel to your users.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes A SOAP client can initiate a session with target TS/MP servers or NonStop processes. The SOAP server maintains session context across requests from a client after a session is initiated.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Request to Start a Session and a Transaction This request begins a session and a transaction with the service EmpAdd: PAGE 188Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Response to Session Initiation This is a possible response to the request: PAGE 189Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Request to Abort a Transaction and Start Another Transaction This request aborts the first transaction and begins a new transaction. PAGE 190Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Response to Request This is a possible response to the request: PAGE 191Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Request to End the Session and Commit the Transaction To end the session and commit the transaction, the client sends this message: PAGE 192Using NonStop SOAP with a TS/MP Application and NonStop Processes • • Sessions and Transactions with TS/MP Servers and NonStop Processes While a subsession is in progress, responses include the header attribute Subsession with a value of “on”. If the target server class has no more data to send, the subsession ends implicitly, and the response does not include the Subsession attribute.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Example 5: One Transaction Per Dialog Request to Start a Session This request begins a session with the service HdlnInfo, which supports one transaction per dialog. PAGE 194Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Responses to Session Initiation This is a possible response. The session ID indicates that a session has started, and the Subsession attribute indicates that a dialog is in progress with a context-sensitive server class. PAGE 195Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes PAGE 196Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Request to Continue a Session If the response indicated that more data was available, the client could issue this request for the data: PAGE 197Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Request to End a Session To end the session, the client could send this message: PAGE 198Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Request to Begin a Session This request begins a session and a transaction: PAGE 199Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Response to Session Initiation The response includes the session ID for the new session. It also includes the Subsession attribute to show that a dialog has started with a context-sensitive server class. PAGE 200Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Request to Commit a Transaction and Start Another Transaction This request commits the previous transaction and begins a new transaction: PAGE 201Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Response to Request This a response to the request. Notice that the session ID remains the same as before: PAGE 202Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Request Continues the Session and the Transaction This request belongs to the new transaction: PAGE 203Using NonStop SOAP with a TS/MP Application and NonStop Processes Sessions and Transactions with TS/MP Servers and NonStop Processes Response Here is a possible response: PAGE 204Using NonStop SOAP with a TS/MP Application and NonStop Processes Controlling the Output Encoding Requests to Commit the Transaction and End the Session This following request commits the transaction and end the subsession: PAGE 205Using NonStop SOAP with a TS/MP Application and NonStop Processes • • Controlling the Output Encoding To specify that all responses from a service should have a particular encoding, you specify the encoding as the value of the RspEncoding attribute in the definition of the service in the SDL file.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Controlling the Output Encoding Request with Default Input Encoding, Specified Output Encoding This request uses the encoding Shift_JIS specified as the output encoding. PAGE 207Using NonStop SOAP with a TS/MP Application and NonStop Processes Controlling the Output Encoding Request Using Specified Input Encoding, No Specified Output Encoding This request uses the input encoding UTF-8 but does not specify the output encoding: PAGE 208Using NonStop SOAP with a TS/MP Application and NonStop Processes Fault Messages Response The BookData service responds with encoding Shift_JIS in both cases. PAGE 209Using NonStop SOAP with a TS/MP Application and NonStop Processes Fault Messages Fatal Error at Line x, Column y This message indicates an error in parsing the document containing the request. For example, the input document might not be well formed. The detailString gives the location of the error. Check and correct the input XML document. SOAP-ENV:Client.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Fault Messages The XML message for the Service Should | Should Not be SOAP Compliant This message indicates either that a SOAP request was received when plain XML was expected, or that a plain XML request was received when SOAP was expected. Ensure that the SDL file correctly specifies whether requests and responses are SOAP-compliant. Ensure that clients construct messages consistent with the service definition.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Fault Messages Unmarshal Error This class of faults can occur while the server is parsing and validating a request from the client: PAGE 212Using NonStop SOAP with a TS/MP Application and NonStop Processes Fault Messages Table 6-1. Faults for Unmarshal Errors (page 2 of 2) Detail Code Detail String Description -205 Unmarshal Error: optional nodes are not present. Input request XML does not conform to DTD. The DDL uses redefines to specify that one of set of nodes must be present, but none of the nodes is present in the request. -206 Unmarshal Error: error in getting value of node: fieldname Error getting value of node from node tree.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Fault Messages No Service Map Entry for Service (Service Name Not Defined In SDL) This message indicates that the service specified in the request is not deployed in the SDR. Ensure that the service is deployed in the SDR and that clients refer to the service by the name defined in the SDR. SOAP-ENV:Client.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Fault Messages A sample request and response for SOAP 1.2: Request fog morning Successful Response PAGE 215Using NonStop SOAP with a TS/MP Application and NonStop Processes Fault Messages Here is an example of a SOAP 1.2 fault : PAGE 216Using NonStop SOAP with a TS/MP Application and NonStop Processes Fault Messages Error from the TS/MP Service This messages indicate errors returned by the TS/MP service. The response from the SOAP service is based on ResponseSelection elements of the service definition. Fault messages in this category do not always have the same fault string. Recovery varies with the message.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Fault Messages 0 Unable to write to employ file; error : 10 Error from the TS/MP Service: Critical A critical error (one with a detail code in the range 301-350) is one that suggests that the operation cannot be retried.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Fault Messages Errors from TS/MP Service: Retriable A retriable error (one with a detail code in the range 351-400) signifies a temporary condition. The client can retry the operation. Here is an example in which the request timed out: SOAP-ENV: Server.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Fault Messages Table 6-3 lists the possible detail codes and detail strings for marshal errors. Table 6-3. Faults from Marshal Errors Detail Code Detail String Description -401 Marshal error: incorrect return value from service for:fieldname The value for the specified field, in the response from the target service, is not consistent with the DTD. -402 Marshal error: node: fieldname must occur num times.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Fault Messages Error message written to the trace and error file. >> 2004/1/1 12:00:00: :<< Process Communication Error: Unable to write to Process File System Error: >> 2004/1/1 12:00:00: :<< Process Communication Error: Error getting response from the target process , File System Error: . This fault can arise when an error is returned by attempting to open a process.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Fault Messages This fault can arise when an error due to a timeout when communicating with a process. SOAP-ENV: Server.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Configuring and Running the Server in a WebServer Environment Configuring and Running the Server in a WebServer Environment To configure and run the process as a Pathway_CGI server class: 1. Install and configure the iTP WebServer as described in the iTP Secure WebServer System Administrator’s Guide.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Configuring and Running the Server in a WebServer Environment sdl-filename is the name of the SDL file, relative to the current working directory. This attribute is not applicable for NonStop SOAP releases 2.4 or later. trace-filename is the base name of the trace file, relative to the current working directory. The full trace-name has the server process name appended to it, so each server in the server class has a different trace file.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Configuring and Running the Server in a WebServer Environment request-timeout-value specifies the number of minutes a request can be outstanding before it times out. If the timeout interval elapses before the target service responds to a request, the SOAP server returns a fault to the client. The format of the value is : where secs can be from 0-60. If is greater than 60 then it is rounded off to 60.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Configuring and Running the Server in a WebServer Environment map-def-value sets the value for map-def as “strict” or “lenient.” The value “strict” specifies a classic NonStop SOAP server which is the default value. The value “lenient” ignores the absence of leaf elements. The presence of this environment variable with the value set to yes (on the shell) alter the WSDL and schema generated by SOAPAdminCL.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Configuring and Running the Server in a WebServer Environment The default value is ”dom” for backward compatibility. If you want NonStop SOAP server to use “sax” as the API, set the value in the NonStop configuration file. When using the SAX API, NonStop SOAP does not support SOAP messages with multi-reference. A SOAP client usually generates multi-referenced elements in a SOAP request when the RPC style of SOAP messaging is used.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Configuring and Running the Server in a WebServer Environment CWD specifies the Current Working Directory. executable-filename is the name of the executable you built with the Makefile. If you are using a custom SOAP server, this name should match the value of the ExeName attribute in the SDL file and must have the extension .pway. If you are using the prebuilt server, this name is SoapServer.pway.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Running the Server from the Command Line 12. Check the tail of the trace file for errors. 13. Start a browser and load the appropriate HTML client to test your application. Running the Server from the Command Line If you built an executable to run from the command line: 1. Create a SOAP configuration file as in step 3 of Configuring and Running the Server in a WebServer Environment on page 6-60. 2.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the HTML/JavaScript Client filenames, and include the -s switch described in Maintaining the Cookie File and Simulating Sessions on page 4-11. Note. You can use optional switches for session testing and cookie-file management. For information about these switches and their use, see Maintaining the Cookie File and Simulating Sessions on page 4-11.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility Using the NonStop SOAP Trace Facility As described in Configuring and Running the Server in a WebServer Environment on page 6-60, you can use an environment variable called SOAP_TRACE_LEVEL to specify whether, and at what level, to trace the operation of a server process. The environment variable called SOAP_TRACE_FILE specifies the trace file name.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility The following line reports the name of the target service, in this case Logon. The process method in the SoapProcessor class discovers the name of the service by parsing the XML input file. >> 2004/2/8 7:51:30<< SoapProcessor::process>> service name: Logon The following line reports that the SOAP factory class has located the class for interaction with the target service.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility The following lines report the values of environment variables read from the NonStop SOAP configuration file. >> 2004/8/21 15:37:46: :<< Environment variables are: >> 2004/8/21 15:37:46: :<< SOAP_SERVICE_MAP_FILE=/xml/mmmmm/t0603v21/SoapAdmin/libsdl.xml SOAP_TRACE_FILE=soapcgi.trc SOAP_TRACE_LEVEL=2 SOAP_ERROR_FILE=soapcgi.err SOAP_SESSION_TIMEOUT=3600 SOAP_COOKIE_FILE=$DATA1.MMMMMMM.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility The following lines represent the input from an HTTP client. >> 2004/8/21 15:37:46: :<< Start>>> CGI_main >> 2004/8/21 15:37:46: :<< Start>>> POST INPUT (null) >> 2004/8/21 15:37:46: :<< After if !sXmlBodyPtr >> 2004/8/21 15:37:46: :<< CGI_Main: Content Length is 533 >> 2004/8/21 15:37:46: :<< sXmlBodyPtr: >> 2004/8/21 15:37:46: :<<
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility The following line reports that the process method of the SoapProcessor object is starting to execute. >> 2004/8/21 15:37:46: :<< SoapProcessor::process>> Just got in The following line indicates the IP address of the client. >> 2004/8/21 15:37:46: :<< Received request from remote address: 155.186.75.180 The following line indicates that the process method is beginning to read the XML input.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility The SOAP server starts a transaction on behalf of the client. >> 2004/8/21 15:37:46: :<< >>Begin Transaction The following lines report the first call to the parser.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility and the DDL dictionary or PWYMDATA file. The request data is extracted from the message.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility The following line reports the return code from the target service. >> 2004/8/21 15:37:46: :<< PwyService::performService()>> retCode: 0 >> 2004/8/21 15:37:46: :<< SoapServerPWDocumentHandler::marshal() The output encoding does not differ from the input encoding, so no transformation is necessary.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility 06 15 94 Stan 124 >> 2004/8/21 15:37:46: :<< >>>>>End of soapResponse after generateResponse.. The following lines report the server’s actions after sending the response to the client.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility The following lines begin the trace for the next request. >> 2004/8/21 15:48:12: :<< Environment variables are: >> 2004/8/21 15:48:13: :<< SOAP_SERVICE_MAP_FILE=/xml/mmmmm/t0603v21/SoapAdmin/libsdl.xml SOAP_TRACE_FILE=soapcgi.trc SOAP_TRACE_LEVEL=2 SOAP_ERROR_FILE=soapcgi.err SOAP_SESSION_TIMEOUT=3600 SOAP_COOKIE_FILE=$DATA1.MMMMMMM.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility This request is for a different service, AddData.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility 18 64 Dogmatix 130 1 >> 2004/8/21 15:48:13: :<< SoapProcessor::process>> End Input XML: >> 2004/8/21 15:48:13: :<< >>Resume Transaction >> 2004/8/21 15:48:13: :<< Locating service name AddData>> 2004/8/21 15:48:13: : << SoapDocumentHandler::SoapDo
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility The SOAP server prepares to send the request.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility The following lines represent the contents of the SOAP response to be sent to the client. The response includes the session ID. >> 2004/8/21 15:48:13: :<< PAGE 244Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility The following lines report the server’s actions after sending the response to the client. One step is to suspend the transaction, will resume upon the next request belonging to the transaction.
Using NonStop SOAP with a TS/MP Application and NonStop Processes Using the NonStop SOAP Trace Facility This request ends the session. The body of the message is empty, because no further service is required. PAGE 246Using NonStop SOAP with a TS/MP Application and NonStop Processes Checking DDL Definitions with the cddf Utility The SOAP server resumes the transaction, which it suspended after servicing the second request. Then it commits the transaction, as the client implicitly requested by ending the session. >> 2004/8/21 15:52:18: :<< >>Resume Transaction >> 2004/8/21 15:52:18: :<< >>Commit Transaction ... >> 2004/8/21 15:52:18: :<< ...Done.
Using NonStop SOAP with a TS/MP Application and NonStop Processes cddf Command Format The cddf utility displays this information for each DDL definition in the PWAYMDATA file: • • • • • • The definition name The DDL dictionary path A timestamp (yyyy/mm/dd hh:mm) indicating when the definition was last modified in the DDL dictionary A timestamp (yyyy/mm/dd hh:mm) indicating when the PWYMDATA file was created A warning message, if the definition in the PWYMDATA file is not current (that is, if the definit
Using NonStop SOAP with a TS/MP Application and NonStop Processes cddf Example cddf Example This is an example of the cddf command: cddf -i \$DATA1.SDR -c \$Volume\.Subvolume-location-of-DDLdictionary \$DATA1.SDR is the location of the Metadata file. cddf Output Example This is an example of output from cddf. It shows the results of checking two DDL definitions, EMPLOYEE-ADD-REQ and EMPLOYEE-DEL-REQ. DDL time is the time when a given definition was updated in the DDL dictionary.
Using NonStop SOAP with a TS/MP Application and NonStop Processes cddf Output Example when the definition was written to the PWYMDATA file. If the DDL time is more recent than the Metadata time, cddf displays the message “Metadata not current.” Definition Name: EMPLOYEE-ADD-REQ From Dictionary: $DATA4.
Using NonStop SOAP with a TS/MP Application and NonStop Processes cddf Errors cddf Errors The cddf utility reports these errors, in addition to the Metadata open and close errors described in SOAP Admin Tool Error Messages on page 5-13: cddf Pathway PWYMDATA. Metadata file read failed :: Cddf could not read a DDL definition from the DDL definition file, for the reason given by . One possibility is that cddf does not have read access to the file.
7 NonStop SOAP with Digital Signatures This section provides information about “NonStop SOAP with Digital Signatures” to enhance message integrity and security for all NonStop SOAP transactions. Introduction to Digital Signatures Digital Signatures are primarily used to validate the sender’s identity and confirm that the information contained in the message has not been tampered with. It is a special computation involving both the private key and the plain-text of the message.
NonStop SOAP with Digital Signatures NonStop SOAP with Digital Signatures 2. The Client encrypts the message digest with its private key to generate the Digital Signature. 3. The Client appends the Digital Signature to the contract document. The Client transmits the above document to all its Partners. To confirm that the message has come from the right source (that is Client), all the Partners process the digitally signed document as follows: 1.
NonStop SOAP with Digital Signatures • Message flow of NSSOAP request with Digital Signatures Apart from authenticating the sender, NSSOAP transactions using Digital Signatures ensure that there is no eavesdropping and that no data is modified. Note. Support for Digital Signatures has been released as a separate product “NonStop SOAP with Digital Signatures”. This feature is not supported by the conventional NonStop SOAP. Note.
NonStop SOAP with Digital Signatures Message flow of NSSOAP request with Digital Signatures 2. The NSSOAP request is sent to the server via an HTTPS request to the iTP Secure Webserver. 3. The iTP Secure WebServer processes the HTTPS request, removes the HTTPS headers, and forwards the SOAP request to NSSOAP. 4. NSSOAP examines the SOAP message for the signature header and validates it. It accesses the key store while validating the header. 5. NSSOAP calls the service to process the Client’s request. 6.
NonStop SOAP with Digital Signatures NonStop SOAP Header for Digital Signature NonStop SOAP Header for Digital Signature To support Digital Signatures in NSSOAP, the header must contain a element in the SOAP message, as shown in Example 7-1, NSSOAP Header with Digital Signature.
NonStop SOAP with Digital Signatures NonStop SOAP Header for Digital Signature Example 7-1. NSSOAP Header with Digital Signature POST /HP-NED-ORDER HTTP/1.1 Host: www.hponline.com Content-Type: text/xml; charset="UTF-8" Content-Length: NNNN SOAPAction: "http://www.hponline.com/HP-NED-ORDER#buy"
NonStop SOAP with Digital Signatures NonStop SOAP Header for Digital Signature The various elements are described as follows: Requirement Category: Mandatory The namespace prefix "SOAP-SEC" used in this specification is associated with this URI. The SOAP-SEC: Signature header along with the namespace defines a Digital Signature header in NSSOAP message. The XML namespace URI that must be used by implementations of this specification is: http://schemas.xmlsoap.
NonStop SOAP with Digital Signatures NonStop SOAP Header for Digital Signature The description of these attributes are as follows: Requirement Category: Mandatory CanonicalizationMethod is an element that specifies the canonicalization algorithm applied to the SignedInfo element prior to performing signature calculations. XML is lax about its syntax. For example, the order of attributes and how the values are quoted are not important.
NonStop SOAP with Digital Signatures NonStop SOAP Header for Digital Signature Requirement Category: Mandatory SignatureMethod is an element that provides specifications to generate a signature and validate it. Various cryptographic functionalities (such as hashing, public key algorithms, MACs, paddings, and similar functionalities) involved in the manipulation of signatures are identified using the algorithm specified in this element.
NonStop SOAP with Digital Signatures NonStop SOAP Header for Digital Signature Method 3: URI="" Identifies the node-set (excluding any comment nodes) of the XML resource containing the signature. Method 4: URI="#BODY" Identifies a node-set containing the element with ID attribute value 'BODY' of the XML resource containing the signature. XML Signature (and its applications) modify this node-set to include the element plus all descendents including namespaces and attributes, but not comments.
NonStop SOAP with Digital Signatures NonStop SOAP Header for Digital Signature Requirement Category: MANDATORY This element identifies the digest algorithm to be applied to the signed object. Only one algorithm is mentioned under this attribute: http://www.w3.org/2000/09/xmldsig#sha1 Therefore, the requests containing references to any other digest algorithm are considered invalid and are not processed by NSSOAP.
NonStop SOAP with Digital Signatures • NonStop SOAP Header for Digital Signature Under SCENARIO 2, the client may send both the subject name and its X509 certificate. For this, a child element X509Data is defined under KeyInfo. The structure of the KeyInfo element with its child elements is as follows. Requirement Category: OPTIONAL This element contains the information of the client’s certificate.
NonStop SOAP with Digital Signatures NonStop SOAP Configuration File NonStop SOAP Configuration File The SOAP server reads configuration information from an XML file called the NonStop SOAP configuration file. You can specify a different configuration file using the environment variable SOAP_CONFIG_FILE.
NonStop SOAP with Digital Signatures NonStop SOAP Configuration File NonStop SOAP User’s Manual—520501-012 7- 14
8 Customizing the SOAP Server This section provides guidelines for customizing the NonStop SOAP library and explains how to build a custom server process. Customization is possible using userexit classes. Before reading this section, you should be familiar with the information in Section 5, Using the SOAP Admin Tool or Section 6, Using NonStop SOAP with a TS/MP Application and NonStop Processes. Customizing the NonStop SOAP Library Most applications do not require customization of the SOAP library.
Customizing the SOAP Server Customization Using User-user-exits Customization Using User-user-exits You can customize SOAP servers accessing TS/MP services or NonStop processes using the code generation feature of the SOAP Admin tool. The code generated and exposed for customization is in the form of user-exits.
Customizing the SOAP Server Customization Using User-user-exits Figure 8-1. User-Exits Object Diagram Base User-Exit Class: Contains virtual/API methods ServiceReqResp ServiceEnv common to all service types Utility classes for runtime data access SoapUEHandler SoapUEHandler_Generic Class Factory: Design Time SoapUEClassFactory Creates Objects of userexit classes Run Time SoapDocumentHandler Legend = Derives Uses an object implementing the user -exits = Uses VST120.
Customizing the SOAP Server User-Exit Classes User-Exit Classes The user-exit classes described in this section are used at runtime by a SOAP server. There are two types of classes: • • Some classes are part of the SOAP library; the header files for these classes are in the NonStop SOAP /include directory. These classes take part in accessing a particular service. Other classes are generated by the SOAP Admin tool. The prebuilt SOAP server includes the classes of the SOAP library.
Customizing the SOAP Server class SoapUEHandler class SoapUEHandler This class is the abstract base user-exit class that exposes the predefined exit points (virtual methods) in the SOAP server. You can override the exposed methods by implementing a derived class.
Customizing the SOAP Server class SoapUEHandler virtual long pre_marshal(ServiceReqResponse *resp , SoapFault *sf) { if (forwardHandler_ != NULL) return forwardHandler_->pre_marshal(resp, sf); return 0; } virtual long pre_marshal_header( OutputXML &outputXml , SoapFault *sf) { if (forwardHandler_ != NULL) return forwardHandler_->pre_marshal_header(outputXml, sf); return 0; } virtual long post_process(OutputXML &outputXml , SoapFault *sf) { if (forwardHandler_ != NULL) return forwardHandler_->post_proces
Customizing the SOAP Server class SoapUEHandler Protected Attributes SoapUEHandler *forwardHandler_; ServiceEnv *serviceEnv_; }; A nonzero value returned in the methods indicates an error return. When this happens the SOAP server skips remaining user-exit methods and returns a SOAP fault to the client. A user-exit method can also modify the SOAP fault buffer pointered to by sf using methods in the SoapFault class.
Customizing the SOAP Server • • class SoapUEHandler Invoked after the SOAP server has converted the service response to an output XML document and before adding any SOAP specific tags including envelope, header, and body tags, if needed. Allows you to modify the output XML document. post_process(...) • • Invoked after the SOAP server has produced a complete XML/SOAP response to be sent to the client. Allows you to modify the XML/SOAP response to the client (e.g.
Customizing the SOAP Server class ServiceEnv class ServiceEnv This class allows you to access information in the SDR for an incoming request from the client. This class also includes methods for accessing attachments and custom SOAP headers. For a description of the new methods, see Accessing Attachments and Customizing SOAP Headers. The new methods for accessing attachments are available only when the transport is HTTP.
Customizing the SOAP Server class ServiceEnv Public ServiceEnv() {} virtual ~ServiceEnv() {}; virtual char *getInputXML()const=0; virtual long setInputXML(char *newInput, long len)=0; // Returns the service type of the current message being processed virtual SoapServiceType getServiceType() const=0; // Returns the service name in the request message virtual const char *getServiceName() const=0; // The following are used for SERVICE_PATHWAY service. // For other service types, the calls are ignored, i.
Customizing the SOAP Server class ServiceEnv AttachmentManager * getRespAttMgr (); bool setRespAttMgr ( AttachmentManager * ); UESoapHeaderManager * getReqHeaderMgr (); UESoapHeaderManager * getRespHeaderMgr (); bool setRespHeaderMgr (UESoapHeaderManager * ); }; NonStop SOAP User’s Manual—520501-012 8- 11
Customizing the SOAP Server class ServiceEnv getInputXML() • • • Returns the input XML/SOAP request message. A NULL value is returned on a failure. An error message is logged to the trace/error files. You cannot modify the returned value. setInputXML() • • • • Overrides the current input XML/SOAP request message buffer and its length with the new values specified in the newInput and len parameters. A -1 value is returned on a failure. An error message is logged to the trace/error files.
Customizing the SOAP Server class ServiceEnv getServerEncoding() • • • Returns the target ServerClasses's server encoding value as specified in the SDL. Returns a NULL value on a failure. An error message is logged to the trace and/or error files. You cannot modify the returned value. setServerEncoding() • • • • Overrides the server encoding in the SDL with the new value specified in the newEnc parameter. The SOAP server makes a copy of the char buffer. The input value has to be NULL terminated.
Customizing the SOAP Server • • • class ServiceEnv For a transport other than HTTP, a call to getReqAttMgr returns a NULL. Provides a valid request AttachmentManager object during any of the user-exit methods. The NonStop server code manages the memory for the returned AttachmentManager object. getRespAttMgr() • • • • • Returns the AttachmentManager object that represents the attachments to be put in the SOAP response message. You can use this object to set attachments in the SOAP response.
Customizing the SOAP Server • • class ServiceEnv This method provides a valid request HeaderManager object during any of the user-exit methods. Memory allocation is not necessary for the HeaderManager object. The NonStop SOAP server code cleans up this object during execution. getRespHeaderMgr() • • • • Returns the UESoapHeaderManager object that represents the SOAP headers to be put in the SOAP response message. You should use this object to set SOAP headers in the SOAP response.
Customizing the SOAP Server • • class ServiceEnv When the servicing of the request will be done in one of the user-exit methods so the call to the TS/MP server class should not be made. When the servicing of the request might involve a NonStop subsystem other than Pathway (for example, Tuxedo), which is invoked from a user-exit method so the call to the TS/MP server class should not be made.
Customizing the SOAP Server class ServiceReqResponse class ServiceReqResponse This class is used at pre_service and pre_marshal for accessing the message buffer sent to and received from the back-end service. Class class ServiceReqResponse { Public ServiceReqResponse() {} virtual ~ServiceReqResponse() {}; // The following are for SERVICE_PATHWAY service.
Customizing the SOAP Server • • • class ServiceReqResponse Returns the char buffer data to be sent to the target service. A NULL value is returned on a failure. An appropriate error message is logged to the trace/error files. User can directly modify the buffer as desired. getDDLBufferLen() • Returns the char buffer length of data to be sent to the target service. setDDLBuffer() • • Replaces the char buffer data to be sent to the target service as passed by the buffer parameter.
Customizing the SOAP Server class SoapUEHandler_Generic class SoapUEHandler_Generic This class declaration is generated. You can override virtual methods to provide general user-exit functionalities for all services and operations. For user-exit functionalities specific to a Pathway service, the calls are forwarded to forwardHandler_.
Customizing the SOAP Server class SoapUEHandler_Generic Class class SoapUEHandler_Generic : public SoapUEHandler { Public // Declare the method to be implemented. long pre_process( ServiceEnv *env , SoapFault *sf); }; // Example code fragment to implement pre_unmarshal method in // the SoapUEHandler_Generic class. long SoapUEHandleer_Generic::pre_process( ServiceEnv *env , SoapFault *sf) { serviceEnv_ = env; // Generic user-exit code.
Customizing the SOAP Server Accessing Attachments Accessing Attachments You can customize the NonStop SOAP server to handle attachments using user-exits. This section describes the classes and the methodology used to access attachments in the request SOAP message and set attachments in the output SOAP message. New user-exit classes have been added to facilitate the access of attachments. Existing user-exit classes have also been modified to support accessing of attachments.
Customizing the SOAP Server class SOAP_Exception class SOAP_Exception This class defines the error codes that are thrown when exceptions occur and provides methods to get the error values.
Customizing the SOAP Server class SOAP_Exception Public enum ERROR_CODE{ INVALID_CHARACTER_ERR = 1, NAMESPACE_ERR = 2, TRANSPORT_ERR = 3, NOT_FOUND_ERR = 4, WRONG_SOAP_MSG_ERR = 5, NO_MODIFICATION_ALLOWED_ERR = 6, INVALID_HEADER_POS_ERR = 7, DTD_PRESENT_ERR = 8, PI_PRESENT_ERR = 9, SOAP_ENVELOPE_ERR = 10, SOAP_BODY_NOT_FOUND_ERR = 11, HEADER_ENTRY_NS_ERR = 12, FAULT_CODE_ERR = 13, FAULT_STRING_ERR = 14, PARSE_ERR = 15, INITIALIZATION_ERR = 16, SOAP_HIERARCHY_ERR = 17, SOAP_NULL_ERR = 18, SOAP_ENCODING_ERR
Customizing the SOAP Server class SOAP_Exception INTERNAL_ERR = 32, OUT_OF_MEMORY = 33, INVALID_SOAP_VERSION = 34, TYPE_NOT_FOUND = 35, DDL_ERR = 36, DUP_HEADER_ID = 37}; Public Methods Constructors and Operators SOAP_Exception(short ecode, const char *msg) • • • This constructor creates a SOAP_Exception using the error code value and the parsed message. The ecode parameter is the error code pertaining to the exception condition. The msg parameter describes the exception condition.
Customizing the SOAP Server class Attachment class Attachment This class represents a MIME attachment. Attachments must be created and deleted using the AttachmentManager class. Class class Attachment { friend class AttachmentManager; Public getContentId() const • Gets the contentId. setContent(const string & content) • Sets the content. const string & getContent() const • Gets the content as a string.
Customizing the SOAP Server class AttachmentManager class AttachmentManager This class creates and deletes Attachment objects. typedef map > AttachmentMap; typedef map >::iterator AttachmentMapIterator; Class class AttachmentManager { Public AttachmentManager() AttachmentManager(const string & mimeBoundary) throw (SOAP_Exception) • This is the constructor.
Customizing the SOAP Server • class AttachmentManager Gets an attachment by it's content ID. deleteAttachment(const string & contentID) • • Deletes an attachment. If the contentID is not found, false is returned. getAttachmentCount() const • Gets the number of attachments. getFirstAttachment() • Returns the first attachment, if present, otherwise null. getNextAttachment() • Returns the next attachment, if present, otherwise null.
Customizing the SOAP Server class ServiceEnv class ServiceEnv This class allows you to access information in the SDR for an incoming request from the client. The new methods are available only when the transport is HTTP.
Customizing the SOAP Server Usage Guidelines Usage Guidelines Using the classes discussed in User-Exit Classes on page 8-4, this methodology can be used to access attachments. • In any user-exit method, for example, • • • • • pre_process pre_service pre_marshall pre_marshall_header or post_process call the ServiceEnv's getReqAttMgr( ) to get access to the AttachmentManager object. • • The ServiceEnv object can be accessed using the getServiceEnv() method in the SoapUEHandler class.
Customizing the SOAP Server Examples Example 8-1. Request SOAP Message POST soap/servlet/rpcrouter HTTP/1.0 HOST localhost:8080 Content-Type: Multipart/Related; boundary=Mime_Boundary;type=text/xml; start="" SOAPAction: "" --Mime_Boundary Content-Type: text/xml;charset=UTF-8 Content-Transfer-Encoding: 8bit Content-ID: PAGE 295Customizing the SOAP Server Examples Example 8-2. Response SOAP Message HTTP/1.1 200 OK Content-Type: Multipart/Related; boundary=Simple_Mime_Boundary; type=text/xml;start="" Content-Length: nnn -- Simple_Mime_Boundary Content-Type: text/xml; charset="UTF-8" Content-Transfer-Encoding: 8bit Content-ID: ...
Customizing the SOAP Server Examples Example 8-3. Sample Code Accessing Attachments long SoapUEHandler_Generic::pre_process (ServiceEnv *env, SoapFault *sf) { gSoapTrace.log ("Entered SoapUEHandler_Generic::pre_process\n"); AttachmentManager * reqMgr = env -> getReqAttMgr( ); if (reqMgr == NULL || reqMgr -> getAttachmentCount ( ) <= 1){ //if attachment count == 1 , // then it implies that the attachment present // represents the request SOAP message. gSoapTrace.log ("No interesting attachments found.
Customizing the SOAP Server Customizing SOAP Headers Customizing SOAP Headers In NonStop SOAP you can inspect custom SOAP headers present in the request SOAP message and also set custom SOAP headers in the outbound SOAP response message. This feature is provided using user-exits. New user-exit classes have been added to facilitate the access to SOAP headers. Existing user-exit classes have also been modified to support custom SOAP headers.
Customizing the SOAP Server class UESoapHeader class UESoapHeader This class represents a SOAP header managed by a UESoapHeaderManager. UESoapHeaders must be created and deleted using the UESoapHeaderManager class. Class class UESoapHeader { friend class UESoapHeaderManager; Public setMustUnderstand(bool) • Sets the value of the mustUnderstand attribute. setEncodingStyle(const string &) • Sets the value of the encodingStyle attribute.
Customizing the SOAP Server class UESoapHeader setAttribute(const string & attr, const string & value) throw (SOAP_Exception) • Sets an attribute at the header element. getValue() const • Gets the value of the header entry. getEncodingStyle() const • Gets the value of the encodingStyle attribute. getActor() const • Gets the value of the actor/role attribute, depending on the version. getRole() const • Gets the value of the actor/role attribute, depending on the version.
Customizing the SOAP Server class UESoapHeaderManager class UESoapHeaderManager This class creates and deletes UESoapHeader objects. typedef map > HeaderMap; typedef map >::iterator HeaderMapIterator; Class class UESoapHeaderManager { Public UESoapHeaderManager( GenUtils::SoapVersion soapVer = GenUtils::SOAP_1_1 ) • This is the constructor.
Customizing the SOAP Server class UESoapHeaderManager deleteHeader(const string & qualifiedName, const string & namespaceURI) • • Deletes a UESoapHeader. If the qualifiedName element in the namespaceURI is not found, false is returned. getHeaderCount() const • Gets the number of UESoapHeaders. getFirstHeader() • Returns the first UESoapHeader, if present, otherwise null. getNextHeader() • Returns the next UESoapHeader, if present, otherwise null.
Customizing the SOAP Server • • class UESoapHeaderManager Returns the encoding that the input data is expected in. This encoding is used by all the UESoapHeaders created by this manager. setOutputDataEncoding(const char * encName) • • • Set the encoding in which the output data should be provided. During getMethods this encoding is used to encode the returned string data. This encoding is used by all the UESoapHeaders created by this manager.
Customizing the SOAP Server class ServiceEnv class ServiceEnv This class allows you to access information in the SDR for an incoming request from the client. The new methods for accessing SOAP headers is: UESoapHeaderManager * getReqHeaderMgr (); UESoapHeaderManager * getRespHeaderMgr (); bool setRespHeaderMgr (UESoapHeaderManager * ); For detailed information about these methods, see class ServiceEnv on page 8-9.
Customizing the SOAP Server Usage Guidelines Usage Guidelines Using the classes discussed in User-Exit Classes on page 8-4, this methodology can be used to access SOAP headers. • In any user-exit method, for example, • • • • • pre_process pre_service pre_marshall pre_marshall_header or post_process call the ServiceEnv's getReqHeaderMgr( ) to get access to the UESoapHeaderManager object. • • • The ServiceEnv object can be accessed using the SoapUEHandler class' getServiceEnv() method.
Customizing the SOAP Server Examples Example 8-4. Request SOAP Message PAGE 306Customizing the SOAP Server Examples Example 8-5. Response SOAP Message 1 .......
Customizing the SOAP Server Examples Example 8-6. Sample Code Accessing Headers - I long SoapUEHandler_Generic::pre_process (ServiceEnv *env, SoapFault *sf) { gSoapTrace.log ("Entered SoapUEHandler_Generic::pre_process\n"); UESoapHeaderManager * reqMgr = env -> getReqHeaderMgr( ); if (reqMgr == NULL || reqMgr -> getHeaderCount ( ) <= 0){ gSoapTrace.log ("No interesting SOAP Headers found. Leaving pre_process.
Customizing the SOAP Server Examples Example 8-7. Sample Code Accessing Headers - I // For example, we can set the output SOAP Headers in this method itself UESoapHeaderManager * respMgr = env -> getRespHeaderMgr(); UESoapHeader *sampleHdr = respMgr -> createHeader ("myNS:testHeader"," urn:TestHeaderNameSpace"); sampleHdr -> setMustUnderstand(true); sampleHdr -> setRole("http://www.w3.
Customizing the SOAP Server Customized Fault Reporting and Error or Status Logging Customized Fault Reporting and Error or Status Logging NonStop SOAP lets you customize fault reporting and error logging in methods that you customize. Fault Reporting NonStop SOAP reports faults to SOAP clients, as described in SOAP Faults on page 4-64 and Fault Messages on page 6-46.
Customizing the SOAP Server Files Released and Generated To log a message only to the trace file, call this function: gSoapTrace.log(message); where message is a message of your choice, enclosed in quotation marks or a character buffer (char *). For general information about error reporting in NonStop SOAP, see Error Log File on page 4-69. Files Released and Generated The files released as part of the NonStop SOAP 3.0 product include: • • SoapUEHandler.h, ServiceEnv.h, ServiceReqResponse.h, Attachment.
Customizing the SOAP Server Building the Server Program Building the Server Program To build a server program using files generated by the SOAP Admin tool, you must: 1. Set environment variables. 2. Run the generated Makefile. If you will use the prebuilt server, skip this task. Environment Variables These environment variables are required to build the server process.
Customizing the SOAP Server Running the Makefile The Makefile builds the executable and names it according to the value of the ExeName attribute in the SDL file. If you did not specify the attribute, the executable is named SoapServer.pway. Note. When the XERCESCROOT variable is set to an XML Parser with IEEE support (T0563Vxx), NLD issues the warning messages (10034,10031) regarding the float type Mismatch. These messages can be ignored.
A SOAP Support for the W3C SOAP 1.2 Optional Requirements NonStop SOAP 3.0 supports the W3C SOAP 1.2 optional requirements as indicated in Table A-1. Table A-1. Support for SOAP 1.2 Optional Requirements S. No. Optional Part NonStop SOAP 3.0 support 1 SOAP header actor attribute information items. SOAP header mustUnderstand attribute information item. SOAP body with multiple body elements Processing instructions in SOAP messages. No SOAP encodingStyle attribute. faultactor element in SOAP fault.
SOAP Support for the W3C SOAP 1.2 Optional Requirements Sparse Arrays Sparse Arrays This example shows the postion in elements of sparse arrays. PAGE 315B Using DDL Comment Tags Table B-1 shows the valid and invalid combinations of the NonStop SOAP DDL comment tags for a single DDL field. Table B-1. DDL Comment Tag Usage Tags OPTNL OPTNL X SUPR_IN SUPR _OUT SUPR _IO OCCURS BASE64 ELEM ATT R 1 1 1 1 SUPR_IN X 1 1 SUPR_OUT 1 X 1 1 1 X 1 OCCURS 1 X BASE64 1 ELEM 1 ATTR 1 SUPR_IN 1 X X X X X X X X: Invalid combinations and cannot be used.
Using DDL Comment Tags • • Un-marshal: a corresponding XML element is present in the request SOAP/XML message Marshal: the value for the field in the response DDL buffer is not empty Otherwise, it skips that DDL field and moves on to the next field. • @SOAP_OCCURS_DEP_ON Next, the logic for the previous comment tag is applied. • @SOAP_ATTRIBUTE, @SOAP_ELEMENT Then checks whether to apply attribute or element centric processing for the field.
C NonStop SOAP User-Exits This section provides software development guidelines and examples of how to implement Service-Oriented Architecture (SOA) services on HP Integrity NonStop servers. It specifically describes how to use the user-exit facilities of HP NonStop SOAP software to customize the behavior of the NonStop SOAP server process, in order to achieve the presentation of NonStop server applications as SOA services regardless of how they are implemented.
NonStop SOAP User-Exits Nonstop Soap Server Normal Processing Flow Figure C-1.
NonStop SOAP User-Exits Nonstop Soap Server Normal Processing Flow modified if necessary to match the format expected by the service provider. The Service() function then sends the Service Request buffer to the service provider. The service provider processes the request and returns a response (the Service Response buffer). The Service() function receives the Service Response buffer and modifies it if necessary to create the SOAP Response structure according to the DDL response definition for the service.
NonStop SOAP User-Exits Nonstop Soap Server Processing Flow With UserExits Nonstop Soap Server Processing Flow With User-Exits The default NonStop SOAP server-processing flow as described above provides outof-the-box support for Pathway services and NonStop server processes that communicate using the Guardian file system read/write mechanism. Generally, if you are using NonStop SOAP to SOA enable a Pathway application, this can be done simply by defining the Pathway application to NonStop SOAP.
NonStop SOAP User-Exits Nonstop Soap Server Processing Flow With UserExits It is the responsibility of the user-exit code to understand how to map the SOAP Request and Response structures that are expected by NonStop SOAP (as defined by the service DDL), to and from the actual Service Request and Response buffers that are expected by the service provider.
NonStop SOAP User-Exits Nonstop Soap Server User-Exit Processing Flow Nonstop Soap Server User-Exit Processing Flow Figure C-2 shows how the normal processing flow within the NonStop SOAP server is modified when user-exits are utilized.
NonStop SOAP User-Exits Nonstop Soap Server User-Exit Processing Flow The behavior of the Pre_Service() user-exit depends upon whether skipService() is called by the Pre_Process() user-exit as described here: ° If the skipService() method is called, then it is mandatory to implement the Pre_Service() user-exit. In this case, the default NonStop SOAP service() function will be skipped and the Pre_Service() user-exit must construct the Service Request buffer and invoke the service provider.
NonStop SOAP User-Exits Nonstop Soap Server User-Exit Processing Flow is expected by the NonStop SOAP server, as defined by the response DDL description for the service.
NonStop SOAP User-Exits Guidelines to Implement Nonstop Soap UserExitsUser-Exits Figure C-2.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits 2. Define and create a new NonStop SOAP Service Description Language (SDL) file for the service of either type “Pathway” or “Process”, as applicable. 3. Deploy the SDL definition and create the WSDL using the SOAP Admin tool. 4. Start the NonStop SOAP server.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits Create the DDL for the Service Create the DDL, which defines the service request and response message structures based upon the request and response message format definitions used by the service provider. Generate the DDL dictionary definitions by compiling the DDL.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits Figure C-3. NSSOAP Admin tool (initial screen) The workflow of the New SDL wizard is then as follows (unless otherwise specified, the values described for the various fields are for the definition of the example TOUPPER service of the NSTUXEDO SIMPAPP sample application; fields that are not discussed are not required).
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits Screen 1: Welcome to the New SDL Wizard Figure C-4 defines the basic information about the customized NonStop SOAP server. The various fields are described below the figure. Figure C-4. NEW SDL screen 1 of 7 Server Address This is the address of the iTP WebServer port being used for the NonStop SOAP server.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits ExeName The ExeName attribute specifies the executable name for the customized SOAP server (which is a Pathway_CGI server class). Note that this can be the actual .exe name or a symbolic link. You also must specify whether the SDL file is to be created for a Pathway or a NonStop process.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits Process Description In this box, type a meaningful name to describe the service. This value is purely for information purposes only. Target Language In this box, select a radio button for the language of the process: COBOL or C. DDL Dictionary Location In this box, type the location where the DDL request and response message definitions used for the service are located (as created in Step 1). For example, “$IBMTST.SOLN7548”.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits Figure C-6. New SDL screen 3 of 7 Service Name In this box, type the name of the service. The Service Name attribute specifies the name of the service (root element of the XML document) or the immediate child of the body element (if SOAP compliant) in the input request. All service names must be unique.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits Output File Prefix This attribute specifies a prefix for the generated SDL files for the service. For example, if a prefix value of “tux” is entered, all generated files will have a prefix of “tux” and the request XML file for the “TOUPPER” service will be “tuxSOAPPW_toupper.xml”. The default is no prefix. Response Encoding In this box, type the response message encoding for the service.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits Here you will enter more details about the service specified in Figure C-6. Service Description In this box, type a meaningful description of the service. This is an optional field. Request DDL In this box, type the name of the previously defined request DDL definition for the service. Response Info This box contains the previously defined response DDL definition for the given request DDL definition.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits Here you will enter more details about the service specified in Screen 3. Response Selection This box contains the previously selected response definition from Screen 4. Select an entry and the Response Selection box below it will be populated. Checking the Fault box marks this response definition as a fault. Checking the Default Response box indicates that this information will be the default response information.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits Screen 7: Completing the New SDL Wizard Figure C-10. New SDL Screen 7 of 7 This screen lists the final set of services that were added to the wizard for the specified Process Name. Click “Finish” to create the SDL file for the new services based on the information provided. Once the SDL file is created, you will return to the screen shown in Figure C-11, Save the SDL File of the SOAPGUI Admin tool.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits Figure C-11. Save the SDL File Deploy the SDL file The newly created SDL file must be stored into the NonStop SOAP Service Definition Repository (SDR) on the target HP NonStop server before it can be used. This process will also create the WSDL for the newly defined services. To deploy the SDL file onto the target HP NonStop server you can use either the SoapAdmin GUI tool or the command line SoapAdminCL.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits Figure C-12. Create SDR option 2. Enter the location of the NonStop SOAP SDR on the target HP NonStop server, as specified in the config.xml file as shown in Figure C-13, Target SDR Location. The config.xml file is the configuration file on the Windows PC for the SoapAdmin GUI tool. Figure C-13.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits 3. Confirm the services that will be deployed on the target system and click “OK” as shown in Figure C-14, Confirmation of services to be deployed. Once this process is completed, the newly created SDL file will be stored into the SDR on the target NonStop server. Figure C-14.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits server using the automatically generated Makefile (modified as necessary) to produce the customized NonStop SOAP server executable. The user-exit code is implemented by overriding the virtual methods of the class SoapUEHandler. The SoapPW_UEHandler_ class is derived from the base class SoapUEHandler, which, in turn, uses the classes ServiceReqResp and ServiceEnv.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits Save the Service Response buffer in a global variable > service() This function is skipped.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits Pre_Service() long SoapUEHandler_TOUPPER::pre_service(ServiceReqResponse *req, SoapFault *sf) // Set the NSTuxedo environment variables // Validate the buffers. // Call the TOUPPER service to change the case of the characters. // Return the buffer. { sendlen=req->getDDLBufferLen(); tuxputenv(“TUXCONFIG=/usr/mytux/tuxconfig”) tuxputenv=(“TUXDIR=/tuxedo8.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits Note: Do not call tpinit() or tpterm() from the user-exit as part of normal processing. This will cause the TUXCONFIG file to be opened and closed for every SOAP message that is processed, which is unnecessary and will adversely affect performance. Pre_Marshal() long SoapUEHandler_TOUPPER::pre_marshal(ServiceReqResponse *resp, SoapFault *sf) // Set the response buffer in memory to hold the result.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits For example, INCDIR=$(TUXDIR)/include\ -I ${SOAP4NSK}/include \ -I ${XERCESCROOT}/include \ -I ${XERCESCROOT}/include/xercesc \ -I ${XERCESCROOT}/include/icu \ 2.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits For example, simpcl: simpcl.c rm -f $(@) CFLAGS="$(CFLAGS)" \ TUXDIR=$(TUXDIR) \ $(XCBINDIR)/buildclient \ -o simpcl \ -f "userexit-cpp/SoapUEHandler_impl.cpp userexitcpp/SoapUEClass Factory.cpp" \ -f {XERCESCROOT}/lib/OssTandemPlatformUtils.o \ ${SOAP4NSK}/lib/SoapMain_CommandLine.a \ ${SOAP4NSK}/lib/SoapLibrary.a \ ${SOAP4NSK}/lib/PwayLibrary.a \ ${XERCESCROOT}/lib/libxerces-c_icu2_4_0.a \ ${XERCESCROOT}/lib/libicu-uc.
NonStop SOAP User-Exits SOA Enable a Nonstop Server Application With User-Exits For example, wsimpcl: simpcl.c rm -f $(@) CFLAGS="$(CFLAGS)" \ TUXDIR=$(TUXDIR) \ $(XCBINDIR)/buildclient \ -w -o wsimpcl \ -f "userexit-cpp/SoapUEHandler_impl.cpp userexitcpp/SoapUEClassFactory.cpp" \ -f "${XERCESCROOT}/lib/OssTandemPlatformUtils.o \ ${SOAP4NSK}/lib/SoapMain_CGI.a \ ${SOAP4NSK}/lib/libcgi.a \ ${SOAP4NSK}/lib/SoapLibrary.a \ ${SOAP4NSK}/lib/PwayLibrary.a \ ${XERCESCROOT}/lib/libxerces-c_icu2_4_0.
NonStop SOAP User-Exits • SOA Enable a Nonstop Server Application With User-Exits Complete User-exit Code Sample for Nonstop Tuxedo Simpapp Example NonStop SOAP User’s Manual—520501-012 C -31
NonStop SOAP User-Exits Sample SDL file generated for NonStop Tuxedo “TOUPPER” service Sample SDL file generated for NonStop Tuxedo “TOUPPER” service PAGE 349NonStop SOAP User-Exits Sample SDL file generated for NonStop Tuxedo “TOUPPER” service response
NonStop SOAP User’s Manual—520501-012 C -33
NonStop SOAP User-Exits Files Created When the Example Sdl File is Deployed Files Created When the Example Sdl File is Deployed SoapUEClassFactory.cpp #include "SoapUEClassFactory.h" #include "SoapUEHandler_impl.
NonStop SOAP User-Exits SoapUEClassFactory.cpp ~SoapUEHandler_Generic() { delete forwardHandler_; forwardHandler_ = NULL; serviceEnv_ = NULL; } }; class SoapPW_UEHandler_TOUPPER : public SoapUEHandler { }; #endif Note. : When the SDL is first deployed, the SoapUEHandler_impl.cpp is empty. The methods required to be implemented for user-exit processing will be defined in this file.
NonStop SOAP User-Exits Complete User-exit Code Sample for Nonstop Tuxedo Simpapp Example Complete User-exit Code Sample for Nonstop Tuxedo Simpapp Example 1. SoapUEClassFactory.cpp #include "SoapUEClassFactory.h" #include "SoapUEHandler_impl.h" // Declare and initialize the SOAP User-exit object.
NonStop SOAP User-Exits 2. SoapUEHandler_impl.h 2. SoapUEHandler_impl.h #ifndef SOAPUEHANDLER_IMPL_H #define SOAPUEHANDLER_IMPL_H #include "SoapUEHandler.h" #include "ServiceEnv.h" #include "ServiceReqResponse.h" #include "SoapFault.h" #include #include "ErrorTrace.h" #include "errno.
NonStop SOAP User-Exits 2. SoapUEHandler_impl.h delete forwardHandler_; forwardHandler_ = NULL; serviceEnv_ = NULL; } char serviceName[251]; // Used to store the service name to be called.
NonStop SOAP User-Exits 3. SoapUEHandler_impl.cpp 3. SoapUEHandler_impl.cpp #include "SoapUEHandler_impl.h" #include #include "ErrorTrace.h" #include "errno.h" #include "atmi.h" /* TUXEDO Header File */ // Getting the TUXEDO service name and store it in the serviceName data member of the SOAP User-exit object.
NonStop SOAP User-Exits 3. SoapUEHandler_impl.cpp (void) fprintf(stderr,"Error allocating send buffer\n"); tpterm(); exit(1); } // tpalloc is TUXEDO memory allocation call, used to initialize the response buffer with NULL if((rcvbuf = (char *) tpalloc("STRING", NULL, sendlen+1)) == NULL) { (void) fprintf(stderr,"Error allocating receive buffer\n"); // If Response buffer is not allocated then we have to free the Request buffer memory before exiting the process.
Glossary attribute. An item of descriptive data associated with an XML element. An attribute has a name and a value. Data Definition Language (DDL). A mechanism, proprietary to HP, for describing data structures, such as request and response formats supported by a TS/MP application or NonStop process. DDL. Data Definition Language Document Type Definition (DTD). A specification of valid syntax for a class of XML documents.
Glossary marshal. marshal. To serialize a C++/Java object into a data stream, for example, to convert a C++/Java object into an XML document. See unmarshal. namespace. A context for resolving names, used to prevent ambiguity (or “collisions”) where a name is can have different meanings in different situations. To qualify a name by identifying the namespace expresses the idea that the name is used as defined in that namespace. Naming Service.
Glossary session ID. session ID. A handle used by the SOAP client and server to relate requests and responses to a session context. Simple Object Access Protocol (SOAP). An XML-based protocol used for exchange of information in a distributed application environment. SOAP defines a basic set of message components, a way to describe data types, and a way to represent requests and responses. SOAP. Simple Object Access Protocol SOAP server.
Glossary XML schemas.
Index A CD Abort transaction is not allowed while 4-67 Aborting a subsession 4-7 a transaction 4-17 AbortTransactionOnFault attribute 3-5 Accessing attachments 8-21 Architecture design-time 1-3 run-time NonStop processes 1-6 TS/MP access 1-6 Attachment class 8-25 Attempting to abort a subsession 4-67 to abort a transaction 4-67 to commit a transaction 4-67 to start a new transaction 4-67 Autoabort function of TMF 4-10 B Bad OutputEncoding value was specified 4-66 Base64 encoding 4-40 BeginNewTransaction
Index D Context-sensitive access to NonStop processes 1-2 access to TS/MP services 1-2 defining service as 3-8 Continuing a session 4-6 a transaction 4-16 ConversionOp attribute 3-10 Cookie file description of 4-10 displaying contents 4-12 maintaining 4-11 shared 4-11 Copying software from the CD 2-1, 2-3 CreateDDLDefFile attribute 3-3 Creation of Basic SDR 2-6 Critical error 6-55 Current working directory 6-65 CurrentTransactionCommand attribute description of 4-2, 4-17 value can only be 4-66 Customizabl
Index E Document Type Definition (DTD) description of 1-2 generated by Soap Admin 5-8 SDL 3-1 DTD NonStop process 6-4 See also Document Type Definition TS/MP 6-3 DTDorSchema attribute 3-5 Dynamic refresh 4-21 E Empty body in request to start a session 4-5 EMS messages for common services 4-74 format of 4-74 related to tracing 4-70, 6-68 EMS_COLLECTOR environment variable 6-64, 6-66 EnableOutputSensitive attribute 3-5, 3-9 Encoding client can specify 1-9 controlling the output 4-28, 6-42 default for serve
Index F Example request to TS/MP 6-21 response from TS/MP 6-22 SDL input file TS/MP 6-6 Examples links to 6-2 request to TS/MP 6-9 response from TS/MP 6-10 SDL input file NonStop process 6-18 Exception message from parser 4-68 Executable built by generated Makefile 3-2 command-line building server as 8-47 name specified in SDL 3-2 name specified to iTP WebServer 6-65, 6-66 ExeName attribute 3-2, 6-65 Extensible Markup Language (XML) 1-1 F Fault customized reporting 8-45 finding corresponding log and trac
Index J Invalid attribute found in tag 4-67 DDL Definition Name 5-14, 5-15 DDL Dictionary Name 5-14, 5-15 for Metadata file 6-88 Pathmon Name 5-13 Server Class Name 5-13 SOAP config file 4-76 tag found in header element 4-67 IPSetup 2-2 iTP WebServer configuring and running server under 6-60 SOAP server can run under 1-3 version of 1-12, 6-60 J JavaScript client 6-67 JavaScript version 1-13 L Language attribute 3-3 Length of Server Class is greater than 15 5-14 Level 1 trace example 6-68 Level 2 trace e
Index O NonStop process communication 4-51 NonStop processes 1-10 NonStop SOAP directory structure 2-3 environment variable 8-47 features and functions 1-2 installing 2-1 introduction to 1-1 TS/MP access 6-1 NonStop SOAP Admin GUI Installation 2-8 NonStop SOAP server, customizing 8-1 NonStop XML parser 1-3, 1-12, 1-13 Null parameter 5-17 Numstatic for context-sensitive access 6-65 O One transaction per dialog description of 6-30 example 6-31 OneTxnPerDialog attribute 3-5 Open System Services (OSS) Makefi
Index R R Region directive 6-60 Request for TS/MP service 6-9, 6-21 format for NonStop processes 1-10, 6-5 format for TS/MP service 1-10, 3-10, 6-5 input document specified to commandline process 6-66 Request and response files 1-3 RequestInfo element 3-10, 6-5 Response controlling the encoding 4-28, 6-42 encoding for service 3-9 format for NonStop processes 1-10 format for TS/MP service 1-10, 3-10 format for TS/MP service or NonStop process 6-5 selecting among possible responses from a TS/MP service 3-10
Index S Service describing in SDL 3-5 element in SDL file 3-5 name description of 3-5 in generated file 5-10 type 3-8 Service Definition Repository 1-2 Service Description Language (SDL) Document Type Definition (DTD) 3-1 feature 1-2 NonStop processes 6-3 TS/MP services 6-3 Service Type is 1 6-73 ServiceEnv class 8-9 ServiceName attribute 3-5 ServiceReqResponse class 8-17 Services describing 6-3 NonStop processes describing 1-10 processes 1-10 TS/MP 1-10 Session context management overview 1-6 context, de
Index S SOAP (continued) error messages 4-63 error reporting 4-64 faults 4-43, 4-64 generated files 4-51 header format 4-2 interoperability 1-14 log messages 4-70 migration 1-14 pathmon mapping 4-58 restricting string length in WSDL documents 4-50 SOAP_OCCURS_DEP_ON clause 4-51 specifying whether input and output are SOAP or plain XML 3-6 trace file 4-70 using the SOAP Admin tool 5-1 version 1-13 @SOAP_OPTIONAL 4-45 SOAP Admin tool description of 1-2 environment variable 5-2 explicit multicast 5-7 feature
Index T SOAP_SERVICE_MAP_FILE environment variable 6-60 SOAP_SESSION_TIMEOUT environment variable 4-9, 6-60 superseded 4-13 SOAP_TRACE_FILE environment variable 6-60 SOAP_TRACE_LEVEL environment variable 6-60 SOAP_TRACE_LOG_MAX_SIZE environment variable 6-60 SOAP__PARSER_API environment variable 6-60 Software generation 3-8 Software prerequisites 1-12 Source and header files 1-3 Specifications SOAP 1.1 1-2 SOAP 1.
Index U Transaction (continued) faults related to 4-64 management overview 1-7, 4-15 many per dialog example 6-35 many per dialog model 6-30 occurs only within a session 4-3 one per dialog example 6-31 one per dialog model 6-30 starting a 4-16 support for context-free servers 6-24 support for context-sensitive servers 6-29 TMF 4-10 whether to start before Pathsend 3-6 ts attribute to correlate faults, error log, and trace 4-71 TS/MP describing 1-10 TS/MP services 1-10 access to 6-1 description of 1-10 err
Index Special Characters NonStop SOAP User’s Manual—520501-012 Index -12
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.