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.
An incoming request may 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, and you should 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 invokes the analyzer again, and the user_data pointer addresses the next part of the message. You can repeat this process as many times as you need to until the entire request has been received, up to the maximum supported length of 32767 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.
For non-HTTP requests, CICS Web support does not perform any code page conversion on a request before the analyzer program is invoked.
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. Writing an analyzer program explains how to do this.
Alternatively, a Web-aware application program can specify code page conversion of incoming non-HTTP requests on a WEB RECEIVE command.
Note that non-HTTP requests are not parsed into the request line, header and body elements. Any code page conversion that is carried out, must be carried out for the whole 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 these are used to determine request processing.