PM80902: A URL is empty after invoking a webservice from CICS transaction
Fixes are available
Closed as program error.
A URL is found to be empty after invoking a webservice from CICS transaction across regions. This applies to webservices created in Rational Business Developer EGL. Error from CICS log ------------------- DFHPI0506...T2CICO1 TSMI The CICS Pipeline Manager has failed to communicate with a remote server due to an invalid URI scheme being specified. URI: , PIPELINE: FRPIPE01. Error from application log --------------------------- ENUELA00093I An error occurred in program PPPPPP, function FFFFFF ENUELA00205P A CICS READ error occurred in service ELAESERR ENUELA00204I CICS EIBFN 0602, RCODE 010000000000, RESP 12, RESP2 1 ENUELA00105I Error occurred at terminal ?... ENUELA00105C CEN02 ENUELA00093I An error occurred in program PPPPPP, function FFFFFF ENUELA00205P A CICS SYNCPOINT error occurred in service SSSSSSSS ENUELA00204I CICS EIBFN 1602, RCODE E00000000000, RESP 16, RESP2 200 ENUELA00093I An error occurred in program PPPPPP, function FFFFFF ENUELA00205P A CICS SYNCPOINT error occurred in service SSSSSSSS ENUELA00204I CICS EIBFN 1602, RCODE E00000000000, RESP 16, RESP2 200 The system or user abend ELAE was issued. Workaround ---------- One of the default COBOL parameters for the EGL build server is DBCS. It is because of this parameter default that the COBOL bug gets triggered. Add the following symbolic parameter to the EGL build descriptor: COBLISTPARMS with a value of 'NODBCS' If a COBLISTPARMS symbolic parameter already exists, then simply add ',NODBCS' to the end of it. Regenerate the EGLDD for the web service. This will regenerate the program with the problem.
The problem is actually a bug in the COBOL compiler, when the DBCS compiler option is used. For some reason, the cobol compiler believes that the literal on a MOVE FUNCTION NATIONAL-OF("literal") TO statement is a unicode literal, when it is not, so the literal gets changed again to unicode, producing invalid results. If the literal was shortened by a few bytes, then it believes the literal to be character, which is really is.
Cobolgen gets around this problem by making the literal one of the cobolgen variables, so the definition of the text is in a PIC X clause. This eliminates the possibility of the cobol compiler from assuming the literal is already unicode.
Reported component name
RATL BUS DEV
Reported component ID
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
RATL BUS DEV
Fixed component ID
Applicable component levels