アプリケーションでロックタイムアウトエラーが発生します。

まず、このエラーが発生する原因としては、そのアプリケーションの中でのロック対象のリソースを、既に他のプロセスがロックしており、何らかの理由でそのロックが解放されていないケースが考えられます。

他のプロセスがロックしている兆候がない場合は、ロックテーブルの空き領域が不足しているケースが想定されます。

その場合は、コンソールログにLOCK TABLE FULLのメッセージが出力されます。

トランザクション処理を行なっている場合には、ロック解放の延期が影響しているケースも考えられます。

トランザクションとロック解放の延期については、以下のドキュメントをご参照下さい。

ドランザクション処理について【IRIS】
ドランザクション処理について


また、トランザクション中に、大量レコードの同一テーブルに対するSQL文による更新がある場合には、ロックしきい値(既定値は1000)に到達してロックエスカレーションが発生し、その結果として、テーブルロック状態になっている可能性もあります。

このように、ロックタイムアウトエラーの原因は幾つか考えられますので、まずは、管理ポータル(バージョン2010.2以前では、[システム管理ポータル])の、ロックメニューにて、現在のロックの状態をご確認下さい。

【バージョン2011.1~】
管理ポータル: [システムオペレーション] > [ロック]

【バージョン2010.2以前】
システム管理ポータル: [運用] > [ロック]


該当する製品: Caché, Ensemble, HealthShare/Caché Based, IRIS Data Platform, HealthShare/IRIS Based, IRIS for Health
関連トピック: SQLのUPDATEやDELETEで、ある程度の数のレコードを一括更新するとSQLエラー -110 が発生します。
添付ファイル:

アンケートにご協力をお願いします
このトピックは参考になりましたか?
このトピックに関するお問い合わせ

FAQトップに戻る