Skip to end of metadata
Go to start of metadata

CICS TS 5.3 introduces a capability to eliminate the execution of the CWXN transaction for some web service applications.  As stated in the IBM Redbook IBM CICS Performance Series: Web Services Performance in CICS TS V5.3:

"For applications that use the CICS web support (either as a web application or as a web service), optimizations have been made to remove the CWXN transaction where it is no longer necessary. If an inbound request is received by CICS, the user transaction will be directly attached without an intermediate CWXN transaction, if the following conditions are met:

....

This removal of the CWXN transaction results in an improvement in the CPU consumed per web request."

As of  version 6.78, HostBridge has been enhanced to take advantage of this performance enhancement.


Here are the criteria for determining whether or not HostBridge requests can be run without the CWXN transaction:

  • You must be running CICS TS 5.3 or later.
  • You must be running HostBridge 6.78 or later. 
  • You must define a set of URIMAPS and a new TCPIPSERVICE definition to allow CICS to realize that the incoming HostBridge request is eligible for CWXN elimination.  Examples of these definitions will follow.
  • You must be issuing HostBridge requests to CICS using the HTTP protocol.  Any requests using SSL are not eligible for CWXN elimination, however AT-TLS requests are.  With this AT-TLS configuration, CICS sees the incoming data as HTTP, not HTTPS, because TCP/IP handles the handshaking and encryption/decryption. This means that unlike CICS in an SSL environment, in this scenario CICS TS V5.3 can take advantage of eliminating the CWXN transaction.
  • You must indicate in your URIMAP definitions that there is no analyzer program to execute by setting the ANALYZER parameter to NO.
  • You must not be issuing HostBridge requests where HostBridge is defined as a trusted host (see the documentation for the HB_TRUSTED_HOST and HB_TRUSTED_USERID directives for more information about HostBridge being defined as a trusted host).  Since this capability requires an analyzer program, it is incompatible with the CWXN elimination enhancement.
  • You must not be issuing HostBridge requests where authentication is done using the HostBridge "Asserted ID" capability.  Since this capability requires an analyzer program, it is incompatible with the CWXN elimination enhancement.  
  • You must not be issuing HBX script requests (as opposed to HB.js).  They are not candidates for CWXN elimination.
  • You must not be using the HBR$AUTH security exit.  That exit and its processing is incompatible with the CWXN elimination enhancement. 


In order to configure HostBridge to take advantage of the CWXN elimination, you must define two or more URIMAPS and a new TCPIPSERVICE definition to your CICS region where HostBridge is installed and running.  Here are examples of the entries:

DEFINE TCPIPSERVICE(HBCOMBND) GROUP(***HBGRUP***)                           
DESCRIPTION(HOSTBRIDGE COMBINED PRODUCT PORT)                     
       URM(DFHWBAAX) PORTNUMBER(7330) STATUS(OPEN) PROTOCOL(HTTP) 
       TRANSACTION(CWXN) BACKLOG(10) HOST(ANY) IPADDRESS(ANY)     
       SOCKETCLOSE(10) MAXPERSIST(NO) MAXDATALEN(128) SSL(NO)     
       AUTHENTICATE(BASIC) 
*                     
DEFINE URIMAP(HBUBASE) GROUP(***HBGRUP***)                                            
DESCRIPTION(URI TO HWBA TRANSACTION)                                        
       STATUS(ENABLED) USAGE(SERVER) SCHEME(HTTP) PORT(NO) HOST(*)          
       PATH(/hostbridge*) TCPIPSERVICE(HBCOMBND) ANALYZER(NO)               
       CONVERTER(HBR$BLEX) TRANSACTION(HWBA) REDIRECTTYPE(NONE)         
*            
DEFINE URIMAP(HBUJSE) GROUP(***HBGRUP***)                                             
DESCRIPTION(URI TO HBJS TRANSACTION)                                        
       STATUS(ENABLED) USAGE(SERVER) SCHEME(HTTP) PORT(NO) HOST(*)          
       PATH(/*) TCPIPSERVICE(HBCOMBND) ANALYZER(NO) CONVERTER(HBR$BLEJ)     
       TRANSACTION(HBJS) REDIRECTTYPE(NONE)                                 

A downloadable version of the sample above can be found here: CWXN_Elimination_RDO_Example.txt

Please note the following:
  • You can change the port number in the TCPIPSERVICE definition to whatever you want.   
  • The HTTP inbound requests to HostBridge remain unchanged from what you currently specify, with the exception that you will now specify the port number in the TCPIPSERVICE request above. 
  • Both of the URIMAP definitions above point to the same TCPIPSERVICE definition.  This means that utilizing the CWXN elimination method will also allow you to send all HostBridge requests (base or HB.js) to the same port number, and that you will now need to define only one TCPIPSERVICE definition for HostBridge.
  • The PATH parameters are case sensitive.  
  • The URIMAPs will be serviced in decreasing order of path complexity.  In the sample definitions above, any inbound request that starts with a path of /hostbridge (in other words, base HostBridge requests) will be serviced using the HBUBASE URIMAP (with transaction HWBA and converter program HBR$BLEX).  Any other requests will be serviced by the HBUJSE URIMAP (with transaction HBJS and converter program HBR$BLEJ).   The path definition of /* is a catch all meaning 'any path that does not confirm to the path definition in other URIMAPS'.
  • The CWXN elimination processing will be bypassed in the following two circumstances:
    • When an authentication error occurs.  NOTE:  This can be mostly bypassed if you are using .net for your script development and set PreAuthenticate to True for every request to the host.
    • When a backlogged request is processed (review the BACKLOG parameter of the TCPIPSERVICE definition 

Please contact HostBridge Support if you have any questions about this enhancement.

  • No labels
Write a comment…