Skip to main content

     
  SOAP Sample Application for z/TPF
  Products > Software > Host Transaction Processing > TPF > Library >

Downloads for TPF Family Products

TPF : Support : Tools : SOAP

SOAP Module for Apache on TPF: mod_tpf_soap

Copyright International Business Machines Corporation, 2003. All Rights Reserved.

Note to US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

NOTE: Before using this information and the product it supports, read the general information under "NOTICES" in this document.

CONTENTS

This file includes the following information:

1.0 ABOUT THIS README
2.0 SYSTEM REQUIREMENTS
3.0 DOWNLOADING
4.0 CUSTOMIZING
4.1 Customization instructions for routing all traffic to the mod_tpf_soap module
4.2 Customization instructions for using Apache run-time configuration directives to route traffic
5.0 COMPILING
5.1 Compilation instructions for routing all traffic to the mod_tpf_soap module
5.2 Compilation instructions for using Apache run-time configuration directives to route traffic
6.0 INSTALLING
6.1 Installation instructions for routing all traffic to the mod_tpf_soap module
6.2 Installation instructions for using Apache run-time configuration directives to route traffic
7.0 EXAMPLES
7.1 Example Apache run-time configuration file for routing all traffic to the mod_tpf_soap module
7.2 Example Apache run-time configuration file for using Apache run-time configuration directives to route traffic
8.0 NOTICES
8.1 Trademarks

1.0 ABOUT THIS README

This readme file will guide you through the process of installing the mod_tpf_soap module on your TPF 4.1 system.

The mod_tpf_soap module is used with Apache on TPF. The module takes traffic based on how you customize it and then passes information to the SOAP handler component on TPF, as appropriate. For information about SOAP support on TPF, refer to the IBM TPF Product Information Center.

2.0 SYSTEM REQUIREMENTS

To install and use this module on your TPF 4.1 system, you must have the following APARs installed:

  • TPF Internet server support (APARs PJ25589 and PJ25703)
  • TPF SOAP support (PJ29396)

Refer to the IBM TPF Product Information Center for more information about these APARs, including specific migration information.

Before proceeding with these instructions, review the system requirements for Apache from the following Web site:

3.0 DOWNLOADING

To download this module, do the following:

  1. Open the instructions for Installing the Apache 1.3 HTTP Server on TPF from

    Keep these instructions open because you will be asked to use them throughout this readme file.

  2. If you do not have Apache installed on your TPF system, complete Download steps 1-5 of the instructions you just opened to download Apache.

    Note: SOAP support on TPF is only compatible with the version of the Apache HTTP server that does not contain SSL. Both versions are available on the TPF Web site so ensure you download and install the version without SSL included.

  3. Repeat steps 1-3 of those instructions to install mod_tpf_soap. The file name on the Web site is mod_tpf_soap.tar.Z. Place this file in the Apache standard modules directory (../src/modules/standard).

  4. Decompress and extract the archived file, which is necessary for compiling mod_tpf_soap:
    pax -rqvzkf mod_tpf_soap.tar.Z -o from=ISO8859-1,to=IBM-1047
    The mod_tpf_soap.c file will be extracted into the Apache standard modules directory (../src/modules/standard).

4.0 CUSTOMIZING

There are many ways to set up and customize Apache. Specifically, there are also a variety of ways you can configure your system for processing SOAP traffic. This readme.txt file provides instructions for customizing the path of SOAP traffic in two different ways:

  • All traffic is routed to the mod_tpf_soap module. If you want to follow these instructions, continue with section 4.1.
  • Traffic is filtered by Apache run-time configuration directives so that only specific types of traffic go to the mod_tpf_soap module. If you want to follow these instructions, skip section 4.1 and continue with section 4.2.

4.1 Customization instructions for routing all traffic to the mod_tpf_soap module

