resource busy エラー

注:
コネクターでこのエラーが発生するのは、コネクターが Oracle データベース上で実行中の場合に限られます。

コネクターがアプリケーション内のデータを検索または変更しているときに、以下のようなエラーが発生することがあります。

[Time: 2001/05/29 16:30:07.356] [System: ConnectorAgent] [SS: SOVTConnector] 
 [Type: Trace] [Mesg: Select CLIENT,COUNTRY,STRT_CODE,CITY_CODE,CITYP_CODE,
 STRTYPEAB,COMMU_CODE,REGIOGROUP,TAXJURCODE from ADRSTREET where CLIENT='100' 
 and COUNTRY='DE' and STRT_CODE='000001114136' FOR UPDATE NOWAIT]
 [Time: 2001/05/29 16:30:07.526] [System: ConnectorAgent] [SS: SOVTConnector] 
 [Type: Trace ] [Mesg: :logMsg]
 [Time: 2001/05/29 16:30:07.536] [System: ConnectorAgent] [SS: SOVTConnector]
  [Type: Error ] [MsgID: 37002]
 [Mesg: Execution of Retrieve statement failed : java.
 sql.SQLException: ORA-00054: Versuch, mit NOWAIT eine bereits 
 belegte Ressourceanzufordern.]
 

このエラーは、コネクターが現在ロックされているレコードを更新しようとしたときに発生します。レコードは他のプロセスによってロックされているか、またはコネクターがマルチスレッドである場合にはコネクター自体によってロックされている可能性があります。

更新処理の際にレコードはロックされていなければなりません。コネクターは、統合ブローカーの受信したオブジェクトの変更後イメージを探し出そうとし、その際にデータの保全性を保持するためにデータベース内のオブジェクト全体をロックします。

この問題を解決するには、コネクターによるレコードのロックを妨げているプロセスを停止するか、あるいは、コネクターの RetryCountInterval 構成プロパティーを調整します。

Copyright IBM Corp. 2004