Request processing patterns for Single connector — persistent and nonpersistent

All processing in the single connector pattern is the same whether it is run "persistent" or "nonpersistent" with the exception of the BTS DEFINE PROCESS command in the CICS® Service Flow Runtime DPL stub program (DFHMADPL).

The following information describes the request processing that is associated with adapter services of the single connector type.
  1. A service requester initiates the CICS Service Flow Runtime when it sends a correctly formatted request message using any of the supported interfaces.
  2. The DPL stub program (DFHMADPL) receives the request through one of the supported interfaces and reads the properties file DFHMAMPF, using the request name that was passed in as part of the request message in the message header structure (DFHMAH).

    See Properties file record descriptor (DFHMARPF) to view the structure of the properties file.

    See Request properties for request property value settings and descriptions.

    Note: If the request message is in XML format, the DPL stub program will call the XML Header to COBOL Converter program (DFHMAXMI) to parse the XML header tag data and return in the COBOL fixed format structure (DFHMAH). This call is made before reading the properties file.

    The CICS Service Flow Runtime DPL stub program calls a user-defined program to parse the XML application request tag data and return in a COBOL fixed format structure. The application program name is determined by the request properties file field, MP-XML-PARSE-PROGRAMID. See Request properties for further information.

    See XML request and response processing and XML message formats for non-passthrough for further information regarding XML message processing.

  3. If the request properties record indicates that the processing pattern is of the single connector type (see Request properties for request property value settings and descriptions); MP-DEPLOYMENT-IND = 1, the DPL stub program (DFHMADPL) performs the following processing steps:
    1. Defines the BTS process using the BTS command EXEC CICS DEFINE PROCESS:
      For MP-PERSISTENCE-IND = 0 (nonpersistent):
      EXEC CICS DEFINE PROCESS (processname)
                   PROCESSTYPE (processtype)
                      TRANSID (transid)
                     PROGRAM  (program)
                     NOCHECK
                        RESP (CICS-RESP) 
                       RESP2 (CICS-RESP2)
      END-EXEC.
      For MP-PERSISTENCE-IND =1 (persistent):
      EXEC CICS DEFINE PROCESS (processname)
                   PROCESSTYPE (processtype)
                      TRANSID (transid)
                     PROGRAM  (program)
                       RESP (CICS-RESP) 
                       RESP2 (CICS-RESP2)
      END-EXEC.
      where:
      • (processname) is equal to value passed in the request message header structure, DFHMAH, field DFHMAH-PROCESSNAME or a unique value generated by CICS Service Flow Runtime. See Request message headers for further information.
      • (processtype) is equal to value passed in the request message header structure, DFHMAH, field DFHMAH-PROCESSTYPE. See Request message headers for further information.
      • (transid) is equal to Navigation Manager transaction ID (CMAM).
      • (program) is equal to Navigation Manager program name (DFHMAMGR). The Navigation Manager runs as the BTS root activity (DFHROOT).

      The NOCHECK processing option indicates that no record is to be written to the BTS repository data set to reserve the name of the process. Using the BTS NOCHECK option improves BTS performance by removing the write to the repository and its associated logging. See CICS Business Transaction Services manual for further information on the DEFINE PROCESS command and options.

    2. Writes application request data to the process input data-container ADAPTER.INPUT. The Server adapter program activity reads the input data-container ADAPTER.INPUT to retrieve the application request data that is used in Adapter service processing.
    3. Writes CICS Service Flow Runtime state information to the process data-container ADAPTER.PROCESS

      State information includes the request name (DFHMAH-REQUESTNAME) as specified in the message header (DFHMAH) and the program name and transaction that will process the application request data as defined by request properties, MP-INITIAL-PROGRAMID and MP-INITIAL-TRANSID fields, respectively.

      For Adapter services of the single connector type, the program and transaction defined and run will not be an Adapter Navigator but rather will be a DPL, FEPI or Link3270 server adapter.

    4. Runs the BTS process either in synchronous or asynchronous mode as defined by request property, MP-REQUESTTYPE.
      Note: If you are using a synchronous interface (i.e., ECI, EXI or DPL) to invoke CICS Service Flow Runtime processing, and if the service requestor expects a response, your Adapter service request must be run in synchronous mode. Asynchronous mode processing assumes a WebSphere MQ interface.
      Synchronous BTS RUN command (MP-REQUESTTYPE = 1 or 2)
      EXEC CICS RUN ACQPROCESS 
                 SYNCHRONOUS 
                         RESP (CICS-RESP) 
                        RESP2 (CICS-RESP2) 
      END-EXEC. 
      Asynchronous BTS RUN command (MP-REQUESTTYPE = 0)
      EXEC CICS RUN ACQPROCESS 
                  ASYNCHRONOUS 
                          RESP (CICS-RESP) 
                         RESP2 (CICS-RESP2) 
      END-EXEC.
    Figure 1. DPL stub program request processing — single connector type
    The diagram illustrates the program processing performed by the DPL stub program for an Adapter service of the single connector
  4. Once initiated, the Navigation Manager (DFHMAMGR) performs the following processing steps:
    1. Reads the state information from process container ADAPTER.PROCESS.
    2. Defines the Adapter service BTS activity that will process the application request via the BTS command; EXEC CICS DEFINE ACTIVITY:
      EXEC CICS DEFINE ACTIVITY  (ADC-NAV-ACTIVITY)
                          EVENT  (<completionevent>)
                        TRANSID  (ADC-NAV-TRANSACTION)
                        PROGRAM  (ADC-NAV-PROGRAM-ID)
                     ACTIVITYID  (ADC-NAV-ACTIVITYID)
                           RESP  (CICS-RESP)
                          RESP2  (CICS-RESP2)
      END-EXEC.   
      where:
      • ADC-NAV-ACTIVITY is equal to the request name value passed and stored in the process container ADAPTER.PROCESS.
      • ADC-NAV-TRANSACTION is equal to the initial transaction ID as indicated on the request properties, field MP-INITIAL-TRANSID, and stored in process container ADAPTER.PROCESS
      • ADC-NAV-PROGRAM-ID is equal to the initial program name as indicated on the request properties, field MP-INITIAL-PROGRAMID, and also stored in process container ADAPTER.PROCESS.
    3. Writes adapter state information to container ADAPTER.PROCESS.

      Additional state information includes the ACTIVITYID, CICS applid where the Navigation Manager (DFHMAMGR) is running, EIBTASKN of the running Navigation Manager, etc.

      For Adapter services of the single connector type, the program and transaction invoked will not be an Adapter Navigator but rather will be a DPL, FEPI or Link3270 server adapter. Only one server adapter type will be invoked for this processing pattern as defined by the Adapter service.

    4. Runs the Adapter service BTS activity either in synchronous or asynchronous mode, as defined by request property, MP-REQUESTTYPE.
      Synchronous BTS RUN command (MP-REQUESTTYPE = 1 or 2)
      EXEC CICS RUN ACTIVITY (ADC-NAV-ACTIVITY) 
                SYNCHRONOUS 
                        RESP (CICS-RESP) 
                       RESP2 (CICS-RESP2) 
      END-EXEC. 
      Asynchronous BTS RUN command (MP-REQUESTTYPE = 0)
      EXEC CICS RUN ACTIVITY (ADC-NAV-ACTIVITY)
                ASYNCHRONOUS
                        RESP (CICS-RESP) 
                       RESP2 (CICS-RESP2) 
      END-EXEC
    Figure 2. Navigation Manager program request processing — single connector type
    The diagram illustrates the request processing performed by the Navigation Manager (DFHMAMGR) program for an Adapter service of the single connector type

As a result of the Navigation Manager (DFHMAMGR) running the Adapter service activity, the DPL, FEPI or Link3270 server adapter performs business request processing (as modelled in Service Flow Modeler) in order to complete the request made by the service requestor.

Each business request issued by the service requestor results in a different BTS process instance to fulfill the appropriate Adapter service as defined by the business request name.

Each process instance consists of a Navigation Manager (DFHMAMGR) activity and the one server adapter activity that is needed to support that Adapter service.