Input to an analyzer program

Input parameters are passed to the analyzer program in a COMMAREA, giving information about the nature and content of the request, and any input supplied by a URIMAP definition. The analyzer program can choose to accept these values and pass them on as output parameters, or it can dynamically override them based on its analysis of the content of the request.

Attention: This topic contains Product-sensitive Programming Interface and Associated Guidance Information.

Parameters for analyzer programs has a listing and technical descriptions of all the parameters in the COMMAREA.

The input parameters include the following items, or a pointer to them:
  • An eye-catcher for an analyzer parameter list.
  • The dotted decimal IP address of the client and of the server (CICS as an HTTP server).
  • An indicator of whether the request is an HTTP request.
  • Start of changeAn indicator of whether a matching URIMAP definition was found for the request. If this indicator is positive, the URIMAP definition might have passed additional input parameters to the analyzer program.End of change
  • The HTTP version.
  • The request method.
  • Start of changeThe host name specified for the request, taken from the Host header or (for an absolute URI) from the request URL. For HTTP/1.1 requests, a host name is required, so this parameter is always passed to the analyzer. For HTTP/1.0 requests, a host name might not be supplied.End of change
  • The path component of the URL.
  • Start of changeAny query string that was specified for the request.End of change
  • The HTTP headers for the request.
    Note: Start of changeIf the request has been sent using chunked transfer-coding, any trailing headers are not passed to the analyzer program along with the main request headers.End of change
  • The request body, or as much of the request body as will fit into a 32K block of storage. (This is a pointer to the separate block of storage containing the request.)
For HTTP requests received on a connection using SSL client authentication, the following parameter is also passed:
  • The user ID obtained from the client certificate.
Start of changeIf a matching URIMAP definition was found for the request and has invoked the analyzer program, the following parameters from the URIMAP definition are passed to the analyzer program, if they were present in the URIMAP definition:
  • The name of the recommended converter program to process the request before it is passed to an application program (CONVERTER attribute in the URIMAP definition).
  • The name of the recommended user-written application program to process the request and provide the response (PROGRAM attribute in the URIMAP definition).
  • The transaction ID of the recommended alias transaction to cover the remaining stages of processing (TRANSACTION attribute in the URIMAP definition).
  • The recommended user ID that is to be associated with the alias transaction (USERID attribute in the URIMAP definition). This can be overridden if a user ID is supplied by the client.
The wbra_urimap input parameter can be used to test whether or not a URIMAP definition was used in the processing path for the request.End of change
Start of change
Note: If you are using an analyzer program instead of a URIMAP definition to handle requests, and you need to be compliant with HTTP/1.1 in this respect, you must code your analyzer program to perform URL comparison according to the rules stated in the HTTP/1.1 specification. Under these rules, scheme names and host names are compared case-insensitively, but paths are compared case-sensitively. All components are unescaped before comparison. When CICS compares URLs to URIMAP definitions, it follows these rules.
End of change

Start of changeYou can also use the EXEC CICS WEB API commands to examine the HTTP request, if preferred. Using the EXEC CICS WEB commands can increase the accuracy and completeness of your analysis of the request, particularly when examining the HTTP headers, which are subject to wide variation in content and usage. The EXEC CICS WEB commands also simplify the process of locating and extracting query string or formfield information from a request, which can be a key determinant of subsequent processing.End of change

You can use the EXTRACT TCPIP command to obtain the following information about the client request which is being processed:
  • The Web client's IP address
  • The Web client's host name, as known by the DNS server
  • The number of the port on which the Web client sent its connection request
  • The server's (that is, CICS as an HTTP server's) IP address
  • The type of authentication in use
  • The level of SSL support in use
  • The TCPIPSERVICE definition associated with the request