Slide 1

Slide 1 text

サマータイム導入? 【管理者編】 その時 Notes/Domino は正確な時刻を刻むのか

Slide 2

Slide 2 text

サマータイム?2年限定?2時間! https://www.sankei.com/politics/news/180806/plt1808060002-n1.html

Slide 3

Slide 3 text

タイムゾーンとは

Slide 4

Slide 4 text

「今、この瞬間」は世界共通 日本(JST) 2018年10月10日 10時10分10秒 欧州・中央(夏時間) 2018年10月10日 3時10分10秒 米国・ニューヨーク(夏時間) 2018年10月9日 21時10分10秒 米国・ロサンゼルス(夏時間) 2018年10月9日 18時10分10秒 協定世界時(UTC) 2018年10月10日 1時10分10秒 UNIX時間 1539133810

Slide 5

Slide 5 text

時差19時間 ハワイ 14日 午前1時 東京 14日 午後8時

Slide 6

Slide 6 text

タイムゾーン https://ja.wikipedia.org/wiki/%E6%99%82%E9%96%93%E5%B8%AF_(%E6%A8%99%E6%BA%96%E6%99%82)#/media/File:Standard_World_Time_Zones.png ハワイ UTC+10 日本 UTC-9

Slide 7

Slide 7 text

協定世界時 UTC とは • 世界各地の標準時を決める時の基準となる 「世界標準時」のこと • “Universal Time, Coordinated” の略称 • セシウム原子時計を時刻源とする • GMT (Greenwich Mean Time)とはグリニッジ 天文台(経度0度)における平均太陽時を指し、 UTC は GMTの細かな時刻のズレを調整するた めの「うるう秒」を追加することで、GMTと の差が0.9秒を超えないよう調整を続けている 時刻系

Slide 8

Slide 8 text

【参考】地球の自転が一定でないため「うる う秒」で調整 http://jjy.nict.go.jp/QandA/data/leapsec.pdf

Slide 9

Slide 9 text

日本標準時 JST とは • 情報通信研究機構(NICT)が決定・維持して いる • UTC を 9 時間(東経135度分の時差)進めた 時刻 • JST と UTC との差を示す場合、午後3時30分 を 15:30:00(UTC +0900)などと表記する • Jerusalem Standard Time (イスラエル標準 時)を指して JST と表記する場合があり、一 意に特定できない

Slide 10

Slide 10 text

サマータイムとは

Slide 11

Slide 11 text

夏時間 (サマー タイム) Daylight Saving Time (DST) とも 1年のうち、夏を中心とする 時期に太陽が出ている時間帯 を有効利用する目的で標準時 を進める制度またはその進め られた時刻のこと 特定の期間だけ UTC の差が 1 時間多くなる(地域が多 い) •ロサンゼルスの標準時は UTC-08:00 、 夏時間は UTC-07:00 になる 欧州では健康への影響などか ら廃止の気運が高まっている 日本も戦後に実施されたが4 年で廃止

Slide 12

Slide 12 text

夏時間を実施する地域 https://www.time-j.net/uc/dst/

Slide 13

Slide 13 text

ややこしい国も 場所 標準時 夏時間 主要都市 ロード・ハウ島 UTC+10:30 UTC+11 ロード・ハウ島 東部時間 UTC+10 UTC+11 シドニー 東部時間 UTC+10 なし ブリスベン 中部時間 UTC+9:30 UTC+10:30 アデレード 中部時間 UTC+9:30 なし ダーウィン 西部時間 UTC+8 なし パース

Slide 14

Slide 14 text

時刻系は様々な事情で変わる • カザフスタン(2005年) • 時刻変更に起因する健康への影響を理由に夏時間を廃止 • アメリカ(2007年) • 包括エネルギー法案の可決により新しい夏時間が導入された • ナミビア(2017年) • 国内の時間を統一、南アフリカとの時差を無くし経済面で有利にする • ブラジル(2018年) • 総選挙の投票があり夏時間を短縮、国家中等教育試験への影響を考慮 し開始日を延期

Slide 15

Slide 15 text

今どき時刻なんて 自動調整ですよね?

Slide 16

Slide 16 text

