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

unique 8 character token


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

Global Moderator


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

PostPosted: Fri May 08, 2015 10:59 pm
Reply with quote

I want to create a unique eight character dataset qualifier, based on the time. So I start with: DATE('J') and TIME('L'), where the long time looks like this: '16:54:22.123456'

I compute various indexes into "ABCDEFGHIJKLMNOPQRSTUVWXYZ@#$0123456789", concatenating to the token for each iteration. My problem is that there are not enough characters in the length of the token to account for all of the digits of the time. The last few digits have to be ignored. If I run it twice, it might produce the same value because the higher order digits are the same.

Does anyone have a better idea?

Is it better to ignore high order digits so that I can preserve the low order digits? I really do not want to wait until some time has passed so that there is a difference in two tokens.

Code:
/* rexx */
numeric digits 22
                      /* 15127/16:54:22.123456  */
say 'current' setuniq(DATE('J')'/'TIME('L'))
say 'current' setuniq(DATE('J')'/'TIME('L'))
say 'max    ' setuniq('28366/23:59:59.999999')
say 'min    ' setuniq('15001/00:00:00.000000')
exit
 
setuniq:
parse arg jdate '/' ltime
/* jdate   = DATE('J')                            */
/* ltime   = TIME('L')   /* '16:54:22.123456'  */ */
Say 'ltime('ltime')'
 
parse var jdate yy 3 ddd
parse var ltime  hh 3 4 mm 6 7 ss 9 10 tt
 
charstr   = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ@#$0123456789'
 
/* compute number of seconds */
seconds   =  ss + (60 * mm) + (60 * 60 * hh) + ( 24 * 60 * 60 * DDD )
 
/* compute number of milli seconds to date, in this year    */
tsecond   =  (seconds * 1000000) + tt
say '----+----1----+----2----+----3----+----4'
say tsecond
 
base      = length(charstr) - 1
divisor   = base ** 8
 
/* convert large decimal number to base 36 number */
uniq      = substr(charstr,yy-14,1)   /* year                */
Do While (tsecond > 0)
  indx    = (tsecond % divisor)+1  /* integer portion     */
  chr1    = substr(charstr,indx,1) /* get char value      */
  uniq    = uniq || chr1           /* concatenate to name */
 
  tsecond = tsecond // divisor     /* remainder           */
  divisor = divisor / base         /* smaller divisor     */
End
 
  say 'Long   ' uniq
/* only use leftmost 8 characters */
uniq      = left(uniq,8)
 
Return uniq
Back to top
View user's profile Send private message
Akatsukami

Global Moderator


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

PostPosted: Sat May 09, 2015 1:37 am
Reply with quote

What granularity do you need? Have you considered seconds since midnight rather than HHMMSS format?
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Sat May 09, 2015 3:43 am
Reply with quote

Seven of the characters can be Base-38, the first only Base-28 (can't start with a numeric).

Do you have room for a second generated qualifier?
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8696
Location: Dubuque, Iowa, USA

PostPosted: Sat May 09, 2015 3:54 am
Reply with quote

As mentioned, the granularity is important in this case. One scheme would be to establish a base year, which becomes A. The following year becomes B and so forth -- 1 character could cover 39 years. Julian day of the year could be done in 2 characters (using base-39 modulus). That leave 5 characters for time (unless you wind up using 2 levels of data set name instead of 1). Hour, minute, second each can be coded into 1 character leaving you 2 characters for fractions of a second. 39 times 39 gives 1521 possible values, so you could use thousandths of a second and modulo 39 arithmetic to encode them into 2 characters. If you need more accurate time measurement, you could take ten-thousandths of a second, divide by 7, then use modulo 39 to encode into 2 characters -- unless you have duplicates within 7/10000 of a second you wouldn't get duplicate time values.
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Sat May 09, 2015 5:16 am
Reply with quote

Quote:
Have you considered seconds since midnight rather than HHMMSS format?

I coded for seconds since the beginning of the year:
Code:
/* compute number of seconds */
seconds   =  ss + (60 * mm) + (60 * 60 * hh) + ( 24 * 60 * 60 * DDD )

Though, probably getting since midnight would simplify the same computation.
Back to top
View user's profile Send private message
Pedro

Global Moderator


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

PostPosted: Sat May 09, 2015 5:21 am
Reply with quote

Quote:
Do you have room for a second generated qualifier?

I am trying to mimic another process which uses only one data set qualifier. If I need to, I may use two qualifiers.
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Sat May 09, 2015 11:30 am
Reply with quote

Q1) the mapping has to be reversible ?
Q2) the token can be shorter or must be exactly 8 chars ?
Q3) what is the minimum time resolution needed ?
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Sat May 09, 2015 2:16 pm
Reply with quote

I'm guessing, enrico, that you want to make use of the "sparse" nature of dates and times. Other than the year and the scrinchy little parts of a second, each element is limited in range, so readily subject to "compression" of some type. Three times I've started typing that up... I think it'll work :-)
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Mon May 11, 2015 3:58 pm
Reply with quote

