Comments
Description
Transcript
機能 目次 WebSphere MQ
WebSphere MQ File Transfer Edition v7.0 機能と構成ワークショップ 機能と構成ワークショップ Universal Messaging Backbone 機能 目次 ファイル転送の仕組み v7.0.1 新機能 ファイル転送要求 ファイル転送の実行 ファイル名の指定 Apache Ant 拡張機能 データベース・ロガー リソース・モニター GDGサポート(z/OS) ファイル転送基本機能 実行時オプション 一括転送 分割転送 テンプレート キャンセル チェック・サム 監査、転送ログの収集と集中監視 転送ログ・監査ログの一元管理 ログの種類 ファイル転送の自動化 スケジュール トリガー機能 ファイル転送のカスタマイズ EXIT 2 ファイル転送の仕組み 3 WMQFTEでのファイル転送の仕組み ファイル転送要求は、MQメッセージを利用 ファイル転送要求メッセージを書いた時点でコマンドには返り値が戻る(コマンドでの実行) コマンド・キュー・マネージャー経由で対象のエージェント・キュー・マネージャーに送られる FTEエージェントは、ファイル転送要求を受け取り転送開始 送信側と受信側のFTEエージェントがファイルとMQメッセージの変換、読み書きを行う 送受信するファイルがアクセスできるマシンに、FTEエージェントが稼動している必要がある FTEエージェント同士は転送バイト数を確認しながら、ファイルとMQメッセージ変換を実行 ファイル転送はMQ メッセージで依頼 転送コマンド 【MQネットワークを利用した分散型構成の場合】 コマンド・キュー・ マネージャー FTE エージェント File QMGR2 QMGR1 FTE エージェント MQチャネル エージェント・キュー・ マネージャー ファイルを ファイルを読んで MQメッセージ メッセージに メッセージに変換 エージェント・キュー・ マネージャー ファイルはMQメッセージ として転送 4 MQメッセージ メッセージを メッセージを読んで ファイルに ファイルに書き出す File WMQFTEのファイル転送の仕組み(続き) ファイル転送要求発行とファイル転送は非同期に実行される 同期的に実行することも可能(コマンド) 実行結果の確認は転送ログで行う FTEエージェントは転送状況、監査情報を調整キュー・マネージャーにパブリッシュ 転送ログの例(MQエクスプローラー) 転送元ファイルが存在 しなかったため、失敗 成功 転送状況の例(MQエクスプローラー) Pub/Sub機能で 転送ログの管理 監査、転送情報を パブリッシュ パブリッシュ 転送ログで 実行結果を確認 調整キュー・マネージャー MQエクスプ ローラー File FTE エージェント エージェント・ キュー・マネージャー サブスクライブ ファイルを転送 5 ファイル転送要求 ファイル転送要求のフォーマットはXMLスキーマで定義 エージェント、ファイル、転送オプション等を指定 1つの転送要求には、送信元および宛先エージェントを1つ指定することが可能 複数のエージェントに転送する場合は、宛先ごとにファイル転送要求を発行する必要がある スキーマファイル: FileTransfer.xsd Remote Tools and Documentation CD の MessageSchemas ディレクトリで提供 ファイル転送要求を発行するためのインターフェース FTEエージェントは ファイル転送要求メッセージを 受け取り、転送を開始 fteCreateTransferコマンド 配置ディレクトリー –<install_dir>¥bin (Windows) –/opt/IBM/WMQFTE/bin (UNIX系) 転送要求の発行 MQエクスプローラー コマンド ユーザー作成アプリケーション XMLスキーマに従い転送要求を作成 転送要求をエージェント・キュー・マネージャーにPUT MQエクスプ ローラー アプリケー ション 6 エージェント・キュー・ マネージャー FTE エージェント File ファイル転送要求の発行(コマンド) ファイル転送要求の発行コマンド fteCreateTransfer [Parameters..] source_file_specification 転送元および転送先FTEエージェントを指定(必須) パラメータ 説明 -sa (source_agent_name) 転送元FTEエージェント名を指定 -da (destination_agnet_name) 転送先FTEエージェント名を指定 転送元ファイル、転送先ディレクトリ/ファイル(必須)、転送オプション(宛先ファイルの上書き、 優先度等)の指定方法は次の2通り パラメータで1つずつ指定 転送定義ファイルにまとめて記述 転送定義ファイルを使用した場合、一部パラメータは指定できない –-df, -dd, -ds, -dp, -sd, -r, -de, -t, -cs パラメータ –source_file_specification ※ fteCreateTransferコマンドの詳細については、 「付録 コマンドリファレンス」を参照してください。 –コマンド実行時にエラー 7 ファイル転送の実行(コマンド) パラメーターで指定する場合 必須パラメータ パラメータ 説明 -dd (destination_directory) (-dd, -df のどちらかの指定が必須)送信先ディレクトリを指定 -df (destination_file) (-dd, -df のどちらかの指定が必須)送信先のファイル名を指定 指定しなかった場合は送信元ファイル名と同じファイル名が設定される source_file_specification 転送元ファイル名 実行例 –FTEエージェントAG1からAG2へ、ファイルC:¥From¥File.txt をC:¥To¥File.txtへ転送 C:¥WMQFTE¥bin>fteCreateTransfer -sa AG1 -da AG2 -dd C:¥To C:¥From¥File.txt 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d5120434f514d20202020202020208e7923492001ff02 –FTEエージェントAG1からAG2へ、C:¥From¥File.txtをC:¥To¥File-backaup.txtへ転送 C:¥WMQFTE¥bin>fteCreateTransfer -sa AG1 -da AG2 -dd C:¥To –df File-backup.txt C:¥From¥File.txt 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d5120434f514d20202020202020208e79234920020002 処理内容は同じ C:¥WMQFTE¥bin>fteCreateTransfer -sa AG1 -da AG2 -df C:¥To¥File-backup.txt C:¥From¥File.txt 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d5120434f514d202020202020202001772f492002d102 8 ファイル転送の実行(コマンド):z/OSデータ・セットの指定 パラメーターで指定する場合 必須パラメータ パラメータ 説明 -ds (destination_sequential_data _set) (-ds, -dpのどちらかを指定)送信先データセット名 次の方法で指定 ・順次データ・セット名 ・区分データ・セット名+メンバー名 セミコロンで区切ってデータ・セットの属性指定可能 -dp (destination_partitioned_data _set) (-ds, -dpのどちらかを指定)送信先データセット名 送信先の区分データ・セット名を指定(メンバー名は指定しない) ・メンバー名は自動生成される セミコロンで区切ってデータ・セットの属性指定可能 source_file_specification 転送元ファイル名 注意点 – z/0Sデータ・セットを示す区切り文字として”//”(スラッシュ2つ)を使用する – データ・セット名を’ ‘(単一引用符)で囲むと、完全修飾のデータセット名として扱われる – データ・セット名を’ ‘で囲まない場合は、FTEエージェントの起動ユーザーまたは、agent.propertiesファイルの transferRootHLQに指定のデータ・セット接頭辞が付与される – データ・セットの属性は、BPXWDYNに適した形で指定する BPXWDYNマニュアル:ftp://ftp.software.ibm.com/s390/zos/tools/bpxwdyn/bpxwdyn.html ※単一引用符を特殊文字として扱うために、” “(二重引用符)で囲むことが必要 9 ファイル転送要求の実行(コマンド):z/OSデータ・セットの指定 実行例 – FTEエージェント FTEAG02(Windows)からAG6F1(z/OS)へ、ファイルを新規の順次データ・セットへ転送 C:¥WMQFTE¥bin>fteCreateTransfer -p FTEQM02 -sa FTEAG02 -da AG6F1 -dm M60F -ds “//'MQMSHR.FTE.TEST’” C:/0_source/sbcs10b.ascii.bin.txt 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d5120465445514d3032202020202 – FTEエージェント FTEAG02(Windows)からAG6F1(z/OS)へ、ファイルを既存の区分データ・セットの新メンバーに転送 (データセット属性でDISP(SHR)を指定) C:¥WMQFTE¥bin>fteCreateTransfer -p FTEQM02 -sa FTEAG02 -da AG6F1 -dm M60F -ds “//'MQMSHR.FTE.TEST3(TEXT2)';DISP(SHR)” -t text C:/0_source/sbcs10b.ascii.bin.txt 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d5120465445514d3032202020202 – FTEエージェント AG6F1(z/OS)からFTEAG02(Windows)へ、区分データ・セット(全メンバー)をファイルへ転送 C:¥WMQFTE¥bin>fteCreateTransfer -p FTEQM02 -sa AG6F1 -sm M60F -da FTEAG02 -dd c:/dest/pds/jcl2 -t text //'MQMSHR.V700.JCLLIB’ 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d5120465445514d3032202020202 03918d3492000a602 10 ファイル転送要求の発行(コマンド) 転送定義ファイルで指定する場合 転送定義ファイルは、FileTransfer.xsd を元にXMLファイル作成 フォーマットに従い、転送内容を記述 fteCreateTransfer の –td パラメータで転送定義ファイルを指定 パラメータ 説明 -td (transfer_definition_file) 転送要求が記述されたXMLファイルを指定 転送定義ファイル例 –C:¥From¥File.txtをC:¥To¥File.txtへ転送 <?xml version="1.0" encoding="UTF-8"?> <transferSpecifications xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FileTransfer.xsd"> <item“checksumMethod=“MD5" mode="binary" > <source> <file>c:¥From¥File.txt</file> <!– 転送元ファイル名 --> </source> <destination> <!– 転送先ファイル名 --> <file>c:¥To¥File.txt</file> </destination> </item> </transferSpecifications> 実行例 C:¥WMQFTE¥bin>fteCreateTransfer -sa AG1 -da AG2 -td transfer.xml 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d5120434f514d20202020202020208e79234920020302 11 転送定義ファイルのフォーマット 要素 要素 子要素 説明 <transferSpecifications> <item>要素 (1つ以上) 転送定義ファイルのルート要素 <item> 次の要素をそれぞれ1つ指定 <source>、<destination> 転送内容を指定 <source> <file>要素を1つ指定 転送元ファイルと動作を指定 <destination> <file>要素を1つ指定 転送先ファイルと動作を指定 <file> - ファイル名を指定 属性 <item>要素 属性 説明 mode (必須)binary/textを指定 ファイル転送形式(転送テキスト転送/バイナリ転送)の設定 checkumMethod (必須)MD5/noneを指定 チェックサムによるファイルの整合性チェック 12 <参考> 転送定義ファイルのフォーマット <参考> <source>要素 属性 説明 recurive (任意)true/falseを指定 ディレクトリ、ワイルドカード指定時、サブディレクトリを転送するかどうかを設定 disposition (任意)leave/deleteを指定 ファイル転送後、転送元ファイルを削除するかどうかを設定 <destination>要素 属性 説明 type (任意)file/directory/dataset(z/OS)/PDS(z/OS)を指定 ファイル・タイプの設定 exist (任意)error/overwirteを指定 転送先ファイルを上書きするかどうかの動作を設定 <file>要素 属性 説明 encoding (任意)エンコーディングを指定 EOL (任意)LF/ CRLFを指定 改行コードを設定 13 GUIによるファイル転送 MQエクスプローラーのPlug-inからファイル転送要求を実行 転送テンプレートによる再利用、FTE構成内での共用が可能 グループ転送が可能 (必須)出力元、宛先の設定 (オプション)スケジュールの設定 Plug-in 新規の転送 ・サブディレクトリの転送 ・宛先ファイルの上書き ・転送モード(テキスト/バイナリ) ・チェックサム ・転送後のソースファイル削除 (オプション) トリガー条件の設定 14 転送元ファイル名の指定 <参考> 絶対パス、もしくは、相対パスでファイル名を指定 デフォルトでは、相対パスはFTEエージェント起動ユーザーのホームディレクトリを基準にとる –デフォルトの配置場所はagent.propertiesのtransferRoot で変更可能 ※ Windowsの場合、パスのバックスラッシュにエスケープシーケンスを追加、もしくはスラッシュでパスを記述 例) transferRoot =C¥:¥¥TransferRoot、もしくは、 transferRoot =C:/TransferRoot パスの指定方法 Windows: ‘/’(スラッシュ)、もしくは、’¥’(バックスラッシュ)区切り 例) C:¥From¥File.txt、C:/From/File.txt UNIX: ‘/’ (スラッシュ)区切り 例) /work/From/File.txt ディレクトリを指定可能 詳細はP28を参照 シンボリックリンク(ショートカット)の指定 Windows ショートカット・ファイルが、宛先に転送される –リンク情報のみが転送され、実体は転送されない UNIX リンク先ファイルの実体が、宛先に転送される –転送先のファイルは、転送元のシンボリックリンク名で作成される v7.0.1より、磁気テープ上のファイルも転送対象(z/OS) 15 ブランク・ページ 16 ファイル転送基本機能 17 ファイル転送時のオプション ファイル転送要求に次の詳細動作を指定することが可能 ファイル転送後に転送元ファイルを削除 転送先ファイルの上書き データ形式の変換 ファイル転送の優先度付け 18 転送オプション(転送元ファイルの削除) ファイル転送後に転送元ファイルを削除 fteCreateTransferコマンド 必須パラメータに加え次のパラメータを指定 パラメータ 説明 -sd <disposition> leave/deleteを指定 ・leave:ファイル転送後、転送元ファイルを削除しない(デフォルト) ・delete:ファイル転送後、転送元ファイルを削除 MQエクスプローラー 「ファイル転送管理の新規作成」ウィンドウより「基本タブ」を選択し「完了後にソールファイルを削除する」 にチェック 19 転送オプション(転送先ファイルの上書き) 転送先ファイルの上書き fteCreateTransferコマンド 必須パラメータに加え次のパラメータを指定 パラメータ 説明 -de <actions> error/overwriteを指定 ・error:宛先ファイルがすでに存在する場合、転送ログにエラーを報告し、ファイル転送を行 わない(デフォルト) ・overwrite:既存ファイルを上書き MQエクスプローラー 「ファイル転送管理の新規作成」ウィンドウより「基本タブ」を選択し、 前のファイルを上書きする」にチェック 20 「宛先ファイル・システム上の同じ名 転送オプション(データ形式の変換) テキスト転送/バイナリ転送を選択可能 テキスト転送 改行コード、文字コードをエージェント稼働環境に合わせて自動的に変換 バイナリ転送 変換は行わずに、そのままファイルを転送 テキスト転送時、変換可能なデータ形式 エージェント稼働環境に合わせて改行コード(CR/LF)を変換 例) Windows (CR/LF形式) <==> UNIX (LF形式) エージェント稼働環境のロケールに合わせ文字コードを自動的に変換 例) 1バイトコード –UNIX(ASCII) <==> z/OS (EBDIC) 例) 2バイトコード –Windows (SJIS) <==> Linux (EUC) 21 転送オプション(データ形式の変換) データ形式の変換設定 fteCreateTransferコマンド 必須パラメータに加え次のパラメータを指定 パラメータ 説明 -t binary/textを指定 ・binary:変換を行わずにファイルを転送(デフォルト) ・text: 文字コード、CR/LFの変換を行う 厳密にどのように変換されるかは、ソースおよび宛先のエージェントが稼動している プラットフォームに依存 MQエクスプローラー 「ファイル転送管理の新規作成」ウィンドウより、「基本タブ」を選択し、モード「テキスト転送」「バイナリ転 送」のどちらかを選択 22 転送オプション(ファイル転送の優先度付け) ファイル転送の優先度付け 転送メッセージにMQのプライオリティを設定することができる ファイルレベルではなく、MQのメッセージレベルでの優先度付け 優先度は0(最低)~9(最高) ・・・ FTE エージェント 9 9 プライオリティの高いメッセージが 優先的に送信される 3 ファイル転送の 優先度 9 3 3 9 9 ・・・ 同時に転送を開始 優先度 3 23 転送オプション(ファイル転送の優先度付け) 優先度の設定 fteCreateTransferコマンド 必須パラメータに加え次のパラメータを指定 パラメータ 説明 -pr (transfer_priority) プライオリティを指定 値は0(最低)~9(最高) デフォルト0 MQエクスプローラー 「ファイル転送管理の新規作成」ウィンドウ 「拡張」タブをクリック 転送の優先度を0 – 9から選択 24 転送オプション(ファイル転送の優先度付け) 優先度を設定したファイル転送の例 下の転送を同時に実行 AG1 AG2 data.zip (422MB) 優先度9 AG1 AG2 data2.zip (422MB) 優先度3 優先度が高いファイルが優先的に転 送される 同時に開始 25 ブランク・ページ 26 複数ファイルの一括転送 1回のファイル転送要求で複数のファイルを送ることが可能 指定方法は次の5通り 転送元ファイルを複数指定( fteCreateTransferコマンドのみ) スペース区切りで送信元ファイルを指定 転送元にディレクトリを指定(fteCreateTransferコマンド、MQエクスプローラー共通) ワイルド・カードで転送元ファイルを指定(fteCreateTransferコマンド、MQエクスプローラー共通) 転送定義ファイルに複数の<item>・・・</item>要素を記述(fteCreateTransferコマンドのみ) グループ化(MQエクスプローラーのみ) 転送先 転送元 FTE エージェント FTE エージェント 27 複数ファイルの一括転送(ディレクトリ指定) 転送元にディレクトリを指定 ディレクトリとディレクトリに含まれるファイルをまとめて転送 空のディレクトリは転送されない サブディレクトリを含めて転送される ※ディレクトリへのシンボリックリンクは転送不可 実行例 FTEエージェントAG1からAG2へ、ディレクトリC:¥From¥DataDir をC:¥Toへ転送 ディレクトリ構造 C:¥FROM¥DATADIR │ testfile1.txt、 testfile2.txt、testfile3.txt、testfile4.txt、testfile5.txt └─SubDir testfile6.txt fteCreateTransfer、MQエクスプローラーで転送元ファイルにC:¥From¥DataDirを指定し実行 実行結果(転送ログ) サブディレクトリを含むDataDirディレクトリが転送されている 28 複数ファイルの一括転送(ワイルド・カード) ワイルド・カードを用いて複数の転送元ファイルを指定 任意のファイル名を指定可能 ワイルド・カード文字は下の2種類 ‘?’:ファイル名に含まれる1文字の代替 ‘*’ :ファイル名に含まれる0以上 の文字の代替 ※ファイルパスにワイルドカードは使用不可 /work/*/*.txt のように複数のディレクトリの指定には用いることはできない ワイルドカードにマッチしたディレクトリを転送するかどうか指定可能 fteCreateTransferコマンド -r パラメータ パラメータ 説明 -r ワイルドカードにディレクトリがマッチした場合、そのディレクトリと含まれるファイルをまとめて転送する –r パラメータなしの場合、ディレクトリは転送されない MQエクスプローラー ワイルドカードにディレクトリがマッチしたディレクトリを転送する場合、「ファイル転送管理の新規作成」ウィンドウ より「基本タブ」を選択し、「サブディレクトリーを含める」にチェック 29 複数ファイルの一括転送(ワイルド・カード) ワイルド・カードの例 ファイル 指定したファイル名 マッチしたファイル名 /work/abc.txt /work/abd.txt /work/abe.txt /work/af.txt /work/gh.txt /work/gt.txt /work/subdir/go.txt /work/ab?.txt abc.txt abd.txt abe.txt /work/a*.txt abc.txt abd.txt abe.txt af.txt /work/* abc.txt abd.txt abe.txt af.txt gh.txt gt.txt /work/* (-r 付) abc.txt abd.txt abe.txt af.txt gh.txt gt.txt subdir/go.txt 実行例 FTEエージェントAG1からAG2へ、ディレクトリC:¥From¥DataDir2¥test*にマッチするファイルを C:¥Toへ転送する ディレクトリ構造 C:¥FROM¥DATADIR2 │ testfile1.txt、 testfile2.txt、testfile3.txt、source.txt、data.txt └─SubDir testfile4.txt fteCreateTransfer、MQエクスプローラーで転送元ファイルにC:¥From¥DataDir2¥test*を指定し実行 実行結果 C:¥From¥DataDir2¥test*にマッチするファイルが転送されている 30 ワイルド・カード指定時の注意点 空のディレクトリは転送されない ファイル名にワイルドカード文字が含まれている場合 そのファイル名を指定すると、ワイルドカードにマッチするファイルが他にあっても、ワイルドカード文字 を含むファイルのみが転送される ファイル 指定したファイル名 マッチしたファイル名 /work/abc.txt /work/abd.txt /work/*.txt /work/*.txt /work/*.txt 隠しファイルはワイルド・カードにマッチしない 隠しファイル UNIX:ファイル名が ‘.’ (ドット)から始まるファイル Windows:ファイルのプロパティで「隠しファイル」にチェックが入っているファイル 隠しファイルを転送する場合 直接ファイル名を指定 ディレクトリごと転送 ファイル名の先頭に‘.’(ドット)付け、ワイルドカード指定(UNIXのみ) 31 複数ファイルの一括転送(グループ化) グループ化設定による複数ファイルの指定 「ファイル転送管理の新規作成」ウィンドウより 「基本タブ」を選択し、出力元、宛先を入力 出力元、宛先を入力後 「グループに追加」をクリック 入力したファイルが順次グルー プに追加される 32 グループに含まれるファイルが まとめて転送要求に入る ファイルの分割転送 サイズの大きいファイルはFTEエージェントが自動的に複数のMQメッセージに分割 分割サイズは設定ファイルで変更可能 agent.propertiesファイルのagentChunkSizeで指定 転送途中の宛先ファイルは<宛先ファイル名>.partファイルで作成される ファイル転送がすべて終了した時点でファイル名が変換される 直接<宛先ファイル名>のファイルに書き込むよう設定ファイルで変更可能 agent.propertiesファイルのdoNotUseTempOutputFile で指定 FTEエージェント FTEエージェント ・・・ ・・・ ファイルは複数のMQメッ セージに分割される 33 ブランク・ページ 34 テンプレート ファイル転送要求をテンプレートとして保存することが可能(MQエクスプローラーのみ) テンプレートは、調整キュー・マネージャーにパブリケーションとして保管される 同一FTE構成内で共有可能 ナビゲーターから「転送テンプレート」を選択し、右クリック ポップアップ・メニューから、「テンプレートの新規作成」を選択 「ファイル転送管理の新規作成」ウィンドウより 「基本タブ」を選択し、転送内容を入力 必要に応じてスケジュール(後述)、 メタデータ(後述)を入力 「転送の要約」ウィンドウよりテンプレートの名前を 入力し終了する 35 テンプレート 作成したテンプレートの確認 「コンテンツ」の「転送テンプレート」から確認 テンプレートから転送の開始 「コンテンツ」の「転送テンプレート」からテンプレートを選択し右クリック 実行依頼を選択 36 ファイル転送のキャンセル ファイル転送のキャンセル 実行中のファイル転送をキャンセルすることが可能 キャンセル要求は、転送元、転送先のFTEエージェントどちらかに発行 キャンセル要求はMQメッセージ 転送途中のファイル(<宛先ファイル名>.part)は、転送先から削除される 転送中止 エージェント・キュー・ マネージャー コマンド FTE エージェント or MQエクスプ ローラー キャンセル要求の発行 File 37 ファイル転送のキャンセル キャンセル要求の発行コマンド fteCancelTransfer [Prameters…] transfer_ID 必須パラメーター パラメータ 説明 -a (agent_name) 転送元、もしくは、転送先のFTEエージェント名を指定 transfer_ID 要求IDを指定 ※ fteCancelTransferの詳細については、 「付録 コマンド・リファレンス」を参照してください。 キャンセル要求発行例 要求IDは次から確認 –fteCreateTransferの実行結果 –転送ログ C:¥WMQFTE¥bin>fteCreateTransfer -sa AG1 -da AG2 -dd C:¥To C:¥From¥data.zip 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d5120434f514d20202020202020200ed135492000bb02 C:¥WMQFTE¥bin>fteCancelTransfer -a AG1 414d5120434f514d20202020202020200ed135492000bb02 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0137I: エージェント 'AG1' に対して、転送 '414D5120434F514D20202020202020200 ED135492000BB02' を取り消す要求が発行されました。 38 ファイル転送のキャンセル MQエクスプローラーからキャンセル 「コンテンツ」の「転送ログ」から、キャンセル対象を右クリックし、「転送の取り消し」を選択 「完了状態」、「進行状況」が 取り消し済みとなる 39 ブランク・ページ 40 チェックサム エージェント再起動時のファイルの整合性をチェックサムで保証 転送元/転送先FTEエージェント両方で、転送済みファイルのチェックサムを計算 MD5(Message Digest Algorithm 5)が計算に用いられる 128ビットのハッシュ値を出力するハッシュ関数 ファイル転送中 FTE エージェント MD5ハッシュ関数 転送済みファイルの チェックサムを計算 ハッシュ値 FTEエージェントが再起動 FTE エージェント MD5ハッシュ関数 ハッシュ値 ハッシュ値 再起動前後で転送済み ファイルのチェックサムが 異なっていたらエラー FTEエージェント 再起動中に送信ファイルが 書き換えられてない? 41 チェックサム チェックサムの設定 fteCreateTransferコマンド 必須パラメータに加え次のパラメータを指定 オプション 説明 -cs MD5/noneを指定 ・MD5:転送済みファイルのチェックサムを計算する (デフォルト) ・none:チェックサムを計算しない MQエクスプローラー 「ファイル転送管理の新規作成」ウィンドウ 「チェックサム」にチェックすると、無効になる デフォルトでは有効 42 監査、転送ログの収集と集中監視 43 監査、転送ログの収集と集中監視 監査ログやファイル転送状況を調整キュー・マネージャーが一元管理 FTEエージェントは、ファイルの転送状況をMQメッセージでパブリッシュ ログ情報のトピックをサブスクライブすることで、リモートから集中監視が可能 MQエクスプローラにプラグインされたGUIが自動的にサブスクライブしてログを表示する ファイル監査メッセージの必要な情報だけをサブスクライブすることも可能 SYSTEM.FTE トピックのトピック・ストリング ユーザ・アプリケーション 調整キュー・マネージャー 監視 サブスクライブ サブスクライブ MQエクスプローラー 監視 パブリッシュ エージェント・ キュー・マネージャー エージェント・ キュー・マネージャー FTE エージェント FTE エージェント エージェント・ キュー・マネージャー FTE エージェント 他にも調整キュー・マネージャーは、次の項目を一元管理 FTEエージェント情報 エージェント毎のファイル転送スケジュール情報 ファイル転送テンプレート など 44 監査 監査ログ 送信元エージェント名 送信先エージェント名 完了状態(成功/失敗) 開始時刻 実行者 など 調整キュー・マネージャーから各種ログを受信 調整キュー・マネージャーは各種情報をパブリケーションとして受信 サブスクライブ登録をすることで、パブリケーションをリモートで受信することが可能 MQエクスプローラーは、調整キュー・マネージャーからのパブリケーションを元に情報を表示している テンプレート、スケジュール転送、FTEエージェント情報はリテイン・パブリケーション 転送ログ、転送情報は、ノーマル・パブリケーション 情報の種類 トピック・ストリング テンプレート SYSTEM.FTE/Templates/FTEエージェント名 転送テンプレート情報 転送ログ SYSTEM.FTE/Log/FTEエージェント名/TranId ファイル転送ログ 進捗状況 SYSTEM.FTE/Transfers/FTEエージェント名/TranId ファイル転送進捗状況 スケジュール SYSTEM.FTE/Scheduler/FTEエージェント名 スケジュールされた転送情報 FTEエージェント SYSTEM.FTE/Agents/FTEエージェント名 FTEエージェント情報 各種情報は、有効期限なしのパーシステント・メッセージで配信 サブスクライブ登録 <転送ログ> QMGR(MQ v7): 調整 QMgr 各エージェントやMQエクスプローラー からのパブリケーション 45 ブランク・ページ 46 トピック 転送ログ 転送ログ 監視マシン ファイル転送の自動化 47 スケジュール機能 あらかじめ指定した日時に、ファイル転送を自動的に開始することが可能 例) 2009/6/30 3:00にファイルを転送を開始(1回限りの転送) 一定間隔で繰返しファイルを転送可能 例)毎週日曜日 3:00にファイルを転送を開始 繰返し回数、繰返し期限の設定が可能 無期限の設定も可能 ファイル転送要求に、時刻、繰返し回数を設定 転送元 スケジュールを登録 転送日時 ファイル転送を行う日時(年、月、日、時、分)を指定 転送日時の基準を下の3つより選択することが可能 転送要求 – ADMIN: 転送要求を発行した環境の時刻 – SOURCE: ソース・エージェント稼働環境の時刻 – UTC: 世界標準時 繰返しの設定 転送日時の設定と同時に指定することで、繰返しファイル転送を行うことが可能 繰返し間隔 – 年、月、週、日、時、分を指定することが可能 繰返し回数 – 繰返し回数を指定 – 繰返し期限を指定 – 無制限 48 FTE エージェント 時間 エージェントは スケジュールに従い 転送を開始 スケジュール機能の設定(コマンド) fteCreateTransferコマンド 必須パラメータに加え次のパラメータを指定 1回限りの転送の場合 パラメータ 説明 -ss (schedule_start_time) 時刻を指定 時刻のフォーマットはyyyy-MM-ddThh:mmもしくはhh:ss -tb ADMIN / SOURCE / UTCより基準となる時刻を指定 繰返し転送する場合 -ss、-tbに加えて、次のパラメータを加える パラメータ 説明 -oi 繰返し間隔の単位 minutes/hours/days/weeks/months/yearsのうちいずれかを指定 -ssと共に指定 -of (occurrence_frequency) 繰返し間隔 デフォルトは1 -oi,ssと共に指定 -oc (occurrence_count) 繰返し回数 -oi,ssと共に指定、-esとは共に指定することは不可 -es (schedule_end_time) 繰返しを終了する時刻を指定 時刻のフォーマットはyyyy-MM-ddThh:mmもしくはhh:ss -oi ,ss共に指定、-ocとは共に指定することは不可 49 スケジュール機能の設定例(コマンド) スケジュールされたファイル転送要求の確認コマンド fteListScheduledTransfers [Parameters..] ※ fteListScheduledTransfersの詳細については、 「付録 コマンド・リファレンス」を参照してください。 コマンドからファイル転送をスケジュールする例 2009/6/30 3:00に一回ファイル転送を実行 FTEエージェントAG1からAG2へ、ファイルC:¥From¥File.txt をC:¥To¥File.txtへ転送 C:¥WMQFTE¥bin>fteCreateTransfer -sa AG1 -da AG2 -dd C:¥To -tb ADMIN -ss 2009-06-30T03:00 C:¥From¥File.txt 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d51204147514d312020202020202074b73c49200cfb02 C:¥WMQFTE¥bin>fteListScheduledTransfers 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED スケジュール ID: 3 ソース・エージェント名: AG1 ソース・ファイル名: C:¥From¥File.txt 変換タイプ: binary 宛先ファイル名: C:¥To 宛先エージェント名: AG2 スケジュール開始時刻: 2009-06-30T03:00+0900 次の転送: 2009-06-30T03:00+0900 スケジュール時間基準: admin 50 スケジュール機能の設定例(コマンド) コマンドからファイル転送をスケジュールする例 2009/6/30 3:00から転送を開始し、一週間おきに一回ファイルを転送する 宛先のファイルは上書き FTEエージェントAG1からAG2へ、ファイルC:¥From¥File.txt をC:¥To¥File.txtへ転送 繰返しは無制限 C:¥WFTE¥code¥bin>fteCreateTransfer -sa AG1 -da AG2 -dd C:¥To -de overwrite -tb ADMIN -ss 2009-06-30T03:00 -oi weeks -of 1 C:¥From¥File.txt 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d5120434f514d20202020202020201c38094920009a02 C:¥WMQFTE¥bin>fteListScheduledTransfers 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED スケジュール ID: 4 ソース・エージェント名: AG1 ソース・ファイル名: C:¥From¥File.txt 変換タイプ: binary 宛先ファイル名: C:¥To 宛先エージェント名: AG2 スケジュール開始時刻: 2009-06-30T03:00+0900 次の転送: 2009-06-30T03:00+0900 スケジュール時間基準: admin 繰り返しの間隔: weeks 繰り返しの頻度: 1 51 スケジュール機能の設定(MQエクスプローラー) ファイル転送のスケジュール 「ファイル転送管理の新規作成」ウィンドウより 宛先、送信元を入力し、「次へ」をクリック スケジュールタブをクリック 「スケジュールを有効にする」にチェック (必須)時刻の基準を設定 開始時刻を設定 (オプション)「繰り返し」をチェック ・繰返し間隔の単位を繰返し間隔 を指定 次のいずれかを指定 ・繰返し期限 ・繰返し回数 ・無制限 52 スケジュールの確認、キャンセル(MQエクスプローラー) スケジュールの確認 ナビゲーターから「保留中の転送」をクリック ソース、宛先、開始時刻、繰り返し 周期、繰り返しタイプ、期限、次の 転送日時が表示される コンテンツの「保留中の転送」にスケジュールが表示される スケジュールのキャンセル 保留中の転送でスケジュール済のアイテムを選択 →右クリック→ 「キャンセル」 53 ブランク・ページ 54 トリガー機能 ファイル転送要求時に、トリガー条件を設定することが可能 ファイルが存在する/ファイルが存在しない/あるファイルが一定以上のサイズを持つ 例) /var/data/trigfile.txtが存在している場合のみ、ファイル/var/data/source.zipを転送する 転送元 トリガー条件を 設定 転送要求 FTE エージェント 転送前に転送元ファ イルの有無/ファイル サイズを確認 条件を満たしている 場合、ファイル転送 開始 ファイル転送実行時に条件を指定 複数の条件を指定できる すべての条件が満たされた場合(AND)にのみファイルが転送される 一つの条件に対して複数のファイルを指定することが可能 どれか一つのファイルが条件を満たした場合(OR)にファイルが転送される 条件に当てはまらなかった場合 エラー・メッセージとともに転送ログが出力される(出力されないよう設定可能) 55 トリガー機能の設定(コマンド) fteCreateTransferコマンド 必須パラメータに加え次のパラメータを指定 複数の条件を記述する場合は、-trパラメータを複数回指定する パラメータ 説明 -tr ・ファイル転送のトリガー条件を下のフォーマットで指定 <condition>,<namelist> ・<condition>には下の条件のいずれかを指定 ・file=exist:<namelist>に指定したファイルのうちどれか1つ以上が存在した場合 ・file!=exist:<namelist>に指定したファイルのうちどれか1つ以上が存在しない場合 ・filesize>=<size>: <namelist>に指定したファイルのうちどれか1つ以上が、ファイルサ イズが<size>以上であった場合 <size>には、KB, MB, GBのサイズ単位をつけることができる ・<namelist> ・カンマ’,’区切りでファイル名を指定 トリガー条件にマッチしなかった場合に、転送ログを発行しないよう指定可能 パラメータ 説明 -tl yes/noを指定 ・yes:ファイル転送要求が、トリガー条件にマッチしなかった場合でも、転送ログを発行する ・no:ファイル転送要求が、トリガー条件にマッチしなかった場合、転送ログを発行しない 56 トリガー機能の設定例(コマンド) コマンドからトリガー条件を指定したファイル転送要求を発行する例 FTEエージェントAG1からAG2へ、ファイルC:¥From¥File.txt をC:¥To¥File.txtへ転送 trigfile.txt、trigfile2.txt、trigfile3.txtのいずれかが存在している場合、ファイル転送を開始 (複数のファイルを指定) C:¥WMQFTE¥bin>fteCreateTransfer -sa AG1 -da AG2 -df C:¥To¥File.txt -tr file=exist,C:¥trigfile.txt,C:¥trigfile2.txt,C:¥trigfile3.txt C:¥From¥File.txt 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d5120434f514d202020202020202 00ed1354920003902 C:¥trigfile.txtが存在し、かつ、data.zipのサイズが5GB以上の場合(複数の条件を指定) C:¥WMQFTE¥bin>fteCreateTransfer -sa AG1 -da AG2 -df C:¥To¥File.txt -tr file=exist,C:¥trigfile.txt -tr "filesize>=5GB,C:¥data.zip" C:¥From¥File.txt 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d51204147514d312020202020202 074b73c49200d1102 57 トリガー機能の設定例(コマンド) FTEエージェントAG1からAG2へ、ファイルC:¥From¥File.txt をC:¥To¥File.txtへ転送 C:¥trigfile.txtが存在している場合のみファイル転送を開始 C:¥WMQFTE¥bin>fteCreateTransfer -sa AG1 -da AG2 -df C:¥To¥File.txt -tr file =exist,C:¥trigfile.txt C:¥From¥File.txt 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d51204147514d312020202020202074b73c49200d0c02 C:¥trigfile.txtのサイズが500KB以上の場合のみファイル転送を開始 C:¥WMQFTE¥bin>fteCreateTransfer -sa AG1 -da AG2 -df C:¥To¥File.txt -tr "filesize>=500KB,C:¥trigfile.txt" C:¥From¥File.txt 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d51204147514d312020202020202074b73c49200d1002 58 トリガー条件の設定(MQエクスプローラー) ファイル転送のスケジュール 「トリガー」タブをクリック 「トリガー転送を有効にする」に チェック 「ファイル転送管理の新規作成」 ウィンドウより宛先、送信元を入力し、 「次へ」をクリック (必須)ファイルを指定 複数ファイルを指定する場合、 コンマ’,’で区切って指定 (必須)トリガー条件を指定 ・ファイルが存在する ・ファイルが存在しない ・ファイルのサイズ (オプション)複数条件をする場合 は、グループに追加 59 ブランク・ページ 60 ファイル転送のカスタマイズ 61 ユーザーEXITの組込み ファイル転送要求毎にユーザーEXIT(Java)を呼び出すことが可能 ファイル転送前後に任意のロジックを組み込むことができる 例) ファイル転送終了後にe-mailで通知するなど EXITは図の① ~⑤の順に処理される 転送元 ① ソース転送 開始EXIT 転送先 送信開始前 送信 ⑤ ソース転送 終了EXIT 受信開始前 ③ファイル転送 FTE エージェント FTE エージェント ② 宛先転送 終了EXIT ④ 受信 受信終了後 送信終了後 宛先転送 開始EXIT ユーザーEXITに制御が渡るポイント(EXITポイント)は下の4つ EXITポイントに合わせて指定されたJavaインターフェースを実装したプログラムを作成 転送元 転送先 EXITポイント Java Interface ① ファイル転送開始前 SourceTransferStartExit ⑤ ファイル転送終了後 SourceTransferEndExit ② ファイル転送開始前 DestinationTransferStartExit ④ ファイル転送終了後 DestinationTransferEndExit 62 ユーザーEXITの配置 ユーザーEXITの配置場所 データディレクトリ配下のexitディレクトリ <WMQFTE_config_dir>/<Coordination QMGR Name>/agents/<Agent_NAME>/exits agent.propertiesのExitClassPathで指定したディレクトリ 両方設定した場合は、exitsディレクトリにあるクラスファイルが優先される FTEエージェントの設定 呼び出すユーザーEXITをagent.propertiesに設定 FTEエージェントごとに設定が必要 1つのFTEエージェントに複数のEXITをカンマ区切り’,’で指定可能 –指定した順番にEXITが呼び出される 設定後、FTEエージェントの再起動が必要 フィールド 設定値 sourceTransferStartExitClasses ・SourceTransferStartExitを実装したクラスを指定 sourceTransferEndExitClasses ・SourceTransferEndExitを実装したクラスを指定 destinationTransferStartExitClasses ・DestinationTransferStartExit を実装したクラスを指定 destinationTransferEndExitClasses ・DestinationTransferEndExitを実装したクラスを指定 exitNativeLibraryPath ・ユーザーEXITが使用するライブラリを指定 63 メタデータ FTEエージェントはユーザーEXITにメタデータを渡す メタデータは<key>,<value>のペア メタデータを元に、ファイル転送毎にユーザーEXITの動作を制御することが可能 エージェントが生成するメタデータに加え、ユーザーが指定したメタデータも渡すことができる ユーザーが指定したメタデータは転送メタデータとしてEXITに渡される メタデータの種類 メタデータの種類 メタデータで渡される情報 環境メタデータ FTEエージェントの稼動環境 - FTEエージェントのバージョン等 転送メタデータ ファイル転送に関する情報 - 転送ID、転送元/転送先FTEエージェント等 ユーザーが指定したメタデータ ファイルメタデータ 転送するファイルに関する情報 - 転送するファイルのタイプ、転送オプション等 メタデータ key1=value1, key2=value2, key3=value3, 転送先 転送元 FTE エージェント 転送要求+メタデータ 出口 メタデータ FTE エージェント メタデータ 出口 64 メタデータの設定 ユーザーが指定したメタデータをユーザーEXITに渡す方法 fteCreateTransferコマンド 必須パラメータに加え次のパラメータを指定 パラメータ 説明 -md コンマ区切りで1つ以上のペアを指定 記述形式 ・<name1>=<value1> , <name2>=<value2>,・・・ 例)fteCreateTransfer ・・・・ –md “fileType”=“SourceCode”,”Place”=“Tokyo” ・・・ 「属性名」「属性値」を入力し、「追加」をクリック MQエクスプローラー 「次へ」をクリック 「次へ」をクリック 設定したメタデータが表示される 65 ブランク・ページ 66 ユーザーEXITの活用 活用時のポイント 転送毎にパラメーター(メタデータ)を与える事ができるため、EXITの動作を動的に コントロールする事が可能 ファイル名、ファイルパス等の一部のパラメーターはEXIT内で変更し、後続の処理 に渡すことができる 複数のEXITを順番に呼び出すことができる 活用例 ファイル転送前後にシェルを実行 ファイル転送の異常終了時、e-mailで通知 ファイル名にタイムスタンプを付与してバージョニングを行う 67 EXIT活用例 ファイル転送終了後にメールを送信するEXIT EXITはファイル転送の成否に関わらず呼び出される 転送されたファイル名と共にファイル転送結果をメール本文にセットして送信 メールアドレスは次のようにメタデータに指定し、EXITに渡す 転送元 (AIX) ①fteCreateTransferコマンド 実行 送信 メタデータに メールアドレスを指定 FTE エージェント ②転送実行 転送先 (AIX / Windows) FTE エージェント 受信 受信終了後 68 ③ SendMailExit ユーザーEXITサンプルと設置例 ソース転送開始EXITの作成し、FTEエージェントAG1に設定する例 メタデータの一覧を取得し、ファイルに出力するExit メタデータの一覧はC:¥WMQFTE¥Metadata.txtに出力 1.SourceTransferStartExitインターフェースを実装したSourceExit.javaを作成 サンプルは製品には添付されていない 2.FTEエージェント稼動環境、ソースのコンパイル環境にCLASSPATHを設定 CLASSPATH=<WMQFTE_install_dir>/lib/com.ibm.wmqfte.exitroutines.api.jar 3.SourceExit.javaをコンパイルし、下のディレクトリに配置 <WMQFTE_config_dir>/<Coordination QMGR Name>/agents/<Agent_NAME>/exits 4.AG1のagent.propertiesに下の設定を追加 sourceTransferStartExitClasses=SourceExit 5.FTEエージェントを再起動 C:¥work>set set CLASSPATH=%CLASSPATH%;C:¥ CLASSPATH=%CLASSPATH%;C:¥WMQFTE¥ WMQFTE¥lib¥ lib¥com.ibm.wmqfte.exitroutines.api.jar C:¥work>javac javac SourceExit.java C:¥work>move move SourceExit.class C:¥ C:¥WMQFTE¥ WMQFTE¥config¥ config¥COQM¥ COQM¥agents¥ agents¥AG1¥ AG1¥exits¥ exits¥ C:¥work>C: C:¥ C:¥WMQFTE¥ WMQFTE¥bin¥ bin¥fteStopAgent.cmd AG1 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0034I: 停止要求がエージェント ‘AG1’ に対して発行されました。 C:¥work>C: C:¥ C:¥WMQFTE¥ WMQFTE¥bin¥ bin¥fteStartAgent.cmd AG1 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0030I: このマシンでエージェント 'AG1' を開始する要求が実行依頼されました。 BFGCL0031I: エージェント・ログ・ファイルの場所: C:¥WMQFTE¥config¥COQM¥agents¥AG1 69 ユーザーEXITサンプル作成と設置例 サンプルの作成 ※ 幕張環境で作成/稼動確認したものです メタデータの一覧を取得しファイルに出力するソース転送開始EXIT import java.util.*; import java.io.*; import com.ibm.wmqfte.exitroutine.api.*; public class SourceExit implements SourceTransferStartExit{ public TransferExitResult onSourceTransferStart(String sourceAgentName, String destinationAgentName, インターフェースの実装 Map<String, String> environmentMetaData, Map<String, String>transferMetaData, List<SourceFileExitFileSpecification>fileSpecs){ try{ FileWriter fileWriter = new FileWriter("C:¥¥WMQFTE¥¥Metadata.txt"); ・・・・・・出力ファイルのオープン PrintWriter printWriter = new PrintWriter(fileWriter); printWriter.println("SourceTransferStartExit Start"); ・・・・転送元エージェント名を出力 printWriter.println("SourceAgentName : " + sourceAgentName); printWriter.println("DestinationAgentName : " + destinationAgentName); ・・・・転送先エージェント名を出力 printWriter.println("EnvironmentMetaData : "); ・・・・環境メタデータを出力 for( String key : environmentMetaData.keySet()){ printWriter.println(" key: " + key + ", value: " + environmentMetaData.get(key)); } printWriter.println("TransferMetaData : "); for( String key : transferMetaData.keySet()){ ・・・・転送メタデータを出力 printWriter.println(" key: " + key + ", value: " + transferMetaData.get(key)); } 70 ユーザーEXITサンプル作成と設置例 サンプルの作成 –続き- ※ 幕張環境で作成/稼動確認したものです ・・・・ファイル・メタデータを出力 printWriter.println("FileMetaData : "); Iterator i = fileSpecs.iterator(); while(i.hasNext()){ SourceFileExitFileSpecification sp = (SourceFileExitFileSpecification) i.next(); for( String key : sp.getSourceFileMetaData().keySet()){ printWriter.println(" key: " + key + ", value: " + sp.getSourceFileMetaData().get(key)); } } printWriter.close(); ・・・・ファイルのクローズ fileWriter.close(); }catch(IOException ioe){ }catch(Exception e){ } ・・・・結果をリターン return TransferExitResult.PROCEED_RESULT; } } ※ エラーハンドリングは含まれていません 71 ユーザーEXITサンプル実行結果 実行結果 fteCreateTransfer メタデータとして、place=Tokyo, [email protected]をユーザーから渡す C:¥WMQFTE¥bin>fteCreateTransfer -sa AG1 -da AG2 -dd C:¥To –md Place=Tokyo,[email protected] C:¥From¥File.txt 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: 転送要求が発行されました。 要求 ID: 414d5120434f514d20202020202020208e7923492001ff02 出力されたC:¥WMQFTE¥Metadata.txt SourceTransferStartExit Start SourceAgentName : AG1 DestinationAgentName : AG2 EnvironmentMetaData : key: com.ibm.wmqfte.ProductDirectory, value: C:¥WMQFTE key: com.ibm.wmqfte.ConfigurationDirectory, value: C:¥WMQFTE¥config¥COQM¥agents¥AG1 key: com.ibm.wmqfte.AgentVersion, value: 7.0 TransferMetaData : key: com.ibm.wmqfte.SourceAgent, value: AG1 key: place, value: Tokyo key: com.ibm.wmqfte.DestinationAgent, value: AG2 key: mail, value: [email protected] key: com.ibm.wmqfte.OriginatingHost, value: 192.168.0.1 key: com.ibm.wmqfte.MqmdUser, value: MUSR_MQADMIN key: com.ibm.wmqfte.TransferId, value: 414d51204147514d312020202020202074b73c492000e202 key: com.ibm.wmqfte.OriginatingUser, value: fteUser FileMetaData : key: com.ibm.wmqfte.FileType, value: file key: com.ibm.wmqfte.FileConversion, value: binary key: com.ibm.wmqfte.ChecksumMethod, value: MD5 72 key: com.ibm.wmqfte.SourceFileDisposition, value: LEAVE ユーザーEXITのインターフェース <参考> SourceTransferStartExit package com.ibm.wmqfte.exitpoint.api; public interface SourceTransferStartExit { TransferExitResult onSourceTransferStart(String sourceAgentName, String destinationAgentName, Map<String, String> environmentMetaData, Map<String,String>transferMetaData, List<SourceFileExitFileSpecification>fileSpecs); } 各パラメータの説明 パラメータ 説明 String sourceAgentName 転送元FTEエージェント名 String destinationAgentName 転送先FTEエージェント名 Map<String, String> environmentMetaData 環境メタデータ Map<String, String>transferMetaData 転送メタデータ List<SourceFileExitFileSpecification>fileSpecs ファイルメタデータ 73 ユーザーEXITのインターフェース SourceTransferEndExit package com.ibm.wmqfte.exitpoint.api; public interface SourceTransferEndExit { String onSourceTransferEnd(TransferExitResult transferExitResult, String sourceAgentName, String destinationAgentName, Map<String, String>environmentMetaData, Map<String, String>transferMetaData, List<FileTransferResult>fileResults); } 各パラメータの説明 パラメータ 説明 TransferExitResult transferExitResult ファイル転送の結果 String sourceAgentName 転送元エージェント名 String destinationAgentName 宛先エージェント名 Map<String, String>environmentMetaData 環境メタデータ Map<String, String>transferMetaData 転送メタデータ List<FileTransferResult>fileResults ファイル転送の結果 74 <参考> ユーザーEXITのインターフェース <参考> DestinationTransferStartExit package com.ibm.wmqfte.exitpoint.api; public interface DestinationTransferStartExit { TransferExitResult onDestinationTransferStart(String sourceAgentName, String destinationAgentName, Map<String, String> evironmentMetaData, Map<String, String> transferMetaData, List<Reference<String>> fileSpecs); } 各パラメータの説明 パラメータ 説明 String sourceAgentName 転送元FTEエージェント名 String destinationAgentName 転送先FTEエージェント名 Map<String, String> environmentMetaData 環境メタデータ Map<String, String>transferMetaData 転送メタデータ List<Reference<String>> fileSpecs ファイルメタデータ 75 ユーザーEXITのインターフェース DestinationTransferEndExit package com.ibm.wmqfte.exitpoint.api; public interface DestinationTransferEndExit { String onDestinationTransferEnd(TransferExitResult transferExitResult, String sourceAgentName, String destinationAgentName, Map<String, String>environmentMetaData, Map<String, String>transferMetaData, List<FileTransferResult>fileResults); } 各パラメータの説明 パラメータ 説明 TransferExitResult transferExitResult ファイル転送の結果 String sourceAgentName 転送元エージェント名 String destinationAgentName 宛先エージェント名 Map<String, String>environmentMetaData 環境メタデータ Map<String, String>transferMetaData 転送メタデータ List<FileTransferResult>fileResults ファイル転送の結果 76 <参考> Apache Ant拡張機能 77 ブランク・ページ 78 Apache Antとは Javaベースのビルド・ツール 複雑なコンパイル作業を自動化するため、 Apacheプロジェクトの一環として開発された プラットフォームに依存しないビルド環境を提供 複雑なコンパイル・プロセスを簡略化可能 ビルド・ファイル(XML文書)にビルド・ルールを記述することで、コンパイルなどの手順を形式化 実行したい手順に従い、AntタスクをAntスクリプト(ビルド・ファイル)に記述 Antタスクは、Antの最小処理単位 Apache Antは、主に以下のAntタスクをコア・タスクとして提供 Javaプログラムのコンパイル、実行、JARファイルの作成 ディレクトリ操作(ディレクトリ作成、削除) ファイル操作(ファイルのコピー、削除) ファイルの圧縮(Zip)、展開 コア・タスク以外にも、外部より提供されるAntタスクを実行可能 WMQFTEもAntタスクを提供 79 Apache Ant拡張機能 WMQFTEはファイル転送等の機能を持つ8つのAntタスクを提供 ファイルの転送、キャンセル、タイムアウトの設定、外部コマンドの起動・・・等 コア・タスクや外部Antタスクと組み合わせることで、より柔軟なファイル転送操作が可能 例1) 転送されてきたファイルを結合し、1つのファイルにまとめる 例2) ファイル転送の前後に外部コマンドやスクリプトを実行 例3) タイムアウトを設定し、一定時間で転送処理が終了しなければキャンセル 例4) ファイル転送が失敗した場合、後続のファイル転送をスキップ Antスクリプト 実行コマンド コア・タスクの利用 Antスクリプトの例 ① ① ディレクトリをZipファイルに圧縮 ② ② ファイルを転送を実行 ③ タイムアウトを設定 ④. タイムアウト後ファイル転送が 終了していなかったらキャンセル ⑤ シェルスクリプトの実行 ④ ⑤ ファイルの転送、キャンセル、コマンド 実行タスクはエージェントに実行要 求を出す Antスクリプトに 処理内容を記述 ② FTE エージェント ⑤ 【上記例3の処理に加え、ファイル前後に、ディレクトリの圧縮、シェルスクリプトの実行を加えた例】 80 シェル・スクリプト ディレクトリの クリーン・アップ サンプルAntスクリプト WMQFTE提供のサンプルAntスクリプト <導入ディレクトリ>/samples/fteant サンプル・ スクリプト名 email hub timeout <参考> ※サンプルご使用の際は、スクリプト内のプロパティーを テスト環境に応じて適宜編集し、ご利用下さい 動作概要 ファイル転送を実行し、転送に失敗した場合、指定した メール・アドレスにメールを送信するAntスクリプト 以下処理概要 ・pingタスクを使用し、転送元/転送先エージェントが転送可能であることを確認 ・filecopyタスクを使用し、ソース・エージェントから宛先エージェントへファイルを転送 ・ 転送が失敗すると、標準 Ant email タスクを使用し、失敗についての情報を含むメールを送信 ・スポーク・マシンからハブ・マシンにファイルを転送し、ハブ・マシンにてファイルの結合を行うAntスクリプト ・hubcopy.xml と hubprocess.xml の 2 つのスクリプトで構成 以下処理概要 ・hubcopy.xml ファイルをスポーク・マシン上のFTEエージェントから、ハブ・マシン上のFTEエージェントに転送 ・hubprocess.xml 転送済みファイルをハブ・マシン上で1ファイルに連結 ファイル転送に失敗場合、Ant スクリプトは転送されたすべてのファイル・データを削除してクリーン・アップ ※hubprocess.xml スクリプトをハブ・エージェントのコマンド・パスに配置する必要があります。 ファイル転送を試行し、転送時間が指定したタイムアウト値を超過した場合、転送を取り消すAntスクリプト 以下処理概要 ・filecopyタスクを使用してファイル転送を開始 ・awaitoutcomeタスクを使用し、指定された秒数の間、転送の完了を待機 ・指定した時間内に転送が完了しない場合、cancelタスクでファイル転送を取り消す 81 サンプルAntスクリプト WMQFTE提供のサンプルAntスクリプト(続き) サンプル・ スクリプト名 vsamtransfer zip <参考> ※サンプルご使用の際は、スクリプト内のプロパティーを テスト環境に応じて適宜編集し、ご利用下さい 動作概要 ある VSAM データ・セットを別の VSAM データ・セットに転送するAntスクリプト 以下処理概要 ・filemoveタスクより、実行前にVSAM データ・レコードを順次データ・セットにアンロードし、実行ファイル datasetcopy.sh を呼び出す ・filemoveタスクを使用し、ソース・エージェントから宛先エージェントに順次データ・セットを転送 ・fiiemoveタスク実行後、loadvsam.jcl スクリプトを呼び出す loadvsam.jcl スクリプトは、転送されたデータ・セット・レコードを宛先の VSAM データ・セットにロード ※ソースおよび宛先データ・セットは VSAM である必要はありません。ソースと宛先のデータ・セットが同じタイプで あれば、どのデータ・セットでも機能します。 ※datasetcopy.sh スクリプトを転送元エージェントのコマンド・パスに置き、loadvsam.jcl スクリプトを転送先 エージェントのコマンド・パスに置く必要があります。 ディレクトリーを圧縮し、宛先FTEエージェントに転送するAntスクリプト zip.xml と zipfiles.xml の 2 つのスクリプトで構成される 以下処理概要 ・zip.xml ファイル転送前に Ant スクリプトzipfiles.xmlを実行 ・zipfiles.xml: ディレクトリーの内容を圧縮するAntスクリプト ※zipfiles.xml はソース・エージェントのコマンド・パスに配置する必要があります。 82 Antスクリプト概要 AntスクリプトはAntの処理内容を記述したXML文書 以下の 4つの要素を含む project要素、target要素、task要素、property要素 project要素 Antスクリプトの構造 プロジェクト プロパティ プロパティ ターゲット タスク トップレベルの要素 スクリプト内に1つのみ記述 主な属性 属性 name default 説明 (オプション)プロジェクトの名前 (必須)デフォルト・ターゲット target要素 タスク ターゲット タスク Antタスクを複数まとめて記述 ターゲット間の依存関係を記述することが可能 複数のターゲットを記述可能 ant実行時に実行するターゲットを指定 デフォルトは、project要素のdefault属性で指定したタスクが実行される 主な属性 属性 name 説明 (必須)ターゲットの名前 depends (オプション)依存しているターゲット 83 Antスクリプト概要 Antスクリプトの構造 プロジェクト プロパティ プロパティ ターゲット property要素 Antスクリプト内で使われる値を定数として定義 タスク内では、property要素で定義した定数を下のように使用することが可能 ${プロパティ名} タスク task要素 タスク ターゲット タスク task要素は実行する具体的な処理を記述 タスクはターゲット要素内に記述 1つのターゲット要素内に複数のタスク要素を記述することが可能 Antはコア・タスクと呼ばれる、様々なタスクを提供 「コンパイル」、「ファイル、ディレクトリ操作」、「jarファイル作成」、「ファイルの圧縮」など ※Antの詳細につきましては、以下のURLを参照してください。 http://ant.apache.org/manual/index.html Antスクリプトの例 メッセージを出力するタスクを指定 メッセージを出力するコア・タスクであるechoタスクを指定 <?xml version="1.0" encoding=“UTF-8" ?> <project name="antsample" default="msgtarget"> <target name="msgtarget"> <echo message="Hello, world"/> </target> </project> 84 プロジェクト属性 ターゲット属性 Echoタスクを指定 WMQFTE提供Antタスクの記述 WMQFTEが提供するAntタスクと、別Antタスクと区別するため名前空間を定義 project要素の属性に記述 fteを接頭辞に指定した例 <project xmlns:fte=“antlib:com.ibm.wmqfte.ant.taskdefs” ・・・ 任意の名前を名前空間の接頭辞に使用可能 WMQFTE提供のサンプル・スクリプトでは、接頭辞にfteを使用 WMQFTEタスクを記述したAntスクリプトの例 エージェントがアクティブであるかどうかを検査する処理の例 <?xml version="1.0" encoding="UTF-8"?> <project xmlns:fte="antlib:com.ibm.wmqfte.ant.taskdefs" default="do_ping"> <target name="do_ping"> <fte:ping cmdqm="qm@localhost@[email protected]" agent="agent1@qm1" rcproperty="ping.rc" timeout="15"/> </target> </project> 85 ブランク・ページ 86 プロジェクト属性 ターゲット属性 FTE提供タスクを指定 Antスクリプト実行コマンド Antスクリプト実行コマンド fteAnt [Prameters…] -f Antスクリプト ターゲット 必須パラメーター パラメータ 説明 -f (Antスクリプト), -file (Antスクリプト), または -buildfile (Antスクリプト) 実行する Ant スクリプト名を指定 オプション・パラメータ パラメータ 説明 -debug または -d デバッグ出力を生成 -quiet または -q 最小出力を生成 -verbose または -v 詳細出力を生成 -keep-going または -k 失敗したターゲットに依存せず、すべてのターゲットを実行 -D(プロパティー)=(値) Antタスク内で使用するプロパティーを指定 プロパティー・ファイルに設定されたプロパティーに優先 -propertyfile (プロパティ・ファイル名) プロパティーをプロパティー・ファイルからロード ターゲット 実行するAntスクリプトの内のタスクを指定 値を指定しない場合は、Antスクリプトのデフォルト・ターゲットが実行される 87 Antスクリプト実行例 サンプル・スクリプトtimeoutの実行例 ファイル転送実行後、転送時間が指定した値を超過した場合、転送を取り消すAntスクリプト ファイル転送がタイムアウトするように、転送先エージェントAG2を停止後、Antスクリプトtimeoutを実行 C:¥Program Files¥IBM¥WMQFTE¥samples¥fteant¥timeout>fteAnt -file timeout.xml 5655-U80, 5724-R10 Copyright IBM Corp. 2008, 2009. ALL RIGHTS RESERVED BFGCL0211I: BFGCL0211I: init: BFGCL0211I: BFGCL0211I: step1: <== 30秒待機した後、ファイル転送がキャンセルされる BFGCL0211I: BFGCL0211I: step2: ※ initターゲットのプロパティ属性を編集することが必要 FTEエージェントAG1からFTEエージェントAG2へ、ファイルC:¥From¥File.txtをC:¥Toへ転送 30秒でタイムアウト timeout.xmlのinit属性部分 <target name="init"> <property name="cmd.qmgr" value="COQM" /> <property name="src" value="AG1@AGQM1" /> <property name="dst" value="AG2@AGQM2" /> <property name="timeout" value="30" /> <property name="src.file" value="C:¥MQTST¥wfte¥From¥TestFile.txt" /> <property name="dst.dir" value="C:¥MQTST¥wfte¥To" /> </target> 88 Antタスク WMQFTEは以下のAnt タスクを提供 Antタスク名 awaitoutcome call cancel filecopy filemove ignoreoutcome ping uuid 概要 ・filecopy, filemove, call タスクの完了を待ちうけるタスク ・タイムアウトを設定し、awaitoutcomeを抜けた後、コードからタスクが完了したかどうかを判 別可能 ・リモートからスクリプトや、プログラムの実行をすることができるタスク ・call タスクはエージェントに対して、コマンド・キュー・マネージャー経由でリクエストを投げる ・エージェントはcall タスクからのリクエストを受け取り、スクリプトやプログラムを実行 ・filecopy, filemoveタスクで実行されているファイル転送をキャンセルするタスク ・エージェント間でファイルのコピーを行うタスク ・ファイル転送の前後(Exitと同じポイント)でジョブをキックすることができる ・エージェント間でファイルを移動するタスク ・送信元のファイルは削除される ・ファイル転送の前後(Exitと同じポイント)でジョブをキックすることができる ・ filecopy、filemove、または call タスクの結果を追跡するためのリソースを解放するタスク ・エージェントがアクティブで、ファイル転送が可能な状態かどうかを判別するためのタスク ・指定した長さで、ランダムにIDを発行するタスク ・接頭辞を指定可 ・ジョブ名など、プロパティに指定可能 89 ブランク・ページ 90 Antタスク:awaitoutcome <参考> filecopy、filemove、または call タスクの完了を待ちうけるタスク awaitoutcome要素に設定する属性 属性名 説明 id 必須 ・結果を待機する対象の転送を下のいずれかで指定 ・filecopy、filemove、call タスクの idProperty 属性によって設定された値 ・fteCreateTransferで生成された転送ID rcproperty 必須 awaitoutcome タスクの戻りコードを保管するためのプロパティー名を指定 timeout オプション ・操作が完了するまで待機する最大時間(秒) ・最小値は1 ・タイムアウト値を指定しなかった場合無制限で待機 記述例 ファイル・コピー(filecopy)開始後、コピー操作が完了するまで待機 <-- ファイル・コピー要求の発行 --> <fte:filecopy cmdqm="qm1@localhost@[email protected]" src="agent1@qm1" dst="agent1@qm1" idproperty="copy.id" outcome="defer"/> <!-- 他の処理 --> <!-- ファイル・コピーの結果の取得 --> <fte:awaitoutcome id="${copy.id}" rcProperty="copy.result"/> 91 Antタスク:call <参考> Antスクリプトや外部プログラムを実行するタスク call タスクは、コマンド・キュー・マネージャー経由でエージェントにリクエストを投げる エージェントはリクエストを受け取り、スクリプトを実行 FTEエージェントのローカルにスクリプトを配置することが必要 agent.propertiesの commandPathフィールドに、コマンドが配置されているディレクトリを指定 デフォルトでは、FTEエージェントはスクリプトを呼び出すことはできない call要素に設定する属性 属性名 説明 agent 必須 call 要求の実行依頼先のエージェントをagentname@qmgrname という形式で指定 ・agentname:エージェントの名前 ・qmgrname :エージェント・キュー・マネージャー名 idproperty outcome属性 に defer を指定している場合は必須 call要求に割り当てるIDを指定 outcome属性に ignore を指定した場合には、このプロパティーは指定不可 jobname オプション ジョブ名を call 要求に割り当てる origuser オプション call 要求に関連付ける発信ユーザー ID を指定 origuser 属性を使用しなかった場合、Ant スクリプト実行ユーザーが指定される 92 Antタスク:call <参考> call要素に設定する属性(続き) 属性名 説明 cmdqm オプション call 要求の実行依頼先のコマンド・キュー・マネージャーqmgrname@host@port@channel という形式で指定 ・qmgrname: キュー・マネージャー名 ・host : キュー・マネージャーを実行しているマシンのホスト名(オプション) ・port : キュー・マネージャーが listen しているオプションのポート番号 ・channel : SVRCONN チャネル ※コマンド・キュー・マネージャーの host 情報を省略した場合、バインディング・モードで接続 ※port 情報を省略した場合、デフォルトの 1414 が使用される ※channel 情報を省略した場合、SYSTEM.DEF.SVRCONN が使用される ※cmdqm 属性を省略した場合、タスクはcom.ibm.wmqfte.ant.commandQueueManager プロパティーを使用。 com.ibm.wmqfte.ant.commandQueueManager プロパティーが設定されていない場合、デフォルトのキュー・マネー ジャーへバインディング・モードで接続 outcome オプション Ant スクリプトに制御を返す前に、タスクが call 操作の完了まで待機するかどうかを指定 以下のいずれかを指定 ・await:タスクはcall 操作が完了するまで待機(デフォルト) ・defer:タスクは、call 要求が実行依頼されるとすぐに制御を返す (後から awaitoutcome タスクまたはignoreoutcomeタスクを使用して call 操作の結果を処理することを想定) ・ignore:タスクは、コマンドの結果を追跡するためのリソースを割り当てずに、すぐに制御を返す rcproperty オプション call 要求の結果コードを割り当てるプロパティーの名前を指定 結果コードには、call 要求の全体的結果が反映される ※outcome プロパティーに ignore または defer を指定した場合には、このプロパティーは指定不可 ※outcome プロパティーに await を指定した場合には、rcproperty を指定することが必要 93 Antタスク:call 子要素に記述する要素 要素名 説明 command エージェントで呼び出すコマンドを指定 メタデータ call操作に関連付けるメタデータを指定 記述例 キュー・マネージャー QM1 で実行されている AGENT1 でコマンドを呼び出す 呼び出すコマンドは、スクリプト command.sh command.shは単一の引数 “xyz” を指定して呼び出される <fte:call cmdqm="QM0@localhost@[email protected]" agent="AGENT1@QM1" rcproperty="call.rc" origuser="bob" jobname="${job.id}"> <fte:command command="command.sh" successrc="1" retrycount="5" retrywait="30"> <fte:arg value="xyz"/> </fte:command> <fte:metadata> <fte:entry name="org.foo.accountName" value="BDG3R"/> </fte:metadata> </fte:call> 94 <参考> Antタスク:cancel <参考> filecopy, filemoveタスクで実行されているファイル転送をキャンセルするタスク cancel要素に設定する属性 属性名 説明 agent 必須 cancel要求の実行依頼先のエージェントをagentname@qmgrname という形式で指定 ・agentname:エージェントの名前 ・qmgrname :エージェント・キュー・マネージャー名 id 必須 取り消す転送の転送 ID を指定 転送 ID は、filecopy、 filemoveタスクで転送要求が実行依頼時に生成される cmdqm オプション cancel要求の実行依頼先のコマンド・キュー・マネージャーqmgrname@host@port@channel という形式で指定 ・qmgrname: キュー・マネージャー名 ・host : キュー・マネージャーを実行しているマシンのホスト名(オプション) ・port : キュー・マネージャーが listen しているオプションのポート番号 ・channel : SVRCONN チャネル ※コマンド・キュー・マネージャーの host 情報を省略した場合、バインディング・モードで接続 ※port 情報を省略した場合、デフォルトの 1414 が使用される ※channel 情報を省略した場合、SYSTEM.DEF.SVRCONN が使用される ※cmdqm 属性を省略した場合、タスクはcom.ibm.wmqfte.ant.commandQueueManager プロパティーを使用。 com.ibm.wmqfte.ant.commandQueueManager プロパティーが設定されていない場合、デフォルトのキュー・マ ネージャーへバインディング・モード接続 origuser オプション cancel 要求に関連付ける発信ユーザー ID を指定 指定されない場合、Ant スクリプト実行ユーザーが指定される 95 Antタスク:cancel <参考> 記述例 cancel 要求をコマンド・キュー・マネージャー qm0 に送信 cancel 要求のターゲットは、キュー・マネージャー qm1 上の agent1 で、転送 ID は transfer.id 変数によって設定 要求は、「bob」ユーザー ID を使用して実行 <fte:cancel cmdqm="qm0@localhost@[email protected]" agent="agent1@qm1" id="${transfer.id}" origuser="bob"/> <fte:cancel cmdqm="qm0@localhost@[email protected]" agent="agent1@qm1" id="${transfer.id}" origuser="bob“/> 96 Antタスク: filecopy <参考> エージェント間でファイルのコピーを行うタスク filecopyタスクは、コマンド・キュー・マネージャー経由でエージェントにリクエストを投げる ファイル転送の前後(Exitと同じポイント)でジョブをキックすることができる filecopy要素で設定する属性 属性名 説明 dst 必須 copy 操作の宛先エージェントをagentname@qmgrname という形式で指定 ・agentname:エージェントの名前 ・qmgrname :エージェント・キュー・マネージャー名 src 必須 copy 操作のソース・エージェントをagentname@qmgrname という形式で指定 ・agentname:エージェントの名前 ・qmgrname :エージェント・キュー・マネージャー名 idproperty outcome に defer を指定している場合は必須 転送 ID を割り当てるプロパティーの名前を指定 ※outcome プロパティーに ignore を指定した場合には、このプロパティーは指定不可 priority オプション copy 要求に関連付けるファイル転送の優先順位を指定 jobname オプション ジョブ名をfilecopy 要求に割り当てる origuser オプション copy要求に関連付ける発信ユーザー ID を指定 origuser 属性を使用しなかった場合には、Ant スクリプト実行ユーザー が指定される 97 Antタスク: filecopy <参考> filecopy要素で設定する属性(続き) 属性名 説明 cmdqm オプション copy 要求の実行依頼先のコマンド・キュー・マネージャーqmgrname@host@port@channel という形式で指定 ・qmgrname: キュー・マネージャー名 ・host : キュー・マネージャーを実行しているマシンのホスト名(オプション) ・port : キュー・マネージャーが listen しているオプションのポート番号 ・channel : SVRCONN チャネル ※コマンド・キュー・マネージャーの host 情報を省略した場合、バインディング・モードで接続 ※port 情報を省略した場合、デフォルトの 1414 が使用される ※channel 情報を省略した場合、SYSTEM.DEF.SVRCONN が使用される ※cmdqm 属性を省略した場合、タスクはcom.ibm.wmqfte.ant.commandQueueManager プロパティーを使用。 com.ibm.wmqfte.ant.commandQueueManager プロパティーが設定されていない場合、デフォルトのキュー・マネー ジャーにバインディング・モードで接続 outcome オプション Ant スクリプトに制御を返す前に、タスクが copy操作の完了まで待機するかどうかを指定 以下のいずれかを指定 ・await:タスクはcopy操作が完了するまで待機(デフォルト) ・defer:タスクは、copy要求が実行依頼されるとすぐに制御を返す (後から awaitoutcome タスクまたはignoreoutcomeタスクを使用して copy 操作の結果を処理することを想定) ・ignore:タスクは、コマンドの結果を追跡するためのリソースを割り当てずに、すぐに制御を返す rcproperty オプション copy 要求の結果コードを割り当てるプロパティー名を指定 ※outcome プロパティーに ignore または defer を指定した場合には、このプロパティーは指定不可 ※outcome プロパティーに await を指定した場合には、rcproperty を指定することが必要 98 Antタスク:filecopy <参考> 子要素に記述する要素 要素名 説明 presrc 転送開始前にソース・エージェントで行うプログラム呼び出しを指定 特定の転送に関連付けることができる presrc 要素は 1 つのみ predst 転送開始前に宛先エージェントで行うプログラム呼び出しを指定 特定の転送に関連付けることができる predst 要素は 1 つのみ postsrc 転送完了後にソース・エージェントで行うプログラム呼び出しを指定 特定の転送に関連付けることができる postsrc 要素は 1 つのみ postdst 転送完了後に宛先エージェントで行うプログラム呼び出しを指定 特定の転送に関連付けることができる postdst 要素は 1 つのみ メタデータ copy 操作に関連付けるメタデータを指定 filespec コピー対象ファイルを特定するファイル指定を指定 複数指定可能 記述例1 agent1 から agent2へファイルを転送 <fte:filecopy cmdqm=qm0@localhost@[email protected] src="agent1@qm1" dst="agent2@qm2" rcproperty="copy.result"> <fte:filespec srcfilespec="/home/fteuser1/file.bin" dstfile="/home/fteuser2/file.bin"/> </fte:filecopy> 99 Antタスク:filecopy 記述例2 例1の処理内容に加え、宛先エージェントでのプログラム呼び出しを追加 <fte:filecopy cmdqm="qm0@localhost@[email protected]" src="agent1@qm1" dst="agent2@qm2" rcproperty="copy.result"> <fte:metadata> <fte:entry name="org.example.departId" value="ACCOUNTS"/> <fte:entry name="org.example.batchGroup" value="A1"/> </fte:metadata> <fte:filespec srcfilespec="/home/fteuser1/file.bin" dstfile="/home/fteuser2/file.bin"/> <fte:postsrc command="/home/fteuser2/scripts/post.sh" successrc="1" > <fte:arg value="/home/fteuser2/file.bin"/> </fte:postsrc> </fte:filecopy> 100 <参考> Antタスク: filemove <参考> エージェント間でファイルを移動する 送信元のファイルは削除される ファイル転送の前後(Exitと同じポイント)でジョブをキックすることができる filemove要素で設定する属性 属性名 説明 dst 必須 move操作の宛先エージェントをagentname@qmgrname という形式で指定 ・agentname:エージェントの名前 ・qmgrname :エージェント・キュー・マネージャー名 src 必須 move 操作のソース・エージェントをagentname@qmgrname という形式で指定 ・agentname:エージェントの名前 ・qmgrname :エージェント・キュー・マネージャー名 idproperty outcome に defer を指定している場合は必須 転送 ID を割り当てるプロパティーの名前を指定 ※outcome プロパティーに ignore を指定した場合には、このプロパティーは指定不可 priority オプション move要求に関連付けるファイル転送の優先順位を指定 jobname オプション ジョブ名を move 要求に割り当てる origuser オプション move要求に関連付ける発信ユーザー ID を指定 origuser 属性を使用しなかった場合には、Ant スクリプト実行ユーザーが指定される 101 Antタスク: filemove <参考> filemove要素で設定する属性(続き) 属性名 説明 cmdqm オプション move 要求の実行依頼先のコマンド・キュー・マネージャーqmgrname@host@port@channel という形式で指定 ・qmgrname: キュー・マネージャー名 ・host : キュー・マネージャーを実行しているマシンのホスト名(オプション) ・port : キュー・マネージャーが listen しているオプションのポート番号 ・channel : SVRCONN チャネル ※コマンド・キュー・マネージャーの host 情報を省略した場合、バインディング・モードで接続 ※port 情報を省略した場合、デフォルトの 1414 が使用される ※channel 情報を省略した場合、SYSTEM.DEF.SVRCONN が使用される ※cmdqm 属性を省略した場合、タスクはcom.ibm.wmqfte.ant.commandQueueManager プロパティーを使用。 com.ibm.wmqfte.ant.commandQueueManager プロパティーが設定されていない場合、デフォルトのキュー・マネー ジャーへバインディング・モードで接続 outcome オプション Ant スクリプトに制御を返す前に、タスクが move操作の完了まで待機するかどうかを指定 以下のいずれかを指定 ・await:タスクはmove操作が完了するまで待機(デフォルト) ・defer:タスクは、move要求が実行依頼されるとすぐに制御を返す (後から awaitoutcome タスクまたはignoreoutcomeタスクを使用して move操作の結果を処理することを想定) ・ignore:タスクは、コマンドの結果を追跡するためのリソースを割り当てずに、すぐに制御を返す rcproperty オプション move 要求の結果コードを割り当てるプロパティー名を指定 ※outcome プロパティーに ignore または defer を指定した場合には、このプロパティーは指定不可 ※outcome プロパティーに await を指定した場合には、rcproperty を指定することが必要 102 Antタスク:filemove <参考> 子要素に記述する要素 要素名 説明 presrc 転送開始前にソース・エージェントで行うプログラム呼び出しを指定 特定の転送に関連付けることができる presrc 要素は 1 つのみ predst 転送開始前に宛先エージェントで行うプログラム呼び出しを指定 特定の転送に関連付けることができる predst 要素は 1 つのみ postsrc 転送完了後にソース・エージェントで行うプログラム呼び出しを指定] 特定の転送に関連付けることができる postsrc 要素は 1 つのみ postdst 転送完了後に宛先エージェントで行うプログラム呼び出しを指定 特定の転送に関連付けることができる postdst 要素は 1 つのみ メタデータ move操作に関連付けるメタデータを指定 filespec コピー対象ファイルを特定するファイル指定を指定 複数指定可能 記述例1 agent1 からagent2 へファイルを移動 <fte:filemove cmdqm="qm0@localhost@[email protected]" src="agent1@qm1" dst="agent2@qm2" rcproperty="move.result"> <fte:filespec srcfilespec="/home/fteuser1/file.bin" dstfile="/home/fteuser2/file.bin"/> </fte:filemove> 103 Antタスク:ignoreoutcome <参考> filecopy、filemove、または call タスクの結果を追跡するためのリソースを解放する ignoreoutcome要素で設定する属性 属性名 説明 id 必須 filecopy、filemove、callタスクのidProperty 属性によって設定された値を指定 記述例 ignoreoutcome タスクを使用して、filecopyタスクの出力を追跡するために割り振られていたリ ソースを解放 <!-- issue a file copy request --> <fte:filecopy cmdqm="qm1@localhost@[email protected]" src="agent1@qm1" dst="agent1@qm1" idproperty="copy.id" outcome="defer"/> <!-- do some other things --> <!-- decide that the result of the copy is not interesting --> <fte:ignoreoutcome id="${copy.id}"/> 104 Antタスク:ping <参考> エージェントがアクティブで、ファイル転送が可能な状態かどうかを判別するためのタスク ping要素で設定する属性 属性名 説明 agent 必須 ping要求の実行依頼先のエージェントをagentname@qmgrname という形式で指定 ・agentname:エージェントの名前 ・qmgrname :エージェント・キュー・マネージャー名 cmdqm オプション ping要求の実行依頼先のコマンド・キュー・マネージャーqmgrname@host@port@channel という形式で指定 ・qmgrname: キュー・マネージャー名 ・host : キュー・マネージャーを実行しているマシンのホスト名(オプション) ・port : キュー・マネージャーが listen しているオプションのポート番号 ・channel : SVRCONN チャネル ※コマンド・キュー・マネージャーの host 情報を省略した場合、バインディング・モードで接続 ※port 情報を省略した場合、デフォルトの 1414 が使用される ※channel 情報を省略した場合、SYSTEM.DEF.SVRCONN が使用される ※cmdqm 属性を省略した場合、タスクはcom.ibm.wmqfte.ant.commandQueueManager プロパティーを使 用。com.ibm.wmqfte.ant.commandQueueManager プロパティーが設定されていない場合、デフォルトの キュー・マネージャーへバインディング・モードで接続 105 Antタスク:ping ping要素で設定する属性(続き) 属性名 説明 rcproperty 必須 ping 操作の戻りコードを保管するためのプロパティーの名前を指定 timeout オプション タスクがエージェントの応答を待つ最大時間(秒) 最小値は0 永久待ちをする場合は-1 を指定 timeout に値が指定されない場合、デフォルトで、エージェントの応答を 5 秒まで待機 記述例 ping 要求を qm1 によってホスティングされる agent1 に送信 エージェントの応答を 15 秒間待機 ping 要求の結果は、ping.rc という名前のプロパティーに保管 <fte:ping agent="agent1@qm1" rcproperty="ping.rc" timeout="15"/> 106 <参考> Antタスク:uuid 指定した長さで、ランダムにIDを発行するタスク ファイル転送操作用のジョブ名の生成などに使用可能 uuid要素で設定する属性 属性名 説明 length 必須 生成する UUID の長さを示す数値 この長さの値には、prefix パラメーターで指定される接頭部の長さは含まれない property 必須 生成された UUID を割り当てるプロパティー名 prefix オプション 生成された UUID の前に付加する接頭部 この接頭部は、length パラメーターで指定する UUID の長さには含まれない 記述例 ABC という文字で始まり、16 個の疑似ランダム 16 進文字が続く UUID を定義 UUID は、uuid.property という名前のプロパティーに割り当てる <fte:uuid length="16" property="uuid.property" prefix="ABC"/> 107 ブランク・ページ 108 <参考> Antタスクに共通の子要素 <参考> 複数のAntタスク要素に共通の子要素 filespec プログラム呼び出し メタデータ 109 共通の子要素:filespec <参考> ソース・ファイル、ディレクトリーまたはデータ・セット、および宛先の間のマッピングを記述 複数のマッピングを記述することが可能 ネストの対象Antタスク filecopy filemove filespec要素で設定する属性 属性名 説明 dstdir 転送先ディレクトリ ※dstdir、dstds、dstfile、または dstpds のいずれかを指定することが必要 dstds 転送先データ・セット(z/OSのみ) ※dstdir、dstds、dstfile、または dstpds のいずれかを指定することが必要 dstfile 必須 宛先ファイル名を指定 ※dstdir、dstds、dstfile、または dstpds のいずれかを指定することが必要 dstpds 必須 宛先区分データ・セットを指定(z/OSのみ) ※dstdir、dstds、dstfile、または dstpds のいずれかを指定することが必要 srcfilespec 必須 転送するファイルを指定 ワイルドカードを含むことができる 110 共通の子要素:filespec <参考> filespec要素で設定する属性(続き) 属性名 説明 checksum オプション ファイルのチェックサムを計算するためのアルゴリズムを指定 ・MD5: MD5 ハッシュ・アルゴリズムを使用(デフォルト) ・NONE: チェックサム・アルゴリズムを使用しない dstencoding オプション ファイル転送に用いられる文字コードを指定 指定しない場合、テキスト転送には転送先先システムの文字セットが使用される dsteol オプション ファイル転送に用いられる行区切り文字 ・CRLF: (Windows) ・LF: (UNIX) ※この属性を指定できるのは、conversion 属性が値 text に設定されている場合のみ 指定しない場合、宛先エージェントの稼動システムに基づいて、テキスト転送で正しい値が自動的に決定される overwrite オプション 転送先に同名にファイルが存在する場合の動作を指定 ・true: 上書き ・false: ファイル転送(デフォルト) recurse オプション ソース・ファイル指定にディレクトリ、ワイルド・カード含まれている場合、サブディレクトリのファイルも再帰的に転送する かどうかを指定 ・true: 再帰的に転送 ・false: 再帰的に転送しない(デフォルト) 111 共通の子要素:filespec <参考> filespec要素で設定する属性(続き) 属性名 説明 srcencoding オプション ファイル転送に用いられる文字コードを指定 指定しない場合、テキスト転送には転送元システムの文字セットが使用されます。 srceol オプション ファイル転送に用いられる行区切り文字 ・CRLF: (Windows) ・LF: (UNIX) ※この属性を指定できるのは、conversion 属性が値 text に設定されている場合のみ 指定しない場合、転送元エージェントの稼動システムに基づいて、テキスト転送で正しい値が自動的に決定される 記述例 転送元ファイルを file1.bin、転送先ファイルを file2.bin とした filespec を指定 <fte:filespec srcfilespec="/home/fteuser/file1.bin" dstfile="/home/fteuser/file2.bin"/> 112 共通の子要素: メタデータ <参考> ファイル転送操作に対し、追加のユーザー定義情報を渡す場合に指定 ネスト対象のAntタスク filecopy filemove call entry要素をmetadata要素の子要素に記述 entry要素に記述する属性 属性名 説明 name 必須 メタデータのキー値を指定 value 必須 メタデータのバリュー値を指定 記述例 2つのentry要素を含むメタデータを定義 <fte:metadata> <fte:entry name="org.foo.partColor" value="red"/> <fte:entry name="org.foo.partSize" value="medium"/> </fte:metadata> 113 共通の子要素: プログラム呼び出し <参考> 以下の要素より、Antスクリプト、外部アプリケーションを呼び出すことが可能 presrc、predst、postdst、postsrc、および command 対象Antタスク タスク 説明 filecopy predst、postdst、presrc、および postsrc要素を使用して、プログラム呼び出しを指定 filemove predst、postdst、presrc、および postsrc要素を使用して、プログラム呼び出しを指定 call command要素を使用して、プログラム呼び出しを指定 プログラム呼び出し要素で設定する属性 属性名 説明 コマンド 必須 呼び出すプログラム名前を指定 ※コマンドを、エージェントの agent.properties ファイル内の commandPath プロパティーで指定された場所に 入れておくことが必要 ※command 属性に指定されるパス情報は、commandPath プロパティーによって指定される場所に対する相 対パスであるとみなされる retrycount オプション プログラムが成功を示す戻りコードを戻さなかった場合に、プログラムの呼び出しを再試行する回数 0以上値を指定(デフォルト: 0) retrywait オプション プログラムが成功を示す戻りコードを戻さなかった場合、プログラム呼び出しを再試行するまでの待機時間 (秒) 0以上値を指定(デフォルト: 0) 114 共通の子要素: プログラム呼び出し <参考> プログラム呼び出し要素で設定する属性(続き) 属性名 説明 successrc オプション プログラム呼び出しが正常に実行される条件を指定 値は、ブール値の OR を表わす 垂直バー (|)、またはブール値の AND を表わすアンパーサンド (&) で結合 された 1 つ以上の式により構成 各式は、以下のいずれかのタイプ ・処理戻りコードとの等価テストを示す数値 ・処理戻りコードとの大なりテストを示す、接頭部に ">" 文字が付いた数値 ・処理戻りコードとの小なりテストを示す、接頭部に "<" 文字が付いた数値 ・処理戻りコードとの不等テストを示す、接頭部に "!" 文字が付いた数値 type オプション 呼び出されているプログラムのタイプを指定 ・executable: 実行可能プログラムを呼び出します(シェル・スクリプト等) ※ arg 子要素を使用して追加の引数を指定することが可能 ・antscript: Ant スクリプトを指定 ※ プロパティーおよび Ant ターゲットは、それぞれ property と target という子要素で指定可能 ・jcl: JCL スクリプトを指定 (z/OSのみ) ※stderr または stdout に書き込まれるコマンド出力は、その呼び出しに対する 転送ログに 送信されるエージェントのプロパティーmaxCommandOutputで出力量を制限可能です (デフォルト10K バイトのデータまで) 115 共通の子要素: プログラム呼び出し プログラム呼び出し要素の子要素に記述する要素 要素名 説明 arg プログラムに渡す引数を指定 value属性で呼び出されるプログラムに渡される引数の値を指定 ・value 必須。 呼び出されるプログラムに渡される引数の値。 ※type 属性の値が executable の場合のみ有効 property Antスクリプトに渡すプロパティー値を指定 name 属性および value 属性を使用して、Ant スクリプトに名前値ペアを渡す ・name 必須。 Ant スクリプトに渡すプロパティーの名前。 ・value 必須。 Ant スクリプトに渡されるプロパティー名に関連付ける値。 ※type 属性の値が antscript の場合のみ有効 ターゲット 呼び出す Ant スクリプトのターゲットを指定 ※type 属性の値が antscript の場合のみ有効 116 <参考> 共通の子要素: プログラム呼び出し <参考> 記述例1 filecopyタスクの一部として指定される postsrc プログラム呼び出す post.sh というプログラムに対するもので、/home/fteuser2/file.bin という単一の引数が指定 <fte:filecopy cmdqm="qm0@localhost@[email protected]" src="agent1@qm1" dst="agent2@qm2" rcproperty="copy.result"> <fte:filespec srcfilespec="/home/fteuser1/file.bin" dstfile="/home/fteuser2/file.bin"/> <fte:postsrc command="post.sh" successrc="1" > <fte:arg value="/home/fteuser2/file.bin"/> </fte:postsrc> </fte:filecopy> 記述例2 callタスクの一部として指定されるコマンド(command.sh) を呼び出す コマンド行引数は渡さない command.sh が1 の戻りコードを戻さない場合、30 秒後に再試行 <fte:call cmdqm="qm0@localhost@[email protected]" agent="agent1@qm1" rcproperty="call.rc" origuser="bob" jobname="${job.id}"> <fte:command command="command.sh" successrc="1" retrycount="5" retrywait="30"/> </fte:call> 117 共通の子要素: プログラム呼び出し 記述例3 call タスクの一部として指定される Antスクリプトを呼び出す <fte:call cmdqm="qm0@localhost@[email protected]" agent="agent1@qm1“ rcproperty="call.rc" origuser="bob" jobname="${job.id}"> <fte:command command="script.xml" type="antscript"> <property name="src" value="AGENT5@QM5"/> <property name="dst" value="AGENT3@QM3"/> <target>copy</target> <target>compress</target> </fte:command> </fte:call> 118 <参考> データベース・ロガー 119 ブランク・ページ 120 データベース・ロガー 監査ログをデータベースに蓄積する常駐Javaプロセス fteコマンドで開始/停止 稼動時、調整キュー・マネージャー、データベースに常時接続 調整キュー・マネージャーにローカル接続、データベースにJDBC type2接続 キュー・マネージャーをTMとした2PCを用いてデータベースを更新 監査ログの収集、分析のためにデータベースを利用することが可能 サブスクライブ データベース・ロガー 調整キュー・マネージャー パブリッシュ エージェント・ キュー・マネージャー FTE エージェント ・ファイル転送ログ ・スケジュール ・FTEエージェントが 実行したタスク 等 監査ログ パブリッシュ エージェント・ キュー・マネージャー データ・ベース FTE エージェント 監査ログ 121 監査ログ(データベース・ロガー) データベース・ロガーは調整キュー・マネージャーにサブスクリプション登録し監査ログを取得 以下の情報をデータ・ベースに格納 ファイル転送ログ リソース・モニターの情報 スケジュールの情報 ・・・ 転送ログ 監査ログを照会するSQL文の例 SELECT * FROM TRANSFER_EVENT 照会結果 122 データベース・ロガー設定方法 <参考> 1. データベース・ソフトウェアを導入(必須) JDBCサポートが必須 2. データベース・ロガーが使用するテーブルの作成(必須) 以下のディレクトリにあるテーブル作成用SQLファイルを使用 <FTE導入ディレクトリ>/tools/sql ftelog_tables_db2.sql(DB2用)、ftelog_tables_oracle.sql(Oracle用) 使用するデータベース名に合わせて、接続先データベースを変更 データベースごとの制御方法に従い、SQLファイルを実行 3. データベース・ロガーの導入(必須) WMQFTEリモート・ツールより、データベース・ロガーを導入 4. データベース・ロガー用システムキューの変更(オプション) 調整キュー・マネージャーのセットアップ時、デフォルト・システム・キューが作成される データベース・ロガー用のキューをプロパティファイル(databaselogger.properties)で変更可能 データベース・ロガー用システム・キュー キュー名 データベース・ロガー用コマンド・キュー SYSTEM.FTE.DATABASELOGGER.COMMAND 退避用キュー SYSTEM.FTE.DATABASELOGGER.REJECT 123 設定方法 <参考> 5. 各ユーザーのアクセス権を設定(必須) データベース・ロガー実行ユーザー データベース・ロガー実行ユーザーのデータベース・ロガーのコンポーネント(実行コマンド、ライブラリ)へ読み/ 実行権限 <FTE構成ディレクトリ>/<調整キュー・マネージャー名>/logディレクトリへの読み書き権限 データベースへの接続、選択、挿入、更新権限を設定 調整キュー・マネージャー実行ユーザー データベースへの接続権限を設定 DB2USERSグループに入っていることを確認(DB2の場合) 以下のMQオブジェクトのアクセス権限を設定 MQオブジェクト データベースロガー実行ユーザーの権限 エージェント・キュー・マネージャー +connect, +inq キュー - SYSTEM.FTE.DATABASELOGGER.REJECT +put SYSTEM.FTE.DATABASELOGGER.COMMAND +get トピック - SYSTEM.FTE +sub 124 設定方法 <参考> 6. 2PCの設定(必須) スイッチ・ロードファイルの作成 調整キュー・マネージャーの構成情報を変更 DB2の場合 XAResourceManager: Name=DB2DB SwitchFile=jdbcdb2 XAOpenString=db=FTAUDIT1, uid=ftelog, pwd=qgw783jhT, toc=p, tpm=mq ThreadOfControl=PROCESS データベースのパラメータを設定(DB2, Windowsの場合) C:¥WMQFTE¥bin> db2 UPDATE DBM CFG USING TP_MON_NAME MQ 環境変数の設定 キュー・マネージャー実行環境にDB2INSTANCEが設定 例) DB2INSTANCE=DB2 調整キュー・マネージャーを再起動し、構成情報を反映 各データベース・システムに対応する2PCの設定に関する詳細はInformationCenter「Using Java」 の JTA/JDBC coordination using WebSphere MQ classes for Javaを参照してください 125 設定方法 <参考> 7. データベース・ロガーの設定 <FTE構成ディレクトリ>/<調整キュー・マネージャー名>/database.propertiesに最低限 以下のフィールドを設定 wmqfte.queue.manager=<調整キュー・マネージャー名> wmqfte.database.name=<データベース名> wmqfte.database.driver=<JDBC type2ドライバ> –JDBCドライバを提供する.jarファイルの完全修飾ファイル名を設定 例) /opt/IBM/db2/V9.5/java/db2jcc.jar (UNIX) C:/Program Files/IBM/SQLLIB/java/db2jcc.jar (Windows、パス分離文字は’/’スラッシュ) 126 設定例 <参考> 以下の環境で、データベース・ロガーを実行する場合の設定例 パラメータ 説明 データベース製品 DB2 データベース名 FTELOGDB OS Windows 実行ユーザー Administrator権限(MQ、DB2への接続権限あり) 調整キュー・マネージャー名 COQM 1. コマンド・ウィンドウからDB2に接続 2. 監査ログを収集するデータベースへ接続 C:¥WMQFTE¥bin> db2 connect to FTELOGDB 3. テーブル作成SQLファイルを編集 <WMQFTE導入ディレクトリ>¥tools¥sql¥ftelog_tables_db2.sqlファイルに記述されている データベース名をFTELOGDBに修正 4. テーブルの作成 C:¥WMQFTE¥bin> db2 –tvf <WMQFTE導入ディレクトリ>¥tools¥sql¥ftelog_tables_db2.sql 5. 作成された表の確認 C:¥WMQFTE¥bin> db2 list tables for schema ftelog Schema Type Creation time ------------------ ------ ----- -------------------------CALL FTELOG T 2009-05-13-11.27.43.906001 CALL_ARGUMENT FTELOG T 2009-05-13-11.27.43.640001 ・・・ 127 設定例 <参考> 6. スイッチ・ロード・ファイルの用意 <MQ導入ディレクトリ>¥Java¥lib¥jdbc¥jdbcdb2.dll を使用 7. 調整キュー・マネージャーの設定 MQエクスプローラーより、調整キュー・マネージャーのXAリソース・マネージャーを以下のように設定 「キュー・マネージャーのプロパティ」- 「一般」-始動で対話式(手動)を選択 128 設定例 <参考> 8. 調整キュー・マネージャー再起動 9. DB2の設定 C:¥WMQFTE¥bin> db2 UPDATE DBM CFG USING TP_MON_NAME MQ 10. <FTE構成ディレクトリ>¥<調整キュー・マネージャー名>¥databaselogger.propertiesの 設定 wmqfte.queue.manager=COQM wmqfte.database.name=FTELOGDB wmafte.database.driver=C:/Program Files/IBM/SQLLIB/java/db2jcc.jar 129 ブランク・ページ 130 データベース・ロガー関連コマンド データベース・ロガー起動コマンド fteStartDatabaseLogger [Prameters…] プロパティー・ファイル オプション・パラメーター パラメータ 説明 -F ・データベース・ロガーをフォアグラウンドで起動 ・デフォルトでは、データベース・ロガーはバックグラウンドで起動される プロパティー・ファイル ・プロパティー・ファイルを指定 ・デフォルトでは<FTE構成ディレクトリ>/<調整キュー・マネージャー名>/databaselogger.properties が参照される データベース・ロガー停止コマンド fteStopDatabaseLogger [Prameters…] オプション・パラメーター パラメータ 説明 -qm ・データベース・ロガー用のコマンド・キューがあるキュー・マネージャー名を指定 ・デフォルトは調整キュー・マネージャーに接続 -cq ・データベース・ロガーのコマンド・キューを指定 ・デフォルトは、 SYSTEM.FTE.DATABASELOGGER.COMMANDを使用 131 データベース・ロガー実行例 データベース・ロガーをバックグラウンドで起動 C:¥Program Files¥IBM¥WMQFTE¥tools¥bin>fteStartDatabaseLogger.cmd 5655-U80, 5724-R10 Copyright IBM Corp. 2008, 2009. ALL RIGHTS RESERVED データベースに格納される監査ログを確認 FTEエージェントAG1からAG2へファイルを転送 TRANSFER表に行が追加されていることを確認 データベース・ロガーを停止 C:¥Program Files¥IBM¥WMQFTE¥tools¥bin>fteStopDatabaseLogger.cmd 5655-U80, 5724-R10 Copyright IBM Corp. 2008, 2009. ALL RIGHTS RESERVED BFGCL0237I: 停止要求が COQM 上のデータベース・ロガー・コマンド・キュー SYSTEM.FTE.DATABASELOGGER.COMMAND に対して発行されました。 132 databaselogger.propertiesのパラメーター <参考> プロパティ名 説明 デフォルト wmqfte.max.transaction.messages トランザクションがコミットされる前にトランザクションで処理される メッセージの最大数 50 wmqfte.max.transaction.time トランザクションのコミット間に経過する時間の最大長 (ミリ秒) 5000 wmqfte.max.consecutive.reject 連続してリジェクト可能なメッセージの最大数 50 wmqfte.reject.queue.name データベース・ロガーがメッセージを処理できない場合の、メッ セージのリジェクト先キュー名 SYSTEM.FTE.DATABAS ELOGGER.REJECT wmqfte.command.queue.name データベース・ロガーを制御するコマンド・メッセージを配置する キュー SYSTEM.FTE.DATABAS ELOGGER.COMMAND wmqfte.queue.manager データベース・ロガーの接続先のキュー・マネージャー デフォルト値なし wmqfte.message.source.type 監査、転送ログの送信元タイプを指定 ・automatic subscription データベース・ロガーがSYSTEM.FTE/Log/# への永続的な 管理対象サブスクリプションを作成して、使用する ・administrative subscription データベース・ロガーは、ユーザーが独自に作成したサブスクリ プションを使用 ・queue SYSTEM.FTE/Log/#より受信したメッセージを格納する キューを指定 automatic subscription wmqfte.message.source.name ・監査、転送ログの送信元タイプが administrative subscription または queue である場合、サブスクリプションまた はキューの名前を指定 ・automatic subscription である場合は無視される デフォルト値なし 133 databaselogger.propertiesのパラメーター <参考> プロパティ名 説明 デフォルト wmqfte.database.name 監査ログを格納するデータベース名 デフォルト値なし wmqfte.database.type 使用中のデータベース管理システム ・DB2を使用する場合: db2 ・Oracleを使用場合: Oracle db2 wmqfte.database.schema 監査・転送ログを格納する表のスキーマ名 FTELOG wmqfte.database.native.library.path ・JDBCドライバを提供する.jarファイルの完全修飾ファイル名を設定 ・Windows、UNIX共にパス分離文字は’/’スラッシュjava.library.path システム・プロパティーでも設定可 デフォルト値なし wmqfte.database.driver ・JDBCドライバを提供する.jarファイルの完全修飾ファイル名を設定 ・ Windows、UNIX共にパス分離文字は’/’スラッシュで指定 ・デー タベース・ドライバーが複数の JAR ファイルで構成されている場 合は 、該当のJAR ファイルをすべてこのプロパティーに含めることが必 要(Windows の場合はセミコロン文字 (;)、他のプラットフォームの場 合はコロン文字 (:)で分離) デフォルト値なし wmqfte.max.retry.interval データベース・ロガーが永続エラーを検出した場合の、再試行間の最 大時間 (ミリ秒) 600 134 リソース・モニター 135 リソース・モニター ディレクトリ内をポーリングし、ファイルの生成/削除をトリガーにタスクを実行する機能 使用例1) アプリケーションがデータ生成終了後、ファイル転送を実行 ・アプリケーションは、転送用データdata.zipを生成後、data.goファイルをC:¥trigディレクトリに生成 ・リソース・モニターは1分おきにC:¥trigディレクトリにdata.goファイルがないかどうかポーリング ・C:¥trigディレクトリにdata.goが生成されたことを検知すると、リソースモニターはファイル転送を実行 ⑤ファイル転送開始 アプリケーション ①転送用data.zipファイル生成 FTE エージェント ① File ②トリガーファイルdata.goを生成 ② C:¥trig ④ タスク定義に従い ファイル転送要求発行 リソース・モニター ③トリガー条件を満た していたら、タスク実行 定期的ディレクトリ内 をポーリング ファイル転送 タスク (XML) ファイル転送タスクを 定義 使用例2)転送用ディレクトリC:¥Data内の転送が終了したファイルを定期的にアーカイブ ・以下の処理をするAntスクリプトを作成 -アーカイブ対象のファイル名の末尾に日時を付加し、アーカイブ先にコピー -アーカイブ対象のファイルを削除 - リソース・モニターはC:¥Data内を一日おきにポーリング 136 リソース・モニターの生成/削除 コマンド/GUIより、生成/削除を行う リソース・モニター生成時、以下を指定 ポーリング間隔 年、月、週、日、時、分、秒単位で指定 トリガー条件 ファイル・パターン:ストリングの完全一致 / 単純なワイルドカードの一致 / 正規表現の一致 条件を指定:ファイルが存在する/ ファイルが存在しない / ファイル・サイズが一定以上 ※V7.0.1 では、トリガー条件は1 つのみサポート ポーリングするディレクトリの深さ デフォルトでは、指定したディレクトリのみ対象(再帰的にポーリングされない) オプションでサブディレクトリを含めることも可能 モニター作成 コマンド タスク定義に従い コマンド開始 or ファイル転送開始 FTE エージェント コマンド・キュー・ マネージャー タスク、トリガー条件を 指定し、生成 実行コマンド/ Antスクリプト リソース・モニター ポーリング対象範囲 タスク定義 (XML) ・ポーリング間隔 ・トリガー条件 ・ディレクトリの深さ 137 リソース・モニターの動作 リソース・モニターはFTEエージェントの一部として実行される FTEエージェントの起動/停止と共に起動/停止 タスクはリソース・モニターに対して非同期に開始される リソース・モニターはリソースが更新された際にタスクを実行 ファイルが存在することが条件の場合 タスク実行後、次にポーリングされた時、ファイルが更新されていない場合は、タスクは実行されない ファイルの中身が更新されていなくても、ファイルの更新時間が変わっていればタスクの実行対象 FTEエージェント ファイル更新日時を保存 リソース・モニター 最終更新時刻 タスク FTEエージェント リソース・モニター 最終更新時刻 ポーリング間隔 経過後 ポーリングタスク実行 更新時刻が変更されていなければ、 タスクは実行されない ファイルが存在しないことが条件の場合 タスク実行後、次にポーリングされた時、ファイルが存在していなくてもタスクは実行されない ポーリング時にファイルの存在を認識すると、再びタスク実行のトリガー対象となる FTEエージェント ポーリング間隔 経過後 リソース・モニター ポーリング間隔 経過後 リソース・モニター タスク ポーリングタスク実行 FTEエージェント ファイルが存在していなくても、 138 タスクは実行されない FTEエージェント リソース・モニター ファイルの存在 を検知 再びタスクの実行対象 リソース・モニター関連用語 <参考> リソース・モニター関連用語 パラメータ 説明 リソース・モニター ・指定された間隔でリソースをポーリングするプロセス(FTEエージェント) ・モニターに指定された条件とリソースを比較し、マッチした場合はタスクを実行する リソース ・リソース・モニターのポーリング対象とするディレクトリ、サブディレクトリ ・サブディレクトリを再帰的にモニター可能 条件式 ・リソースに対する条件式 ・すべての条件式が真の場合、トリガー条件が満たされる トリガー条件 トリガー条件が満たされた場合、モニター・タスクが実行される モニター・タスク ・トリガー条件が満たされた場合に実行されるタスク ・実行可能なタスクは以下 ・ファイル転送タスク ・コマンド(Antスクリプト、外部プログラム、JCL) 139 ブランク・ページ 140 モニター・タスク トリガー条件が満たされた場合に起動するタスク定義をフォーマットに従いXMLで定義 ユーザーの開発範囲 スキーマファイル: FileTransfer.xsd Remote Tools and Documentation CDのMessageSchemaディレクトリで提供 2 タイプのタスクのいずれかを指定 ファイル転送タスク –gt でタスクを自動生成可能 エージェント、ファイル、転送オプション等を指定 fteCreateTransfer コマンド・タスク Antスクリプト、実行ファイルやシェルなど外部プログラム、JCL(z/OSのみ) 呼び出すスクリプトの名前、引数およびプロパティー等を指定 141 モニター・タスク定義の例 ファイル転送タスク FTEエージェントAG1からAG2へ、ファイルC:¥From¥File.txtをC:¥To¥File.txtへ転送 <?xml version="1.0" encoding="UTF-8"?> <request version="2.00" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FileTransfer.xsd"> <managedTransfer> <originator> <hostName>192.168.0.1</hostName> <userID>fteUser</userID> </originator> <sourceAgent agent="AG1" QMgr="AGQM1"/> <destinationAgent agent="AG2" QMgr="AGQM2"/> <transferSet> <item mode="binary" checksumMethod="MD5"> <source recursive="false" disposition="leave"> <file>C:¥From¥File.txt</file> </source> <destination type="directory" exist="error"> <file>C:¥To</file> </destination> </item> </transferSet> </managedTransfer> </request> 142 モニター・タスク定義の例 コマンド・タスク Ant スクリプトRunCleanup.xml をを呼び出す <?xml version="1.0" encoding="UTF-8"?> <request version="1.00" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FileTransfer.xsd"> <managedCall> <originator> <hostName>hostName</hostName><userID>userID</userID><mqmdUserID>mqmdUserID</mqmdUserID> </originator> <agent QMgr="QM1" agent="AGENT1"/> <reply QMGR="QM1">reply</reply> <transferSet priority="1"> <metaDataSet> <metaData key="name1">value1</metaData> </metaDataSet> <call> <command name="RunCleanup.xml" type="antscript" retryCount="2" retryWait="30" successRC="0"> <target>check_exists</target> <target>copy_to_archive</target> <target>rename_temps</target> <target>delete_files</target> <property name="trigger.filename" value="${FileName}"/> <property name="trigger.path" value="${FilePath}"/> </command> </call> </transferSet> <job> <name>JOBCLEAN1</name> </job> </managedCall> </request> 143 リソース・モニターの作成例(MQエクスプローラー) C:¥TestDirをモニターし*.trigファイルが生成されたらファイルを転送するモニターの作成 ・モニター名 ・ディレクトリー ・ファイル・パターン ・トリガー条件 ナビゲーターから「モニター」を選択し、 右クリック、ポップアップ・メニューから、 「モニターの新規作成」を選択 拡張タブ ・ポーリング間隔 ・再帰震度 144 リソース・モニター関連コマンド 新規リソース・モニター作成コマンド fteCreateMonitor [Prameters…] 必須パラメーター パラメータ 説明 -ma (monitoring_agent_name) 必須 リソース・モニターを実行するエージェント名 -md (directory_path) 必須 モニターするディレクトリーの絶対パス名 -mn (monitor_name) 必須 モニター名 モニター・エージェントに対して固有であることが必要 名前には、任意の英数字、および「.」(ピリオド)、「%」(パーセント)、お よび「_」(アンダー スコアー) を使用可能 モニター名はすべて大文字で扱われる -mt (task_definition_file_name) 必須 トリガー条件が満たされたときに実行する、タスク定義 145 リソース・モニター関連コマンド オプション・パラメーター パラメータ 説明 -mm (monitoring_agent_qm gr_name) オプション モニター・エージェントの接続先キュー・マネージャー名 -pi (interval_period) オプション ディレクトリーをモニターする間隔 1以上の値を指定(デフォルト1) -pu (units) オプション モニター・ポーリング間隔の時間単位 seconds/minutes(デフォルト)//hours/days -tr オプション トリガー条件を指定 トリガー条件は、条件とパターンのペア ファイル名にワイルド・カードを指定可能 match(デフォルト): モニター対象ディレクトリー内に任意の ファイルが存在する場合、この条件が満たされる noMatch: モニター対象ディレクトリー内のいかなる ファイルも存在しない場合に、この条件は満たされる fileSize>=size ディレクトリー内のファイルの中で、パターンに一致して、かつファイル・サイズが size 以上であるものが 1 ファイル以上存在する場合、トリガー条件が満たされる size は、整数とオプションのサイズ単位 (B、KB、MB、または GB) を組み合せ 146 リソース・モニター関連コマンド オプション・パラメーター(続き) パラメータ 説明 -rl (number_of_recursion_ levels) オプション モニター対象のルート・ディレクトリーから、再帰的にモニターするディレクトリーの階層数 例とえば、以下のディレクトリに対して、「-rl 2」と指定した場合、C:¥wmqfte¥monitor¥reports¥2009 ディレクトリーまでモニター対象 ・C:¥wmqfte¥monitor ・C:¥wmqfte¥monitor¥reports ・C:¥wmqfte¥monitor¥reports¥2009 デフォルトでは、再帰は行われない 実行例 モニター・エージェント MYAGENT を使用し、 新規リソース・モニターMYMONITORを作成 5 MB を超えるファイルがディレクトリー C:¥wmqfte¥monitors に存在すると、 C:¥templates¥transfer_reports.xml に定義した内容のファイル転送を開始 fteCreateMonitor -ma MYAGENT -md C:¥wmqfte¥monitors -mn MYMONITOR -mt C:¥templates¥transfer_reports.xml -tr fileSize">"=5MB 147 リソース・モニター関連コマンド リソース・モニター削除コマンド fteDeleteMonitor [Prameters…] 主なパラメーター パラメータ 説明 -ma (monitoring_agent_name) 必須 リソース・モニターを実行するエージェント名 -mm (monitoring_agent_qmgr_name) オプション モニター・エージェントの接続先キュー・マネージャー名 -mn (monitor_name) 必須 リソース・モニター名 実行例 AGENT1が管理するリソース・モニター MONITOR1を削除 fteDeleteMonitor -ma AGENT1 -mm QM_JUPITER -mn MONITOR1 148 リソース・モニター関連コマンド リソース・モニター一覧を表示するコマンド fteListMonitor [Prameters…] 主なパラメーター パラメータ 説明 -ma (monitoring_agent_name) オプション エージェント名でリソース・モニターをフィルタリング アスタリスク (*) : ゼロ以上の文字と一致するワイルドカード 指定しない場合、デフォルトの調整キュー・マネージャーの全エージェントに関連付けられたリ ソース・モニターのすべてを表示 -mn (monitor_name) オプション モニター名でリソース・モニターをフィルタリング アスタリスク (*) : ゼロ以上の文字と一致するワイルドカード 指定しない場合、デフォルトの調整キュー・マネージャーの全エージェントに関連付けられたリ ソース・モニターのすべてを表示 -v オプション モニター状況の追加情報を含む詳細出力を生成 実行例 モニター・エージェントAGENT1 に関連付けられたすべてのリソース・モニターをリスト fteListMonitors -ma AGENT1 149 ブランク・ページ 150 デモ(Antスクリプト) 151 ブランク・ページ 152 デモ・シナリオ 以下の動作をするAntスクリプトMyFilecopy.xmlを作成 AG1からAG2へファイルを転送する 転送オプションはデフォルトを使用 転送元FTEエージェント AG1 転送にはfilecopyタスクを利用 転送先FTEエージェント AG2 環境は右表 AG1のエージェントQMgr AGQM1 AG2のエージェントQMgr AGQM2 転送するファイル C:¥MQTST¥wfte¥ From¥TestFile.txt 転送に失敗したらサイレンを鳴らす 音楽ファイルを呼び出すjavaアプリケーションを作成 クラスを呼び出すためにjavaタスクを利用 デモシナリオ MyFilecopy.xmlより一回目のファイル転送を実施 fteAnt –f MyFilecopy.xml ファイルが生成されていることを確認 MyFilecopy.xmlより二回目のファイル転送を実施 一回のファイル転送で、宛先にファイルが生成されているため、ファイル転送が失敗 javaタスクより、サイレンをならすクラスが呼ばれる Antスクリプト 実行コマンド Antスクリプトの例 ①filecopyタスクよりファイル 転送開始 ②ファイル転送に失敗したら javaタスクよりサイレンを鳴 らすアプリケーションを起動 153 AG1 AG2 File File javaクラス サイレンを鳴らす MyFilecopy.xml <参考> <?xml version="1.0" encoding="UTF-8"?> <project xmlns:fte="antlib:com.ibm.wmqfte.ant.taskdefs" default="complete"> <target name="init" description="initialise task properties"> <property name="cmd.qmgr" value="AGQM1" /> <property name="src" value="AG1@AGQM1" /> <property name="dst" value="AG2@AGQM2" /> <property name="src.file" value="C:¥MQTST¥wfte¥From¥TestFile.txt" /> <property name="dst.file" value="C:¥MQTST¥wfte¥To¥TestFile.txt" /> <fte:uuid property="job.name" length="8" prefix="copyjob#" /> </target> <target name="step1" depends="init" description="transfer file"> <fte:filecopy cmdqm="${cmd.qmgr}" src="${src}" dst="${dst}" jobname="${job.name}" rcproperty="copy.rc"> <fte:filespec srcfilespec="${src.file}" dstfile="${dst.file}" overwrite="false" /> </fte:filecopy> <condition property="step1.copy.failed"> <not> <equals arg1="${copy.rc}" arg2="0" /> </not> </condition> </target> <target name="step2" depends="step1" description="silen" if="step1.copy.failed"> <java classname="Silen" classpath="C:¥MQTST¥wfte¥WSDemo;C:¥MQTST¥wfte¥WSdemo¥JLayer1.0.1¥classes" fork="yes" /> </target> <target name="complete" depends="step2" /> </project> 154 GDGサポート 155 ブランク・ページ 156 WMQFTE for z/OS V7.0.1情報 WMQFTE for z/OS V7.0.1 の拡張機能 分散プラットフォーム版の拡張機能に加えて以下の機能を提供 世代別データグループ(GDG)のサポート GDG の絶対名と相対名の双方をサポート 157 GDGサポート ソース・データ・セットと宛先データ・セットのGDGをサポート 絶対および相対GDG名を使用可能 新しい世代に書き込む場合には、基本GDG が既に存在している必要あり GDG を使用した fteCreateTransfer コマンドの例 ソースファイル:file.datをMK.GDG01 内の新しい世代に転送 # fteCreateTransfer -sa AG_HAD6 -da AG_HAD6 -ds "//'MK.GDG01(+1)'" -t text -w /u/user/file.dat 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: Transfer request issued. The request ID is: c3e2d840d4d8f7c14040404040404040c457e6dc85e6c2b7 BFGCL0142I: The file transfer request has been submitted. The command is waiting for notification of the request completion. BFGCL0139I: The file transfer request has successfully completed. ソースファイル:file.datをMK.DGD01内の指定した絶対名の世代に転送 # fteCreateTransfer -sa AG_HAD6 -da AG_HAD6 -ds "//'MK.GDG01.G0002V00'" -t text -w /u/user/file.dat 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: Transfer request issued. The request ID is:c3e2d840d4d8f7c14040404040404040c457f11f6259fa37 BFGCL0142I: The file transfer request has been submitted. The command is waiting for notification of the request completion. BFGCL0139I: The file transfer request has successfully completed. ソースファイル:MK.GDG01 内の最新世代をDESTに転送 # fteCreateTransfer -sa AG_HAD6 -da AG_HAD6 –ds "//'DEST'" -t text -w "//'MK.GDG01(0)'" 5655-U80, 5724-R10 Copyright IBM Corp. 2008. ALL RIGHTS RESERVED BFGCL0035I: Transfer request issued. The request ID is: c3e2d840d4d8f7c14040404040404040c457f607a8247e37 BFGCL0142I: The file transfer request has been submitted. The command is waiting for notification of the request completion. BFGCL0139I: The file transfer request has successfully completed. 158