2017-08-29 6 views
1

私のVBアプリケーションでは、テーブルの1つの列を更新するクエリがあります。 、クエリを実行する前にinformixのロックモードを待機させる

SQL ERR: EIX000: (-144) ISAM error: key value locked 
EIX000: (-245) Could not position within a file via an index. (informix.table1) 

私の質問があり、それは安全である:しかし、このため、データベースのロックモードのプロパティは、私はこのようなエラーが出るのアップデートでクエリを実行するときに時々

SET LOCK MODE TO NOT WAIT

であるという事実の 実行する:

1st SET LOCK MODE TO WAIT; 

2nd the update query; 

3rd SET LOCK MODE TO NOT WAIT; 

をそれとも、これは安全ではない場合は、他のソリューションに私を指すことができます

答えて

2

示唆したように3つの操作を行うには「安全」であるが、操作の実行中...

  • 、アプリケーションは無期限のためにブロックすることがあります。
  • 何らかの理由でクエリを終了してもロックモードをリセットしないと、コードの他の部分が突然ロックされてしまうことがあります。

タイムアウトの待機が適切かどうかを検討してください。

スレッドがある場合、各スレッドは、3つの操作の間、1つの接続に排他的にアクセスする必要があります。

関連する問題