HP 3000 Manuals

SETCLOCK [ MPE/iX Commands Reference Manual Volume I ] MPE/iX 5.0 Documentation


MPE/iX Commands Reference Manual Volume I

SETCLOCK 

Alters the system time or system time zone.

SYNTAX 

         {DATE= date spec; TIME= time spec [;GRADUAL]}
         {                                 [;NOW    ]}
SETCLOCK {                                           }
         {CORRECTION= correction spec                }
         {TIMEZONE= time zone spec                   }
         {;CANCEL                                    }
Parameters 

date spec     A specification of local date in the form mm/dd/yy[yy].
              The year may be expressed in two or four digits.  If a date
              is provided, a time must also be provided.

time spec     A specification of local time in the form hh:mm[:ss] where
              seconds are optional.  This specification uses a 24-hour
              clock; it is not permissible to specify the time using A.M.
              or P.M. If a time is provided, a date must also be
              provided.

              The operating system will experience problems if the system
              date and time are too close to the base time of midnight,
              January 1, 1970.  Therefore, for proper system operation
              this command requires the date and time to be later than
              ten minutes past midnight on January 1, 1970.

correction    An integer specifying the desired change in the system
spec          time.  The units are seconds.  Thus a positive correction
              will cause the system clock to advance by the specified
              number of seconds, while a negative correction will cause
              the system clock to slow by the specified number of
              seconds.

time zone     A specification of the time zone in the form hh:mm,
spec          preceded by a required "W" or "E" to specify the Western or
              Eastern Hemisphere.  Thus a specification of W7:00
              represents a seven-hour displacement from Universal Time
              (GMT) with the time zone being in the Western Hemisphere.

              Providing a time zone spec is the only way to change the
              system time and maintain both local and Universal Time
              (GMT) accurately.  See the Operation Notes section for
              details.

GRADUAL       This option is meaningful only when the date and time
              specifications are provided.  GRADUAL causes the system
              clock to speed up or slow down until the time change is
              completed, at which time the system clock will resume its
              normal pace.  GRADUAL is the default for the Date-Time form
              of the command.

NOW           This option is meaningful only when the date and time
              specifications are provided.  NOW forces the change to be
              immediate.  See the warning in the Operation Notes section
              about the dangers of changing the system time immediately.

CANCEL        Cancels a current time correction.  Any correction which
              has already taken place before the cancellation will
              remain; this option does not undo a correction which has
              already been accomplished.  See the Operation Notes and
              Examples sections for details.

Operation Notes 

The SETCLOCK command is used to change the system time or to change the
system's time zone.

Changing the system time or time zone does not affect any interval timers
in effect.  Thus, a PAUSE for a given time duration will maintain that
same duration regardless of how the system time is changed.

Changing the system time or time zone will cause any jobs streamed with a
time specification (;AT=, ;DAY=, ;DATE= or ;IN=) to be introduced in
accordance with the newly-changed system time.  Thus, a job streamed with
;AT=9:00 will be introduced when the changed system time is equal to
9:00.

The user may provide SETCLOCK with a date and time, a time correction, or
a time zone.  The Date-Time form, the Correction form, and the Time Zone
form are mutually exclusive; for instance, the user may not provide
specifications for both a time correction and a time zone in a single
command.

The Date-Time and Correction forms of the command are intended for slight
adjustments of the system time.  For example, these forms would be used
to move the time forward or backward slightly in order to keep the system
time synchronized with an external time source.  Both local and Universal
(GMT) time are adjusted.

The Time Zone form of the command is intended for the larger time changes
required to move the system to a new time zone, such as moving between
Standard Time and Daylight Savings Time.  This form of the command alters
the local time without changing Universal Time.

Date-Time:  If the Date-Time form of the command is used, the system time
is adjusted to the specified date and time.  This adjustment is gradual
by default.  It may be made immediate if ;NOW is specified and the user
has System Manager (SM) capability.

Correction:  If the Correction form of the command is used, the system
time is adjusted forward or backward by the amount of the correction.
This adjustment is always gradual.

Time Zone:  If the Time Zone form is used, local time is adjusted to
match that of the specified time zone.  In addition, the system time zone
offset is changed to reflect the new time zone.

The Use of The Time Zone Offset 

