Natürlich wird die Systemuhr durch die Abfrage per NTP gesetzt, wobei die Abweichung halt nicht größer sein darf, als per CHGNTPA definiert.
Natürlich muss QUTCOFFSET korrekt und zur richtigen Zeit eingestellt werden. Hierzu benötige ich genau 2 SCD-Jobs und 1 kleines CLP (ZEITUMS):
Code:
PGM PARM(&UTCOFFSET)
DCL VAR(&UTCOFFSET) TYPE(*CHAR) LEN(5)
DCL VAR(&UTCNEUN) TYPE(*DEC) LEN(2)
DCL VAR(&UTCALT) TYPE(*CHAR) LEN(5)
DCL VAR(&UTCALTN) TYPE(*DEC) LEN(2)
DCL VAR(&QHOUR) TYPE(*CHAR) LEN(2)
DCL VAR(&QHOURN) TYPE(*DEC) LEN(2)
MONMSG MSGID(CPF0000)
/* ZEITSERVER BEENDEN */
ENDTCPSVR SERVER(*NTP)
/* NEUE ZEITZONE EINSTELLEN */
RTVSYSVAL SYSVAL(QUTCOFFSET) RTNVAR(&UTCALT)
CHGVAR VAR(&UTCALTN) VALUE(%SST(&UTCALT 1 3))
CHGVAR VAR(&UTCNEUN) VALUE(%SST(&UTCOFFSET 1 3))
RTVSYSVAL SYSVAL(QHOUR) RTNVAR(&QHOUR)
CHGVAR VAR(&QHOURN) VALUE(&QHOUR)
CHGVAR VAR(&QHOURN) VALUE(&QHOURN - &UTCALTN + +
&UTCNEUN)
CHGVAR VAR(&QHOUR) VALUE(&QHOURN)
CHGSYSVAL SYSVAL(QHOUR) VALUE(&QHOUR)
CHGSYSVAL SYSVAL(QUTCOFFSET) VALUE(&UTCOFFSET)
/* ZEITSERVER STARTEN */
DLYJOB DLY(60)
STRTCPSVR SERVER(*NTP)
ENDPGM
ADDJOBSCDE JOB(ZEITSOMMER)
CMD(CALL PGM(ZEITUMS) PARM('+0200'))
FRQ(*ONCE)
SCDDATE(280304)
SCDTIME(0200)
ADDJOBSCDE JOB(ZEITWINTER)
CMD(CALL PGM(ZEITUMS) PARM('+0100'))
FRQ(*ONCE)
SCDDATE(261003)
SCDTIME(0300)
Das kostet mich 2 mal im Jahr max. 1 Minute Arbeit !!!
Bookmarks