Do the following:

  1. Open the mod_tpf_soap.c file to edit.

  2. Specify that all traffic is routed to the mod_tpf_soap module in the soap_handlers[] array. (This array contains the content type that core Apache directs to mod_tpf_soap.) For all traffic, the array needs to contain */*.

    For example:

    static const handler_rec soap_handlers[] =                   
    {              
         {"*/*", soap_handler}, /* ALL traffic defaults here */    
         {NULL}                                                              
    };
    

  3. Specify the default SOAP version in the inputMsg structure. The #define statements for the SOAP version are defined in the c_soap.h header file.

    For example:

    SOAP version (inputMsg->version = SOAP1_2 )   or 
                 (inputMsg->version = SOAP1_1 ) 
    

  4. Determine if the "len_max" value is appropriate for your system. This value limits the size of the incoming messages in order to prevent unreasonably large requests. Currently len_max is set to 21000.

  5. Continue with section 5.1 for instructions about compiling your code.

4.2 Customization instructions for using Apache run-time configuration directives to route traffic

Do the following:

  1. Open the mod_tpf_soap.c file to edit.

  2. Specify what traffic is routed to the SOAP handler in the soap_handlers[]. (This array contains the content type that core Apache directs to mod_tpf_soap.) For specific traffic, enter the handler name to be used in the run-time configuration file (httpd.conf).

    For example:

    static const handler_rec soap_handlers[] = {
         {"soap-script", soap_handler},  
         {NULL}
    } ;  
    

  3. Specify the default SOAP version in the inputMsg structure. The #define statements for the SOAP version are defined in the c_soap.h header file.

    For example:

    SOAP version (inputMsg->version = SOAP1_2 )   or 
                 (inputMsg->version = SOAP1_1 )
    

  4. Determine if the "len_max" value is appropriate for your system. This value limits the size of the incoming messages in order to prevent unreasonably large requests. Currently len_max is set to 21000.

  5. Continue with section 5.2 for instructions about compiling your code.

5.0 COMPILING

To compile the code, complete one of following two sets of instructions in line with the method you chose for customization.

5.1 Compilation instructions for routing all traffic to the mod_tpf_soap module

Do the following:

  1. Open the instructions for Installing the Apache 1.3 HTTP Server on TPF from

    Keep these instructions open because you will be asked to use them throughout this readme file.

  2. Complete Compilation steps 1-2 of the instructions that you just opened.

  3. Complete step 3 of the instructions that you opened, as follows:

    • Comment out all module lines by preceding the line with the # symbol.
    • Add a line for the SOAP module:
      AddModule modules/standard/mod_tpf_soap.o
    Complete the remaining tasks for step 3 of the instructions that you opened.

  4. Complete Compilation steps 4-9 of the instructions that you opened.

  5. Determine if you are using TCP/IP Offload (ZCLAW) or Native Stack communication support on your TPF system.

    If you want to use Native Stack, open the include/ap_config.h file in an editor. Add

    #define NO_WRITEV
    to the TPF section of the file to remove the limitation on the message size. If this is not added to the file, the message size is limited 32,767.

    If you are using ZCLAW you are limited to a message size of 32,767.

  6. Complete the remaining Compilation steps of the instructions that you opened.

  7. Continue with section 6.1 for instructions about installing your code.

5.2 Compilation instructions for using Apache run-time configuration directives to route traffic

Do the following:

  1. Open the instructions for Installing the Apache 1.3 HTTP Server on TPF from

    Keep these instructions open because you will be asked to use them throughout this readme file.

  2. Complete Compilation steps 1-2 of the instructions that you just opened.

  3. Complete step 3 of the instructions that you opened, as follows:

    • Comment out all module lines except the modules you want to include by preceding the line with the # symbol.
      Note: mod_mime.o is required for this method of customization.
    • Add a line for the SOAP module, which should be the last module included in the configuration file:
      AddModule modules/standard/mod_tpf_soap.o
    Complete the remaining tasks for step 3 of the instructions that you opened.

  4. Complete Compilation steps 4-9 of the instructions that you opened.

  5. Determine if you are using TCP/IP Offload (ZCLAW) or Native Stack communication support on your TPF system.

    If you want to use Native Stack, open the include/ap_config.h file in an editor. Add

    #define NO_WRITEV
    to the TPF section of the file to remove the limitation on the message size. If this is not added to the file, the message size is limited 32,767.

    If you are using ZCLAW you are limited to a message size of 32,767.

  6. Complete the remaining Compilation steps of the instructions that you opened.

  7. Continue with section 6.2 for instructions about installing your code.

