...

機能 目次 WebSphere MQ

by user

on
Category: Documents
160

views

Report

Comments

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
Fly UP