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

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

book

Article ID: 32851

calendar_today

Updated On:

Products

Date Simulator

Issue/Introduction

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.

 

 

Environment

Z/OS

Resolution

Yes, STCKE/STCKF support was added by TF1D298 in 2012. 

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=HLQ.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=HLQ.TWARP20.APFLOAD                      

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

//STEP3    EXEC PGM=IKJEFT01,DYNAMNBR=20                               

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

//         DD DISP=SHR,DSN=HLQ.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.)