Define a Startup Autotask to execute an assembler program that executes two #SETIME. The first #SETIME re-executes the assembler program itself after a specified time interval and the second #SETIME executes the mapless dialog. After that specified interval the assembler program triggers itself and the mapless dialog.
IDMS - all supported releases
This is an example of how to accomplish this task:
PRINT ON SPACE 2 COPY #CSADS EJECT PRINT ON PRINT GEN #MOPT CSECT=POST2,ENV=USER @MODE MODE=IDMSDC @INVOKE PROGRAM=POSTPGM ENTRY POSTEP POSTEP CSECT USING POSTEP,R12 USING SYSLST,R2 LR R12,R15 USING CSA,R10 ESTABLISH CSA ADDRESSABILITY #GETSTG TYPE=(USER,LONG,KEEP),PLIST=*,LEN=WORKALEN, X INIT=X'00',STGID='POS2',ADDR=(R2),RGSV=(R2,R8) #SETIME TYPE=STRTASK,PLIST=SYSPLIST,INTVL=3600, X TSKCD='POSTPGM' #SETIME TYPE=STRTASK,PLIST=SYSPLIST,INTVL=60, X TSKCD='TDLG' #FREESTG STGID='POS2' #RETURN LTORG SYSLST DSECT SYNECBID DS CL4'SYN2' SYNECB DS 3F SYSPLIST DS 20F WORKALEN EQU ((*-SYSLST+3)/4)*4 END
Modify parm INTVL=3600 on the #SETIME to control the frequency. INTVL is in seconds.
Assembler and link JCL:
//IDMSDMLA EXEC PGM=IDMSDMLA,REGION=4000K //STEPLIB DD DSN=.... //CDMSLIB DD DSN=..... //SYSLST DD SYSOUT=* //SYS001 DD DSN=&&WRK1,DISP=(NEW,DELETE),UNIT=SYSDA, // DCB=(RECFM=VB,LRECL=133,BLKSIZE=1334,DSORG=PS), // SPACE=(TRK,(10,10)) //SYS002 DD DSN=&&WRK2,DISP=(NEW,DELETE),UNIT=SYSDA, // DCB=(RECFM=VB,LRECL=133,BLKSIZE=1334,DSORG=PS), // SPACE=(TRK,(10,10)) //SYS003 DD DSN=&&WRK3,DISP=(NEW,DELETE),UNIT=SYSDA, // DCB=(RECFM=VB,LRECL=133,BLKSIZE=1334,DSORG=PS), // SPACE=(TRK,(10,10)) //SYSJRNL DD DUMMY //SYSIDMS DD * DICTNAME=yourdict DBNAME=yourdb DMCL=yourdmcl /* //SYSIPT DD DSN=SOURCE.POSTPGM //SYSPCH DD DSN=&&DMLA,UNIT=SYSDA,DISP=(NEW,PASS), // SPACE=(TRK,(5,5)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120) //ASMSTEP EXEC PGM=ASMA90,REGION=0M //SYSLIB DD DSN=your.DISTMAC,DISP=SHR // DD DSN=SYS1.MACLIB,DISP=SHR //SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(15,10)) //SYSUT2 DD DSN=&&SYSUT2,UNIT=SYSDA,SPACE=(CYL,(15,10)) //SYSUT3 DD DSN=&&SYSUT3,UNIT=SYSDA,SPACE=(CYL,(15,10)) //SYSPRINT DD SYSOUT=* //SYSLIN DD DSN=&&OBJECT,DISP=(NEW,PASS),UNIT=SYSDA, // SPACE=(CYL,(15,10)) //SYSIN DD DSN=&&DMLA,DISP=(OLD,DELETE) //LINK EXEC PGM=IEWL,PARM='RENT,LET,LIST,XREF',REGION=512K //SYSLIB DD DSN=your.LOADLIB,DISP=SHR //SYSLIN DD DSN=&&OBJECT,DISP=(OLD,DELETE) // DD DDNAME=SYSIN //SYSIN DD * INCLUDE SYSLIB(IDMS) INCLUDE SYSLIB(IDMSBALI) MODE AMODE(31),RMODE(ANY) ENTRY POSTEP NAME POSTPGM(R) /* //SYSLMOD DD DSN=your.USER.LOADLIB,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(6400,(80)), // DISP=(NEW,DELETE) //SYSUT2 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(6400,(80)), // DISP=(NEW,DELETE) //SYSUT3 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(6400,(80)), // DISP=(NEW,DELETE)
Add the following definitions to the sysgen.
ADD PROGRAM POSTPGM CONCURRENT DYNAMIC DUMP THRESHOLD IS 0 ENABLED ERROR THRESHOLD IS 5 ISA SIZE IS 0 LANGUAGE IS ASSEMBLER NOMAINLINE MULTIPLE ENCLAVE IS ON NEW COPY IS ENABLED OVERLAYABLE PROGRAM PROTECT REENTRANT NONRESIDENT REUSABLE SAVEAREA . ADD TASK POSTPGM ENABLED EXTERNAL EXTERNAL WAIT IS SYSTEM INACTIVE INTERVAL IS SYSTEM INVOKES PROGRAM POSTPGM NOINPUT NOMAP ON COMMIT SYSTEM ON ROLLBACK CONTINUE SYSTEM PRINT KEY IS SYSTEM PRIORITY IS 100 RESOURCE TIMEOUT INTERVAL IS SYSTEM PROGRAM IS SYSTEM SAVE LOCATION IS ANY STORAGE LIMIT IS SYSTEM LOCK LIMIT IS SYSTEM CALL LIMIT IS SYSTEM DBIO LIMIT IS SYSTEM MAXIMUM CONCURRENT THREADS IS OFF AREA ACQUISITION THRESHOLD IS DEFAULT PROTOCOL IS DEFRESP QUIESCE WAIT IS SYSTEM TRANSACTION SHARING IS SYSTEM . ADD TASK ENABLED EXTERNAL EXTERNAL WAIT IS SYSTEM INACTIVE INTERVAL IS SYSTEM INVOKES PROGRAM ADSORUN1 NOINPUT NOMAP ON COMMIT SYSTEM ON ROLLBACK CONTINUE SYSTEM PRINT KEY IS SYSTEM PRIORITY IS 100 RESOURCE TIMEOUT INTERVAL IS SYSTEM PROGRAM IS SYSTEM SAVE LOCATION IS ANY STORAGE LIMIT IS SYSTEM LOCK LIMIT IS SYSTEM CALL LIMIT IS SYSTEM DBIO LIMIT IS SYSTEM MAXIMUM CONCURRENT THREADS IS OFF AREA ACQUISITION THRESHOLD IS DEFAULT PROTOCOL IS DEFRESP QUIESCE WAIT IS SYSTEM TRANSACTION SHARING IS SYSTEM . ADD AUTOTASK POSTPGM INVOKED AT STARTUP .