Analyzer programs

Top  Previous  Next

Analyzer programs are associated with TCPIPSERVICE definitions. Their primary role is to interpret an HTTP request if a URIMAP definition specifies the use of an analyzer program, or if no URIMAP definition is present.

Relationship between analyzer programs and URIMAP definitions
URIMAPs definitions are the strategic facility to control the processing of HTTP requests. They replace key functions of the analyzer program in matching the URLs of requests to the application program that processes them, and specifying the use of a converter program and an alias transaction.

URIMAP definitions may, however, invoke an analyzer program for selected HTTP requests, to take over some of the processing stages, and to perform other actions such as monitoring or audit actions. The attributes of the URIMAP definition that reproduce analyzer functions, namely "converter" (converter program name), "transaction" (alias transaction), "userid" (user ID for alias transaction), and "program" (name of application program to process request), can be passed to the analyzer program, and the analyzer program can choose to override these.

You can choose to pass an HTTP request directly to an analyzer program without using a URIMAP definition, following the same process used by IBM CICS Transaction Server Version 2. However, without URIMAP definitions, if you want to change the way in which XCICS responds to a particular HTTP request, you need to change the logic in the analyzer program. With URIMAP definitions, you can perform these changes dynamically as a system management task.

Note: As supplied, the XCICS-supplied default analyzer program DFHWBAHX does not perform any analysis of a request when a matching URIMAP definition has been found for the request, even if the URIMAP specifies "analyzer=yes".

Use of analyzer programs for error handling

Although an analyzer program is not now required in the processing path for every HTTP request, an analyzer program must still be specified for each TCPIPSERVICE resource definition that is used for XCICS Web support.

The name of the analyzer program is specified in the URM attribute of the resource definition. You can specify a different analyzer in each TCPIPSERVICE definition, or you can specify the same analyzer in more than one TCPIPSERVICE definition. If you are invoking an analyzer program from a URIMAP definition, you cannot choose between different analyzer programs; you can only select whether or not to use the analyzer program specified for the TCPIPSERVICE definition.

The analyzer program specified for a TCPIPSERVICE definition is invoked to handle an HTTP request if XCICS does not find a matching URIMAP definition for the request. This could be caused by a user error in typing a request URL, or because the appropriate URIMAP definition is not installed.

The XCICS-supplied default analyzer program DFHWBAHX is the default

Use of analyzer programs for some non-Web-aware applications, and for non-HTTP messages

Non-Web-aware applications might function correctly when they are invoked directly from a URIMAP definition. However, because these applications do not use the EXEC CICS WEB API commands, some might be dependent on facilities that can only be provided for them by an analyzer program.

For non-HTTP requests, which use the user-defined (USER) protocol on the TCPIPSERVICE definition, an analyzer program is always required to process
the requests, and URIMAP definitions cannot be used.

 
Use of analyzer programs for additional processing

In situations where the use of an analyzer program in the processing path is optional, you might choose to use an analyzer program for reasons such as the following:

You want to make dynamic changes to elements of the processing path, based on the content of the request. Each URL for a HTTP request is matched by a single URIMAP definition, which defines a single processing path. An analyzer program can interpret the content of the request and change elements such as the application program that handles the request, the involvement of a converter program, or the alias transaction and user ID used for the request.
You want to introduce monitoring or audit actions into the process. An analyzer program is an appropriate location in which to do this.