Analyzer programs and non-HTTP requests

An analyzer program is required for processing non-HTTP requests. It can reconstruct requests that have been divided up for transmission across the network, specify code page conversion of the requests, and perform any parsing that is required to determine subsequent request processing.

Reconstructing a non-HTTP request

An incoming request can be divided into several parts for transmission across the network. For non-HTTP requests, CICS® does not reconstruct the request before calling the analyzer program, so you must write your analyzer code accordingly.

On entry to the analyzer, the user_data pointer addresses a COMMAREA, which contains the first part of the incoming request. To receive the next part of the request, set the return code to URP_EXCEPTION and the reason code to URP_RECEIVE_OUTSTANDING. CICS web support calls the analyzer again, and the user_data pointer addresses the next part of the message. You can repeat this process until the entire request has been received, up to the maximum supported length of 32,767 bytes.

The results of this process are not visible to the CICS WEB API commands. However, the reconstructed message can be passed to a converter program.

Specifying code page conversion for non-HTTP requests

For non-HTTP requests, CICS web support does not perform any code page conversion on a request before the analyzer program is called.

The analyzer can specify code page conversion of non-HTTP requests as it can for HTTP requests, using either a code page conversion table (DFHCNV) key or the client and server code page output parameters. Refer to Writing an analyzer program.

Alternatively, a web-aware application program can specify code page conversion of incoming non-HTTP requests on a WEB RECEIVE command.

Non-HTTP requests are not parsed into the request line, header, and body elements. Any code page conversion is for the whole request.

Determining non-HTTP request processing

The following input fields, which relate to HTTP requests, are undefined in an analyzer program for non-HTTP requests:
  • The HTTP version
  • The method
  • The path component of the request
  • The request headers
The subsequent processing stages must therefore be determined by examining the content of the request.

The analyzer program can specify subsequent request processing by a converter program or by a web-aware application program. Writing an analyzer program explains the inputs and outputs from an analyzer program, and how they are used to determine request processing.