URIMAP resources

URIMAP definitions are resources that match the URIs of HTTP, Atom feed, or web service requests, and provide information on how to process the requests.

Requests from a web client, to CICS as an HTTP server

URIMAP definitions for requests for CICS® as an HTTP server have a USAGE attribute of SERVER. These URIMAP definitions match the URLs of HTTP requests that CICS expects to receive from a web client, and they define how CICS should provide a response to each request. You can use a URIMAP definition to tell CICS:
  • Provide a static response to the HTTP request, by using a document template or z/OS® UNIX System Services file.
  • Provide an application-generated response to the HTTP request, by using an application program.

The web client requests might qualify for being processed by directly attached user transactions, and bypassing the web attach task. For more information, see HTTP requests are processed by directly attached user transactions.

For information about configuring CICS as an HTTP server, see Enabling CICS web support for CICS as a HTTP server. For information about the CICS resources that are required for the HTTP server, see Defining resources for CICS as a HTTP server.

Requests to a server, from CICS as an HTTP client

URIMAP definitions for requests from CICS as an HTTP client have a USAGE attribute of CLIENT. These URIMAP definitions specify URLs that are used when a user application, acting as a web client, makes a request through CICS web support to an HTTP server. Setting up a URIMAP definition for this purpose means that you can avoid identifying the URL in your application program. You can also choose to pool opened connections for reuse by the same application or another application. For more information, see Creating a URIMAP resource for CICS as a HTTP client.

Requests from a SOAP client to CICS as a web service provider

URIMAP definitions for inbound web service requests have a USAGE attribute of PIPELINE. These URIMAP definitions associate a URI for an inbound web service request (that is, a request by which a client starts a web service in CICS) with the PIPELINE and WEBSERVICE resources that specify the processing to be performed.

For service providers deployed by using the CICS web services assistant, URIMAP resources are created automatically when the pickup directory is scanned. This scan occurs when the PIPELINE resource is installed or as a result of a PERFORM PIPELINE SCAN command. The URIMAP resource that provides CICS with the information to associate the WEBSERVICE resource with a specific URI is a required resource. The attributes for this resource are specified by a web service binding file in the pickup directory. The URIMAP resource that provides CICS with the information to associate the WSDL archive file or WSDL document with a specific URI is an optional resource and is created if either a WSDL file or WSDL archive file is present in the pickup directory.

Web services overview has further information about web services in CICS.

The SOAP client requests might qualify for being processed by directly attached user transactions, and bypassing the web attach task. For more information, see HTTP requests are processed by directly attached user transactions.

Requests to a web service provider from CICS as a web service requester

URIMAP definition for outbound web service requests by using the INVOKE WEBSERVICE command are optional and have a USAGE attribute of CLIENT. For example, you can use the URIMAP definition to specify the cipher suites or certificate label to use when you are establishing a socket connection that uses Transport Layer Security (TLS). You can also choose to pool opened connections to be reused for further INVOKE WEBSERVICE commands by the application, rather than opening a new connection each time. URIMAP definitions give administrators control of the connection to the remote web service: they can change its URI as needed, or enable and disable the URIMAP to allow or disallow the connection.

For service requesters, CICS does not create any URIMAP resources automatically when the PIPELINE resource is installed or as a result of a PERFORM PIPELINE SCAN command.

Requests from a web client to Java web application

URIMAP definitions for Java™ web applications have a USAGE attribute of JVMSERVER. These URIMAP definitions match an inbound request from a web client to a servlet or JSP that is running in a JVM server. URIMAP matching for web applications occur on the initial HTTP request and not on any forwarded requests. The URIMAP can specify a CICS transaction to run the request in the JVM server and optionally a user ID.

For more information, see Deploying a Java EE application in a CICS bundle to a Liberty JVM server.

Atom feed requests

URIMAP definitions for Atom feed requests have a USAGE attribute of ATOM. These URIMAP definitions match an inbound request from a web client for an Atom document. They reference an ATOMSERVICE resource definition that specifies the Atom document to be returned.

For more information, see Setting up CICS definitions for an Atom feed.

The Atom feed requests might qualify for being processed by directly attached user transactions, and bypassing the web attach task. For more information, see HTTP requests are processed by directly attached user transactions.

Business event emissions from the HTTP EP adapter

URIMAP definitions for CICS event processing have a USAGE attribute of CLIENT. These URIMAP definitions specify a URL that the HTTP EP adapter uses to emit events to an HTTP 1.1 compliant server that uses HTTP POST. You can choose to pool opened connections to be reused for further event emissions. Event processing overview has further information about CICS event processing.

For CICS as an HTTP server, URIMAP definitions incorporate most of the functions that were previously provided by the analyzer program that is associated with the TCPIPSERVICE definition. You can still use an analyzer program in the processing path if you need to do so.

URIMAP search order

If multiple URIMAPs are available, any URIMAPs with the same URI and a TCPIPSERVICE are searched first. URIMAPs containing wildcards are searched for a matching URI first and TCPIPSERVICE last. This search order ensures that the most specific URIMAP is used.

URIMAP resources in CICS bundles

You can use a CICS bundle to create, edit, and install a URIMAP resource definition. If you create a URIMAP resource in this way, you must use the CICS bundle to manage the lifecycle of that resource, and you cannot manage the resource independently. You can inquire on a URIMAP resource that is dynamically generated by a CICS bundle, by using the EXEC CICS INQUIRE URIMAP or CEMT INQUIRE URIMAP command. However, you cannot issue SET or DISCARD commands against a URIMAP resource that is dynamically generated by a CICS bundle. You must issue the commands against the BUNDLE resource, and CICS applies them to the URIMAP resource. For more information about defining resources in CICS bundles, see Defining CICS bundles.

URIMAP resources as application entry points

The following usage scenarios are supported when you are using the URIMAP resource as an application entry point:
URIMAP resource with USAGE(JVMSERVER) using Liberty
If the URIMAP resource located by the Liberty JVM server is defined with an application entry point, the application context data is set for the JVM server request processor task, or its alias as specified by the transaction attribute.
URIMAP resource with USAGE(SERVER), or USAGE(PIPELINE) that does not use WebSphere® MQ
If the URIMAP resource located by CWXN is defined with an application entry point, the application context data is set for the CWXN task. Then, because CWXN is a user task, the application context data can be automatically propagated to the alias transactions started by CWXN; for example, CPIH for USAGE(PIPELINE), CWBA for USAGE(SERVER), or the transaction that is specified by the TRANSACTION field.
The following usage scenarios are not supported when you are using the URIMAP resource as an application entry point:
URIMAP resource with USAGE(PIPELINE) using WebSphere MQ
This scenario is not supported.
URIMAP resource with USAGE(CLIENT), or USAGE(ATOM)
These scenarios are not supported. A bundle with URIMAP and USAGE(CLIENT) or a bundle with URIMAP and USAGE(ATOM) have the status DISABLED if the URIMAP is defined as an application entry point. If the bundle is installed and you attempt to enable the bundle, the ENTRYPOINT bundle part within the bundle has the status DISABLED and as a result the bundle has the status DISABLED.

Use the INQUIRE URIMAP and CEMT INQUIRE URIMAP commands to return the details of the application for which the URIMAP resource is defined as an entry point.

For more information about application entry points, see Application entry points.