IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Free FILE not working for specific users


IBM Mainframe Forums -> CLIST & REXX
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
sankalp-goyal

New User


Joined: 27 Jan 2016
Posts: 5
Location: India

PostPosted: Mon Apr 25, 2016 6:33 pm
Reply with quote

I am new to REXX, Below code is working fine for some users but same code gives error for other users :

CODE :

Code:
DSN2 = 'MY.PS.FILE'               
"Alloc F(RDATA) REUS DA('"DSN2"') SHR"         
"ExecIO * DiskR RDATA (Stem Lines. Finis "     
Count = Lines.0                                 
"DelStack"           
"Free FILE(RDATA)"


Error :

Code:
 *-*    "Free FILE(RDATA)"
 +++ RC(-2054) +++ 


To add this file is not freed till that user logoff from TSO. This file is available to others only after that user is logged off.
I am not sure if there is something in user profile that is affecting it. Is there a work around to FREE it for all users.

Thanks,
Sankalp.

Coded
Back to top
View user's profile Send private message
Nic Clouston

Global Moderator


Joined: 10 May 2007
Posts: 2454
Location: Hampshire, UK

PostPosted: Mon Apr 25, 2016 7:53 pm
Reply with quote

Probably for the same reason as you posted int he IBM Tools forum instead of the Rexx forum. Moving.
Back to top
View user's profile Send private message
Pedro

Global Moderator


Joined: 01 Sep 2006
Posts: 2593
Location: Silicon Valley

PostPosted: Mon Apr 25, 2016 9:41 pm
Reply with quote

can you show us a trace?

This does not appear to be the full code... perhaps you have an Address statement that you are not showing us.
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10886
Location: italy

PostPosted: Mon Apr 25, 2016 10:50 pm
Reply with quote

Quote:
perhaps you have an Address statement that you are not showing us.


for privacy reasons quite a few people do not like to post the Address icon_lol.gif
Back to top
View user's profile Send private message
Akatsukami

Global Moderator


Joined: 03 Oct 2009
Posts: 1787
Location: Bloomington, IL

PostPosted: Tue Apr 26, 2016 12:20 am
Reply with quote

The -2054 return code from FREE suggests that FREE is ending with a S806 abend, although unless you have changed the default environment I can't think of a non-arcane way that this could happen. If possible, run this in batch using the IKJEFT1A entry point of background TSO, and check the sysout for CS messages
Back to top
View user's profile Send private message
sankalp-goyal

New User


Joined: 27 Jan 2016
Posts: 5
Location: India

PostPosted: Tue Apr 26, 2016 11:08 am
Reply with quote

Thanks for replying guys!

This is the full code. For testing I copied these 7 lines in a separate PDS member and asked that user to execute it. He is getting the same -2054 error. While all other user can execute it without error.

Code:
VIEW       MY.TOOLS.REXXLIB(TEST) - 01.34          Columns 00001 00072
Command ===>                                                  Scroll ===> CSR 
****** ***************************** Top of Data ******************************
000001 /* REXX, Test tool */                                                   
000002     DSN2 = 'MY.PS.FILE'                                   
000003     "Alloc F(RDATA) DA('"DSN2"') SHR"                               
000004     "ExecIO * DiskR RDATA (Stem Lines. Finis"       
000005     Count = Lines.0                       
000006     "DelStack"                                                         
000007     "Free FILE(RDATA)"



Below is the trace data :
Code:
     3 *-* DSN2 = 'MY.PS.FILE'             
       >L>   "MY.PS.FILE"                 
     4 *-* "Alloc FILE(RDATA) DA('"DSN2"') SHR"         
       >L>   "Alloc FILE(RDATA) DA('"                   
        >V>   "MY.PS.FILE"                                       
        >O>   "Alloc FILE(RDATA) DA('MY.PS.FILE"                 
        >L>   "') SHR"                                                         
        >O>   "Alloc FILE(RDATA) DA('MY.PS.FILE') SHR"           
 DATA SET MY.PS.FILE NOT ALLOCATED, FILE IN USE                   
        +++ RC(12) +++                                                         
      5 *-* "ExecIO * DiskR RDATA (Stem Lines. Finis)"                         
        >L>   "ExecIO * DiskR RDATA (Stem Lines. Finis)"                       
      6 *-* Count = Lines.0                                                     
        >V>   "146"                                                             
      7 *-* "DelStack"                                                         
        >L>   "DelStack"                                                       
      8 *-* "Free FILE(RDATA)"                                                 
        >L>   "Free FILE(RDATA)"                                               
        +++ RC(-2054) +++ 


This file is not open by anyone but still it is saying file in use.
--------------------------------------------------------------------------------------------

One more strange this is , his start up procedures (that allocates SYSPROC and other things) runs at the time he logoff. For all other user, this runs at the time of logging IN to TSO.

Also when he PF3 from librarian browse module , he gets the same error. This is because browsing a dataset in librarian creates a temporary dataset and deletes this temp dataset when we do PF3. But he gets same -2054.

When we browse a module we get :

Code:
DATA SET PRD.USER.TEMP.MODULE.LB11111 CREATED.                             
THE MODULE JUST COPIED IS NOT OUTSTANDING DUE TO "READONLY" SPECIFIED.         
***


When we PF3 it simply exits without any error. But this user get following error message when he does PF3 from lib-browse :

Code:
        *-*  ADDRESS TSO "DELETE" bTSO                   
        +++ RC(-2054) +++                                 
 ***

