方案:由于时间敏感程序的原因而更改 DST 开始或结束时间

安排在夏令时 (DST) 开始或结束时所处的时间范围内运行的时间敏感程序可能会遇到不可预测的结果。要避免这种情况,可以更改系统上 DST 开始或结束的时间。

情况

安排了时间敏感程序在 DST 开始或结束的那个小时内运行。因为将跳过或重复该小时,所以时间敏感程序可能会遇到不可预测的结果。可能会出现以下情况:

  • 作业可能运行两次,因此会对系统的性能产生不必要的影响。
  • 作业可能根本不运行;因此不会完成工作。
  • 程序可能会检索到错误的时间值。

目标

需要将 DST 开始或结束时间(取决于哪个时间生效)安排在其他时间范围内。因为您安排了时间敏感程序在为当前时区指定的时间范围内运行,因此其他时间范围很有必要。

本方案的目标如下:

  • 允许时间敏感程序按安排的时间运行
  • 将当前 DST 开始或结束时间更改为未安排时间敏感程序运行的时间范围
  • 临时使用其他时区,该时区的 DST 开始或结束时间范围不会影响时间敏感程序

详细信息

根据您要开始还是结束 DST,如果作业安排在跳过或重复的小时内运行,或者作业当前在运行,那么系统可能会遇到错误。例如,如果 DST 开始于凌晨 2 点,那么系统时间会在凌晨 2 点向前移动一个小时。在这种情况下,系统无法识别从凌晨 2 点至凌晨 3 点的小时。不能将时间敏感作业安排在这个小时内运行。结束 DST 时存在相同的情况。不能在重复的那个小时内安排作业。

如果将 DST 更改为未安排时间敏感程序运行的时间范围,那么可以继续使用当前时区。但是,在 DST 生效之后,需要将 DST 开始或结束时间改回其原始值。

如果根据当前时区创建新时区,那么不需要更改当前时区的 DST 属性。但是,在更改 DST 时间之后,需要将时区系统值改回其原始时区。

恢复步骤

如果已将作业安排在 DST 开始或结束期间运行,那么可以延迟 DST,或者创建使用其他 DST 开始和结束时间的新时区。如果正在使用 IBM 提供的时区,请根据提供的时区创建新时区。这将确保您不会编辑随系统提供的时区。否则,请通过编辑时区描述来延迟 DST。