
以前も質問したことがあるのですが、再度質問させていただきます。
Accessのロックについてです。
Windows2003Sever + Microsoft SQL ServerのマシンにあるMDBファイルを置いてあります。
これに社内LANでつながっているwindowsXP+access2000マシン10数台が
それぞれWindows2003サーバマシンのmdbファイルのテーブルにリンクしているmdbファイル持っていて日々データの閲覧と更新をしています。
その際時々Access2000が以下のような以下のようなWindowメッセージを出します。
「現在ロックされているので、更新できませんでした。」
この件で困っております。
いくつか、わかっていることがあります。
◎Windows2003Serverのこのmdbにアクセスしている人が多い時にこのメッセージが出るわけではない。使用者が2人でも出るときがある。
◎同じフィールドへの同時書き込みの場合は他のユーザによって変更されています。。。のようなメッセージが出るので同時書き込みの問題ではなさそうだ。
◎ロックがかかった場合、接続ユーザーみんなが開いているmdbを閉じて再度開くとロックは解除されている。
ここで質問なのですが、
・ロックはなぜかかるのでしょうか?
・ロックの回避方法はありますか?
以上、どうかよろしくお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
なるほど、少々ややこしいことになっているようですね。
>正確に言うと「現在ロックされているので、更新できませんでした。」
>という表示を出してロックがかかることはありませんでした
ここの表現が曖昧なのですが、更新ができてしまっているということですか?
更新ができていなければ、それはロックがかかっているので正常です。
ロックがかからないということは更新できてしまい、
トランザクションの処理がザルということで、これはこれで問題なのですが・・・
>接続ユーザーみんなが開いているmdbを閉じて再度開くとロックは解除されている
これはデッドロックが発生しているかもしれませんね。
ロックのかけ方が悪い可能性もあります。
詳細はソフトを作っているところに連絡してテストしてもらって下さい。
この回答への補足
お返事ありがとうございます。
>ここの表現が曖昧なのですが、更新ができてしまっているということですか?
>更新ができていなければ、それはロックがかかっているので正常です。
更新は出来ていません。
>これはデッドロックが発生しているかもしれませんね。
>ロックのかけ方が悪い可能性もあります。
>詳細はソフトを作っているところに連絡してテストしてもらって下さい。
そもそもプログラムでロックをかけるようなことはしていませんので困っております。なぜ時々ロックがかかるのかがわかっておりません。
接続ユーザーたちが同じフィールドを修正すれば「他のユーザーの更新を反映しますか?」というような表示が出るので同時書き込みでロックがかかっているわけではありません。
No.1
- 回答日時:
運用者ですか。
それとも開発者ですか?以下の回答は運用側に絞ったものになります。
ロックはアクセスが開いている間にかかるものではなく
トランザクションの開始から終了までかかるものです。
トランザクションの開始と終了は開発側でコードします。
ロックを回避するのは設計側からみれば非常に危険に映ります。
更新者が更新した積もりなのに別な人が直後に更新していたら
重大な不手際が生ずる恐れがあるからです。
この回答への補足
お返事ありがとうございます。
開発に関わった運用者です。
元々Serverに置いてあるmdbはwindowsXP proマシンに置いていましたが、利用者が多くなったため、他の人にWindows2003serverの環境を構築してもらい、現在の形になっております。
以前の環境ではロックがかかることはありませんでした。
正確に言うと「現在ロックされているので、更新できませんでした。」という表示を出してロックがかかることはありませんでした。
元のmdb自体は特別なAccessVBAが動いているわけではありません。
ただテーブルがあるだけです。
接続している側も、開いたときに自分のデータが開く、
顧客の姓を入力したときに同様のデータがあるかどうか探しに行くというAccessVBAプログラムが動いているのみで特別はことはしておりません。この検索部分はServerに移動する前から動いていたものです。
Serverに移動してからこのような現象が起きるようになりましたので、ロックがかかるのはなぜかその理由を調べたいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- iPad ワイモバイルのシンプルMプランのシェアプランのSIMが、ipadに使える設定方法を教えてください。 2 2023/08/16 11:34
- その他(Microsoft Office) OneDrive Personalについて 1 2022/08/02 18:25
- 格安スマホ・SIMフリースマホ SIMカードのロックについて 1 2022/03/29 15:02
- docomo(ドコモ) SIMロック、またはSIMロック解除の仕組みをおしえてください。 5 2022/04/25 10:57
- Android(アンドロイド) auのAndroid端末のSIMカードがロックされてしまいました。 6 2022/08/22 20:31
- Android(アンドロイド) Googleのファミリーリンクの危険性に気付いてしまったのですが、皆さんの感想を教えてください! 2 2023/05/09 10:01
- Android android アップグレードに伴う不具合 1 2022/11/13 18:15
- au(KDDI) auデータ移行の有料化について… 先日、auショップにてスマホ機種変更の見積もりを取りました。 他に 6 2022/04/28 14:09
- Amazon Amazon アカウントはどうすると変更できる? 5 2022/04/10 07:09
- Y!mobile(ワイモバイル) SIMロック解除について、詳しい方に質問です。アマゾンで買ったアンドロイドのスマホですが、白ロム、Y 4 2023/07/06 15:00
このQ&Aを見た人はこんなQ&Aも見ています
-
「○○○.ldb」のAccess レコード ロック情報←このファイルが消えません
その他(データベース)
-
ODBCエラー「admin」によってロックされている...
その他(データベース)
-
ACCESS 複数のフォームから同一テーブル参照
Access(アクセス)
-
-
4
レコードロック情報の解除方法を教えてください。
Access(アクセス)
-
5
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
6
MSAccess ロック状態かどうかを確認したい
その他(Microsoft Office)
-
7
Access2007でSQLの複数列副問い合わせについて
その他(データベース)
-
8
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
9
どこにもフォーカスを当てたくない
Access(アクセス)
-
10
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
-
11
ACCESSでテーブルをコピーしようとすると3211のエラーが出てしまう
Access(アクセス)
-
12
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
13
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
14
「#エラー」の回避
Access(アクセス)
-
15
Accessを開くと「排他モードじゃないので変更しても保存できない」との旨の表示が出てしまう。
Access(アクセス)
-
16
ACCESSフォーム入力後の確定
Access(アクセス)
-
17
「データベースまたはオブジェクトは読み取り専用なので、更新できません」エラーについて
その他(データベース)
-
18
ACCESS2007 フォーム 「バリアント型でない変数にNull値を代入しようとしました」エラーの
SQL Server
-
19
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
20
【Access】Dcount関数の複数条件で順位を付ける方法について
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT文でのデッドロックに対...
-
Oracleの排他制御について教え...
-
AccessShareLock はどの程度気...
-
max+1で初番する場合 for updat...
-
SELECT時の行ロックの必要性に...
-
SELECT文でタイムアウト...
-
INSERTにおいてロック処理は必要か
-
PHPとMySQL、INSERTの動作につ...
-
UPDATE文で発生するデッドロッ...
-
DB2でSelectした時(rollback,c...
-
SQLServer Insertが遅い
-
トランザクション中にSELECTし...
-
トランザクションとlast_insert_id
-
SQLServerロックについて
-
SELECT FOR UPDATE にトランザ...
-
ADOで排他ロックがうまくいかない
-
DB2のロック調査
-
デッドロックが発生します。
-
Access 1レコードずつcsvで出力...
-
クエリのキャンセルがいつにな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT時の行ロックの必要性に...
-
SELECT文でのデッドロックに対...
-
SQLServer Insertが遅い
-
Oracleの排他制御について教え...
-
accessのロック
-
AccessShareLock はどの程度気...
-
排他ロックしたレコードが、別...
-
INSERTにおいてロック処理は必要か
-
更新ロックとデッドロック
-
SELECT文でタイムアウト...
-
max+1で初番する場合 for updat...
-
ExcelからAccess2013DBを更新す...
-
UPDATE文で発生するデッドロッ...
-
DB2でSelectした時(rollback,c...
-
DB2のロック調査
-
トランザクション中にSELECTし...
-
トランザクションとlast_insert_id
-
同一トランザクションの中でテ...
-
MongoDBのデータ更新はDBを排他...
-
SELECT FOR UPDATE にトランザ...
おすすめ情報