Coded again
Back to top
View user's profile Send private message
sankalp-goyal

New User


Joined: 27 Jan 2016
Posts: 5
Location: India

PostPosted: Tue Apr 26, 2016 3:04 pm
Reply with quote

I changed his profile to have WTPMSG from NOWTPMSG . Now it is giving the actual error description :

Code:
IEW4007I FIND FOR MODULE DELETE   FAILED BECAUSE DIRECTORY ENTRY IS NOT VALID FOR A LOAD MODULE.                                                               
 CSV003I REQUESTED MODULE DELETE   NOT FOUND                                   
 CSV028I ABEND806-04  JOBNAME=USERID    STEPNAME=AAATSOV2                       
 IEA995I SYMPTOM DUMP OUTPUT                                                   
 SYSTEM COMPLETION CODE=806  REASON CODE=00000004                               
  TIME=03.56.21  SEQ=51280  CPU=0000  ASID=00F2                                 
  PSW AT TIME OF ERROR  070C1000   815714CE  ILC 2  INTC 0D                     
    NO ACTIVE MODULE FOUND                                                     
    NAME=UNKNOWN                                                               
    DATA AT PSW  015714C8 - 8400181E  0A0D18FB  180C181D                       
    GR 0: 00001F00   1: 84806000                                               
       2: 00000000   3: 00000000                                               
       4: 00000000   5: 0096C1F8                                               
       6: 000000FF   7: 00000000                                               
       8: 7F375150   9: 015719F0                                               
       A: 00000000   B: 00000000                                               
       C: 00000000   D: 7F375150                                               
       E: 84806000   F: 00000004                                               
  END OF SYMPTOM DUMP                                                           
        *-*  ADDRESS TSO "DELETE" bTSO                                         
        +++ RC(-2054) +++                                                       
 ***



Any idea, in which library module DELETE can be found ?
Coded yet again
Back to top
View user's profile Send private message
Nic Clouston

Global Moderator


Joined: 10 May 2007
Posts: 2454
Location: Hampshire, UK

PostPosted: Tue Apr 26, 2016 7:27 pm
Reply with quote

Please use the code tags when posting screen "shots", code, data and anything else requiring a fixed pitch font.
Back to top
View user's profile Send private message
Pedro

Global Moderator


Joined: 01 Sep 2006
Posts: 2593
Location: Silicon Valley

PostPosted: Tue Apr 26, 2016 9:39 pm
Reply with quote

Code:
        >O>   "Alloc FILE(RDATA) DA('MY.PS.FILE') SHR"           
 DATA SET MY.PS.FILE NOT ALLOCATED, FILE IN USE   

The message is complaining about file name, RDATA, not about the data set name. The same user already has it allocated. Your earlier example showed ALLOC with REUS, which is what you should have.

All signs point to a setup problem.

Some sites have a command field on the panel when you logon and provide the password. Some sites have the start up procedure executed from the logon proc. If you provide a 'ISPF' command in the command field, it might gets done first, preventing the start up procedure from being executed until ISPF ends.

I would expect DELETE to be in the linklist... available to all TSO users at all times. but perhaps the delay in executing the start up procedure causes it not to be found.

Some questions:
Do you all use the same logon proc?

Do you all specify the same region size? (sometimes, you get an 806 abend when there is no room to load the module).

Is everyone's start up procedure the same? Compare the broken user's start up with one that works.
Back to top
View user's profile Send private message
Pedro

Global Moderator


Joined: 01 Sep 2006
Posts: 2593
Location: Silicon Valley

PostPosted: Tue Apr 26, 2016 9:45 pm
Reply with quote

This is probably important:
Code:
IEW4007I FIND FOR MODULE DELETE   FAILED BECAUSE DIRECTORY ENTRY IS NOT VALID FOR A LOAD MODULE.

I think the user has a steplib with a corrupt directory. Have the user issue TSO ISRDDN, followed by command MEMBER DELETE to find which PDS is corrupt.
Back to top
View user's profile Send private message
sankalp-goyal

New User


Joined: 27 Jan 2016
Posts: 5
Location: India

PostPosted: Wed Apr 27, 2016 10:03 am
Reply with quote

Thanks you so much for helping!

It was because of one member named DELETE in a PDS which was allocated to SYSEXEC. I found some other members like FREE etc.... also in that PDS. That was preventing the REXX to execute DELETE/FREE. REXX issue is solved now.
Back to top
View user's profile Send private message
Pedro

Global Moderator


Joined: 01 Sep 2006
Posts: 2593
Location: Silicon Valley

PostPosted: Thu Apr 28, 2016 1:35 am
Reply with quote

Lesson learned:
Do not use common command verbs as rexx exec names.
Back to top
View user's profile Send private message
Willy Jensen

Active Member


Joined: 01 Sep 2015
Posts: 734
Location: Denmark

PostPosted: Thu Apr 28, 2016 12:22 pm
Reply with quote

And perhaps another lesson: check after each significant statement. A test of the RC value after the ALLOCATE would have showed that that is where the problem actually was, not with the FREE.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CLIST & REXX

 


Similar Topics
Topic Forum Replies
No new posts Unable to interpret a hex value to De... COBOL Programming 4
No new posts how to eliminate null indicator value... DB2 7
No new posts Format Binary file to EBCDIC JCL & VSAM 4
No new posts Binary File format getting change whi... All Other Mainframe Topics 7
No new posts Compare 2 files and retrive records f... DFSORT/ICETOOL 3
Search our Forums:

Back to Top