On the HP3000 Universal Time (GMT) is calculated by starting with local
time and adding or subtracting a time zone offset.  When changing time
zones (such as moving from Standard to Daylight Savings Time and back)
the local time is altered, but this change must not affect Universal
Time.  To prevent Universal Time from being altered, both the local time
and the system time zone offset must be adjusted.  Therefore, using the 
Time Zone form of this command is the only way to accurately change time 
zones. 

If the Date-Time or Correction form of the command is used, Universal
Time will drift along with local time.  Thus, the Date-Time and
Correction forms of this command should only be used to adjust the clock
for drift, not to change time zones.

Results of the Time Zone Form 

   *   If the change in time zone is to a later time (a change to
       Daylight Savings Time or an "Eastern" geographic movement), both
       local time and the time zone offset are changed immediately.

       The effect is that users of local system time will see an
       immediate jump forward to the new time zone, while users of
       Universal Time will see no change.

   *   If the change in time zone is to an earlier time (a change from
       Daylight Savings to Standard Time or a "Western" geographic
       movement), the time zone offset is changed immediately.  Then the
       local time slows down until the system time corresponds to the
       time in the new time zone.

       The effect is that users of local system time will see a gradual
       slowdown to match the new time zone, while users of Universal Time
       will see an immediate forward jump, then a slowdown until the
       system time again matches "real" Universal Time.

This method of changing time zones ensures that no out-of-sequence time
stamps will occur either in local time or in Universal Time.

How a Gradual Time Change Works 

Whether the Date-Time or a Correction form is used, the default method of
changing the time is to gradually speed up or slow down the system clock
until the change is achieved.  Thus, even when a previous time is
requested, the system clock will still move forward, although at a slower
pace than real time.  This slower pace will continue until the desired
time "catches up" with the system clock.  Because of the system clock's
forward motion, there will never be a case where two consecutive
timestamps appear to be out of sequence and where system time appears to
run backwards.

This change in clock speed is accomplished by establishing a system time
correction which is gradually consumed.  During this time the system
clock speeds up or slows down as necessary.  When the correction reaches
zero, the system clock resumes its normal pace.  The rate of the
correction depends on the load on the system.  The correction rate will
be slowed down by frequent timestamp requests, file accesses and frequent
operating system activity such as context switches.  In general, the
correction will take no longer than twice the requested time difference.
For example, a request to slow down the clock by one hour will take a
maximum of two hours to complete.

Results of the ;CANCEL Parameter 

Any time during an on-going correction, issuing this command with the
;CANCEL parameter will immediately set the correction to zero and cause
the system clock to resume its normal pace.  Any previous correction will
remain.  When this option is used, the system will report the amount of
correction which was cancelled.

How a System Time Change Affects Accounting Information 

Changing the system time, even gradually, may cause accounting
CONNECT-MINUTES to be distorted.  Anyone logging on before the change and
then logging off after the change is completed will have their accounting
CONNECT-MINUTES data distorted; if the time change is forward,
CONNECT-MINUTES will be increased by the amount of the time change, and
if the time change is backward, CONNECT-MINUTES will be decreased by the
amount of the time change.

Dangers in Using the ;NOW Parameter 

The ;NOW parameter permits immediate forward or backward time changes.
However, several dangerous situations can occur:

   *   Any applications which rely on the forward progression of time may
       give inconsistent results if the time is immediately set
       backwards.  Such applications include the processing of
       timestamped transactions in which the sequence of those
       transactions is important.

   *   In order to recover data in case of an unexpected hardware or
       software failure, some applications require that the system time
       must never seem to go backwards.  For instance, some applications
       log transactions to a circular file.  These transactions are
       timestamped, and if the transactions must be recovered, the
       recovery program determines the end of data by looking for
       timestamps which are out of sequence.  If the system time is set
       backwards immediately, transactions which occur after the time
       change may not be recovered.  Therefore, do not set the time
       backwards using the ;NOW option if there are applications which
       log their transactions using timestamps.

   *   Accounting CPU-SECONDS data may be distorted.  The user whose
       process was active during an immediate forward or backward change
       might seem to have a CPU-SECONDS time which is an extremely large
       positive or negative number.

   *   STORE/RESTORE, TurboSTORE/XL, or any other file archive system
       based on dates or times may not store or restore the files in the
       expected manner, since some files may have creation or access
       times in the future or may even have access times which precede
       their creation times.

   *   Some compilation tools like MAKE rely on the relative modification
       dates of the files in the compilation unit.  Setting the system
       time backward and then modifying the main file in the compilation
       unit may force an unnecessary full compilation, since the main
       file may have an earlier modification time than the files it
       depends on.  Setting the system time backward and then changing a
       file needed by the main file will cause MAKE to think that the
       changed file's modification time precedes that of the main file.
       Thus, the changed file will not be included in the recompilation.