電波時計/世界時計 https://protrek.jp/

Slide 17

Slide 17 text

電波時計が受信 する「JJY」 • 日本国内の電波時計は、 情報通信研究機構 (NICT)が送信する 「JJY」という無線局の 電波を受信して正確な 時刻を取得する • 協定世界時(UTC)を9 時間進めた時刻(JST) が設定されている • 夏時間情報として予備 ビットを使う例が示さ れているものの、ずれ る時間の幅の情報は存 在しない http://jjy.nict.go.jp/jjy/trans/index.html

Slide 18

Slide 18 text

電波時計は自動で1時間進める? https://support.casio.jp/storage/pdf/002/qw3258.pdf https://www.seiko-watch.co.jp/support/instruction/pdf/8B53_quickmanual.pdf

Slide 19

Slide 19 text

ケータイ/スマホ • 携帯電話網やGPSから正確な時刻を受信 • 受信した時刻を現地時間に変換 ➢ 変換の基になる情報(タイムゾーン、夏時間実施有無、夏 時間の開始と終了の日時、時間幅など)の更新が必要

Slide 20

Slide 20 text

機器ごと に対応状 況を確認 電波時計は自動で1時間ずれる? 古い機器でもOSアップデートで きれば問題なさそう? アップデートできない機器は日 本以外のタイムゾーンに変更 か?

Slide 21

Slide 21 text

パソコン/サーバーは 大丈夫?

Slide 22

Slide 22 text

ローカルタイムでは不都合な場合がある 2018年10月10日 10:10:10 October 10, 2018 10:10:10 AM 作成時刻: 2018/10/10 10:10:10 日本 ロサンゼルス

Slide 23

Slide 23 text

コンピュータ内部は UTC で時刻を保持 (が理想) 作成時刻: 2018/10/10 1:10:10 時刻を UTC で保持

Slide 24

Slide 24 text

インターネット時刻サーバー • NTP(Network Time Protocol)を使い、ネットワーク経由で時 刻を同期 • 1900年1月1日 0時0分0秒(UTC) からの積算秒数を使用

Slide 25

Slide 25 text

UTC をローカルタイムに変換して表示 2018年10月10日 10:10:10 October 9, 2018 6:10:10 PM 作成時刻: 2018/10/10 1:10:10 日本 ロサンゼルス JST に変換 PDT に変換

Slide 26

Slide 26 text

UTCとの差をタイムゾーンで調整

Slide 27

Slide 27 text

タイムゾーン設定で夏時間も調整可能

Slide 28

Slide 28 text

【参考】夏時間を自動調整する様子 1秒後

Slide 29

Slide 29 text

OSが最新の夏時間に対応しないと 自動調整できない…

Slide 30

Slide 30 text

タイムゾーン(夏時間含む)の情報 • Windows • レジストリに存在 HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥Windows NT¥CurrentVersion¥Time Zones¥Tokyo Standard Time • Windows Update で更新 • tz database • 世界各地域の標準時情報をボランティアの共同作業により収録した データ • コンピュータ・プログラムやオペレーティングシステムでの利用を意 図している • 夏時間のような標準時の変化を示す遷移情報に加え、うるう秒も記録 されている https://ja.wikipedia.org/wiki/Tz_database

Slide 31

Slide 31 text

夏時間の切替日を 想像してみた

Slide 32

Slide 32 text

夏時間の開始日 • 標準時間からサマータイムへ移行する際は時刻を進め る。 • 例として午前2時に2時間進める場合、開始日の1時59 分59秒の次は、4時00分00秒になる。この場合、開始 日の2時台と3時台は存在しない時刻という扱いになる。

Slide 33

Slide 33 text

開始日に 発生しそ うな問題 時間が2時間失われることで、夜間処理を完 了するための時間が足りなくなる可能性が ある 夜間勤務者の勤務時間が2時間短縮されたが、 タイムカード上の勤務時間は普段どおりな ので時給を多く貰えた 失われた時刻に起動するはずだった処理が 起動しない、あるいは2時間遅れで起動する 深夜番組のタイマー録画がとれていない

Slide 34

Slide 34 text

