[pgsql-jp: 35900] Re: CURRENT_TIMESTAMP で取得する日時が狂う

mishima.masaki @ jp.fujitsu.com mishima.masaki @ jp.fujitsu.com
2005年 8月 23日 (火) 21:34:23 JST


KCN)三島です。

鈴木さん、ご回答ありがとうございます。

誰もご存知のない事例のようで、諦めかけていました。ご回答いただけて
うれしいです。


CURRENT_TIMESTAMPはトランザクションの開始時刻を示すので、コミットなり
アボートしないかぎりトランザクション開始時刻を指し続ける、というご指摘
かと思います。

残念ですが、ご指摘の事象には当てはまらないようです。理由は以下です。

	・プログラム上ではトランザクションは短い単位でコミットしている。

	・ApacheとTomcatを使ったWebアプリで、BasicDataSourceを利用して
	  PostgreSQLにアクセスしている。ApacheとTomcatは毎日再起動
	  している。したがって、最低でも一日一回はトランザクションと
	  コネクションが更新される。

	・現象発生までの間、手動でも何回かApacheとTomcatを再起動している。
	  その時にもトランザクションとコネクションは更新されている。

	・現象は1ヶ月以上PostgreSQLを連続運転させた状態で発生している。

	・現象発生時は、単一のトランザクションだけでなく、すべての
	  新しいトランザクションで、時刻が過去に戻っている。


以上の状況ですので、数ヶ月間もトランザクションが維持されるということは
なさそうです。


ともあれ、まずはご回答いただけて幸いです。ありがとうございました。

"T.Suzuki" <t_suzuki @ kenwood-eng.co.jp> wrote:

> CURRENT_TIMESTAMP を使用している箇所が、
> トランザクション中という事はないでしょうか?
> 
> そうそう無いとは思いますが、「アプリ(Servlet)」 を起動してから
> CURRENT_TIMESTAMP を取得するまで、トランザクションが継続して
> いれば、このような現象もありえると思います。
> 
> つまり、日時が狂っているのでは無く、PostgreSQLはトランザクション開始
> 日時を返しているでのではないでしょうか。

*               Masaki Mishima                *
*      Fujitsu Kansai Chubu NetTech Inc.      *
*    Tel : 81-52-745-2565 (Ext. 7679-8272)   *
*    email: mishima.masaki @ jp.fujitsu.com    *




pgsql-jp メーリングリストの案内