FCRVWAIT

資源タイプFCRVWAITを待機しているタスクがある場合、そのタスクはVSAM内で入出力が行われるのを待っているか、またはレコード ロックを待っています。

資源タイプFCRVWAITの待機は、共用ロックまたは排他ロックの競合がVSAMの内部で保留され、CICSにエラー状態として返されない場合に発生します。次の競合が発生すると、FCRVWAITの待機状態が生じます。

  • タスクがファイル制御要求READ UPDATEを以下のレコードに対して発行する場合。

    • 他のタスクがすでに排他ロックを保持しているレコード 

    • 1つまたは複数のタスクが共用ロックを保持しているレコード 

  • タスクが整合性CONSISTENTまたはREPEATABLEを指定したファイル制御要求READを以下のレコードに発行する場合。

    • 他のタスクがすでに排他ロックを保持しているレコード 

    • 1つまたは複数のタスクがすでに共用ロックを保持しているために、他のタスクが排他ロックを待機しているレコード、または他のタスクが排他ロックを保持しているレコード 

この資源の待機は、RLSモードでアクセスされるファイルに対してのみ発生します。

以下の点は、CICS Transaction Server 1.1には当てはまりません。

タスクは、デッドロックが生じたためにFCRVWAITを待機することがあります。VSAMは、RLSのデッドロック状態を検出すると、デッドロック例外状態をCICSに返します。これにより、CICSファイル制御は、該当するトランザクションをAFCWアベンド コードでアベンドさせます。CICSは、デッドロック チェーンのメンバーを識別するメッセージとトレース エントリーの記録も行います。

VSAMでは、別の資源マネージャーが関与する資源間デッドロック(RLSとDB2の資源を使用することで発生するデッドロックなど)は検出できません。VSAMでは、資源間のデッドロックは、DTIMOUTまたはFTIMEOUTパラメーターで定義されているタイムアウト時間が経過し、待機中の要求がタイムアウトになった時点で解決されます。この場合、VSAMではこのタイムアウトの原因が、資源間デッドロックが生じたためか、別のトランザクションがRLSロックを取得したまま解放しないためか特定できません。タイムアウトが発生すると、CICSは、タイムアウトしたトランザクションが待機していたロックの保持主を示すトレース エントリーとメッセージを記録します。同様に、タスクは、レコードの排他ロックまたは共用ロックを保持している他のタスクを待機することがあります。最初のタスクがすでにロックを保持している資源の排他ロックを2番めのタスクが待機している場合、両方のタスクがデッドロック状態になります。