エラー処理

Fileshare エラーメッセージは、『Fileshare サーバのメッセージ』の章で一覧表示します。

ここでは、次の内容を詳細に説明します。

COBOL ランタイムエラー

状態コード
説明
9/037 アクセスが拒否されたことを示します。 Fileshare では、通常のエラー原因以外に、次の場合にもこのエラーを返します。
  • Fileshare パスワードセキュリティがアクティブであり、Fileshare サーバに渡されたユーザ ID とパスワードのどちらか一方または両方が無効である場合

  • Fileshare クライアントが特定のデータファイルへアクセスしようとしたが拒否された場合

詳細については、『セキュリティ』の章を参照してください。

9/100 アクティブなトランザクション処理で使用するデータファイルで、CLOSE 操作が試行されたこと示します。 詳細については、『データベースの完全性』の章にある『トランザクション処理』の項を参照してください。
9/124 Fileshare クライアントと Fileshare サーバの間で通信エラーが発生したことを示します。 エラー原因を判断するには、fs_status を呼び出します。 詳細については、『通信エラー』の項を参照してください。
9/125 次の条件のどれかが発生したことを示します。
  • トランザクションまたはレコードロックがタイムアウトになった場合 (『データベースの完全性』の章にある『自動レコードロックのタイムアウト』の項を参照してください)

  • Fileshare クライアントが Fileshare サーバから強制的にログオフされた場合

  • Micro Focus ファイルハンドラインターフェイスの使用中に、ファイルハンドラリダイレクタモジュール呼び出しで渡された Fileshare セッション ID が無効だった場合。 オフセット 79 からの FCD の 6 バイトが変更されていないことを確認します。

  • このオープンファイルに対する前回のアクセス結果として、9/124 のエラー状態が返されたため、それ以上の操作が不能になった場合
9/126 入出力操作で使用するレコードサイズが大きく、Fileshare サーバで処理できない場合。 『構成』の章にある『サーバの構成』の項で /m オプションの説明を参照してください。
9/173 仮想ファイルインターフェイスの使用中に、データベース参照ファイルで指定されたプログラム名が見つからない場合。 『高度な操作』の章にある『仮想ファイルハンドラインターフェイス』の項を参照してください。

通信エラー

入出力操作でのエラー状態 9/124 は、Fileshare クライアントと Fileshare サーバの間で通信エラーが発生したことを示します。

エラー 9/124 が最もよく発生するのは、プログラムが最初に入出力要求を出すときです。 つまり、Fileshare クライアントが Fileshare サーバに連絡しようとする時点です。 Fileshare クライアントが Fileshare サーバに接続できないと、エラー 9/124 が返されます。このエラーが返された場合は、Fileshare の構成を調べて、次の点を確認してください。

Fileshare サーバ側でトレースがアクティブである場合に、接続が正しく行われ、Fileshare クライアントからの要求に Fileshare サーバがサービスするようになると、要求が表示されます。 詳細については、『高度な操作』の章にある『Fileshare のモニタ』の項を参照してください。 これ以降に通信エラーが起きると、エラーコード 9/124 がプログラムに返されます。これは致命的なエラーで、Fileshare クライアントとサーバとの接続が解除されます。 そのエラー原因を判断するには、ファイルハンドラリダイレクタモジュールのエントリポイント fs_status を呼び出してください。この呼び出し形式は、次のとおりです。

call "fs_status" returning cci-status

この場合のパラメータは、次のように定義します。

01 cci-status pic x(2) comp-x.

この呼び出しが終了すると、CCI モジュールからファイルハンドラリダイレクタモジュールに返された CCI エラーコードが cci-status に格納されます。 CCI エラーコードの詳細については、オンラインマニュアル『CCI の設定』 を参照してください。

エラー 9/124 が返された場合は、追加の呼び出しを行って、詳細なエラーメッセージを入手できます。 このメッセージは、CCI 固有のエラーと補足情報を文字列で表したものです。この呼び出し形式は、次のとおりです。

call "fs_commserr" using by reference buffer
                         by value maxlen
                         by reference actual-len

この場合のパラメータは、次のように定義します。

01 buffer     pic x(n).
01 maxlen     pic x(4) comp-5 value length of buffer.
01 actual-len pic x(4) comp-5.

この呼び出しが終了すると、buffer には詳細エラーメッセージが、actual-len にはこのメッセージの長さが含まれます。 エラーメッセージの補足説明には、次の情報が含まれます。

さらに、ファイルハンドラリダイレクタモジュールは fhneterr.log というローカルファイルに通信エラーのログを自動的に記録します。 そのログファイルに含まれる各エントリの形式は、fs_commserr 呼び出しの結果返されたバッファと同じです。

アプリケーションで fs_commserr を呼び出せない場合は、fhneterr.log ファイルで、返された 9/124 エラーに関する詳細情報を確認できます。

このログファイルは、Fileshare クライアントによって削除されることはありません。 ただし、ログファイルの内容が不要な場合は、そのログファイルを削除できます。

トランザクション処理エラー

COMMIT 操作と ROLLBACK 操作は、多くのデータファイルに作用します。 そのため、1 つのデータファイルのファイル状態を調べるだけでは、COMMIT 操作や ROLLBACK 操作が正常に実行されたかどうかを確認することはできません。 そのかわりに、エントリポイント fs_status を呼び出して、COMMIT 操作や ROLLBACK 操作の状態を判断します。

この呼び出し形式は、次のとおりです。

call "fs_status" returning t-status

この場合のパラメータは、次のように定義します。

01 t-status pic x(2) comp-x.

0 以外の値が返された場合は、COMMIT 操作または ROLLBACK 操作が失敗したことを示します。 ネットワークを介して複数のファイルを対象にトランザクション処理を行うことは複雑であるため、Fileshare では、発生したトランザクション処理エラーに関する決定的な情報を返すことはできません。

関連情報
はじめに
標準的な操作
構成
データベースの完全性
セキュリティ
高度な操作
UNIX で使用する Fileshare
通信
Fileshare サーバのメッセージ