[pgcluster: 232] Re: デッドロックもしくはそれに類似した

Y.Shimada yshim_pgsql @ storgate.co.jp
2004年 3月 31日 (水) 18:54:55 JST


島田@Storgateと申します。

 三谷さん、ご無沙汰しております。

On 2004年 3月 31日 , at 18:27, Wataru Oguro wrote:
> そこで、どちらかが先に接続数管理テーブルをaccess exclusiveモードでロック
> し、接続数が変更された後に、ロック待ちしているセッションが接続数管理テー
> ブルから現在の接続数を取得するようにして、システム要件を満たしているわけ
> です。

以下では、複数ユーザが同時接続したとき、ロックが競合しますね。
> begin;
> select count(*) from test;
> lock table test;
> insert into test values('test');
> commit;

上記要件を満たすためには、谷田さんが[228]で指摘なされたように、
> ・lock tableするのを、selectより先にする。
で、よいのでは? (ほかのことは考えていませんが。。。)
begin;
	LOCK TABLE test IN ACCESS EXCLUSIVE MODE;
	select count(*) from test;
	insert into test values('test');
commit;

───────────────────────────────────
      Y.Simada    Storgate Co., LTD.   +81-3-3718-4330
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄




pgcluster メーリングリストの案内