This list is only meant to include a few of the dangers associated with
an immediate time change; this list does not represent all of the
problems likely to be encountered.  Therefore, if the ;NOW option must be 
used, it should be used only with a full knowledge of its effects on the 
system's workload. 

Use 

This command may be issued from a session, job, program, or in BREAK.
Pressing Break has no effect on this command.

Diagnostician (DI) and either Operator (OP) or System Manager (SM)
capabilities are required to issue this command.  Additionally, System
Manager (SM) capabiltiy is required to use the ;NOW parameter.

Examples of Date-Time and Correction Forms: 

The following example illustrates setting the system time by providing a
date and time:

     :SETCLOCK DATE=07/04/1993;TIME=15:00 

The following example illustrates providing a time correction to advance
the system time by one hour.

     :SETCLOCK CORRECTION= +3600 

or

     :SETCLOCK CORRECTION= 3600 

Both of the above examples cause Universal Time (GMT) to change as well
as local time, and therefore while they are useful in correcting the
system time for drift (time gain or loss), they are not accurate ways to
change time zones.

The following example illustrates setting a time correction, executing a
SHOWCLOCK command, cancelling the correction, then again executing a
SHOWCLOCK command.  Note that by the time of the first SHOWCLOCK the
correction has already begun to be consumed.

     :SETCLOCK CORRECTION= -3600 

     :SHOWCLOCK 

     SYSTEM TIME: FRI, JUL 24, 1987, 8:47:35 AM
     CURRENT TIME CORRECTION:  -3568 SECONDS
     TIME ZONE: 7 HOURS 0 MINUTES WESTERN HEMISPHERE

     :SETCLOCK; CANCEL 

     CORRECTION OF -3550 SECONDS HAS BEEN CANCELLED

     :SHOWCLOCK 

     SYSTEM TIME: FRI, JUL 24, 1987, 8:52:53 AM
     CURRENT TIME CORRECTION:  0 SECONDS
     TIME ZONE: 7 HOURS 0 MINUTES WESTERN HEMISPHERE

Note that in the example above the system clock was slower than normal
for several minutes.  Cancelling the correction did not undo that change;
it merely prevented any further time change.  Thus after this sequence of
commands, the system clock is set to a slightly earlier time than if no
SETCLOCK command had been issued.

Examples of the Time Zone Form: 

Moving from Standard Time to Daylight Savings Time: 

The following example illustrates changing the system time zone offset
from 8 hours 00 minutes in the Western Hemisphere (Pacific Standard Time)
to 7 hours 00 minutes in the Western Hemisphere (Pacific Daylight Savings
Time).  This command will cause local time to jump forward immediately
one hour.  Universal Time will be unchanged.

     :SETCLOCK TIMEZONE=W7:00 

     SYSTEM TIME: SUN, APR 4, 1993, 7:12:00 AM
     CURRENT TIME CORRECTION:  3600 SECONDS
     TIME ZONE: 7 HOURS 0 MINUTES WESTERN HEMISPHERE

Moving from Daylight Savings Time to Standard Time: 

The following example illustrates changing the system time zone offset
from 7 hours 00 minutes in the Western Hemisphere (Pacific Daylight
Savings Time) back to 8 hours 00 minutes in the Western Hemisphere
(Pacific Standard Time).  This command will cause local time to slow down
until it loses one hour.  Users of Universal Time will see an immediate
one-hour jump forward, followed by a slowdown until system Univeral Time
again matches real Universal Time.

     :SETCLOCK TIMEZONE= W8:00 

     SYSTEM TIME: SUN, OCT 31, 1993, 06:23:14 AM
     CURRENT TIME CORRECTION:  -3600 SECONDS
     TIME ZONE: 8 HOURS 0 MINUTES WESTERN HEMISPHERE

Related Information 

Commands      SHOWCLOCK, SHOWTIME

Manuals       Performing System Management Tasks (32650-90004)



MPE/iX 5.0 Documentation