PJ41068: POSSIBLE NORM STATE TIME CHANGE ISSUE - PJ40381
Closed as program error.
See Problem Summary.
APAR NUMBER: PJ41068 PRODUCT: z/TPF FUNCTIONAL AREA: CLOCKS SHIPPED IN PUT: ABSTRACT: Due to PJ40381, global fields @U1ZID (GMT last midnight), @GMTDA (GMT day number), and @GMTDY (GMT date) may not be correct. PACKAGE CONTENTS: Source Segments: (C) base/macro/gclkx.mac (C) base/rt/cdtc.asm (C) base/rt/glbl.asm Object Only Binaries: None. Configuration Independent Binaries: None. Support Files: None. OTHER BINARIES TO BUILD: YES (C) <sys>/load/CDTC.so (C) <sys>/load/GLBL.so (C) <sys>/obj/cdtc.o (C) <sys>/obj/glbl.o COMMENTS: First, PJ40381 was intended to change GMT last midnight global field @U1ZID and keypoint B field CK9ZID to be relative to perpetual minute global field @C0CLO and keypoint B field CK9CLO. PJ40381 did change keypoint B field CK9ZID to be relative to @C0CLO and CK9CLO. When daylight savings time is turned on or off, CK9ZID is adjusted using the daylight savings time offset. However, the changes in CK9ZID are not reflected in global field @U1ZID. Therefore, @U1ZID is not adjusted when daylight savings time is turned on or off. Second, when command ZATIM DST ON has turned on daylight savings time and the system is cycled to norm state and PJ40381 is applied, global fields @GMTDA (GMT day number) and @GMTDY (GMT date) will be wrong. On cycle to norm program CDTC sets GMT global fields @GMTDA and @GMTDY. These global fields are set by taking global field @U1ZID (GMT last midnight value) and applying the GMT difference to get local time last midnight. This value is a calculated local last midnight. The calculated local last midnight is compared to global field @U1MID (actual local last midnight). The GMT date is set based on whether the calculated last midnight is equal to or greater than the value in @U1MID. APAR PJ40381 changed how global field @U1ZID (GMT last midnight) is handled when daylight savings time is active. @U1ZID is now relative to @C0CLO (perpetual minutes clock). When daylight savings time is active, the GMT offset and the daylight savings time offset must be applied in order to compare @U1ZID to @U1MID. Currently, program CDTC does not take the daylight savings time offset into account when it calculates local last midnight from @U1ZID. As a result, the GMT day is being set incorrectly in @GMTDA and @GMTDY.
SOLUTION: First, program GLGL and macro gclkx have been updated. Every minute program CTDF calls GLBL (using CROSC GLBAC) to copy time fields from keypoint B to globals. GLBL has been updated to copy CK9ZID to @U1ZID. Also, macro gclkx copies the time related global fields from the main I-stream to all other I-streams. Now, macro gclkx will also copy @U1ZID. Second, program CDTC has been updated. When the GMT date is being determined, the daylight savings time offset is applied. Program CDTC gets the contents of @U1ZID (GMT last midnight value) and applies the GMT offset and applies the DST offset if daylight savings time is active. This result is compared to @U1MID (local last midnight value) to determine the GMT date. COREQS: NO None. MIGRATION CONSIDERATIONS: NO None. BUILD COMMANDS AND INSTRUCTIONS: YES #maketpf commands for linux maketpf -f CDTC cdtc.o maketpf -f GLBL glbl.o maketpf CDTC link TPF_VERIFY_LINK_REFS=NO maketpf GLBL link TPF_VERIFY_LINK_REFS=NO maketpf CDTC link maketpf GLBL link UPDATED INFORMATION UNITS: NO None. See your IBM representative if you need additional information. DOWNLOAD INSTRUCTIONS: http://www.ibm.com/software/htp/tpf/maint/maintztpf.html APAR URL: http://www.ibm.com/software/htp/tpf/ztpfmaint/put/PJ41068.htm
Reported component name
Reported component ID
NoSpecatt / Xsystem
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
Fixed component ID
Applicable component levels