[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 メーリングリストの案内