commandPath MFT プロパティー

commandPath プロパティーを使用して、 Managed File Transfer がコマンドを実行できる場所を指定します。 指定された commandPath にある任意のコマンドは、エージェントにコマンドを送信できるリモート・クライアント・システムから事実上呼び出すことができるため、このプロパティーを設定するときは十分な注意を払ってください。

Managed File Transferの管理対象転送機能および管理対象呼び出し機能から、エージェントが実行されているシステム上で実行するコマンドを指定できます。 詳しくは、 プログラム呼び出しのネスト・エレメント を参照してください。 ただし、コマンドは、commandPath エージェント・プロパティーで参照されるパス上にある必要があります。

指定されたコマンドが完全修飾でない場合、 Managed File Transfer はコマンド・パス上で一致するコマンドを見つけようとします。 コマンド・パス上に一致するコマンドが 2 つ以上ある場合、最初の一致が使用されます。

デフォルトでは、commandPath プロパティーは空であるため、エージェントはどのコマンドも呼び出すことができません。

commandPath エージェント・プロパティーを以下のように指定します。
commandPath=command_directory_name 
separator...command_directory_name
[z/OS]または、 z/OS® の場合のみ、以下を指定します。
commandPath=command_directory_name_or_data_set_name_prefix 
separator...command_directory_name_or_data_set_name_prefix
ここで、
  • command_directory_name は、実行できるコマンドのディレクトリー・パスです。
  • [z/OS]command_directory_name_or_data_set_name_prefix は、実行可能なコマンドの z/OS UNIX System Services ディレクトリー・パス、または // で始まるデータ・セット名接頭部です。 データ・セット名接頭部では、完全修飾の形式を使用するか、非修飾の形式を使用するか (つまり、//'HLQ...' という形式にするか、//HLQ... という形式にするか) を選択できます。 区分データ・セットを //'HLQ()...' または //HLQ()... の形式で指定します。 データ・セットを使用するのは、JCL スクリプト・コマンドを指定する場合のみです。
  • separator は、プラットフォーム固有の分離文字です。
[AIX][Linux]例えば、 AIX® and Linux® システムで、 /home/user/cmds1 ディレクトリーと /home/user/cmds2ディレクトリーにあるコマンドを実行する場合は、 commandPath エージェント・プロパティーを以下のように設定します。
commandPath=/home/user/cmds1:/home/user/cmds2
MFT コマンドでは、括弧、コンマ (,)、および円記号 (¥) は特殊文字であり、円記号 (¥) 文字でエスケープする必要があります。 [Windows]Windows上のファイル・パスは、ダブル・バックスラッシュ(\)をセパレーターとして使うか、シングル・フォワード・スラッシュ(/)を使って指定することができる。
[Windows]例えば、 Windows システムで、ディレクトリー C:\File Transfer\commands および C:\File Transfer\agent commandsにあるコマンドを実行する場合は、 commandPath エージェント・プロパティーを以下のように設定します。
commandPath=C:\\File Transfer\\commands;C:\\File Transfer\\agent commands
[z/OS]例えば、 z/OS で以下のコマンドを実行するとします。
  • ディレクトリー/home/user/cmds1および/home/user/cmds2
  • //'USER.CMD1', //CMD2,で始まるデータ・セット内
  • //'USER.CMDS' という名前の完全修飾 PDS のメンバー
次のようにして、commandPath エージェント・プロパティーを設定します。
commandPath=/home/user/cmds1:/home/user/cmds2://'USER.CMD1'://CMD2://'USER.CMDS()'
重要: エージェントにコマンドを送信できるリモート・クライアント・システムから、指定された commandPaths のいずれかのコマンドを呼び出すことができるため、このプロパティーを設定する際には細心の注意を払う必要があります。 このため、デフォルトでは、commandPath を指定すると、すべての commandPath ディレクトリー (およびそれらのサブディレクトリー) における転送のためのアクセスが自動拒否されるように、サンドボックスが構成されます。
  • エージェント・サンドボックスを使用するようにエージェントが構成されている場合、エージェントの開始時に、commandPath ディレクトリーが拒否ディレクトリーのリストに自動的に追加されます。
  • 1 つ以上のユーザー・サンドボックスを使用するようにエージェントが構成されている場合、エージェントの開始時に、各ユーザー・サンドボックスの <read> エレメントおよび <write> エレメントに commandPath ディレクトリーが <exclude> エレメントとして追加されます。
  • エージェントがエージェント・サンドボックスとユーザー・サンドボックスのいずれかを使用するようには構成されていない場合、エージェントの開始時に、新しいエージェント・サンドボックスが作成され、その中で commandPath ディレクトリーが拒否ディレクトリーとして指定されます。
この動作をオーバーライドするには、以下のプロパティーをagent.propertiesファイルに追加します。
addCommandPathToSandbox=false
addCommandPathToSandboxプロパティーが存在し、false に設定されている場合、以下の動作が発生します。
  • エージェント・サンドボックスを使用するようにエージェントが構成されていて、サンドボックスに許可ディレクトリーが指定されていない場合、エージェントが開始すると、commandPath ディレクトリーが拒否ディレクトリーのリストに自動的に追加されます。
  • エージェント・サンドボックスを使用するようにエージェントが構成されていて、サンドボックスに許可ディレクトリーが 1 つ以上指定されている場合、エージェントが開始しても、commandPath ディレクトリーは拒否ディレクトリーのリストに追加されません。
  • 1 つ以上のユーザー・サンドボックスを使用するようにエージェントが構成されている場合、ユーザー・サンドボックスは変更されず、各ユーザー・サンドボックスの <read> エレメントおよび <write> エレメントには commandPath ディレクトリーが <exclude> エレメントとして追加されません。
  • エージェントがエージェント・サンドボックスとユーザー・サンドボックスのいずれかを使用するようには構成されていない場合、エージェントの開始時に、新しいエージェント・サンドボックスが作成され、その中で commandPath ディレクトリーが拒否ディレクトリーとして指定されます。