0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プリザンターとAzure SQL Databaseで更新日時がずれる問題に対応した話

0
Posted at

はじめに

Pleasanter を Windows Server 上で動かし、データベースに Azure SQL Database を利用していたところ、更新日時が日本時間より9時ズレて表示される問題に遭遇しました。

最終的には、Windows Server のタイムゾーンを UTC に変更することで解決しました。

環境

今回の環境は以下です。

  • Pleasanter : 1.5.2.0
  • OS : Windows Server
  • DB : Azure SQL Database
  • OSタイムゾーン : Tokyo Standard Time
  • Pleasanterのテナント設定 : 東京
  • Pleasanterのユーザー設定 : 東京

Service.json は以下のように設定していました。

{
  "TimeZoneDefault": "Tokyo Standard Time",
  "DefaultLanguage": "ja"
}

Rds.json も Azure SQL Database 用に以下のような設定です。

{
  "Dbms": "SQLServer",
  "Provider": "Azure"
}

原因

今回の原因は、Pleasanterを動かすOSの時刻とデータベースの時刻が異なるために発生している問題でした。

Pleasanterはデータベースの時刻ロケールと、アプリケーションが動作しているOSの時刻ロケールが一致していることを前提とした設計になっているようです。

特にAzure SQL Database のように、データベース側の時刻を UTC から変更できない場合は、この前提が崩れてしまうことが原因になります。

解決方法

解決方法は、Windows Server のタイムゾーンを UTC に変更することでした。

管理者権限の PowerShell またはコマンドプロンプトで、以下を実行します。

tzutil /s "UTC"

この状態にすることで、DBとOSの基準時刻がUTCで揃い、Pleasanterの画面上ではユーザーのタイムゾーンに従って日本時間で表示されるようになりました。

注意点

Windows Server のタイムゾーンを UTC に変更すると、Pleasanter 以外にも影響があります。

特に以下は確認しておいたほうがよいです。

  • 同じサーバー上の別アプリケーション
  • タスクスケジューラ
  • ログの表示時刻
  • バックアップ処理
  • バッチ処理
  • ファイル更新日時の見え方

Pleasanter 専用サーバーであれば影響は比較的限定的ですが、他システムと共存している場合は注意が必要です。

まとめ

最初は Pleasanter の Service.json やテナント・ユーザーのタイムゾーン設定を疑いましたが、最終的には OSのタイムゾーンをUTCに揃える のが正解でした。

同じ構成で更新日時がずれる方の参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?