Does the CA Date Simulator store clock finder, STCKFNDR find extended/fast store clock instructions (STCKE/STCKF)?

Document ID : KB000032851
Last Modified Date : 14/02/2018
Show Technical Document Details

Question:  

Does the CA Date Simulator store clock finder, STCKFNDR find extended/fast store clock instructions (STCKE/STCKF)?

STCKE is being used, for instance, by DB2 release 10 and higher.

 

Answer:  

Yes, STCKE/STCKF support was added by TF1D298 in 2012 - but please do always install the most current cumulative maintenance from

ftp://ftp.ca.com/pub/DateSimulator/2.0/Patches/

For instance, in November 2015 the current maintenance was TF1D327. See "TF1D327.txt" for details please.

 

Then STCKFNDX will be available and can be used like STCKFNDR.

See following JCL sample - it determines the DB2 10, or higher, STCKE offset:

 

//jobcard...

//STEP1    EXEC PGM=STCKFNDX                                 

//STEPLIB  DD DISP=SHR,DSN=hlq.datesim.LOAD                

//SYSLIB   DD DISP=SHR,DSN=hlq.db210.SDSNLOAD               

//OUTFILE  DD SYSOUT=*                                       

//SYSPRINT DD SYSOUT=*                                        

...

 

You can use the same JCL in order to locate STCK/STCKE/STCKF instructions within your own Assembler load modules.

 

 

Additional Information:

For DB2 10, or higher, you have to look for STCKE instruction offset in the DSNSVCTS CSECT with DSNXGRDS in the output.

...

Possible STCKE in module DSNXGRDS, segment 1, offset 00BBBF36, 

         class B_TEXT, section DSNXVCTS, offset 0000014E       

...

In this sample the offset you need is "0BBBF36".

It must be used for SET command as described in the CA Date Simulator 2.0 User Guide, chapter 5, topic "Implement Basic DB2 Support".

...

SET STC D10ADBM1 NOTIME STCK(DSNXGRDS,0BBBF36)

...

 

If the CA Date Simulator started task, WARPMAIN, is up and running, you can warp the time as follows:

...

//DS#DB210 JOB ...

//STEP1    EXEC PGM=WARPPARM,REGION=2M                                

//STEPLIB  DD DISP=SHR,DSN=EUADG.TWARP20.APFLOAD                      

//SYSOUT   DD SYSOUT=*                                                

//SYSIN    DD *                                                       

SET STC D10BDBM1 NOTIME STCK(DSNXGRDS,0BBBF36)                         

SET JOB DS#DB210 DATE 12/24/2012 TIME 18:00:00                        

/*                                                                    

//*------------------------------------------------------------------*

//STEP2    EXEC PGM=WARPDB2,PARM='D10B'                               

//STEPLIB  DD DISP=SHR,DSN=EUADG.TWARP20.APFLOAD                      

//*------------------------------------------------------------------*

//STEP3    EXEC PGM=IKJEFT01,DYNAMNBR=20                               

//STEPLIB  DD DISP=SHR,DSN=DB2.DB2A10.SDSNLOAD             

//         DD DISP=SHR,DSN=D10B.RUNLIB.LOAD                           

//SYSTSPRT DD SYSOUT=*                                                

//SYSTSIN  DD *                                                        

DSN SYSTEM(D10B)                                                      

RUN PROGRAM(DSNTEP2) PLAN(DSNTEP2) PARMS('/ALIGN(LHS)')               

END                                                                   

//SYSPRINT DD SYSOUT=*                                                

//SYSUDUMP DD SYSOUT=*                                                

//SYSIN    DD *                                                       

SELECT CURRENT DATE, CURRENT TIME                                      

    FROM SYSIBM.SYSDUMMY1                                             

    ;                                                                 

/*                                                                    

...

 

The expected result - December, 24th 2012:

...

 *0001: D10BDBM1         :Job has been set                 

 *0002: DS#DB210         :Job has been set                 

READY                                                      

DSN SYSTEM(D10B)                                            

DSN                                                        

RUN PROGRAM(DSNTEP2) PLAN(DSNTEP2) PARMS('/ALIGN(LHS)')    

DSN                                                        

END                                                        

READY                                                      

END                                                        

                                                           

PAGE    1                                                  

***INPUT STATEMENT:                                        

 SELECT CURRENT DATE, CURRENT TIME                         

     FROM SYSIBM.SYSDUMMY1                                 

     ;                                                     

       +-----------------------+                           

       |            |          |                           

       +-----------------------+                           

     1_| 2012-12-24 | 17.59.35|                           

       +-----------------------+                            

SUCCESSFUL RETRIEVAL OF          1 ROW(S)                  

...

(There is a difference here of 25 leap seconds.)