XLデータムーバのデーモンまたはサービスには、転送データをフィルタリングするための利用者作成プログラム(以降、「フィルターコマンド」と呼ぶ)を呼び出す機能があります。
フィルターコマンドは、用途に応じて利用者が作成します。フィルターコマンドは、例えば以下のような用途に利用できます。
コード変換プログラムの呼出し
必要なレコードの選別
フィルターコマンドを使用した場合のイメージは以下のとおりです。
注意
KJUAMFTFのSEND機能で、区切り文字付加機能と、フィルターコマンド実行の両方を同時に実施する場合、レコード単位に区切り文字が付加されたデータが、フィルターコマンドの入力データとなります。
また、KJUAMFTFのRECEIVE機能で、区切り文字削除機能と、フィルターコマンド実行の両方を同時に実施する場合、フィルターコマンドで加工されたデータより、区切り文字が削除されます。
フィルターコマンドの入出力について説明します。
UNIX/IAサーバへの送信時に使用するフィルターコマンド
フィルターコマンドの入出力については、以下に従って作成してください。
データ入力:標準入力
データ出力:標準出力、またはファイル出力
データ出力を標準出力にするかファイル出力にするかは、KJUAMFTF(SEND)制御文で指定します。
XLデータムーバのデーモンまたはサービスは、クライアントシステムからデータ転送用ボリュームを経由して送ってきたデータを、フィルターコマンドの標準入力に渡します。
フィルターコマンドの出力には、上記のように標準出力とファイル出力の2つがあります。この出力方法については、データを転送するバッチジョブ(KJUAMFTF)実行時の指定と、フィルターコマンドの作りを合わせておく必要があります。
デーモンまたはサービスとフィルターコマンドの、データの流れと関係を以下に示します。
UNIX/IAサーバからの受信時に使用するフィルターコマンド
フィルターコマンドの入出力については、以下に従って作成してください。
データ入力:標準入力、またはファイル入力
データ出力:標準出力
データ入力を標準入力にするかファイル入力にするかは、KJUAMFTF(RECEIVE)制御文で指定します。
XLデータムーバのデーモンまたはサービスは、フィルターコマンドにデータを入力させる方法として、上記の標準入力 と ファイル入力 の2つがあります。
この入力方法については、データを転送するバッチジョブ(KJUAMFTF)実行時の指定と、フィルターコマンドの作りを合わせておく必要があります。
また、デーモンまたはサービスは、フィルターコマンドの標準出力よりフィルタリングされたデータを受け取り、そのデータをデータ転送用ボリュームを経由して、クライアントシステムに渡します。
デーモンまたはサービスとフィルターコマンドの、データの流れと関係を以下に示します。
フィルターコマンドの復帰コードを利用者の用途に応じて任意の復帰コードに変換し、グローバルサーバ側へジョブの復帰コードとして変換できる機能があります。この機能を利用するには、フィルターコマンド復帰コード変換ファイルを作成する必要があります。
ファイルの作成方法については、フィルターコマンド復帰コード変換ファイルの作成を参照してください。
フィルターコマンドが実行されるときの環境(環境変数等)は、UNIX/IAサーバ側のXLデータムーバが起動されたときの環境に依存します。
したがって、コマンドは絶対パス名で指定してください。
デーモンの場合
フィルターコマンドは、必ず Bシェル 配下で起動されます。
フィルターコマンドを実行するために動作環境の設定が必要な場合は、コマンドを起動するシェルスクリプトを作成し、そのスクリプトの中で必要な定義をしてください。
XLデータムーバからはこのスクリプトを呼び出すようにしてください。
例
/home/mftf/bin 配下のddコマンドを利用したい場合の環境変数PATHの変更例
#!/bin/sh PATH=/home/mftf/bin:$PATH (*1) export PATH (*1) dd conv=ascii exit $?
*1:コマンド実行に必要な環境を設定。
注意
フィルターコマンドをシェルスクリプトにし、そのシェルスクリプト内に #!.csh を指定した場合、フィルターコマンド実行時に .cshrc が実行されます。
この場合、.cshrc 内に標準出力に出力するようなコマンド等の命令が、記述していないことを確認してください。
記述した場合、.cshrc 内で標準出力に出力したものも、すべて転送データとして転送されます。
サービスの場合
フィルターコマンドが実行されるときの環境(環境変数等)は、IAサーバ側のXLデータムーバサービスが起動されたときの環境に依存します。
また、フィルターコマンドを実行するために動作環境の設定が必要な場合は、上記のデーモンのときと同様に、コマンドを起動するバッチファイルを作成し、そのバッチファイルの中で必要な定義をしてください。
XLデータムーバからはこのバッチファイルを呼び出すようにしてください。