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

Opening a dynamically allocated dataset in ICETOOL


IBM Mainframe Forums -> DFSORT/ICETOOL
Post new topic   Reply to topic
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
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

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Wed Jan 20, 2010 3:37 am
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 Developer


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

PostPosted: Wed Jan 20, 2010 4:29 am
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:

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
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 Developer


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

PostPosted: Wed Jan 20, 2010 11:20 pm
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
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 View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DFSORT/ICETOOL

 


Similar Topics
Topic Forum Replies
No new posts FINDREP - Only first record from give... DFSORT/ICETOOL 3
No new posts Map Vols and Problem Dataset All Other Mainframe Topics 2
No new posts Allocated cylinders of a dataset DB2 12
No new posts Sort First/last record of a subset th... DFSORT/ICETOOL 7
No new posts Shift left VB record without x00 endi... DFSORT/ICETOOL 11
Search our Forums:

Back to Top