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

What causes "NULLFILE was preallocated (no free was don


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

Active Member


Joined: 08 Jun 2011
Posts: 556
Location: USA

PostPosted: Wed Nov 16, 2011 1:23 am
Reply with quote

Running a REXX in batch, it is using ISPF library services. I have the dataset in the JCL and am using the DDNAME parm for the services (see below).

Code:

/* REXX */       
/* TRACE ALL */ 
ADDRESS ISPEXEC 
"LMINIT DATAID(PDSIN) DDNAME(PDSIN)"                           
"LMINIT DATAID(MEMLIST) DDNAME(MEMLIST)"                       
"LMOPEN DATAID("PDSIN")"                                       
"LMOPEN DATAID("MEMLIST") OPTION(OUTPUT)"                       
DO FOREVER                                                     
  "LMMLIST DATAID("PDSIN") OPTION(LIST) MEMBER(MEM) STATS(YES)"
  IF RC <> 0 THEN LEAVE                                         
  "LMPUT DATAID("MEMLIST") MODE(INVAR) DATALOC(MEM) DATALEN(80)"
END                                                             
"LMMLIST DATAID("PDSIN") OPTION(FREE)"
"LMCLOSE DATAID("PDSIN")"               
"LMCLOSE DATAID("MEMLIST")"
EXIT 0                             


I'm not boxed in to using the ISPF library services or anything. So I can change this to whatever works.

If I remember correctly, if this were CLIST-type commands, the fix would be to not have the ALLOC/FREE statements. However, the DATAID value needs to be determined, so I need the LMINIT.

Also, the process actually works fine, I just want to know what is causing the message and try to get rid of it.

So... why is it popping up?
Back to top
View user's profile Send private message
Ed Goodman

Active Member


Joined: 08 Jun 2011
Posts: 556
Location: USA

PostPosted: Wed Nov 16, 2011 1:33 am
Reply with quote

Here is the JCL I used:
Code:

//JS010   EXEC PGM=IKJEFT01                                 
//PDSIN    DD DSN=WTSO.WNEG.COPYBOOK,DISP=SHR           
//MEMLIST  DD DSN=&&MEMLIST,DISP=(,PASS),                   
//            UNIT=SYSDA,SPACE=(TRK,1),LRECL=80,RECFM=FB,   
//            BLKSIZE=80,DSORG=PS                           
//SYSEXEC  DD DSN=WTSO.WNEG.JCL,DISP=SHR                   
//SYSPROC  DD DSN=WTSO.WNEG.JCL,DISP=SHR                   
//ISPPLIB  DD DSN=ISP.SISPPENU.NONTECH,DISP=SHR             
//         DD DSN=ISP.SISPPENU,DISP=SHR                     
//ISPMLIB  DD DSN=ISP.SISPMENU,DISP=SHR                     
//ISPSLIB  DD DSN=ISP.SISPSENU,DISP=SHR                     
//         DD DSN=ISP.SISPSLIB,DISP=SHR                     
//ISPTLIB  DD DSN=ISP.SISPTENU,DISP=SHR                     
//ISPLIST  DD SYSOUT=*                                     
//ISPLOG   DD DUMMY                                         
//ISPPROF  DD DISP=(NEW,PASS),DSN=&&ISPPROF,               
//         SPACE=(TRK,(10,10,5)),UNIT=SYSDA,               
//         DCB=(LRECL=80,BLKSIZE=0,DSORG=PO,RECFM=FB)       
//SYSTSPRT DD SYSOUT=*                                     
//SYSTSIN  DD *                                             
ISPSTART CMD(%MEMLISTR) NEWAPPL(ISP) BDISPMAX(9999)         
/*                                                   
//SYSPRINT DD SYSOUT=*                               
//SYSTERM  DD SYSOUT=*                               
//SYSUDUMP DD SYSOUT=*                               
//SDSFDUMP DD SYSOUT=*                               
//SYSOUT   DD SYSOUT=*                               
//AMSDUMP  DD SYSOUT=*                               
//SYSDBOUT DD SYSOUT=*                               
//SYSABEND DD SYSOUT=*                               
//SYSIN    DD *                                       
/*                                                   


I also had
Code:

//SYSIN    DD DUMMY                                       
Back to top
View user's profile Send private message
Akatsukami

Global Moderator


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

PostPosted: Wed Nov 16, 2011 2:07 am
Reply with quote

It seems that ISPF issues this message if data sets that it would allocate dynamically have already been allocated statically, i.e., in the JCL. You should have searched the fine Web first icon_wink.gif
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Wed Nov 16, 2011 2:56 am
Reply with quote

Quote:
So I can change this to whatever works.

There is a defect in your code... it has no comments to describe what you are trying to do.

Suggestion- instead of getting them one-by-one, with OPTION(LIST), get them all at once by using OPTION(SAVE).
Back to top
View user's profile Send private message
Ed Goodman

Active Member


Joined: 08 Jun 2011
Posts: 556
Location: USA

PostPosted: Wed Nov 16, 2011 3:15 am
Reply with quote

Oh I did search the web, but that link did NOT come up because I was too literal.
I used quotes:
"NULLFILE was preallocated (no free was done)"
in the google search box, and it filtered out that result.

A big difference when it's "NULLFILE" too. There isn't a way to track it back to a DD like there is when you get the temp name.
Back to top
View user's profile Send private message
Mickeydusaor

Active User


Joined: 24 May 2006
Posts: 258
Location: Salem, Oregon

PostPosted: Wed Nov 16, 2011 3:31 am
Reply with quote

if you just want to get rid of the message add the following to you Rexx.

XMSG = MSG('OFF') at the start of your Rexx.

XMSG = MSG('ON') at the end of your Rexx.
Back to top
View user's profile Send private message
Akatsukami

Global Moderator


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

PostPosted: Wed Nov 16, 2011 5:49 am
Reply with quote

Mickeydusaor wrote:
if you just want to get rid of the message add the following to you Rexx.

XMSG = MSG('OFF') at the start of your Rexx.

XMSG = MSG('ON') at the end of your Rexx.

No, that message is generated after the exec is exited.[/list]
Back to top
View user's profile Send private message
Ed Goodman

Active Member


Joined: 08 Jun 2011
Posts: 556
Location: USA

PostPosted: Wed Nov 16, 2011 8:00 am
Reply with quote

I experimented a bit after reading the provided link. When I changed the ISPLOG file not not be 'DUMMY', the message changed from "NULLFILE" to the temp file name.

If I take it out, I get the message that the normal log file name was kept.

Since I know what it is, I'll just live with it and put some comment in there to remind me later why that warning message is appearing.

I also went back and checked to see why the CLIST stuff didn't get the message. Say it with me...I WASN'T RUNNING ISPF!

Thanks for the link though, it did the trick.
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 PuTTY - "User is not a surrogate... IBM Tools 5
No new posts FTP into a preallocated dataset TSO/ISPF 2
No new posts Newbie Stuck on "Duplicate Datas... TSO/ISPF 5
No new posts RABBIT HOLE NEEDED - "Live"... All Other Mainframe Topics 0
No new posts Using PARM=('JPn"&SYMBOL&quo... DFSORT/ICETOOL 2
Search our Forums:

Back to Top