There are several changes to the processing carried out by the
CICS-supplied transaction CWXN, the Web attach transaction. The most
significant of these are:
- If a matching URIMAP definition is found for an HTTP request,
CWXN now invokes the analyzer program only if instructed to do so
by the URIMAP definition.
- Where the HTTP version of the request is HTTP/1.1, CWXN carries
out some of the responsibilities of an HTTP server by performing some
basic acceptance checks on the request. In response to these checks,
CWXN might take action to return a response to the request without
involving a user-written application program.
- CWXN pre-processes chunked and pipelined messages received from
a Web client, so that user-written applications do not have to perform
this processing.
- Chunked messages are single messages split up and sent as a series
of smaller messages (chunks). CWXN receives and assembles the chunks
of the message to create a single HTTP request. CWXN checks that the
message is complete before passing it to the user application. The
user application can then process the request like any other HTTP
request.
- Pipelined messages are multiple messages sent in sequence, where
the sender does not wait for a response after each message sent. A
server must respond to these messages in the order that they are received.
To ensure this, CWXN holds pipelined requests and releases them one
at a time to the user application. The user application must send
a response to the first request before receiving the next request
from CWXN.
- Persistent connections are now the default behavior. The connection
is only closed if the Web client requests closure, or if the timeout
period is reached, or if the Web client is an HTTP/1.0 client that
does not send a Keep-Alive header.
- Before CICS® Transaction Server for z/OS®, Version
3 Release 1, if a Web client and CICS had
a persistent connection, the CWXN transaction would remain in the
system for the duration of the persistent connection. Now, the CWXN
transaction terminates after each request from the Web client has
been passed to the alias transaction (CWBA or another transaction),
or after the static response has been delivered. The Sockets listener
task monitors the socket and initiates a new instance of CWXN for
each request on the persistent connection. This behavior, known as
an asynchronous receive, avoids the possibility of a deadlock in a
situation where the maximum task specification (MXT) has been reached,
when a CWXN transaction remaining in the system would not be able
to attach alias transactions to process further requests. It also
means that the maximum number of concurrent connections between CICS and
Web clients is no longer limited by the MXT value, but can in theory
be up to 64000. In terms of system activity, if you used persistent
connections before CICS Transaction Server for z/OS,
Version 3 Release 1, you should now see an increased transaction rate,
but a decrease in the number of concurrent tasks.
[[ Contents Previous Page | Next Page Index ]]