夏時間の終了日 • 夏時間終了時には時計の針を元に戻す。 • 例として、午前4時に2時間戻る場合、3時59分59秒 の1秒後、もう一度2時00分00秒に戻る。 • 最終日は2時台と3時台の時刻は2回存在する。

Slide 35

Slide 35 text

終了日に 発生しそ うな問題 夜間処理が2度実行される 1時30分から3時間かかる予定の処理が1時 間で終了したように見える 普段より2時間長い深夜勤務を強いられる 3時40分よりも2時40分のほうが後に発生す ることによる並び替えや時間の計算の破た ん

Slide 36

Slide 36 text

じゃあDomino は?

Slide 37

Slide 37 text

Domino の夏時間対応とは http://www-01.ibm.com/support/docview.wss?uid=swg21680068 “ IBMi以外のプラットフォームでは、 タイムゾーンや夏時間の有無の情報 をOSの設定値から取得します”

Slide 38

Slide 38 text

夏時間調整の設定を確認 https://www-01.ibm.com/support/docview.wss?uid=swg21462834 夏時間調整が設定されていない場合 “Not Observed”

Slide 39

Slide 39 text

Domino で確認してみた • 環境:Windows10上の Domino V10 ベータ2 • OSのタイムゾーンを「太平洋標準時」に設定 • Domino上で午前2時に稼働するよう設定 • ServerTasksAt2=updall • Agentを2時にスケジュール • プログラム文書を2時にスケジュール

Slide 40

Slide 40 text

PDT(太平洋夏時間)の開始日 • 2018年3月11日 2時(1:59:59 PST → 3:0:0 PDT) • ServerTasksAt2=updall ➢実行されなかった • Agentを2時にスケジュール ➢3時に実行された • プログラム文書を2時にスケジュール ➢実行されなかった

Slide 41

Slide 41 text

PDT(太平洋夏時間)の終了日 • 2018年11月4日 2時(2:59:59 PDT → 2:0:0 PST) • ServerTasksAt2=updall ➢夏時間と標準時の2時に実行された • Agentを2時にスケジュール ➢夏時間の2時にだけ実行された • プログラム文書を2時にスケジュール ➢夏時間と標準時の2時に実行された

Slide 42

Slide 42 text

Agent は正しく動いた。 他のはこれでいいのか?

Slide 43

Slide 43 text

スケジュールと 予約はどうすれば?

Slide 44

Slide 44 text

作成時の情報を保持するフィールドあり • 新たなタイムゾーン設定に従い書き換えが必要 ➢StartDateTime ➢EndDateTime ➢StartTimeZone ➢EndTimeZone

Slide 45

Slide 45 text

更新ツールが提供されているようです • DST情報の変更に対応したことを示す 技術文書が存在 • 重要そうな3点だけ、以下に抜粋 ➢ 新たなDST情報を含むOSのパッチを適用 ➢ 3つのエージェントを実行 ✓ Registry Agent ✓ Admin Agent ✓ RnR Agent ※エージェントはlssファイルで提供 ➢ Java コード用に JTZU Tool を実行? https://www-01.ibm.com/support/docview.wss?uid=swg21981718 https://developer.ibm.com/javasdk/support/dst/jtzu/

Slide 46

Slide 46 text

Notesの対応は?

Slide 47

Slide 47 text

対応不要(OSのタイムゾーン設定を使用) 「OS のタイムゾーン設定を使用」 を「いいえ」にすることは現状サ ポートされていない。 http://www-01.ibm.com/support/docview.wss?uid=swg21091291

Slide 48

Slide 48 text

【参考】カレンダーの夏時間対応

Slide 49

Slide 49 text

Notes のプログラム はどうなの?

Slide 50

Slide 50 text

プログラムに関することですので 「開発者編」でご紹介します! 次回以降の「のの会」をお楽しみに!!

Slide 51

Slide 51 text

まとめ 夏時間はタイムゾーンと密接に関わっ ている! 夏時間切替日に気をつけろ! クライアントとサーバーの両方でDST 情報の更新(OSのアップデート)を! カレンダーエントリやリソース予約の 文書にある日時値も変換しよう! ところで、Notes/Dominoは2時間のず れに対応できるの?

