Fileshare の構成によっては、Fileshare をシングルユーザモードで実行することができます。
すべてのネットワーク通信はバイパスされ、Fileshare クライアントは、Fileshare サーバモジュールを直接呼び出します。この操作モードでは、Fileshare サーバが別のプロセスとして動作するわけではありません。
Fileshare をシングルユーザモードで使用すると、次の場合に便利です。
- ネットワークや複数のセッションを使用せずに Fileshare アプリケーションを開発する場合。
- トランザクション処理のような Fileshare の高度な機能をシングルユーザアプリケーションに利用する場合。
Fileshare をシングルユーザモードで実行するには、FSCOMMS 環境変数を $local に設定します。次に例を示します。
Windows
set FSCOMMS=$local
UNIX
set FSCOMMS="\$local"
export FSCOMMS
Fileshare をシングルユーザモードで実行している場合でも、Fileshare クライアントに対して使用する Fileshare サーバを通知する必要があります。その場合、プログラムファイル名の一部として Fileshare サーバ名を指定するか、または Fileshare クライアントの構成ファイルで Fileshare サーバ名を指定します。
Fileshare サーバは、Fileshare サーバの構成ファイルで通常の方法により構成します。この構成ファイルには、少なくとも Fileshare
サーバ名を定義する必要があります。
注:Fileshare サーバは、シングルユーザモードで動作している場合、画面を制御できません。すべての画面出力は、現在の Fileshare クライアント ディレクトリのファイル fsscreen.lst に送信されます。プログラムに障害が発生した場合は、このファイルでメッセージを確認してください。
ファイル名マッピングを使用すると、プログラムの実行時に 1 つのデータファイルに対する入出力要求を別のデータファイルにマップできます。
例えば、ファイル名マッピングを使用すると、DOS のファイル命名規則を使用するアプリケーションから、UNIX や NetWare のような別のファイル命名規則を使用するオペレーティングシステムで動作中の Fileshare サーバにより制御されるデータファイルへアクセスできます。
ファイル名マッピングを使用するために、Fileshare クライアントの構成を変更する必要はありません。
ファイル名マッピングを有効化するには、データベース参照ファイルで /f オプションと /af (代替ファイル名) オプションを使用します。
/af オプションと /fs (ファイル名の文字列) オプションを同時に指定すると、ファイル名の先頭にある文字列を置換することができます。このオプションは、パス名をマップする場合に非常に便利です。
例えば、次のようになります。
fs /d dbase.ref /f old.dat /af new.dat
fs /d dbase.ref /fs c: /af e:
この例では、データベース参照ファイル、 dbase.ref に対して、次のような指定を行っています。
- データファイル、 old.dat に対するすべての要求をデータファイル、 new.dat へリダイレクトする。
- ドライブ、 c: のデータファイルに対するすべてのアクセスをドライブ、 e: のデータファイルへ送信する。
代替ファイル名が指定されている場合は、/fs オプションで指定する文字列の置換が、新しいファイル名に対して適用されます。
/fs オプションで指定する文字列の置換を処理した後で、Fileshare サーバが、新しいファイル名を指定した /f オプションをデータベース参照ファイルで検索することはありません。
/f オプションに続けてファイルの完全パスを指定していない場合、または、Fileshare
クライアントからファイルの完全パスが渡されていない場合は、Fileshare は、すべてのファイル名を Fileshare サーバの現在のディレクトリに対する相対パスとして処理します。
Fileshare サーバが UNIX オペレーティングシステム以外で実行されている場合は、すべてのファイル名とパスは、大文字に変換され、ファイルを完全に一致させるために完全パス名を含むように拡張されます。ただし、/af
オプションを指定したファイル名は、変更されません。
例 1
fs /d dbase.ref /f file1.dat /af c:\data\file2.dat
この例では、データベース参照ファイル dbase.ref に対して、ファイル、 file1.dat へのアクセスを代替ファイル、
file2.dat にマップする項目を指定しています。
例 2
fs /d dbase.ref /f file1.dat /af c:\data\file2.dat
fs /d dbase.ref /fs c: /af e:
この例では、データファイル、 file1.dat への要求をすべて代替ファイルにリダイレクトし、さらに、文字列の置換を使用して代替ファイルのドライブ名を
e: ドライブに変更する項目を、データベース参照ファイル、 dbase.ref に対して指定しています。
Fileshare サーバの構成により、データ圧縮とキー圧縮を使用してデータファイルを作成することができます。
データファイルのデータ圧縮やキー圧縮を使用するために、Fileshare クライアントの構成を変更する必要はありません。
データファイルのデータ圧縮やキー圧縮を有効化するには、データベース参照ファイルで /k
オプションを指定します。/k オプションと d
オプションを同時に指定すると、データ圧縮が有効化され、 /k オプションと
i オプションの指定により、キー圧縮が有効化されます。
d オプションと i
オプションの後に指定する値は、DATACOMPRESS コンパイラ指令と KEYCOMPRESS コンパイラ指令で指定する値と同じです。
データベース参照ファイルのデータ圧縮とキー圧縮に関する指定は、Fileshare サーバがデータファイルを作成するときにのみ有効になります。これらの指定は、既存のデータファイルには影響しません。
既存のファイルについては、データファイルの見出しからデータ圧縮とキー圧縮の情報を取得します。 プログラムやデータベース参照ファイルでの設定は無視されます。
例
fs /d dbase.ref /f file1.dat /k d001
fs /d dbase.ref /f file2.dat /k d001i7
この例では、Fileshare サーバが、データファイル file1.dat の作成時にはデータ圧縮を適用し、データファイル file2.dat
の作成時にはデータ圧縮とキー圧縮の両方を実行するように指定しています。
Fileshare サーバは、Micro Focus のファイルハンドラが指定したプログラムへでなく、ユーザが指定したプログラムへ入出力要求を渡すことができます。ただし、そのプログラムは、ファイルハンドラが使用する呼び出しインターフェイスに準拠している必要があります。
仮想ファイルハンドラインターフェイスを使用するために、Fileshare クライアントの構成を変更する必要はありません。
仮想ファイルハンドラを指定するには、データベース参照ファイルで /f
オプションと /ap (アプリケーションプログラム) オプションを指定し、Fileshare
サーバが特定のデータファイルに対する入出力要求を渡すプログラムを指定します。
例
fs /d dbase.ref /f user1.dat /ap myprog
この例では、Fileshare サーバが、データファイル user1.dat への入出力要求をすべてプログラム myprog に渡すように指定する項目をデータベース参照ファイル dbase.ref に対して追加します。
Windows
ユーザプログラムは .obj ファイル形式であり、Fileshare のメインモジュールである
FS.DLL にリンクする必要があります。詳細については、 『Windows での Fileshare サーバのリンク』
の項を参照してください。
UNIX
ユーザプログラムは、中間コードか生成コード、または呼び出し可能な共有オブジェクトへコンパイルする必要があります。また、Fileshare プロセスから呼び出し可能でなければなりません。
Fileshare サーバがアクティブなときに、F2 キーを押して、トレースオプションを有効または無効にすることができます。トレースオプションが有効な場合は、Fileshare
サーバがファイルアクセス要求が発生するたびに、それをコンソールに表示します。各行に表示される内容は次のとおりです。
- 入力情報
- 割り当てられているユーザ ID。Fileshare クライアントが Fileshare サーバにログオンした順に並べられます。
- オペレーションコード。要求された入出力操作を示します (オペレーションコードの詳細は、Micro
Focus ファイルハンドラについての Net Express
オンラインヘルプを参照してください)。
- アクセス中のファイルの名前
- 出力情報
- Fileshare クライアントに返された状態。操作結果を示します。
注:トレースオプションを使用すると、性能が低下することがあります。このオプションは、問題調査の診断補助として使用する場合以外は、指定しないでください。
Fileshare サーバの起動時に /tr f オプションを指定すると、トレースオプションを有効化できます。この場合、トレース状況が画面に表示されるだけでなく、fsscreen.lst
ファイルにも書き込まれます。ただし、トレースオプションが有効化されていると、Fileshare サーバの性能に重大な影響を与えます。トレースオプションが無効な場合は、情報メッセージのみが画面とファイルに出力されます。この方法は、Fileshare
メッセージの記録を永久にディスクに保存するには便利です。
シングルユーザモードで Fileshare を使用している場合(『シングルユーザモード』
の項を参照)は、表示されたトレース情報が通常、Fileshare サーバのコンソール画面に表示される他の出力とともに、Fileshare
サーバの現在のディレクトリにある
fsscreen.lst ファイルに書き込まれます。
Fileshare マネージャ (fsmgr) を使用すると、Fileshare スーパーバイザモードの機能を自動化することができます。Fileshare マネージャを使用するには、Fileshare マネージャを呼び出す COBOL プログラムを作成します。Fileshare マネージャを呼び出すと、Fileshare サーバの次の機能を使用できます。
- リカバリログファイルの自動バックアップを実行します。
- 現在開かれているすべてのデータファイルを閉じます。 これらのファイルにアクセスしているクライアントアプリケーションには、ファイルが閉じられたことを示すファイル状態が返されます。これは、Fileshare サーバとの接続を正しく切断せずに Fileshare クライアントのプログラムを終了させる原因となる、システムクラッシュや停電の場合に特に便利です。
このような場合に、データファイルが Fileshare サーバ上で開いたままになっていると、Fileshare サーバは、自動ディスクバックアップを行いません。また、他のクライアントによるファイルへのアクセスも受け付けないことがあります。
- 現在接続しているクライアントをすべてログオフし、開かれているファイルをすべて閉じて、これらのクライアントに属する不完全なトランザクションをすべてロールバックします。 この後で、クライアントアプリケーションがアクセスしようとすると、エラー状態 (9/125) が返されます。
- 完全に終了します。すべてのファイルが閉じられ、不完全なトランザクションはロールバックされます。
- 完全に終了してから再起動します。データベース参照ファイルでバックアップディレクトリが指定されている場合は、Fileshare
が、データベース参照ファイルで指定したすべてのファイルをバックアップディレクトリにコピーし、リカバリログファイルを削除した後に、再起動時に新しいリカバリログファイルを使用します。
注:この命令の実行時には、Fileshare サーバに接続しているすべての Fileshare クライアントがログオフされ、クライアントが開いたすべてのファイルが閉じられます。
Fileshare マネージャ プログラム (fsmgr) は、次のように COBOL プログラムから呼び出されます。
call "fsmgr" using parameter-block
パラメータ
parameter-block
次のパラメータを含むグループ項目。
function-code pic
xx comp-x.
error-status pic
xx comp-x.
fileshare-name pic
x(16).
supervisor-passwd pic
x(20).
reserved pic
x(24).
起動時の設定
function-code |
必要な Fileshare マネージャプログラム関数。
1 = リカバリログファイルをバックアップする。
2 = 開いているデータファイルをすべて閉じる。
3 = 接続しているクライアントをログオフする。
4 = Fileshare をシャットダウンする。
5 = Fileshare をシャットダウンしてから再起動する。 |
fileshare-name |
操作の対象となる Fileshare サーバの名前 (Fileshare の起動時に使用した名前です)。 |
supervisor-passwd |
スーパーバイザパスワード。詳細については、『セキュリティ』 の章の 『スーパーバイザモード』 の項を参照してください。 |
reserved |
将来のために予約されています。バイナリの 0 を格納する必要があります。 |
終了時の設定
error-status |
呼び出し結果 (成功、失敗など) の戻り値が格納されます。error-status の値は、次のとおりです。 |
値
|
説明
|
| 0 |
関数が正常に完了しました。 |
| 1 |
通信エラー。Fileshare クライアントが、指定された通信プロトコルによりネットワークを通じて Fileshare サーバ fileshare-name に接続できなかったことを示します。初期接続が確立した後で、関数の実行中にネットワークエラーが発生した場合にも、このエラーが返されます。
fileshare-name が正しく指定されているか、また、Fileshare ハンドラ リダイレクタモジュール (FHRedir) が正しい通信プロトコルを使用するように構成されているかを確認してください。
|
| 2 |
初期接続中のファイルエラー。
Fileshare へ接続するために、Fileshare マネージャは fsmgr.ctl と呼ばれるファイルを開きます。このファイルは存在せず、また、Fileshare マネージャが実際にこのファイルを作成することはありません。このファイルが存在し、ファイルを閉じるときにエラーが発生すると、この状態が返されます。 |
| 3 |
supervisor-password に指定されたパスワードが無効であることを示します。
Fileshare がパスワードファイルを使用して実行されていること、また supervisor-password の値がパスワードファイルのスーパーバイザパスワード項目と一致することを確認してください。Fileshare
パスワードでは、大文字と小文字が区別されます。
詳細については、『セキュリティ』 の章の 『スーパーバイザモード』 の項を参照してください。 |
| 4 |
function-code に無効な値が指定されたことを示します。function-code の値は、 1 から 5 までの範囲でなければなりません。 |
| 5 |
Fileshare ログファイルがないことを示します。
リカバリログファイルがないまま実行されている Fileshare サーバで、ログファイルのバックアップを試行したことを示します。 |
| 6 |
関数 2、または 3 を完了できなかったことを示します。
すべての Fileshare クライアントをログオフしようとしている間は (関数 3)、ログオフ処理が完了する前に、他のクライアントがログオンする可能性があります。
例えば、4 つのクライアントがログオンしている場合に、 Fileshare マネージャは
logoff client n 要求を 4
回送信しなければなりません。ただし、元の 4 つのクライアントすべてがログオフする前に、新しいクライアントがログオンすると、Fileshare
マネージャは、新しいクライアントをログオフするために、logoff client
n 要求を再試行します。10 回再試行を繰り返しても新しいクライアントがまだログオンしている場合は、エラー
6 を 返します 。関数 2 (すべてのデータファイルを閉じる関数) の処理と同時に、新しいファイルが連続して開かれる場合も、同様の状況が発生することがあります。
|
| 10 |
その他のエラー。 |
他の Fileshare クライアントアプリケーションと同様に、Fileshare マネージャは、Fileshare ハンドラリダイレクタモジュール (FHRedir) を使用して Fileshare サーバにアクセスします。また、正しい通信プロトコルを使用するように Fileshare マネージャを構成する必要があります。詳細については、『構成』 の章の 『クライアントの構成』 の項を参照してください。
ユーザプログラムで Fileshare マネージャ を呼び出す場合は、実行可能ファイルの作成時に、Fileshare
マネージャオブジェクトファイル (Windows では fsmgr.obj、UNIX では fsmgr.o) でリンクする必要があります。
Fileshare は、この COBOL システムで使用できるバイトストリーム入出力ルーチンをサポートしています。ほとんどのルーチンでは、対応する COBOL
システム呼び出しと同じパラメータを使用すると、同じ効果となりますが、Fileshare を介してリモートファイルにアクセスします。 プログラムで変更する必要があるのは、CBL_
の代わりに FS_ が先頭に付くルーチンを呼び出すようにする点のみです。呼び出しインターフェイスが、対応する CBL_ ルーチンと完全に同じではないルーチンは、FS_LOCATE_FILE
のみです。
Fileshare は、次に示すバイトストリーム入出力ルーチンをサポートしています。
- FS_CHECK_FILE_EXIST
- FS_CLOSE_FILE
- FS_CREATE_FILE
- FS_COPY_FILE
- FS_DELETE_FILE
- FS_JOIN_FILENAME (下記参照)
- FS_LOCATE_FILE (下記参照)
- FS_OPEN_FILE
- FS_READ_FILE
- FS_RENAME_FILE
- FS_SPLIT_FILENAME (下記参照)
- FS_WRITE_FILE
これらのルーチンを使用すると、ローカルファイルだけではなく、リモートの Fileshare サーバにあるファイルへもアクセスすることができます。ローカルファイルやリモートファイルを定義するには、通常の方法で Fileshare クライアントを構成してください。
注:
- 同じファイルでバイトストリーム入出力と COBOL 入出力を使用しないでください。
- 複数の Fileshare クライアントの間でファイルを共有する場合、通常の COBOL 入出力構文を使用してファイルにアクセスする必要があります。
FS_LOCATE_FILE の機能は、次の点を除き、CBL_LOCATE_FILEと同じです。
FS_SPLIT_FILENAME と FS_JOIN_FILENAME の機能は、対応する CBL_ ルーチンの機能と同じです。 また、FS_SPLIT_FILENAME
と FS_JOIN_FILENAME を使用すると、Fileshare サーバ名を指定するファイルの名前の先頭に $$server-name
というプリフィクスを追加して処理することができます。このようなファイル名を処理すると、プリフィクス、 $$server-name の文字列が
pathname パラメータの一部として含まれます。
Windows NT
この Micro Focus 製品のコマンドプロンプトで次のように入力すると、Fileshare サーバが Windows NT サービスとして実行されるようにインストールすることができます。
fsservice -i
インストールの完了後に、次のように入力すると、サービスの状態を表示できます。
fsservice -v
さらに、次のように入力すると、Windows NT サービスとしての Fileshare をアンインストールすることができます。
fsservice -u
Fileshare を Windows NT サービスとしてインストールすると、次に示す手順で Fileshare をバックグラウンドプロセスとして開始することができます。
- [コントロールパネル] から [サービス] アイコンを選択します。
- 表示されたサービスのリストから [Micro Focus Fileshare サービス] を選択します。
- [開始] をクリックします。
Fileshare サービスは、次の手順で停止することができます。
- [コントロールパネル] から [サービス] アイコンを選択します。
- 表示されたサービスのリストから [Micro Focus Fileshare サービス] を選択します。
- [停止] をクリックします。
注:
- Windows NT サービスのダイアログボックスで [停止] をクリックすると、Fileshare は通常どおり 終了 します。他に接続されている
Fileshare クライアントはログオフされ、そのデータファイルは閉じられます (不完全なトランザクションは、ロールバックされます) 。
- Windows NT をシャットダウンすると、Fileshare も 終了 します。
次のように指定すると、Windows NT の起動時に、Fileshare サーバも自動開始できます。
- [コントロールパネル] から [サービス] アイコンを選択します。
- [Micro Focus Fileshare サービス] をダブルクリックします。
- 開始のタイプとして [自動] を選択します。
注: Windows NT の起動時に Fileshare サービスが自動開始されるように指定しており、かつ、データファイルのログ処理を有効化している場合、データベース参照ファイルで
Fileshare バックアップディレクトリを指定しておくことをお奨めします。詳細については、『データベースの一貫性』
の章の 『データベースの自動バックアップとロールフォワードリカバリ』
の項を参照してください。
Fileshare を起動する前に、Fileshare サーバオプションを指定できるように、Fileshare サーバの構成ファイルを作成する必要があります。Fileshare サーバオプションの詳細については、『構成』 の章の 『サーバの構成』 の項を参照してください。
Fileshare サービスは、Windows のシステム ディレクトリ
(例えば c:\winnt\system32) を現在のディレクトリとして 継承 するため、このディレクトリに
Fileshare サーバの構成ファイルを格納する必要があります。Fileshare で別の作業ディレクトリを使用するには、構成ファイルの最初の項目として
/wd オプションを記述します。その結果、Fileshare は、起動時に作業ディレクトリを 指定したディレクトリへ 変更 し、この作業ディレクトリに対する相対パスのみをもつファイル(例えば、データベース参照ファイル)にアクセスします 。
Fileshare は、バックグラウンドプロセスとして動作するため、生成したすべてのメッセージは、現在の作業ディレクトリの fsscreen.lst ファイルに書き込まれます。このファイルの内容を確認して、問題を診断してください。
構成ファイルの例
次に Fileshare サーバの構成ファイル例を示します。
/wd d:\fsdir
/s server1
/d dbase.ref
最初の行では、Fileshare サーバの現在のディレクトリとして、ドライブ、
d: のディレクトリ、
fsdir を指定しています。完全パス名を持たないデータファイルは、すべてこのディレクトリに対する相対パスにより検索されます。2
行目では、Fileshare サーバが server1 としてネットワークに名前を登録することを指定しています。3
行目では、Fileshare でデータベース参照ファイル、 dbase.ref を使用することを指定しています。この名前は、完全パスではないため、Fileshare
の現在のディレクトリである
d:\fsdir で検索されます。
Windows
仮想ファイルハンドラインターフェイスやユーザ独自のセキュリティモジュールを Windows で使用する場合、fs.dll ファイルを再作成する必要があります。次のようなコマンド行を入力すると、このファイルを再作成できます。
CBLLINK -ofs.dll -d -RE,2.0 -Mfscmd fscmd.obj fsserver.obj
fhxscomp.obj fsseclog.obj fsinstpw.obj fsinst.obj fsrcvr.obj
fspthnam.obj fssecopn.obj fsossec.obj cbldc001.obj _codeset.obj
mfini.obj
必要に応じてオブジェクトモジュールを追加するか、セキュリティモジュールを置き換えて、目的に合うように上記のコマンド行を変更してください。
また、Fileshare を Windows NT サービスとして実行している場合には、次のようなコマンドを使用して、fsservice.exe モジュールを再リンクする必要があります。
cbllink -ofsservice.exe -Rm,+2.0 fssrvice.obj CblNTService_Handler.obj
CblNTService_SetStatus.obj CblNTService_ServiceRoutine.obj
servserv.obj fscmd.obj fsserver.obj fhxscomp.obj fsseclog.obj
fsinstpw.obj fsinst.obj fsrcvr.obj fspthnam.obj fssecopn.obj
fsossec.obj cbldc001.obj _codeset.obj mfini.obj
この後に、古いバージョンの Fsservice をアンインストールし、新しいバージョンをインストール します 。
Fileshare を使用すると、ネットワーク全体で送信される COBOL の入出力要求数を減らすことができます。特に、次のようなある種類のデータファイルアクセスに対しては大きな効果があります。
Fileshare は、次の点でリモートデータに対するアクセス速度を改善することができます。
- ファイル構成
索引データファイルへ要求を 1 つ送信する場合は、見出しの読み込みや一貫性マーカーの更新のような物理的なデータファイルに対して多くのアクセスを行うことになります。
複雑なキー構造を使用する場合も、ファイルの索引構造を更新するために必要なアクセス回数が増えます。 通常の COBOL ファイル処理システムでは、これらのアクセスがそれぞれ要求を生成し、ネットワーク全体に送信します。
Fileshare を使用すると、ネットワーク全体に送信される要求は 1 つだけです。データファイル構造が単純であるほど (相対ファイルやシーケンシャルファイル)、処理上のオーバーヘッドが少なくなります。
索引データファイルを処理すると、Fileshare による速度の向上が、より明らかになります。
- 入出力要求
WRITE 操作、DELETE 操作 または REWRITE 操作を処理するために必要なデータファイルへのアクセス回数は、一般的に、READ
操作や START 操作を処理するときに必要な回数よりも多くなります。 通常の COBOL ファイル処理システムでは、これらのアクセスがそれぞれ要求を生成し、ネットワーク全体に送信しますが、Fileshare
を使用すると、ネットワーク全体に送信される要求は 1 つだけです。
WRITE 操作、DELETE 操作、または REWRITE 操作を実行すると、Fileshare による速度の向上が、より明らかになります。
- データファイルの同時使用
プログラムがデータファイルを排他的に開いた場合に、通常の COBOL ファイル処理システムでは、キャッシュを使用します。 これにより、ファイルが入出力操作ごとに更新されているかどうかを確認する必要がなくなります。
そのため、ネットワーク全体に送信される要求の数は、データファイルが排他的に開かれる場合には著しく少なくなります。
Fileshare では、ファイルが排他的に開かれる場合よりも、多数のユーザがデータファイルに同時アクセスを行う場合に、性能の向上が見られます。
これは、Fileshare サーバがアクセスとキャッシュを制御するため、通常の COBOL ファイル処理システムを介して共有データファイルにアクセスするときに必要な追加要求を送信する必要がないためです。
結果として、速度の向上度はそれぞれのアプリケーションによって異なります。 また、同じデータファイルへ同時にアクセスする
Fileshare クライアントが増えるほど、速度の向上がより明らかになります。
UNIX
UNIX では、Fileshare サーバと Fileshare クライアントを同じマシンで実行する場合は、CCINAMPU CCI プロトコルを使用してください。このような場合は、CCITCP
プロトコルよりも処理が向上します。
複数のリモート COBOL アプリケーションがネットワークを通じて同時に共有データファイルにアクセスする場合は、Fileshare の使用により性能が向上しますが、COBOL
データがアプリケーションと同じマシンに存在する場合は性能が向上しません。このような構成では、標準呼び出し可能ファイルハンドラではなく Fileshare
を使用することによって、性能上のオーバーヘッドが発生します。
UNIX マシンはリモートデータサーバとして使用できますが、通常は、データの存在するマシンでアプリケーションを実行することはありません。たとえば、ネットワークを介して、複数のユーザがあるマシンにログインし、同じデータを共有する複数のアプリケーションをそのマシンで実行するとします。このような構成の場合は、Fileshare 使用のために性能上のオーバーヘッドが発生します。そのため、標準呼び出し可能ファイルハンドラを使用した場合よりも処理が遅くなります。
Fileshare は、デフォルトで 4GB のサイズまでのファイルをサポートします。使用しているオペレーティングシステムがこれよりも大きいサイズのファイルをサポートしている場合は、デフォルトの 4GB よりも大きいサイズのシーケンシャルファイル、相対ファイル、および IDXFORMAT(8) 索引ファイルを扱えるように、Fileshare が使用するファイルハンドラを構成することができます。
これに代わる技術では、最大ファイルサイズの限界を解決する暫定的な方法としてファイルのストライプ化が以前のリリースで導入されました。ファイルのストライプ化を行うと、1 つのデータファイルを複数の物理ファイル (ストライプ) としてディスクに格納するように指定できます。
Fileshare でストライプ化を構成する方法は複雑であるため (詳細は後述)、大規模ファイルはストライプ化しないで、ファイルハンドラ標準の大規模ファイルサポートを使用するようにファイルハンドラを構成することをお奨めします。
Net Express を使用している場合は、『ファイル操作』 マニュアルの 『ファイルハンドラの構成』 の章も参照してください。
Fileshare で大規模ファイルをサポートするように構成する場合は、次の事項を考慮してください。
- extfh.cfg ファイルの場所。
extfh.cfg ファイルは、Fileshare サーバと同じディレクトリにある必要があります。または、extfh.cfg
ファイルをポイントするように EXTFH 環境変数が設定されている場合は、その設定が Fileshare サーバのセッションで行われている必要があります。
- 大規模ファイルサポートを有効にする。
次の行を extfh.cfg ファイルに追加します。
[XFH-DEFAULT]
Filemaxsize=8
次に、オペレーティングシステムが大規模ファイルをサポートしない場合に、Fileshare の制御下でファイルのストライプ化を構成する方法を説明します。
- extfh.cfg ファイルでの拡張ファイル名。
構成ファイル extfh.cfg には、基本ファイルの完全パスを指定する必要があります。この名前には、 Fileshare
サーバで F2 キーを押してトレースを開始する際に表示されるパス名を含めます。
例
UNIX
[/u/username/file.dat]
Striping=on
注: この操作が必要なのは、Fileshare を経由してアクセスするファイルに対してだけです。ファイルハンドラが extfh.cfg
の設定を認識できるようにするには、ファイル名のタグが、入出力要求で指定されたファイル名のタグと完全に一致している必要があります。Fileshare
では、完全パスを含みます。
- バックスラッシュ
バックスラッシュは、extfh.cfg ファイル内でエスケープ文字として扱われます。このため、
Windows プラットフォームでは、パス名の各バックスラッシュ 1 つにつき、バックスラッシュを 2 つ指定する必要があります。次に例を示します。
Windows
[d:\\fsrvr\\file.dat]
Striping=on
- 代替ファイル名
ファイルのストライプ化を代替ファイル名で指定することができます (ファイル名マッピングを使用してデータベース参照ファイルで指定)。この場合は、拡張ファイル名は不要です。たとえば、データベース参照ファイルに次のような行があるとします。
/f file1.dat /af file2.dat
この場合、extfh.cfg ファイルに次のように指定できます。
[file2.dat]
Striping=on
- StripeNameType
StripeNameType=1 (デフォルトは StripeNameType=0) が Fileshare で有効になるのは、基本ファイル名に拡張子がない場合のみです。拡張子があるファイル名に
StripeNameType=1 を指定すると、ファイルは作成されますがストライプ化されません。
- バックアップとリカバリ
ストライプ化を行うと、ロールフォワードリカバリのログ処理手順が複雑になります。管理者は、正しいバージョンのファイルが最新のバックアップであるかどうか、および
Fileshare リカバリユーティリティを実行する必要がある場合にこれらのファイルが正しくリカバリされたかどうかを確認しなければなりません。ファイルのストライプ化も維持する必要がある場合は、この手順がさらに複雑になります。
データベースの自動バックアップとリカバリ機能は、ストライプ構成を認識しない低レベルの入出力ルーチンをバックアップとリカバリに使用するため、ストライプ化したファイルに対して正しく動作しません。
- Fileshare を使用しない場合
ファイルハンドラに渡されるファイル名は、ファイルハンドラが extfh.cfg ファイルでファイル名のタグを検索できるように、完全に一致する必要があります。
一般的に、完全パスを渡すのは Fileshare のみです。そのため、Fileshare で使用するために拡張ファイル名で extfh.cfg
ファイルを設定した後に、Fileshare 外のファイルにアクセスする場合は、extfh.cfg 内のファイル名タグを変更して、アプリケーションから渡されるファイル名と完全に一致させる必要があります。
Copyright © 2002 Micro Focus International Limited. All rights reserved.
本書、ならびに使用されている固有の商標と商品名は国際法で保護されています。
 | セキュリティ |
|
UNIX で使用する Fileshare |  |