ここでは、標準 COBOL プログラムで Fileshare を使用するために必要な Fileshare クライアントマシンと Fileshare サーバーマシンの操作について説明します。 ここでは、COBOL プログラムで Fileshare を使用するための構成を習得できるように作成されています。
注:Mainframe Express では、Fileshare がサポートされるのは Mainframe Express の構成要素で使用する場合のみです。 そのため、Fileshare を使用する書き込みアプリケーションに関する次の情報の一部は、Mainframe Express ユーザーには該当しません。
Fileshare クライアントマシンでは、COBOL プログラムで Fileshare を使用するために次の 2 つの作業が必要になります。
選択した通信プロトコルの CCI も構成する必要がある場合があります。 詳細については、次のオンラインマニュアルを参照してください。
プログラムに COBOL 入出力構文が使用されている場合は、CALLFH"FHREDIR" コンパイラ指令でプログラムをコンパイルし、ファイル ハンドラーリダイレクタモジュールがプログラムからの入出力要求をすべて処理できるようにする必要があります。
プログラムで Micro Focus ファイル ハンドラー API を使用している場合には、"EXTFH" でなく、"FHREDIR" を呼び出すように、プログラムを変更する必要があります (ファイル ハンドラーリダイレクタモジュールの呼び出しインターフェイスは、呼び出し可能ファイル ハンドラー (ExtFH) の呼び出しインターフェイスと同じものです)。
例
call "FHREDIR" using operation-code, fcd
上記のどちらかの手順を実行すると (CALLFH"FHREDIR" を使用してプログラムを再コンパイルする、または呼び出し可能ファイル ハンドラー (ExtFH) のかわりにファイル ハンドラーリダイレクタモジュールを呼び出す)、Fileshare クライアントを作成できますが、ファイル ハンドラーリダイレクタモジュールは Micro Focus ファイル ハンドラーのローカルコピーに入出力要求を転送するのみなので、プログラムは以前とまったく同じように機能します。
Fileshare を使用するには、Fileshare クライアントが Fileshare サーバーへ要求をリダイレクトするように、Fileshare クライアントを構成する必要があります。
Fileshare クライアントの構成ファイルは、テキストエディタを使用して作成できる通常のテキストファイルです。 デフォルトのファイル名は、fhredir.cfg です。 このファイルが設定されると、Fileshare クライアントは、このファイルを、まずアプリケーションの現在の作業ディレクトリで検索し、次に COBDIR 環境変数で指定されているパスに従って検索します。 また、次の例のように、FHREDIR 環境変数を使用して、Fileshare クライアントの構成ファイルの場所を指定することもできます。
Windows set FHREDIR=c:\client.cfg
この例では、Fileshare クライアントがドライブ c: のルートディレクトリにある client.cfg という構成ファイルを使用するように指定しています。
UNIX set FHREDIR=/client.cfg
export FHREDIR
この例では、Fileshare クライアントがルートディレクトリにある client.cfg という構成ファイルを使用するように指定しています。
Fileshare クライアントを構成すると、次のように、データファイルの処理方法を指定できます。
入出力操作を正常にリダイレクトするには、ファイル ハンドラーリダイレクタモジュールに次の点を指示する必要があります。
ネットワークの各 Fileshare サーバーは、Fileshare サーバーを起動したときに割り当てられる一意の名前で識別できます。 Fileshare クライアントは、この名前を使用して、使用する Fileshare サーバーを指定します。
Fileshare サーバー名を指定するには、次の 2 種類の方法があります。
この場合は、プログラムのコードを変更する必要があります。
この場合は、プログラムのコードの変更が不要です。
次に、これらの方法について説明します。
プログラム中でサーバーをファイル名として指定すると、構成ファイルの設定がすべて無効になります。
Windows select account-file assign to "$$server1\c:\accounts\main.dat"
この SELECT 文では、ファイル ハンドラーリダイレクタモジュールに対して、データファイル要求を server1
という名前の Fileshare サーバーに送信するように指示しています。 データファイル名は、main.dat で、Fileshare サーバーマシンの c: ドライブの accounts ディレクトリに格納されています。 ファイル ハンドラーリダイレクタモジュールは、文字列 $$server1\ に続く一連の文字を、ファイル名として Fileshare サーバーに渡します。
UNIX select account-file assign to "$$server1//accounts/main.dat"
この SELECT 文では、ファイル ハンドラーリダイレクタモジュールに対して、データファイル要求を server1
という名前の Fileshare サーバーに送信するように指示しています。 データファイル名は、main.dat で、Fileshare サーバーマシンの accounts ディレクトリに格納されています。 ファイル ハンドラーリダイレクタモジュールは、文字列 $$server1/ に続く一連の文字を、ファイル名として Fileshare サーバーに渡します。
デフォルトの Fileshare サーバーを指定するには、Fileshare クライアントの構成ファイルで /s
オプションを使用します。 その例を次に示します。
Windows /s server2
UNIX -s server2
構成ファイルをこのように設定すると、Fileshare クライアントに対してデフォルトの Fileshare サーバー server2
を使用するように指示できます。 ファイル ハンドラーリダイレクタモジュールは、次の場合を除いて、すべての入出力操作をこのサーバーにリダイレクトします。
注:
Fileshare クライアントは、Fileshare サーバーと通信するために、共通通信インターフェイス (CCI) を使用します。
CCI では、いくつかの異なる通信プロトコルをサポートしています。 使用するプロトコルは、Filehsare クライアントおよび Fileshare サーバーが動作するオペレーティング システムと、使用するネットワークの種類によって異なります。
デフォルトのプロトコルは TCP/IP (CCITCP) です。
デフォルト以外の通信プロトコルが必要な場合は、Fileshare クライアントの構成ファイルで指定する必要があります。
デフォルトとして別の CCI プロトコルを指定するには、/cm
を使用します。
/cm cciipx
この場合は、Novell IPX プロトコル (CCIIPX) がデフォルトになります。
Fileshare サーバー別に、使用する CCI プロトコルを指定するには、/cm
と /s
オプションを次のように一緒に指定します。
/cm cciipx /s server1
構成ファイルにこのように登録すると、server1
という名前の Fileshare サーバーと通信する場合は Novell IPX プロトコル (CCIIPX) を使用するように、Fileshare クライアントに指示が出されます。
/cm ccitcp /cm cciipx /s server1
構成ファイルにこのように登録すると、デフォルトとして TCP/IP プロトコル (CCITCP) を使用し、server1
という名前の Fileshare サーバーと通信する場合は Novell IPX プロトコル (CCIIPX) を使用するように Fileshare クライアントに指示が出されます。
選択したプロトコルに対して CCI を設定するには、オンラインマニュアル『CCI の設定』を参照してください。または、[ヘルプ] メニューの [ヘルプトピック] をクリックし、「キーワード」タブで [CCI の設定ユーティリティ] をクリックします。
Fileshare サーバーに対して次の設定を行ってから、Fileshare サーバーを起動する必要があります。
次のどちらかの方法で Fileshare サーバーの構成オプションを指定できます。
Fileshare サーバーは、FS 環境変数をチェックして使用する構成ファイルを識別します。
ネットワークでは、各 Fileshare サーバーを一意な名前で識別します。 この名前は、コマンド ラインで /s
オプションを使用し、指定します。次に例を示します。
Windows fs /s server1
UNIX fs -s server1
この場合は、Fileshare サーバー名を server1
として指定しています。
注:ネットワーク上の名前を登録しないと、Fileshare サーバーを初期化できません。 Fileshare サーバー名は、16 文字までの文字列です。最大長は、使用する CCI プロトコルによって異なります。
デフォルトでは、Fileshare サーバーは CCITCP を使用して、TCP/IP プロトコルを使用する Fileshare クライアントと通信します。 Fileshare サーバーで他のプロトコルを使用する場合は、/cm
オプションを使用してプロトコルを指定します。次に例を示します。
Windows /cm cciipx
Fileshare サーバーの構成ファイルでこのように設定すると、Fileshare サーバーは Fileshare クライアントとの間の通信に Novell IPX(CCIIPX) プロトコルを使用できます。
UNIX -cm ccitcp
-cm ccinampu
Fileshare サーバーの構成ファイルでこのように設定すると、Fileshare サーバーは Fileshare クライアントとの間の通信に TC/IP (CCITCP) プロトコルおよび UNIX 用名前付きパイププロトコル (CCINAMPU) を使用できます。
Fileshare クライアントが Fileshare サーバーに接続する前に Fileshare サーバーを起動しておく必要があります。
Fileshare サーバーを起動するには、次のコマンド ラインを使用します。
fs
一度起動すると、Fileshare サーバーは、明示的に停止するまでアクティブなプロセスとして動作します。 必要ない場合は、Fileshare サーバーを停止する必要があります。 Fileshare サーバーを停止させるには、Esc キーを押します。 すると、次のメッセージが表示されます。
FS097-I Fileshare サーバーを終了してよろしいですか。(Y/N)
Fileshare を終了する場合は、確認の Y を入力します。 Y 以外を入力すると、Fileshare サーバーは動作し続けます。
まだ開いているデータファイルがある場合は、次の警告メッセージが表示されます。
FS111-W 開いているファイルがあります。 Fileshare サーバーを終了しますか。(Y/N)
Fileshare を終了する場合は、確認の Y を入力します。 Fileshare は、すべてのデータファイルを自動的に閉じ、完了していないトランザクションがあるとロールバックします。 Y 以外を入力すると、Fileshare サーバーは動作し続けます。 上記の警告メッセージが出された場合は、次のどちらかの状況が考えられます。
CCITCP プロトコルの使用中に Fileshare サーバーが異常終了した場合は、同じサーバー名を使用して Fileshare サーバーを再起動できます。 ただし、Fileshare は次の警告メッセージを表示します。
FS153-I 同じサーバー名がネットワークに登録されています。