Slide 52

Slide 52 text

【参考】DST関連事例、ツール等 https://www-01.ibm.com/support/docview.wss?uid=swg21991748 How to prevent Notes/Domino from adjusting for daylight saving time in Turkey https://www-01.ibm.com/support/docview.wss?uid=ibm10734019 Brazilian Daylight Saving Time 2018 - 2019 - Notes/Domino/SmartCloud Notes - Known Issues & Recommended Actions https://www-01.ibm.com/support/docview.wss?uid=swg21981718 Agents for Updating Calendar and Scheduling Entries and Resource and Reservation Entries for Daylight Savings Time Zone Changes https://www-01.ibm.com/support/docview.wss?uid=swg21462834 (参考)Lotus Domino サーバーのタイムゾーンと夏時間調整 (Daylight Saving Time: DST) の設定を確認する方法 http://www-01.ibm.com/support/docview.wss?uid=swg21249964 Using the IBM Time Zone Update Utility for Java (JTZU) with Lotus software products

Slide 53

Slide 53 text

【参考】notes.ini の DST 情報 • DST = value 1を設定すると、4月の第1日曜日から10月の最終日曜日の間に作成・更新される文書の作成時刻と更新時刻がシス テム時間より1時間遅くタイムスタンプされる。サーバーとクライアントに適用可能 0 – 夏時間 を実施しない 1 – 夏時間 を実施する • DST_Begin_Date, DST_End_Date 夏時間の開始日(DST_Begin_Date)終了日(DST_End_Date)をYY/MM/DD形式で指定する。サーバーのみ適用 可能 この設定を省略すると、開始日は4月の第1日曜日、終了日は10月の最終日曜日になる • DSTlaw = 開始月, 開始週, 開始日, 終了月, 終了週, 終了日 夏時間が実施される日を指定する。月は1~12, 週は1~4, 開始日1(日曜)~7(土曜)を指定する。-1は月の最後の 週で、-2は最後から2番目の週となる。サーバーとクライアントに適用可能 デフォルトは DSTlaw=4,1,1,10, -1,1 例)夏時間が6月第1週の日曜に始まり、8月最後の週の日曜に終わる場合 DSTlaw=6, 1, 1, 8, -1, 1 • DSTLAWTIME=時:分;時:分 夏時間が開始する時刻と終了する時刻を指定する。時間は0~23、分は0~59を指定する。 デフォルトは夏時間が午前2時に始まり、午前1時に終わる 9.0.1 FP4 から有効

Slide 54

Slide 54 text

【参考】ファイルシステムとタイムスタ ンプ ファイルシステム 作成日時 更新日時 アクセス日時 タイムスタンプ NTFS 100ナノ秒単位 100ナノ秒単位 100ナノ秒単位 UTC ReFS 100ナノ秒単位 100ナノ秒単位 100ナノ秒単位 UTC FAT(FAT16) 10ミリ秒単位 2秒単位 1日単位 ローカルタイム FAT32 10ミリ秒単位 2秒単位 1日単位 ローカルタイム exFAT 10ミリ秒単位 10ミリ秒単位 2秒単位 ローカルタイム、 UTC(Vista SP2~)

Slide 55

Slide 55 text

【参考】UNIX時間の2038年問題 UTC での 1970年1月1日 0時0分0秒(UNIXエポック)から 閏秒考慮しない経過秒数 32ビットまたは64ビットの符号付き整数で扱う 32ビットの場合、最大値 2,147,483,647 を超えると負の値 になり、正しく時刻を扱えない問題がある→ 2038年問題

Slide 56

Slide 56 text

【参考】基点の時刻 UNIX エポック 1970年1月1日 0時0分0秒 UTC 32ビット符号付きの場合 2038年1月19日12時14分7秒(JST) NT タイムエポック 1601年1月1日 0時0分0秒 UTC AD 30828 NTP 1900年1月1日 0時0分0秒 UTC 32ビット符号なし 2036年2月7日 6時28分15秒 (UTC) GPS 1980年1月6日 0時0分0秒 UTC 10ビット、1024週ごと 次は2019年4月7日午前9:00 (JST)