ca.portal.admin

OUT OF THE CLOSET: IDMSCALC on the fly

Discussion created by ca.portal.admin on Apr 30, 2008
Latest reply on Apr 30, 2008 by ca.portal.admin
i am pulling another useful(useless?) coding tip OUT OF THE CLOSET ...

when i am asked to reduce the runtime of long running IDMS jobs - the
solution is almost ALWAYS to reduce the I/O. In this case - the solution
was to sort the LOAD input data into DBKEY sequence. But .. the
development
team did not want to modify any code to achieve this . so ... the
solution
was ...

add two steps to the job stream without modifying the input data!

1) a program to determine the page range of the area in which the load
was
to occur:

DATABASE DICTNAME=SYSDIRL DBNAME=SYSTEM
IN 4000 F DB(D) SS=IDMSNWKG,IDMSNTWK
PATH01 AREA-1026 (IX-AREA)
SELECT AREA-1026 IN PATH 01 WHEN SEGMENT-1026 = 'your segment'
* AND NAME-1026 = 'your area'
01OUT 080 D PS DD=OFA
01SORT NOSORT
01510001 ' 010 X-AREA-LOPAGE '
01510020 LOWPAGE-1026 FM '9999999999'
01520001 ' 010 X-AREA-HIPAGE '
01520020 CALCHIGHPAGE-1026 FM '9999999999'

the next step was to read the LOAD input data - for each record -
determine
the potential dbkey to which it would be assigned,
sort the data by that potential dbkey - and pass the input date to the
load
unscathed:

IN 080 PS DD=INF
REC I-RECORD 001 080 <== the length of the LOAD input
REC I-KEY 001 015 <== the position and length of the CALC key
IN 029 PS MB=DUMMY
REC PARM-FIELDS 001 029
REC Z-TARGET-PAGE 001 004 1
REC Z-HIGH-PAGE 005 004 1
REC Z-LOW-PAGE 009 004 1
REC Z-CALC-LENGTH 013 002 1
REC Z-CALC-VALUE 015 015
010 X-CALC-LENGTH 15 <== the calc key value
01OUT 080 D PS DD=OFA
01SORT Z-TARGET-PAGE
01510001 I-RECORD
017 CALL US33 (X-AREA-HIPAGE 8 Z-HIGH-PAGE 4)
017 CALL US33 (X-AREA-LOPAGE 8 Z-LOW-PAGE 4)
017 CALL US33 (X-CALC-LENGTH 8 Z-CALC-LENGTH 2)
017 CALL US43 (I-KEY Z-CALC-VALUE 15)
017 CALL US00 ('IDMSCALC' PARM-FIELDS)
010 X-AREA-LOPAGE 0006000001 <== the output from program 1
010 X-AREA-HIPAGE 0007005000

i could have written additional programs to make this process even more
generic and available to all load programs
(and to accomodate the same loads efen if such things as page range or
even
lenght of sort key changes - if
I get more such requests at work then i probably will make this a more
generic process





Chris Hoelscher
Senior IDMS & DB2 Database Administrator
Humana Inc
502-476-2538
choelscher@humana.com



The information transmitted is intended only for the person or entity to
which it is addressed and may contain CONFIDENTIAL material. If you
receive this material/information in error, please contact the sender
and delete or destroy the material/information.
"
IDMS Public Discussion Forum
IDMS-L@LISTSERV.IUASSN.COM
SMTP
IDMS-L@LISTSERV.IUASSN.COM
IDMS-L@LISTSERV.IUASSN.COM
SMTP








Normal

Normal
Re: [IDMSVENDOR-L] OUT OF THE CLOSET: IDMSCALC on the fly
"
no i did not sort in descending - i was saving that enhancement for release
2.0 (ha)
this load did not include VIA records so I did not code accordingly




Chris Hoelscher
Senior IDMS & DB2 Database Administrator
Humana Inc
502-476-2538
choelscher@humana.com






""Miley, Dan L""
<dan.l.miley@LMCO
.COM> To
Sent by: IDMS IDMSVENDOR-L@LISTSERV.IUASSN.COM
3rd-party cc
providers forum
<IDMSVENDOR-L@LIS Subject
TSERV.IUASSN.COM> Re: [IDMSVENDOR-L] OUT OF THE
CLOSET: IDMSCALC on the fly

04/30/2008 01:46
PM


Please respond to
IDMS Public
Discussion Forum
<IDMS-L@LISTSERV.
IUASSN.COM>






Chris:

Did you sort DBKEY's in descending sequence instead of ascending
sequence? Theoretically, it should result in smaller calc overflow.
Also, do you load any VIA records along with their CALC owning records
at the same time? I do this in a generic utility I wrote for Lockheed
Martin. Unfortunately, I am not permitted to share code but I can share
ideas.


Dan Miley
Lockheed Martin

Outcomes