A fix is available
APAR status
Closed as program error.
Error description
Trying to launch an Application using Web Services in CICS caused a noticeable increase in CPU usage. The reason for the high CPU was because the output from the customer's webservice request consists of a large volume of fields. The amount of generated XML is approximately 380K. So this partly explains the overhead of runing DFHPIII PARSE_ICM. However, the caller of DFHPIII (DFHPITL) passes a default 32K buffer to DFHPIII. This is never large enough to hold the output. DFHPIII actually constructs all the XML fragments (in a work buffer) and keeps track of the cumulative size of generated XML. DFHPIII then returns a BUFFER_OVERFLOW response to DFHPITL informing it of the required buffer size. DFHPITL then frees off the old 32K buffer and getmains a larger buffer before calling DFHPIII a second time. So each webservice request is having to go through DFHPIII 2 times over. Each webservice defined to CICS has a Webservice control block 'pi_wsbcontrol' used to hold state information. So it should be possible to record the required XML buffer size for each individual webservice (by effectively maintaining a high-watermark value). This size can then be used on future invocations of the webservice in preference to the default 32K buffer. This high-watermark value should (over time) eliminate these BUFFER_OVERFLOW conditions and reduce the overhead of DFHPIII PARSE_ICM processing.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All CICS users. * **************************************************************** * PROBLEM DESCRIPTION: Excessive CPU overhead when delivering * * webservice responses over 32K. * **************************************************************** * RECOMMENDATION: * **************************************************************** When the webservice pipeline generates a webservice response which exceeds 32K, there are 2 calls to DFHPIII for function PARSE_ICM. The first call from DFHPITL passes a 32K buffer to hold the response. DFHPIII works out the actual size of the SOAP/XML response and returns this value to DFHPITL. DFHPITL then getmains a larger buffer and calls PARSE_ICM a second time. The PARSE_ICM call is quite CPU intensive so duplicate calls to this function increase region CPU times. ADDITIONAL KEYWORDS :- PERFM
Problem conclusion
DFHPITL has been changed to monitor the size of SOAP/XML responses for individual webservices. A high watermark response size is maintained (subject to a cap of 5-megabytes) and this is used as the buffer size for future PARSE_ICM calls for the individual webservice.
Temporary fix
FIX AVAILABLE BY PTF ONLY
Comments
APAR Information
APAR number
PK50759
Reported component name
CICSTS V3 Z/OS
Reported component ID
5655M1500
Reported release
400
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2007-08-09
Closed date
2008-03-03
Last modified date
2008-04-01
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UK34220 UK34221
Modules/Macros
DESPIDC DESPIDUF DESPITL DESPIWR DFHPIDCC DFHPIDCD DFHPIDUF DFHPITL DFHPIWR
Fix information
Fixed component name
CICSTS V3 Z/OS
Fixed component ID
5655M1500
Applicable component levels
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"3.1","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"3.1","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
01 April 2008