6.0 INSTALLING

To install the code, complete one of following two sets of instructions in line with the method you chose for customization.

6.1 Installation instructions for routing all traffic to the mod_tpf_soap module

Do the following:

  1. Open the instructions for Installing the Apache 1.3 HTTP Server on TPF from

    Keep these instructions open because you will be asked to use them throughout this readme file.

  2. Complete Installation steps 1-4 of the instructions that you just opened.

  3. Complete step 5 of the instructions that you opened. Do not include any module-specific directives. You must include the following core directive because the translation to and from EBCDIC will be done by the tpf soap handler:

    EBCDICConvertByType Off=InOut */*   
    

  4. Complete the remaining Installation steps of the instructions that you opened.

6.2 Installation instructions for using Apache run-time configuration directives to route traffic

Do the following:

  1. Open the instructions for Installing the Apache 1.3 HTTP Server on TPF from

    Keep these instructions open because you will be asked to use them throughout this readme file.

  2. Complete Installation steps 1-4 of the instructions that you just opened.

  3. Complete step 5 of the instructions that you opened. You must add a "Location" section with directives for SOAP messages:

          # associate the location "soap-bin" with the soap handler in mod_tpf_soap:
          <Location /soap-bin>
          SetHandler soap-script
          EBCDICConvertByType Off=InOut */*
          </Location>
    

    The SetHandler directive identifies filters that are used to route messages for mod_mime. In the "Location" example above, any traffic containing "soap-bin" will be routed to the mod_tpf_soap module. The handler name "soap-script" must match what was added to mod_tpf_soap.c in section 4.2, step 2.

    The EBCDICConvertByType directive is required because the translation to and from EBCDIC will be done by the tpf soap handler.

  4. Complete the remaining Installation steps of the instructions that you opened.

7.0 EXAMPLES

The following examples will help you when configuring your Apache run-time configuration file (httpd.conf).

7.1 Example Apache run-time configuration file for routing all traffic to the mod_tpf_soap module

The following information provides example values for a configuration file:

ServerName  apache.mytown.com
User nobody  nobody                     
StartServers  50
MinSpareServers   2    
MaxSpareServers  50  
MaxClients  50  
ResourceConfig  /dev/null 
AccessConfig  /dev/null
<Directory />                  
AllowOverride None              
</Directory>     
Timeout  2  
KeepAliveTimeout  2 
EBCDICConvertByType Off=InOut */*
General documentation for Apache is located at http://httpd.apache.org/docs/ and in the HTML pages included with the distribution (tarball) under the /htdocs/manual directory.

7.2 Example Apache run-time configuration file for using Apache run-time configuration directives to route traffic

The following information provides example values for a configuration file:

ServerName  apache.mytown.com
User nobody  nobody                     
StartServers  50
MinSpareServers   2    
MaxSpareServers  50  
MaxClients  50  
ResourceConfig  /dev/null 
AccessConfig  /dev/null
<Directory />                  
AllowOverride None              
</Directory>     
Timeout  2  
KeepAliveTimeout  2 
# associate the location "soap-bin" with the soap handler in mod_tpf_soap:
<Location /soap-bin>
SetHandler soap-script
EBCDICConvertByType Off=InOut */*
</Location>
General documentation for Apache is located at http://httpd.apache.org/docs/ and in the HTML pages included with the distribution (tarball) under the /htdocs/manual directory.

8.0 NOTICES

IBM may not offer the products, services, or features discussed in this information in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service. IBM may have patents or pending patent applications covering subject matter described in this information. The furnishing of this information does not give you any license to these patents. You can send license inquiries, in writing, to:

IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
U.S.A

Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independently created programs and other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact:

IBM Corporation
Department 830A
Mail Drop P131
2455 South Road
Poughkeepsie, NY 12601-5400
U.S.A.

Such information may be available, subject to appropriate terms and conditions, including in some cases, payment of a fee. Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk.

8.1 Trademarks

The following terms are trademarks of International Business Machines Corporation in the United States, other countries, or both:

IBM

Other company, product, or service names may be trademarks or service marks of others.