Date: Sun, 23 Jan 2005 23:38:50 +0900
From: who@example.ne.jp (堀江正浩)
いつも、お世話になっています。
堀江と申します。
VB6.0+MSDEでアプリケーションを作っています。
そこで質問なんですが、ご教授いただければと思います。
たとえば、
�,△襯廛蹈札垢�、とあるテーブルのあるレコードに
ロックをかけていたとします。(排他ロック)
�△修海慂未離廛蹈札垢�、�,汎瑛佑離譽魁璽匹縫▲�セスしようとすれば、
当然待たされます。
�,虜邏箸�長ければ長いほど、待たされますが、
別プロセスが起動して同様のロックを取得しようとする前に
該当レコードにロックが掛かっていないか確認する方法は無いでしょうか?
解決方法として、
http://support.microsoft.com/kb/251004/JA/
の「SQL SERVER7.0のブロッキングを監視する方法」にヒントを得て
そこで、紹介されているストアドプロシージャーsp_blocker_pss70
を使えばよいと思ったのですが、やや(私の)詰めが甘く悩んでいます。
それは、
このシステムプロシージャーはロックリソース
(ファイル番号:ページ番号:行番号)を返してきますが
その情報を使って、「別プロセスのロックしている情報と、
これからロックするであろうレコード位置にあっているかどうか比べる方法」
が、今ひとつわからないのです。
(どのシステムテーブルを見ればよいかが良くわかりません。
昔オラクルを使っていたことがあるのですが、行情報をSELECT文で
出せたと思ったのですが・・・・。)
ご教授いただければ、幸いです。
よろしくお願い致します。
堀江 正浩
追伸
ちなみにシステムストアドプロシージャーsp_lockでつかわれている、spt_value
sという
テーブルは、何に使われているのでしょうか。
本件を調べる際にSP_LOCKを調べていて理解できなかったので、
あわせてご教授いただければと思います。
よろしくお願いいたします。
| [MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
| よろしければお困りの内容を、電子メールで教えて下さい。 |
|
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|