転送定義ファイルの使用

ファイル転送を作成するために使用できる転送定義ファイルを指定できます。 転送定義ファイルは、転送を作成するために必要な情報の一部またはすべてを定義した XML ファイルです。

転送定義ファイルは、複数のソース・ファイルと宛先ファイルを 1 つの転送操作に 指定する際に便利です。 転送定義ファイルを使用して、複雑なファイル転送を実行依頼できます。 転送定義ファイルを再利用したり共有したりすることも可能です。

転送定義ファイルには 2 つの形式を使用できますが、これらの形式はどちらも少し異なりますが、どちらも FileTransfer.xsd スキーマに準拠しています。 このスキーマは、 Managed File Transfer インストール済み環境の samples\schema ディレクトリーで見つけることができます。

以下の 2 つのフォーマットの転送定義ファイルがサポートされています。

  • 転送のソース・ファイルと宛先ファイルの定義。 この定義では、ルートとして transferSpecifications エレメントを使用します。
  • 転送全体の定義。ソース・ファイルと宛先ファイル、ソース・エージェントと宛先エージェントを含みます。 この定義では、ルートとして request エレメントを使用します。
    • このフォーマットのファイルは、fteCreateTransfer コマンドの -gt パラメーターを使用して生成できます。

転送のソース・ファイルと宛先ファイルだけを指定する転送定義ファイル・フォーマットの例を以下に示します。

<?xml version="1.0" encoding="UTF-8"?>
<transferSpecifications xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
   xsi:noNamespaceSchemaLocation="FileTransfer.xsd">
  <item checksumMethod="MD5" mode="text">
    <source recursive="false" disposition="leave">
      <file>textTransferTest.txt</file>
    </source>
    <destination type="directory" exist="overwrite">
      <file>c:\targetfiles</file>
    </destination>
  </item>
</transferSpecifications>

このフォーマットの転送定義ファイルを実行依頼する場合は、コマンド行でソース・エージェントと宛先エージェントを指定する必要があります。

fteCreateTransfer -sa AGENT1 -sm agent1qm -da AGENT2 -dm agent2qm -td 
  c:\definitions\example1.xml

転送で必要なすべての情報を指定する転送定義ファイル・フォーマットの例を以下に示します。


<?xml version="1.0" encoding="UTF-8"?>
<request version="3.00" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
  xsi:noNamespaceSchemaLocation="FileTransfer.xsd">
  <managedTransfer>
    <originator>
      <hostName>example.com.</hostName>
      <userID>fteuser</userID>
    </originator>
    <sourceAgent agent="AGENT1" QMgr="agent1qm"/>
    <destinationAgent agent="AGENT2" QMgr="agent2qm"/>
    <transferSet>
      <item mode="binary" checksumMethod="MD5">
        <source recursive="false" disposition="leave">
          <file>c:\sourcefiles\*.jpg</file>
        </source>
        <destination type="directory" exist="error">
          <file>/targetfiles/images</file>
        </destination>
      </item>
    </transferSet>
  </managedTransfer>
</request>

この形式のファイルを生成するには、 fteCreateTransfer コマンドで -gt パラメーターを使用します。 このフォーマットの転送定義ファイルを実行依頼する場合は、コマンド行で他の情報を指定する必要はありません。

fteCreateTransfer -td c:\definitions\example2.xml

コマンド行でソース・エージェントと宛先エージェントの情報をオーバーライドすることもできます。その場合は、転送定義ファイルに加えて通常のパラメーターを渡します。 以下に例を示します。

fteCreateTransfer -da AGENT9 -dm agent9qm -td c:\definitions\example2.xml

この例では、コマンド行オプションを使用して、転送定義ファイル内で AGENT9 として定義されている宛先エージェントと、転送定義ファイルで agent9qm として定義されている宛先キュー・マネージャーをオーバーライドします。

上記で説明したどちらのフォーマットでも、1 つ以上の <item> エレメントを使用できます。 <item> エレメントの詳細については、 ファイル転送要求のメッセージ形式を参照してください。 これらの転送項目には、 転送の動作を制御する追加属性を持つソース・ファイルと宛先ファイルのペアが それぞれ定義されます。 例えば、以下の動作を指定します。

  • 転送はチェックサムを使用するかどうか
  • 転送はテキストかバイナリーか
  • 転送が完了した後にソース・ファイルを削除するかどうか
  • ファイルが存在する場合、宛先ファイルを上書きするかどうか

転送定義ファイルを使用することの 1 つの利点は、コマンド行からは使用できない追加のオプションを指定できることです。 例えば、メッセージからファイルへの転送を行っているときに、転送定義ファイルを使用して groupId 属性を指定することができます。 この属性は、キューから読み取られるメッセージの IBM® MQ グループ ID を指定します。 転送定義ファイルの別の利点は、ファイル・ペアごとに異なるオプションを指定できることです。 例えば、チェックサムを使用するかどうか、またファイルをテキスト・モードで転送するかバイナリー・モードで転送するかを、個々のファイルごとに指定することができます。 コマンド行を使用する場合には、転送に含まれる各ファイルに同じオプションが適用されます。

以下に例を示します。


  <item checksumMethod="none" mode="binary">
    <source disposition="leave">
      <file>c:\sourcefiles\source1.doc</file>
    </source>
    <destination type="file" exist="error">
      <file>c:\destinationfiles\destination1.doc</file>
    </destination>
  </item>

  <item checksumMethod="MD5" mode="text">
    <source disposition="delete">
      <file>c:\sourcefiles\source2.txt</file>
    </source>
    <destination type="file" exist="overwrite">
      <file encoding="UTF8" EOL="CRLF">c:\destinationfiles\destination2.txt</file>
    </destination>
  </item>

  <item checksumMethod="none" mode="text">
    <source recursive="false" disposition="leave">
      <file>c:\originfiles\source3.txt</file>
    </source>
    <destination type="file" exist="overwrite">
      <file>c:\targetfiles\destination3.txt</file>
    </destination>
  </item>

[z/OS]分散システムから z/OS® システムへファイルを転送するには、アイテムを使用します:

[z/OS]

  <item checksumMethod="none" mode="text">
    <source recursive="false" disposition="leave">
      <file>textTransferTest.txt</file>
    </source>
    <destination type="dataset" exist="overwrite">
      <file encoding="IBM-1047">//TEXT.TRANS.TEST</file>
    </destination>
  </item>

[z/OS]この例では、 textTransferTest.txt ファイルをソースエージェントからデスティネーションエージェントのデータセット //TEXT.TRANS.TEST にテキストモードで転送します。 この転送によって、ソース・データが、ソース・エージェントのデフォルトのエンコード (ソース・エンコード属性の指定なし) から、コード・ページ IBM-1047 に 変換されます。