Joined: 02 Dec 2002 Posts: 624 Topics: 175 Location: Stockholm, Sweden
Posted: Tue Jan 03, 2023 10:54 am Post subject: RC 12 from LMMLIST
I wonder if anyone can share any light on what this problem might be caused by.
I use an action bar drop down to show a list of members in a PDS.
The code is as follows (I've deleted the actual trace SAY lines for clarity)
Code:
/*******************************************************************
get a list of the member names in the filename passed in
*******************************************************************/
pdsmemb:
say 'In pdsmemb in 'rname ; trace ?a
Here are the results. First, if I simply start the panel and select the action bar straight away, it fetches all 7 member in the PDS.
Quote:
In pdsmemb in MSDB2UNL
3758 *-* arg dsn
+++ Interactive trace. TRACE OFF to end debug, ENTER to continue. +++
trace off
Line 3760 setting sw_trace to 1
DATA SET S6843F.MSDB2.UNLOAD NOT FREED, DATA SET IS OPEN
Line 3761 FREE DA 'S6843F.MSDB2.UNLOAD' RC = 12
Line 3760 LMINIT on dataset 'S6843F.MSDB2.UNLOAD' RC = 0
Line 3764 LMOPEN on dataid ISR00052 RC = 0
Line 3774 LMMLIST on dataid ISR00052 RC = 0 zerrlm=
Line 3774 LMMLIST on dataid ISR00052 RC = 0 zerrlm=
Line 3774 LMMLIST on dataid ISR00052 RC = 0 zerrlm=
Line 3774 LMMLIST on dataid ISR00052 RC = 0 zerrlm=
Line 3774 LMMLIST on dataid ISR00052 RC = 0 zerrlm=
Line 3774 LMMLIST on dataid ISR00052 RC = 0 zerrlm=
Line 3774 LMMLIST on dataid ISR00052 RC = 0 zerrlm=
Line 3774 LMMLIST on dataid ISR00052 RC = 8 zerrlm=No more members in this data
set.
Line 3783 LMCLOSE on dataid ISR00052 RC = 0
Line 3786 LMFREE on dataid ISR00052 RC = 0
and now if I first run code that accesses a DB2 table (in the same machine as the Rexx code) and writes whatever is extracted to an output file.
Quote:
In pdsmemb in MSDB2UNL
3758 *-* arg dsn
+++ Interactive trace. TRACE OFF to end debug, ENTER to continue. +++
trace off
Line 3760 setting sw_trace to 1
DATA SET S6843F.MSDB2.UNLOAD NOT FREED, DATA SET IS OPEN
Line 3761 FREE DA 'S6843F.MSDB2.UNLOAD' RC = 12
Line 3760 LMINIT on dataset 'S6843F.MSDB2.UNLOAD' RC = 0
Line 3764 LMOPEN on dataid ISR00053 RC = 0
Line 3774 LMMLIST on dataid ISR00053 RC = 12 zerrlm=Member name must be 1 to 8
characters long.
Line 3783 LMCLOSE on dataid ISR00053 RC = 0
Line 3786 LMFREE on dataid ISR00053 RC = 0
The manual says that rc 12 from LMMLIST is one of the following:-
Quote:
One of these:
The data set is not open or is not partitioned. (well, it's certainly partitioned)
A parameter value is invalid. (which would that be?)
Member list was created using LMMDISP. (I don't use LMMDISP anywhere in any Rexx script)
I have a variation on the SQL/Rexx code that checks the validity of the actual SQL. If I run this instead (which does NOT create any output files) then the LMMLIST works fine.
The weird (?) thing is the following.
- use the action bar (everything works fine)
- run the SQL/Rexx code and create an output file
- use the action bar which gives rc = 12 and an empty panel list
- use the action bar AGAIN, and the correct results are fetched and shown _________________ Michael
Joined: 26 Nov 2002 Posts: 12369 Topics: 75 Location: San Jose
Posted: Tue Jan 03, 2023 6:52 pm Post subject: Re: RC 12 from LMMLIST
misi01,
Isn't the issue on FREEing the dataset?
misi01 wrote:
DATA SET S6843F.MSDB2.UNLOAD NOT FREED, DATA SET IS OPEN
Line 3761 FREE DA 'S6843F.MSDB2.UNLOAD' RC = 12
misi01 wrote:
DATA SET S6843F.MSDB2.UNLOAD NOT FREED, DATA SET IS OPEN
Line 3761 FREE DA 'S6843F.MSDB2.UNLOAD' RC = 12
So is the dataset S6843F.MSDB2.UNLOAD allocated to another DDname ? _________________ Kolusu - DFSORT Development Team (IBM)
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
Joined: 02 Dec 2002 Posts: 624 Topics: 175 Location: Stockholm, Sweden
Posted: Wed Jan 04, 2023 2:34 am Post subject:
Thanks for your suggestion. The error turned out to be the following. I had some code that did the following
Code:
rc = check_valid_member(filename)
if rc <> 'OK' then
do
replace.0 = 0
return 1
end
where check_valid_member contained originally
Code:
check_valid_member:
arg member <---------------- Note this error
xx = msg('OFF')
rc = sysdsn("'"filename"'")
xx = msg(xx)
return rc
This error was then screwing up the contents of MEMBER elsewhere.
Once I changed MEMBER to FILENAME, the code worked as expected. _________________ Michael
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum