[pgsql-jp: 35828] CURRENT_TIMESTAMP で取得する日時が狂う
mishima.masaki @ jp.fujitsu.com
mishima.masaki @ jp.fujitsu.com
2005年 8月 15日 (月) 22:32:36 JST
三島と申します。
初めて投稿させていただきます。
PostgreSQLでCURRENT_TIMESTAMPから取得する時刻が狂う現象が発生し、困って
います。
該当版数以降のPostgreSQLのTODOリスト・リリースノート、およびGoogle検索で
調べましたが、類似の現象や関連する情報を見つけることができませんでした。
現象の詳細を末尾にまとめました。本現象の原因および解決方法をご存知の方が
いらっしゃいましたら、ご教示いただけないでしょうか?
お手数をおかけしますが、よろしくお願い申し上げます。
---------------------------------------------------------------------------
環境:
OS: Microsoft Windows 2000 SP 4
Cygwin: cygwin.dll 1.5.16-1
PostgreSQL: PostgreSQL 7.4.5 on i686-pc-cygwin
現象:
・運用中にCURRENT_TIMESTAMPで返される時刻が、何かの契機で過去の
日時に戻ってしまいます。
・戻る時間の幅は大きく、1ヶ月以上前の日付になります。TimeZoneの
誤差ではないと考えています。
・現象発生後にCURRENT_TIMESTAMPが指す日時は、ログから見て
PostgreSQLのサービスを起動した日時にほぼ一致します。このとき、
OSのシステム時刻は正しい時刻を指していました。
・現象発生後にPostgreSQLのサービスを再起動することで、正しい
時刻に復旧させることができました。
発生契機:
・現象発生前後のログを確認しておりますが、エラー・警告等は発生して
おりません。
/var/log/PostgreSQL.log
アプリ(Servlet)のログ
Windowsのイベントログ
・現象発生前後で、特に時刻を変更するような操作は行っておりません。
調べたところ、CURRENT_TIMESTAMPの時刻を変更する操作自体が、
PostgreSQLには用意されていないように思います。
・上記のような状況のため、現象が発生する契機は今のところつかめて
おりません。気がついた時にはすでに時間が戻ってしまっています。
再現頻度:
・再現頻度はまれで、6ヶ月の間に2度発生しています。
1回目(発生日: 2005/3/29)
当時のCURRENT_TIMESTAMPの時刻: 2005/2/6
2回目(発生日: 2005/8/12 10:05:57)
当時のCURRENT_TIMESTAMPの時刻: 2005/06/23 17:03:10
・まだ2度の再現ですが、上記の通り発生間隔に一貫性はないようです。
---------------------------------------------------------------------------
以上、もし不足の情報など至らない点があるようでしたら、申し訳ありませんが
ご指摘ください。
よろしくお願いいたします。
* Masaki Mishima *
* Fujitsu Kansai Chubu NetTech Inc. *
* Tel : 81-52-745-2565 (Ext. 7679-8272) *
* email: mishima.masaki @ jp.fujitsu.com *
pgsql-jp メーリングリストの案内