Creating the CICS infrastructure for a SOAP service provider

To create the CICS® infrastructure for a SOAP service provider, you must create a pipeline configuration file and create a number of CICS resources.

Before you begin

If you want to use a Java™ pipeline, ensure that a JVMSERVER resource exists with the JAVA_PIPELINE=YES option specified in the JVM Profile.

A JVM server can handle SOAP processing for many Java pipelines.

About this task

You can define the PIPELINE resource in a local CICS region using CICS or CICSPlex® SM functions, or you can use the CICS Explorer® to define the PIPELINE resource either in a local CICS region or in a CICS bundle. When you use the CICS Explorer to define a PIPELINE resource in a CICS bundle, you also create the pipeline configuration file and package it in the CICS bundle, so you do not have to manage this file separately. PROGRAM resources and WEBSERVICE resources can also be defined in CICS bundles. When you define a WEBSERVICE resource in a CICS bundle, you can import a web service binding file and a WSDL document or WSDL archive file and include these in the bundle. You can also create URIMAP definitions to support the web service and package these in a bundle. For more help with using the CICS Explorer to create and edit resources in CICS bundles, see Working with bundles in the CICS Explorer product documentation.

Procedure

  1. Define the transport infrastructure.
    1. If you are using the WebSphere® MQ transport, you must define one or more local queues that store input messages until they are processed, and one trigger process that specifies the CICS transaction that will process the input messages.
    2. If you are using the HTTP transport, you must define a TCPIPSERVICE resource that defines the port on which inbound requests are received.
  2. Optional: Repeat this step for each different transport configuration you need.
  3. Define the message handlers and header processing programs that you want to include in the pipeline configuration file to process inbound web service requests, and their responses.
    CICS provides the following handlers and header processing programs:
    1. SOAP message handlers, to process SOAP 1.1 or 1.2 messages. You can support only one level of SOAP in a service provider pipeline.
    2. MTOM handler, to process MIME Multipart/Related messages that conform to the MTOM/XOP specifications.
    3. Support for securing web services, to process secure web service messages.
    4. Support for Web Services Transactions, to process atomic transaction messages.
  4. Optional: If you want to perform your own processing in the pipeline, you must create a message handler or header processing program. See Message handlers for details. If you decide to create custom message handler programs, to optimize performance you must make them threadsafe.
  5. Create an XML pipeline configuration file containing your message handlers, header processing programs, and application handler.
    1. CICS provides two basic provider mode pipeline configuration file samples, basicsoap11provider.xml and basicsoap11javaprovider.xml.
    2. You can edit these samples, or add additional message handlers as appropriate. The samples are provided in the library /usr/lpp/cicsts/cicsts53/samples/pipelines (where /usr/lpp/cicsts/cicsts53 is the default install directory for CICS files on z/OS® UNIX).
    3. For more information about options available in the pipeline configuration file, see Pipeline configuration files
  6. Copy the pipeline configuration file to a suitable directory in z/OS UNIX.
  7. Change the pipeline configuration file permissions to allow the CICS region to read the file.
  8. Repeat steps 5 through 7 for each different pipeline configuration that you require.
  9. Create a PIPELINE resource.
    1. The PIPELINE resource defines the location of the pipeline configuration file. It also specifies a pickup directory, which is the z/OS UNIX directory that contains the web service binding files and optionally the WSDL.
    2. Repeat this step for each different pipeline configuration.
    1. When you create a PIPELINE resource, CICS reads any files in the specified pickup directory, and creates the WEBSERVICE resource and URIMAP resource dynamically.
  10. Unless you use autoinstalled PROGRAM definitions, create a PROGRAM resource for each program that runs in the pipeline. These include the target application program, which normally runs under transaction CPIH. The transaction is defined with the attribute TASKDATALOC(ANY). Therefore, when you link-edit the program, you must specify the AMODE(31) option.

Results

Your CICS system now contains the infrastructure needed for each service provider.

What to do next

You can extend the configuration when you need to do so, either to define additional transport infrastructure, or to create additional pipelines.