Hello,
Please include the enhancement to rectify the problem that one of our PL/I client is currently experienced. Please see the dialog below extracted from Service Request number 27737,102,616 for the description and the suggested course of action.
Thanks and regards
Hung Le
Service Request number 27737,102,616:
====================================
Problem title
The Enterprise PLI compiler whilst using the SQL Co Processor gives
ambiguous and uninformative messages.
Problem description
The Enterprise PLI compiler whilst using the SQL Co Processor gives
ambiguous and uninformative messages when semicolons are missing in PLI
code.
The following short PLI program
PLIXXX : PROC OPTIONS(MAIN,REENTRANT) REORDER;
EXEC SQL INCLUDE SQLCA;
DCL X CHAR(8);
SELECT
WHEN (1=1);
WHEN (2=1);
END;
CALL PROC1;
PROC1 : PROC;
EXEC SQL SET :X = CURRENT SQLID;
END PROC1;
END PLIXXX;
Gets error message
IBM3880I S 13.0 The reference X could not be resolved.
And no other errors, this can be very time consuming to determine the
error is on the SELECT in very large programs.
When using the PLI Expand, DB2 Precompile, PLI compile method the
program compiles with error message
IBM1122I W 19 Missing ; assumed before WHEN.
I suggest there is a need to modify the SQL Co Processor to provide a
clearer error when semicolons are missed.
Output from sample compiles can be found
AAMD
X13052$S JOB 9933 Ent PLI 4.2 SQL Co Processor
X13052$S JOB 9949 Ent PLI 4.2 Expand, Precompile, Compile
Note the same issue occurs with Ent PLI 3.9
Here is the response from ISC:
Hello Level-2,
Customer found the correct error message (IBM1122I Missing ; ..) when
using PLI Expand, DB2 Precompile, PLI compile method.
However, when using the SQL Co Processor, the error message was
confusing (IBM3880I The reference X could not be resolved).
The same message occurs in both Enterprise PL/I for z/OS 4.2 and 3.9.
..
Searched RETAIN but could not find any hit.
Please help to analyse the problem.
Regards,
James.
KOSTECK, DANIEL N 12/20/12 12:37 AM
Action Taken: We have seen this reported before. There is no solution
in current release but we were considering for future changes. The old
problem record is 54725,010,678.
I have informed developer that we have had another issue reported. The
basic explanation from older record is as follows:
--------------------------------------------------------------------
The 4.2 SQL preprocessor always enforces name scoping and
thus must recognize all DO and END (and BEGIN/END, SELECT/END, PROC/END
etc). Statements other than DECLARE statements it ignores by looking
for their closing semicolons. If user code is incorrect because a
semicolon has been omitted, this may cause some of these types of PL/I
statements to be missed and incorrect scoping to result.
--------------------------------------------------------------------
I am checking to see if there is anything in the works or something
else our development team would like to add to the above explanation.
Action Plan: I will set a follow-up for Jan. 2nd. If I get feedback
sooner I will update the record.
KOSTECK, DANIEL N 12/20/12 4:03 PM
Hi James,
I conferred with our developers on this one. They may do some
enhancements in this area in the next and future releases. See my
previous update regarding an problem record we received earlier.
Please point Hung Le to the following link to add a formal request
for enhancement on this:
http://www.ibm.com/developerworks/rfe/?PROD_ID=699
Let me know if you would like us to respond directly to Hung. Please
add one team FI if that is desired.
Best Regards,
Dan Kosteck
Due to processing by IBM, this request was reassigned to have the following updated attributes:
Brand - Servers and Systems Software
Product family - Programming Languages
Product - PL/I Compilers
For recording keeping, the previous attributes were:
Brand - Rational
Product family - Design & development
Product - PL/I Compilers
This is available with Enterprise PL/I V4R4
this would be useful