Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

Opening a dynamically allocated dataset in ICETOOL

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL
View previous topic :: :: View next topic  
Author Message
David Eisenberg

New User


Joined: 15 Nov 2007
Posts: 39
Location: New York

PostPosted: Wed Jan 20, 2010 3:03 am    Post subject: Opening a dynamically allocated dataset in ICETOOL
Reply with quote

Frank,

I'm honestly not sure whether my question pertains more to ICETOOL, JCL, or both... but here goes.

I need to execute an ICETOOL application beginning with

COPY FROM(INFILE) ...etc

INFILE will already exist; in fact, it is the logical concatenation of several preexisting datasets. These datasets will be different each time the application runs. I don't want to have to change the JCL each time I run the ICETOOL job; i.e., I don't want to have to change the DD statement for INFILE each time I execute the ICETOOL step.

However, I can programmatically deduce what the input DSNs are that comprise INFILE. So I wrote a standalone assembler application that uses SVC 99 to dynamically allocate and concatenate all of the datasets into a single logical concatenation. Let's call that job step ALLOCATE. My concept is that I would execute the ALLOCATE step just prior to the ICETOOL step.

What I can't figure out is how to make the ICETOOL step aware that INFILE was previously dynamically allocated in step ALLOCATE. I suppose I will need a DD statement in the ICETOOL step for INFILE, but I can't figure out how to write it. I can't just do a referback to the ALLOCATE step, because there is no DD statement to refer back to.

Alternatively, I was wondering whether I could move my dynamic allocation code to execute under ICETOOL itself, perhaps within an E11 exit. Then I could do away with the ALLOCATE step entirely.

I hope this isn't too vague... please let me know if I need to clarify anything further.

Thanks,

David
Back to top
View user's profile Send private message

enrico-sorichetti

Global Moderator


Joined: 14 Mar 2007
Posts: 10288
Location: italy

PostPosted: Wed Jan 20, 2010 3:37 am    Post subject: Reply to: Opening a dynamically allocated dataset in ICETOOL
Reply with quote

a quick and dirty idea...
why not write a front-end <thing> to allocate the needed datasets and call/link icetool??
to simplify everybody' s life it could be a simple REXX script
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Moderator


Joined: 15 Feb 2005
Posts: 7130
Location: San Jose, CA

PostPosted: Wed Jan 20, 2010 4:29 am    Post subject:
Reply with quote

Quote:
Alternatively, I was wondering whether I could move my dynamic allocation code to execute under ICETOOL itself, perhaps within an E11 exit. Then I could do away with the ALLOCATE step entirely.


Yes you can, but within your program, not within an exit. You can add a call to ICETOOL to your program after your dynamic allocation code. So you dynamically allocate your data sets with a ddname of your choosing and then use that ddname in the ICETOOL control statements where needed.

You can call ICETOOL from your own program in two different ways as documented at:

http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ICE1CA40/6.19?DT=20090527161936

Does that help?
Back to top
View user's profile Send private message
David Eisenberg

New User


Joined: 15 Nov 2007
Posts: 39
Location: New York

PostPosted: Wed Jan 20, 2010 9:13 pm    Post subject: Reply to: Opening a dynamically allocated dataset in ICETOOL
Reply with quote

Frank,

Thank you for the quick response and for that suggestion; I see what you're saying.

However, I need to ask about the performance implications of that approach. From the DFSORT Application Programming Guide, p. 728: "You can enhance performance by invoking DFSORT with JCL instead of invoking it from a COBOL or a PL/I program. Generally, COBOL or PL/I is used for convenience. However, the trade-off can be degraded performance."

Our application calling ICETOOL would be written in assembler; I don't know if that makes a difference (i.e., over a high-level language). Regardless, this is going to be a relatively complex ICETOOL application involving lots of sorting, splicing, joining, averaging, etc. The input dataset might be approximately 10 million records, and I would anticipate dozens of ICETOOL operators in TOOLIN, with an execution time which may end up being measured in hours (as opposed to minutes). I'm not far enough along yet to do any serious benchmarking, but you see what I mean.

So my question is: are we going to suffer noticable performance degradation if we invoke ICETOOL from within an assembler program, rather than standalone? If so, then I suppose an alternative would be to dynamically allocate everything in the first step, read all 5 million records, and write them to a temporary dataset, which I could then pass to the next (standalone) ICETOOL step. That means having to read all of the records all over again within ICETOOL. It all depends on how expensive it is to invoke ICETOOL from within the assembler program itself.

David
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Moderator


Joined: 15 Feb 2005
Posts: 7130
Location: San Jose, CA

PostPosted: Wed Jan 20, 2010 11:20 pm    Post subject:
Reply with quote

Quote:
are we going to suffer noticable performance degradation if we invoke ICETOOL from within an assembler program, rather than standalone?


No.

Quote:
You can enhance performance by invoking DFSORT with JCL instead of invoking it from a COBOL or a PL/I program. Generally, COBOL or PL/I is used for convenience. However, the trade-off can be degraded performance


COBOL and PL/I use their own internal exits - that's what can cause the performance degradation. Your Assembler program calling DFSORT will not be using its own exits. Note that COBOL's FASTSRT option eliminates the exits for COBOL calls to DFSORT.
Back to top
View user's profile Send private message
David Eisenberg

New User


Joined: 15 Nov 2007
Posts: 39
Location: New York

PostPosted: Wed Jan 20, 2010 11:41 pm    Post subject: Reply to: Opening a dynamically allocated dataset in ICETOOL
Reply with quote

Great. Thanks for the explanation, Frank.

David
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Multiple VSAM files single output fil... Mohan Kothakota DFSORT/ICETOOL 11 Wed Aug 09, 2017 7:57 pm
No new posts Unable to copy data from spool in a d... srikant314 JCL & VSAM 8 Fri Jul 28, 2017 9:10 pm
No new posts Extra character appears in file when ... Balu5491 All Other Mainframe Topics 1 Wed Jul 26, 2017 2:39 pm
No new posts Mainframe Opening in Chennai ( 2 to 4... muralikrishnan_new Mainframe Jobs 0 Tue Jul 18, 2017 2:20 pm
No new posts Browse dataset cvnlynn CLIST & REXX 4 Tue Jul 18, 2017 3:52 am


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us