FCDSRECD

資源名FCDSRECDは、VSAMファイルまたはCICSが管理するデータ テーブル内のレコード ロックを待機していることを示します。

VSAMファイルまたはCICSが管理するデータ テーブル内のレコードをトランザクションが更新する場合、2つのレベルでロックが発生します。レコードが読み取られたときにVSAMがCIをロックし、CICSがそのレコードをロックします。

CIのロックは、REWRITE(またはUNLOCK)要求が完了すると同時に解放されます。ただし、ファイルまたはデータ テーブルが回復可能なタイプの場合は、更新トランザクションが同期点に到達するまで、CICSはレコードのロックを解放しません。これにより、同期点の前にトランザクションが失敗し、レコードをバックアウトしなければならなくなった場合でも、データの整合性を維持できます。

トランザクションは、別のトランザクションによってロックされているレコードにアクセスしようとした場合、そのロックが解放されるまで資源タイプENQUEUEを待機して一時停止状態になります。この状態は、更新処理が端末オペレーターのデータ入力操作によって左右される可能性があるため、長時間におよぶ場合があります。また、一時停止状態のトランザクションは、VSAMストリングと、場合によってはCIの排他制御も放棄するため、これらの資源を再度待機する必要が生じます。

このためにトランザクションが頻繁に待機する場合には、アプリケーションのプログラム ロジックを見直し、レコードのロック時間を短くすることを検討してください。

CICSは、レコードを更新用にロックするだけです。他のトランザクションもレコードを読み取ることは可能なため、読み取るデータの整合性が損なわれる可能性があります。つまり、更新処理が完了したものの、更新トランザクションが同期点に到達する前に、別のトランザクションがレコードを読み取る可能性があります。このとき、レコードを読み取ったトランザクションがそのレコード値を基に処理を行った場合、レコードがバックアウトされないかぎり、その処理は不正となってしまいます。