DFSMS: Using Data Sets, Naming Datasets wrote:
Each name segment (qualifier) is 1 to 8 characters, the first of which must be alphabetic (A to Z) or national (# @ $). The remaining seven characters are either alphabetic, numeric (0 - 9), national, a hyphen (-), or X'C0'.


So, 29 for the first, and 41 for the remaining seven. A bit more wriggle-room.
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Mon May 11, 2015 10:36 pm
Reply with quote

hello Bill!

I know that current data management let people have national chars also
- I tested with that also but no dramatic advantage

and ( I am old enough ) I prefer to stick to pure alphabetic and numbers

the solution I developed and tested both on my mac and Rexx tso

provides anyway
8 bytes tokens ( fixed length )
monotonic
reversible
hundredths of seconds resolution

a window from 1900 to 2259

26 letters, 26 slots
10 years slots for the hundredths of seconds resolution

here is the code

Code:

/* REXX
*/
Trace "O"
numeric digits 32
signal on novalue

if  "A" > "0" then do
    alpha  = "#$@ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    alpha  = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
end
else do
    alpha  = "$@#ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    alpha  = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
end
/*  automagically take into account ASCII EBCDIC collating sequence

    ASCII  collating sequence "@#$ 0-9 A-Z"
    EBCDIF collating sequence "$#@ 0-9 A-Z"

*/
if  "A" > "0" then do

    alphanum  = "#$0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    alphanum  = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"

end
else do
    alphanum  = "$#@AABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    alphanum  = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
end

origin  = 1900
slotsz  = 10
subs    = 2

base    = length(alphanum) - 1

dateMin = origin"0101"
dateMax = origin+slotsz*length(alpha)-1"1231"

if  ( date("B") - date("B", dateMin, "S") ) > 99999 then ,
    signal _logic_error

if  ( date("B", dateMax, "S") - date("B") ) > 99999 then ,
    signal _logic_error

parse upper arg coun
coun = strip(coun)

if  coun = "" then do
    /*  just encode and display a few dates
    */

    say "some random previous date"
    date = random(date("B", dateMin, "S"), date("B"))
    date = date("S", date, "B")

    time = random(0,86399)
    micr = random(1,999)

    time = timeS2N(time) || "." || right(micr, 6, "0")

    say "         " date time token(date, time)

    say "NOW"
    date = date("S")
    time = time("L")
    say "         " date time token(date, time)

    say "some random future   date"
    date = random(date("B"), date("b", dateMax, "S"))

    date = date("S", date, "B")
    time = random(0,86399)
    micr = random(1,999)
    time = timeS2N(time) || "." || right(micr, 6, "0")
    say "         " date time token(date, time)

    exit
end

if  \ datatype(coun, "W") then do

    /*  decode and show the date and the time for a token
    */

    if  length(coun) \= 8 then do
        say "token must be exactly 8 chars"
        exit
    end
    tokn = translate(coun)

    if  \ datatype(tokn, "A") then do
        say "token must contain only the chacters A-Y 0-9"
        exit
    end
    if  \ datatype(left(tokn, 1), "U") then do
        say "token must start with an UPPERCASE A-Y"
        exit
    end

    head = left(tokn, 1)
    slot = pos(head, alpha) - 1

    offs = right(slot * slotsz + origin, 4, "0") || "0101"
    offs = date("B", offs, "S") - 1

    tail = substr(tokn, 2)

    tail = to_dec(tail, alphanum, base)

    date = left(tail,length(tail) - (5 + subs)) + offs

    date = date("S", date, "B")

    time = right(tail, 5 + subs)

    micr = right(time, subs)
    micr = left(micr, 6, "0")

    time = timeS2N(left(time, 5))
    time = time"."micr

    say "token decoded"
    say "         " date time tokn
    say "token re-encoded"
    say "         " date time token(date, time)

    exit
end

else do
/*  the bulk test
*/

    fdmax = dateF(dateMax, "S")

    date = random(date("b", dateMin, "S"), date("B"))
    date = dateF(date,"B") + timeU()
    step = 1
    step = random(1234 ,5678 )

    OldTokn = ""
    OldDate = ""
    OldTime = ""

    done = 0
    do  fd = date by step*123456789 for coun,
        while (fd <= fdmax)
        NewDate = dateS(fd, "F")

        NewTime = timeL(fd, "F")

        NewTokn = token(NewDate, NewTime)

        if  (length(NewTokn) > 8) then do
            say "******* length(NewTokn) > 8"
            say "NewTokn  " NewDate NewTime NewTokn
            signal logic_error
        end

        if  (done // 100 = 0) then ,
            say "checked  " NewDate NewTime NewTokn

        if  (OldTokn > NewTokn) then do
            say "*******" "sequence error"
            say "OldTokn" OldDate OldTime OldTokn
            say "NewTokn" NewDate NewTime NewTokn
            signal logic_error
        end
        OldTokn = NewTokn
        OldDate = NewDate
        OldTime = NewTime
        done = done + 1
    end

    say "checked  " done

end


exit

/*  error handlers
*/

logic_error:
say "++"copies(" -",35)
say "++ Logic error at line '"sigl"' "
say "++"copies(" -",35)
exit

novalue:
say "++"copies(" -",35)
say "++ Novalue trapped, line '"sigl"' var '"condition("D")"' "
say "++"copies(" -",35)
exit

/*  procedures
*/

token:Procedure expose origin slotsz subs alpha alphanum base
    Trace "O"
    parse upper arg dateS, timeL

    /*  year range and slot number
    */

    slot   = left(dateS ,4) %  slotsz - (origin / slotsz)

    if  slot > length(alpha) - 1 then
        signal logic_error

    head = substr(alpha, slot + 1 , 1)

    offs = right(slot * slotsz + origin, 4, "0") || "0101"

    date = date("B", dateS, "S") - ( date("B", offs , "S") - 1 )

    time  = timeL2S(timeL)

    parse var timeL "." micr

    time  = right(time, 5, "0") || left(micr, subs)

    tail  = to_arb(date || time, alphanum, base)

    if  length(tail) > 7 then do
            say "*******" "length(tail) > 7"
            say "       " dateS timeL tail
            signal logic_error
    end

    tail = right(tail, 7, left(alphanum, 1))

    return head || tail

/*  utility
*/

dateF:procedure
    Trace "O"
    parse upper arg arg1, type
    if  arg1= "" & type = "" then ,
        date = date("B")
    else if type = "B" then ,
        date = arg1
    else ,
        date = date("B", arg1, type )

    dateF = date*24*60*60*1000000
    if  type = "" then
        dateF = dateF + timeU()
    return dateF

dateS:procedure
    Trace "O"
    parse upper arg arg1, type
    if  arg1 = "" & type = "" then
        return date("S")
    if  type  = "S" then ,
        return arg1
    if  type \= "F" then ,
        return date("S", arg1, type)

    date = arg1 % (24*60*60*1000000)
    return date("S", date, "B")

timeL:procedure
    Trace "O"
    parse upper arg arg1,type
    if  arg1 = "" & type = "" then
        return time("L")
    if  type  = "L" then ,
        return arg1
    if  type = "N" then ,
        return arg1".000000"
    if  type = "S" then do
        ss = right(arg1 // 60, 2, "0")
        arg1 = arg1  % 60
        mm = right(arg1 // 60, 2, "0")
        hh = right(arg1  % 60, 2, "0")
        return hh":"mm":"ss".000000"
    end
    if  type = "F" then do
        time = arg1 // ( 24*60*60*1000000)
        secs = time % 1000000
        micr = time // 1000000
        ss   = right(secs // 60, 2, "0")
        secs = secs  % 60
        mm   = right(secs // 60, 2, "0")
        hh   = right(secs  % 60, 2, "0")
        timeL = hh":"mm":"ss"."left(micr, 6, "0" )
        return timeL
    end

    return -1

timeU:procedure
    Trace "O"
    parse upper arg time
    if  time = "" then ,
        time = time("L")
    parse var time hh ":" mm ":" ss  "." uu
    timeU = ( hh*3600 + mm*60 + ss ) * 1000000 + uu
    trace "O"
    return timeU

timeL2S:procedure
    Trace "O"
    parse upper arg arg1
    parse var arg1 hh ":" mm ":" ss  "." .
    return hh*3600 + mm*60 + ss

timeN2S:procedure
    Trace "O"
    parse upper arg arg1
    parse var arg1 hh ":" mm ":" ss
    return hh*3600 + mm*60 + ss

timeS2L:procedure
    Trace "O"
    parse upper arg arg1
    ss = right(arg1 // 60, 2, "0")
    arg1 = arg1  % 60
    mm = right(arg1 // 60, 2, "0")
    hh = right(arg1  % 60, 2, "0")
    return hh":"mm":"ss".000000"

timeS2N:procedure
    Trace "O"
    parse upper arg arg1
    ss = right(arg1 // 60, 2, "0")
    arg1 = arg1  % 60
    mm = right(arg1 // 60, 2, "0")
    hh = right(arg1  % 60, 2, "0")
    return hh":"mm":"ss

to_dec:procedure
    Trace "O"
    parse upper arg arb, tbl, base
    if  base = "" then ,
        base = length(tbl)
    if  base > length(tbl) then ,
        signal logic_error
    pow  = 1
    dec  = 0
    do  d = length( arb ) to 1 by -1
        dec = dec + pow * ( pos( substr( arb,d,1 ),tbl ) - 1 )
        pow = pow * base
    end
    return dec

to_arb:procedure
    Trace "O"
    parse upper arg dec, tbl, base
    if  base = "" then ,
        base = length(tbl)
    if  base > length(tbl) then ,
        signal logic_error
    arb = ""
    do  until (dec = 0)
        arb = substr(tbl,dec//base+1,1) || arb
        dec = dec % base
   end
   return arb



the test run

Code:

1                         J E S 2  J O B  L O G  --  S Y S T E M  S Y S 1  --  N O D E  N 1             
0
 18.48.46 JOB02884 ---- MONDAY,    11 MAY 2015 ----
 18.48.46 JOB02884  IRR010I  USERID ENRICO   IS ASSIGNED TO THIS JOB.
 18.48.46 JOB02884  ICH70001I ENRICO   LAST ACCESS AT 18:47:31 ON MONDAY, MAY 11, 2015
 18.48.46 JOB02884  $HASP373 ENRICO1  STARTED - INIT 1    - CLASS A - SYS SYS1
 18.48.46 JOB02884  IEF403I ENRICO1 - STARTED - TIME=18.48.46
 18.48.46 JOB02884  HTRT01I                                         CPU (Total)  Elapsed      CPU (TCB)    CPU (SRB)     Service
 18.48.46 JOB02884  HTRT02I Jobname  Stepname ProcStep    RC    I/O hh:mm:ss.th  hh:mm:ss.th  hh:mm:ss.th  hh:mm:ss.th     Units
 18.48.46 JOB02884  HTRT03I ENRICO1  IKJ1                 00     48       00.11        00.19        00.11        00.00      5307
 18.48.47 JOB02884  HTRT03I ENRICO1  IKJ2                 00     66       00.19        00.25        00.19        00.00      9268
 18.49.53 JOB02884  HTRT03I ENRICO1  IKJ3                 00     48    01:04.04     01:05.89     01:04.04        00.00     3049K
 18.49.53 JOB02884  IEF404I ENRICO1 - ENDED - TIME=18.49.53
 18.49.53 JOB02884  HTRT06I
 18.49.53 JOB02884  HTRT04I ENRICO1  Job Service Totals         162    01:04.34     01:06.36     01:04.34        00.00     3063K
 18.49.53 JOB02884  $HASP395 ENRICO1  ENDED
0------ JES2 JOB STATISTICS ------                                                                                                   
-  11 MAY 2015 JOB EXECUTION DATE                                                                                                   
-           24 CARDS READ                                                                                                           
-          392 SYSOUT PRINT RECORDS                                                                                                 
-            0 SYSOUT PUNCH RECORDS                                                                                                 
-           21 SYSOUT SPOOL KBYTES                                                                                                   
-         1.10 MINUTES EXECUTION TIME                                                                                               
 !! END OF JES SPOOL FILE !!
        1 //ENRICO1  JOB (ACCT#),'TOKN',NOTIFY=ENRICO,                            JOB02884
          //             CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)                               
          //* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -         
          //*                                                                             
        2 //IKJ1    EXEC PGM=IKJEFT01                                                     
        3 //SYSPROC   DD DISP=SHR,DSN=ENRICO.ISPF.EXEC                                   
        4 //SYSPRINT  DD SYSOUT=*                                                         
        5 //SYSTSPRT  DD SYSOUT=*                                                         
        6 //SYSTSIN   DD *                                                               
        7 //IKJ2    EXEC PGM=IKJEFT01                                                     
        8 //SYSPROC   DD DISP=SHR,DSN=ENRICO.ISPF.EXEC                                   
        9 //SYSPRINT  DD SYSOUT=*                                                         
       10 //SYSTSPRT  DD SYSOUT=*                                                         
       11 //SYSTSIN   DD *                                                               
       12 //IKJ3    EXEC PGM=IKJEFT01                                                     
       13 //SYSPROC   DD DISP=SHR,DSN=ENRICO.ISPF.EXEC                                   
       14 //SYSPRINT  DD SYSOUT=*                                                         
       15 //SYSTSPRT  DD SYSOUT=*                                                         
       16 //SYSTSIN   DD *                                                               
 !! END OF JES SPOOL FILE !!
 ICH70001I ENRICO   LAST ACCESS AT 18:47:31 ON MONDAY, MAY 11, 2015
 IEF236I ALLOC. FOR ENRICO1 IKJ1
 IEF237I 0AB4 ALLOCATED TO SYSPROC
 IEF237I JES2 ALLOCATED TO SYSPRINT
 IEF237I JES2 ALLOCATED TO SYSTSPRT
 IEF237I JES2 ALLOCATED TO SYSTSIN
 IEF142I ENRICO1 IKJ1 - STEP WAS EXECUTED - COND CODE 0000
 IEF285I   ENRICO.ISPF.EXEC                             KEPT         
 IEF285I   VOL SER NOS= STOR04.                           
 IEF285I   ENRICO.ENRICO1.JOB02884.D0000104.?           SYSOUT       
 IEF285I   ENRICO.ENRICO1.JOB02884.D0000105.?           SYSOUT       
 IEF285I   ENRICO.ENRICO1.JOB02884.D0000101.?           SYSIN         
 HTRT05I ------------------------------------------------------------------------
         - Step Termination Statistics                                          -
         -                                                                      -
         - Program Name       IKJEFT01                          hh:mm:ss.th     -
         - Step Name          IKJ1              Elapsed Time          00.19     -
         - Procedure Step                       TCB CPU Time          00.11     -
         - Return Code              00          SRB CPU Time          00.00     -
         - Total I/O                48          Total CPU Time        00.11     -
         - Service Units          5307                                          -
         -                                                                      -
         - Region Size           1024K          Pages Paged               0     -
         - Data/Hiperspace          0M          Pages Swapped             0     -
         - ASID Swaps                0          Pages Stolen              0     -
         -                                      VIO (In and Out)          0     -
         -                                                                      -
         - --------Below 16Meg--------          --------Above 16Meg--------     -
         - Private Area          9192K          Private Area       1801216K     -
         - Max Allocated           40K          Max Allocated          356K     -
         - LSQA And SWA           408K          LSQA And SWA         10956K     -
         -                                                                      -
         - DDName    Unit    Blksize       I/O                                  -
         - SYSPROC   0AB4      27920         3                                  -
         - *System*                         45                                  -
         -                                                                      -
         ------------------------------------------------------------------------
 IEF373I STEP/IKJ1    /START 2015131.1848
 IEF374I STEP/IKJ1    /STOP  2015131.1848 CPU    0MIN 00.11SEC SRB    0MIN 00.00SEC VIRT    40K SYS   408K EXT     356K SYS   10956K
 IEF236I ALLOC. FOR ENRICO1 IKJ2
 IEF237I 0AB4 ALLOCATED TO SYSPROC
 IEF237I JES2 ALLOCATED TO SYSPRINT
 IEF237I JES2 ALLOCATED TO SYSTSPRT
 IEF237I JES2 ALLOCATED TO SYSTSIN
 IEF142I ENRICO1 IKJ2 - STEP WAS EXECUTED - COND CODE 0000
 IEF285I   ENRICO.ISPF.EXEC                             KEPT         
 IEF285I   VOL SER NOS= STOR04.                           
 IEF285I   ENRICO.ENRICO1.JOB02884.D0000106.?           SYSOUT       
 IEF285I   ENRICO.ENRICO1.JOB02884.D0000107.?           SYSOUT       
 IEF285I   ENRICO.ENRICO1.JOB02884.D0000102.?           SYSIN         
 HTRT05I ------------------------------------------------------------------------
         - Step Termination Statistics                                          -
         -                                                                      -
         - Program Name       IKJEFT01                          hh:mm:ss.th     -
         - Step Name          IKJ2              Elapsed Time          00.25     -
         - Procedure Step                       TCB CPU Time          00.19     -
         - Return Code              00          SRB CPU Time          00.00     -
         - Total I/O                66          Total CPU Time        00.19     -
         - Service Units          9268                                          -
         -                                                                      -
         - Region Size           1024K          Pages Paged               0     -
         - Data/Hiperspace          0M          Pages Swapped             0     -
         - ASID Swaps                0          Pages Stolen              0     -
         -                                      VIO (In and Out)          0     -
         -                                                                      -
         - --------Below 16Meg--------          --------Above 16Meg--------     -
         - Private Area          9192K          Private Area       1801216K     -
         - Max Allocated           40K          Max Allocated          356K     -
         - LSQA And SWA           408K          LSQA And SWA         10972K     -
         -                                                                      -
         - DDName    Unit    Blksize       I/O                                  -
         - SYSPROC   0AB4      27920         9                                  -
         - *System*                         57                                  -
         -                                                                      -
         ------------------------------------------------------------------------
 IEF373I STEP/IKJ2    /START 2015131.1848
 IEF374I STEP/IKJ2    /STOP  2015131.1848 CPU    0MIN 00.19SEC SRB    0MIN 00.00SEC VIRT    40K SYS   408K EXT     356K SYS   10972K
 IEF236I ALLOC. FOR ENRICO1 IKJ3
 IEF237I 0AB4 ALLOCATED TO SYSPROC
 IEF237I JES2 ALLOCATED TO SYSPRINT
 IEF237I JES2 ALLOCATED TO SYSTSPRT
 IEF237I JES2 ALLOCATED TO SYSTSIN
 IEF142I ENRICO1 IKJ3 - STEP WAS EXECUTED - COND CODE 0000
 IEF285I   ENRICO.ISPF.EXEC                             KEPT         
 IEF285I   VOL SER NOS= STOR04.                           
 IEF285I   ENRICO.ENRICO1.JOB02884.D0000108.?           SYSOUT       
 IEF285I   ENRICO.ENRICO1.JOB02884.D0000109.?           SYSOUT       
 IEF285I   ENRICO.ENRICO1.JOB02884.D0000103.?           SYSIN         
 HTRT05I ------------------------------------------------------------------------
         - Step Termination Statistics                                          -
         -                                                                      -
         - Program Name       IKJEFT01                          hh:mm:ss.th     -
         - Step Name          IKJ3              Elapsed Time       01:05.89     -
         - Procedure Step                       TCB CPU Time       01:04.04     -
         - Return Code              00          SRB CPU Time          00.00     -
         - Total I/O                48          Total CPU Time     01:04.04     -
         - Service Units         3049K                                          -
         -                                                                      -
         - Region Size           1024K          Pages Paged               0     -
         - Data/Hiperspace          0M          Pages Swapped             0     -
         - ASID Swaps                0          Pages Stolen              0     -
         -                                      VIO (In and Out)          0     -
         -                                                                      -
         - --------Below 16Meg--------          --------Above 16Meg--------     -
         - Private Area          9192K          Private Area       1801216K     -
         - Max Allocated           40K          Max Allocated          356K     -
         - LSQA And SWA           408K          LSQA And SWA         10972K     -
         -                                                                      -
         - DDName    Unit    Blksize       I/O                                  -
         - SYSPROC   0AB4      27920         3                                  -
         - *System*                         45                                  -
         -                                                                      -
         ------------------------------------------------------------------------
 IEF373I STEP/IKJ3    /START 2015131.1848
 IEF374I STEP/IKJ3    /STOP  2015131.1849 CPU    1MIN 04.04SEC SRB    0MIN 00.00SEC VIRT    40K SYS   408K EXT     356K SYS   10972K
 IEF375I  JOB/ENRICO1 /START 2015131.1848
 IEF376I  JOB/ENRICO1 /STOP  2015131.1849 CPU    1MIN 04.34SEC SRB    0MIN 00.00SEC
 !! END OF JES SPOOL FILE !!
1READY
   %TOKN
 some random previous date
           19390209 21:50:30.000329 DSDVACPZ
 NOW
           20150511 18:48:46.848887 LKWZ0D6O
 some random future   date
           21421125 18:42:44.000274 YF07HPLP
 READY
 END
 !! END OF JES SPOOL FILE !!
1READY
   %TOKN LICWVYUZ
 token decoded
           20140123 14:12:10.000000 LICWVYUZ
 token re-encoded
           20140123 14:12:10.000000 LICWVYUZ
 READY
   %TOKN LKWZW8DN
 token decoded
           20150511 18:26:21.430000 LKWZW8DN
 token re-encoded
           20150511 18:26:21.430000 LKWZW8DN
 READY
   %TOKN OS3MUTIU
 token decoded
           20490624 02:14:02.000000 OS3MUTIU
 token re-encoded
           20490624 02:14:02.000000 OS3MUTIU
 READY
 END
 !! END OF JES SPOOL FILE !!
1READY
   %TOKN 20000
 checked   19260122 18:48:47.296759 CMBXM2FE
 checked   19270331 00:36:45.969259 CON8QIMB
 checked   19280605 06:24:44.641759 CQ0JW7L3
 checked   19290811 12:12:43.314259 CTDT3XLV
 checked   19301017 18:00:41.986759 DBUL3ZFX
 checked   19311223 23:48:40.659259 DD6WBPFP
 checked   19330228 05:36:39.331759 DGJ7E4MN
 checked   19340506 11:24:38.425900 DIWILUNM
 checked   19350712 17:12:36.676759 DK8SSKL6
 checked   19360916 23:00:35.349259 DNL2ZALY
 checked   19371123 04:48:34.217590 DPYE2PTG
 checked   19390129 10:36:32.694259 DSBPAFSO
 checked   19400405 16:24:31.366759 EASNXPV0
 checked   19410611 22:12:30.392590 EC4X4FWT
 checked   19420818 04:00:28.711759 EFH87U2Q
 checked   19431024 09:48:27.384259 EHUKFK2I
 checked   19441229 15:36:26.567590 EJ6UMA3Q
 checked   19460306 21:24:24.729259 EMJ4SZ11
 checked   19470513 03:12:23.401759 EOWGWF8Z
 checked   19480718 09:00:22.742590 EQ8Q25BO
 checked   19490923 14:48:20.746759 ETL1AU8J
 checked   19501129 20:36:19.419259 FB2TAW2L
 checked   19520205 02:24:18.917590 FEF4EDCV
 checked   19530412 08:12:16.764259 FGSFK2AB
 checked   19540618 14:00:15.436759 FI4PRR82
 checked   19550824 19:48:14.109259 FLHZYH8U
 checked   19561030 01:36:12.781759 FNUB1XGS
 checked   19580105 07:24:11.454259 FP6L8NGK
 checked   19590313 13:12:10.126759 FSJWGDGC
 checked   19600518 19:00:08.799259 GA0U3NJO
 checked   19610725 00:48:07.471759 GDD562QM
 checked   19620930 06:36:06.144259 GFQHESQE
 checked   19631206 12:24:04.816759 GH2RLIP5
 checked   19650210 18:12:03.489259 GKF1R7PX
 checked   19660419 00:00:02.161759 GMSDVNWV
 checked   19670625 05:48:00.834259 GO4N2DWN
 checked   19680830 11:35:59.506759 GRHX82WF
 checked   19691105 17:23:58.179259 GTT8GSV6
 checked   19710111 23:11:56.851759 HCB0GUQA
 checked   19720319 04:59:55.524259 HEOCKAW6
 checked   19730525 10:47:54.196759 HG0MQZWY
 checked   19740731 16:35:52.869259 HJDWXPWQ
 checked   19751006 22:23:51.541759 HLP64FWJ
 checked   19761212 04:11:50.214259 HN2I7U3G
 checked   19780217 09:59:48.886759 HQFTFK27
 checked   19790425 15:47:47.559259 HSR3MA2Z
 checked   19800630 21:35:46.231759 IA82AK6D
 checked   19810906 03:23:44.904259 IDMED0EA
 checked   19821112 09:11:43.576759 IFYOKQD1
 checked   19840118 14:59:42.249259 IIBYRGDT
 checked   19850325 20:47:40.921759 IKN8X5DM
 checked   19860601 02:35:39.594259 IM0K1LKJ
 checked   19870807 08:23:38.266759 IPDU8BKB
 checked   19881012 14:11:36.939259 IRP5F0J2
1checked   19891218 19:59:35.611759 IT2GMQJV
 checked   19910224 01:47:34.284259 JCJ8JIK2
 checked   19920501 07:35:32.956759 JEWJP7KU
 checked   19930707 13:23:31.629259 JG8TWXKM
 checked   19940912 19:11:30.301759 JJL33NKF
 checked   19951119 00:59:28.974259 JLYF62RC
 checked   19970124 06:47:27.646759 JOBQESQ3
 checked   19980401 12:35:26.319259 JQN0LIQV
 checked   19990607 18:23:24.991759 JS0BR7QO
 checked   20000813 00:11:23.664259 KBIBC705
 checked   20011019 05:59:22.336759 KDULJX0X
 checked   20021225 11:47:21.925900 KF6VQN3C
 checked   20040301 17:35:19.681759 KIJ5XD0I
 checked   20050507 23:23:18.354259 KKWG320A
 checked   20060714 05:11:17.267590 KM8R7I7V
 checked   20070919 10:59:15.699259 KPL2E76Y
 checked   20081124 16:47:14.371759 KRYDLX6R
 checked   20100130 22:35:13.442590 LAF4LZ1Y
 checked   20110408 04:23:11.716759 LCSGPF7Q
 checked   20120613 10:11:10.389259 LE4QV47I
 checked   20130819 15:59:09.617590 LHH02U8V
 checked   20141025 21:47:07.734259 LJUCAK62
 checked   20160101 03:35:06.406759 LL6ND0EZ
 checked   20170308 09:23:05.792590 LOJXKQGT
 checked   20180514 15:11:03.751759 LQV7RGEK
 checked   20190720 20:59:02.424259 LS8IX5EC
 checked   20200925 02:47:01.967590 MBQII5RB
 checked   20211201 08:34:59.769259 MD2SPVOL
 checked   20230206 14:22:58.441759 MGF2WLOE
 checked   20240413 20:10:57.114259 MISD3BN5
 checked   20250620 01:58:55.786759 MK4O6QU2
 checked   20260826 07:46:54.459259 MNHZEGUU
 checked   20271101 13:34:53.131759 MPUAK5UN
 checked   20290106 19:22:51.804259 MR6KRVUF
 checked   20300315 01:10:50.476759 NAODONVM
 checked   20310521 06:58:49.149259 NC0NVDVE
 checked   20320726 12:46:47.821759 NFDX12U6
 checked   20331001 18:34:46.494259 NHP78SUY
 checked   20341208 00:22:45.166759 NJ2KC71V
 checked   20360213 06:10:43.839259 NMFUJX1N
 checked   20370420 11:58:42.511759 NOR4QN1G
 checked   20380626 17:46:41.184259 NQ4FXD07
 checked   20390901 23:34:39.856759 NTHP320Z
 checked   20401107 05:22:38.529259 OBYPO3CH
 checked   20420113 11:10:37.201759 OEBZVTCA
 checked   20430321 16:58:35.874259 OGOA2JB1
 checked   20440526 22:46:34.546759 OI0K88BT
 checked   20450802 04:34:33.219259 OLDWDOIQ
 checked   20461008 10:22:31.891759 ONP6KEIJ
 checked   20471214 16:10:30.564259 OP2HQ3IB
 checked   20490218 21:58:29.236759 OSFRXTH2
 checked   20500427 03:46:27.909259 PAWKULJA
 checked   20510703 09:34:26.581759 PC8U1BI2
 checked   20520907 15:22:25.254259 PFL470IU
 checked   20531113 21:10:23.926759 PHYGFQIM
 checked   20550120 02:58:22.599259 PKBRI5PJ
1checked   20560327 08:46:21.271759 PMN1PVPC
 checked   20570602 14:34:19.944259 PO0CWLO3
 checked   20580808 20:22:18.616759 PRDM3BOV
 checked   20591015 02:10:17.289259 PTPX6QVS
 checked   20601220 07:58:15.961759 QB6WU0Y5
 checked   20620225 13:46:14.634259 QEJ61QYX
 checked   20630503 19:34:13.306759 QGWH8GYP
 checked   20640709 01:22:11.979259 QI8TCV5M
 checked   20650914 07:10:10.651759 QLL3JL5F
 checked   20661120 12:58:09.324259 QNYEQB46
 checked   20680126 18:46:07.996759 QQBOW04Y
 checked   20690403 00:34:06.669259 QSNZ0HCV
 checked   20700609 06:22:05.341759 RA4R0I5Y
 checked   20710815 12:10:04.142590 RDH16753
 checked   20721020 17:58:02.686759 RFUDEX5I
 checked   20731226 23:46:01.359259 RH6NLN5A
 checked   20750304 05:34:00.317590 RKJYO3D0
 checked   20760509 11:21:58.704259 RMV8VTCZ
 checked   20770715 17:09:57.376759 RO8J2JCR
 checked   20780920 22:57:56.492590 RRLT88DT
 checked   20791127 04:45:54.721759 RTX5DOJH
 checked   20810201 10:33:53.394259 SCF30YMT
 checked   20820409 16:21:52.667590 SESE7OOB
 checked   20830615 22:09:50.739259 SG4PFEMD
 checked   20840821 03:57:49.411759 SJH0ITTB
 checked   20851027 09:45:48.842590 SLUBPJU8
 checked   20870102 15:33:46.756759 SN6LV8SU
 checked   20880309 21:21:45.429259 SQJV2YSM
 checked   20890516 03:09:44.101759 SSV66EZK
 checked   20900722 08:57:42.774259 TBDY6GTM
 checked   20910927 14:45:41.446759 TDQAD5TE
 checked   20921202 20:33:40.119259 TF2KKVS5
 checked   20940208 02:21:38.791759 TIFVOBZ3
 checked   20950416 08:09:37.464259 TKR5U0ZV
 checked   20960621 13:57:36.136759 TM4G1QZN
 checked   20970827 19:45:34.809259 TPHQ8GZF
 checked   20981103 01:33:33.481759 TRT2CV6D
 checked   21000109 07:21:32.154259 UAB0Z6AP
 checked   21010317 13:09:30.826759 UCOB6WAH
 checked   21020523 18:57:29.499259 UE0MEL88
 checked   21030730 00:45:28.171759 UHDXH1G6
 checked   21041004 06:33:26.844259 UJP7ORGY
 checked   21051210 12:21:25.516759 UL2IVHGQ
 checked   21070215 18:09:24.189259 UOFS16GI
 checked   21080422 23:57:22.861759 UQR28WGB
 checked   21090629 05:45:21.534259 US4FDCM7
 checked   21100904 11:33:20.206759 VBMD0MQK
 checked   21111110 17:21:18.879259 VDYN7CQC
 checked   21130115 23:09:17.551759 VGBYE1P4
 checked   21140324 04:57:16.224259 VIOAIHW1
 checked   21150530 10:45:14.896759 VK0KO6WT
 checked   21160804 16:33:13.569259 VNDUVWWL
 checked   21171010 22:21:12.241759 VPP42MWE
 checked   21181217 04:09:10.914259 VR2G513B
 checked   21200222 09:57:09.586759 WAKFUC6N
 checked   21210429 15:45:08.259259 WCWP016F
1checked   21220705 21:33:06.931759 WE8Z7R57
 checked   21230911 03:21:05.604259 WHMCB7D4
 checked   21241116 09:09:04.276759 WJYMIXDW
 checked   21260122 14:57:02.949259 WMBWPNDO
 checked   21270330 20:45:01.621759 WON6WDDH
 checked   21280605 02:33:00.294259 WQ0IZSKE
 checked   21290811 08:20:58.966759 WTDS6IJ5
 checked   21301017 14:08:57.639259 XBUK6KD7
 checked   21311223 19:56:56.311759 XD6VEAD0
 checked   21330228 01:44:54.984259 XGJ6HPKX
 checked   21340506 07:32:53.656759 XIWHOFKP
 checked   21350712 13:20:52.329259 XK8RU4KH
 checked   21360916 19:08:51.175900 XNL11UKR
 checked   21371123 00:56:49.674259 XPYD5AQ6
 checked   21390129 06:44:48.346759 XSBOCZQY
 checked   21400405 12:32:47.192590 YASM0AUT
 checked   21410611 18:20:45.691759 YC4W6ZT3
 checked   21420818 00:08:44.364259 YFH8BF00
 checked   21431024 05:56:43.367590 YHUJH41Q
 checked   21441229 11:44:41.709259 YJ6TOU0K
 checked   21460306 17:32:40.381759 YMJ3VK0D
 checked   21470512 23:20:39.542590 YOWE2A1J
 checked   21480718 05:08:37.726759 YQ8P5P61
 checked   21490923 10:56:36.399259 YTL0DF6T
 checked   21501129 16:44:35.717590 ZB2SDH2Q
 checked   21520204 22:32:33.744259 ZEF2J60O
 checked   21530412 04:20:32.416759 ZGSENM7L
 checked   21540618 10:08:31.892590 ZI4OUDAO
 checked   21550824 15:56:29.761759 ZLHY0165
 checked   21561029 21:44:28.434259 ZNT87R6X
 checked   21580105 03:32:27.106759 ZP6LB7EU
 checked   21590313 09:20:25.779259 ZSJVIXEM
 checked   19768
 READY
 END
 !! END OF JES SPOOL FILE !!

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 Panvalet - 9 Character name - Issue c... CA Products 6
No new posts String has hex character need to conv... COBOL Programming 3
No new posts Output LREC based on specific character DFSORT/ICETOOL 22
No new posts Replacing character string in file th... JCL & VSAM 9
No new posts Any JCL or VSAM Utility to get number... JCL & VSAM 1
Search our Forums:

Back to Top