Comments
Description
Transcript
WMB V7.0.0.1 アップデート・セミナー 目次
WMB V7.0.0.1 アップデート・セミナー ISE エンタープライズ・ミドルウェア 2010年10月22日 目次 WMBとは パターン サブフローのパッケージ化 DatabaseInputノード SOAP/JMSサポート WebサービスおよびHTTP関連機能拡張 メッセージフロー・セキュリティ機能強化 WMQFTEとの接続サポート その他 2 WMBとは 3 WebSphere Message Broker(WMB) 業界をリードするアプリケーション統合ミドルウェア:ユニバーサル・コネクティビティ WebSphere MQと共に、既存/ 新規のアプリケーション統合を実現する SOAにおけるAdvanced ESB を構築する為のミドルウェアに位置づけられる 様々なプロトコルでメッセージをルーティング、フォーマット変換 サポートするプロトコル MQ、JMS、HTTP(S)、Webサービス(SOAP)、REST、ファイル、TCP/IP、EIS(SAP、 Siebel・・・) 幅広いデータフォーマットに対応 XML、ユーザ定義(Cヘッダー形式、COBOL COPY句)、バイナリー、タグ/区切り文字形式(CSV)、 業界標準(SWIFT、EDI、HL7・・)、IDOC 豊富なメディエーション処理 ルーティング、フィルター、変換、配布、組み立て、分解、順序付け、関連付け、集約など 開発の容易性 GUIによる簡単な開発、またはスクリプト/プログラムによる複雑な開発が可能 管理機能の充実と高いパフォーマンス GUI、コマンドによる管理、管理用プログラムも作成可能 C++ベースの実行環境で高速なトランザクション処理を可能 幅広いプラットフォームのサポート Routes and Transforms messages FROM anywhere, TO anywhere 分散系からホストまで・・・ 4 システム・コンポーネント ブローカー メッセージ・フローの実行環境(実行グループ)の構成・管理を行う デプロイされたメッセージ・フローをDataFlowEngineプロセス (実行グループ)のスレッドで実行 MB Explorer(MBX) WMBの管理ツール Eclipseのプラグインとして提供され、MQ Explorerに組み込み、ブローカーとMQを一元管理 ツールキット EclipseベースのGUI開発/テストツール 開発者がテストを実施するために必要な操作のみ 実施可能 メッセージ・ブローカー エクスプローラー メッセージ・ブローカー ツールキット 開発環境 本番環境 アプリケーション アプリケーション ブローカー 実行グループ アプリケーション アプリケーション 5 WMBの開発物 メッセージ定義とメッセージ・フローを開発 ブローカーでは、物理フォーマットやプロトコルを意識せずに、データへ統一的にアクセスするた めに、受信したメッセージを共通の論理ツリーに展開して、変換処理などを実施 メッセージ定義に基づいて、データのパース(展開) / 組み立てを実施 メッセージ・フローに基づいて、データに対して必要なメディエーション処理を実施 論理メッセージ・ツリー Root Properties メッセージ 定義 ヘッダー類 データ データの組み立て データのパース メッセージ 定義 ESQLでアクセス メッセージ・フロー CWF/MQ (一方向型) SOAP/HTTP (リクエスト/リプライ) MQアプリケーション Webサービス アプリケーション MQMD <msg><data><elm01>aaa</elm01> <elm02>bbb ・・・ </msg> フォーマット変換、プロトコル変換、ルーティングなどを実施 6 aaa bbb ・・・ WMBの歩み Advanced ESB EAI / HUB ’99 AS/400 HOST系 UNIX/PC ’00 ’01 ’03 ’04 ’05 ’06 ’07 ’08 ’09 終了 V1.1 V1.0 ’02 V1.1 V2.0 V2.0.1 Windows NT Windows NT AIX AIX SUN Solaris SUN Solaris HP-UX MQSeries Integrator (MQSI) NEON社製品 2.0.2 V2.1 V2.1 V5.0 V5.0 2002.1 2003.6 V6.0 V6.0 V6.1 V6.1 2005.10 2007.11 WebSphere MQ Integrator (WMQI) WebSphere Business Integration Message Broker (WBIMB) WebSphere Message Broker (WMB) IBMが製品開発 + NEON 機能 (Rules and formatter) V1.0 V2.0 V2.1 ルールエンジン ノードを組み合わせた TDSメッセージ フロー開発 ESQLの拡張 V2.0.1 デバッガーの提供 各種ノードの提供 (2006/9サービス終了) ESQLのサポート DBアクセス Pub/Sub、XMLメッセージ V2.0.2 コントロールセンターの日本語化 V5 ツールキット (Eclipseベース) デプロイの変更 Webサービスサポート 高速Pub/Sub (2008/9サービス終了) V6 Javaノード Webサービス強化 パーサー拡張 タイマーノード ESQL機能拡張 V7 V6.1 Webサービス強化 シンプルな構成 パターンの提供 ファイル機能 影響分析 コレクター・ノード MBXによる管理の統合 WSRRとの連携 マルチインスタンスQmgr SOAPノード への対応ブローカー EIS接続 (SAP、Siebelなど)SCA ノード MQ Pub-sub の統合 7 WMB V7.0.0.1 ハイライト V7.0.0.1 ハイライト FixCentralより入手(2010/07よりダウンロード可能) http://www-01.ibm.com/support/docview.wss?uid=swg24027267 簡略化と生産性の向上 ◆ 提供パターンの追加 ◆ ユーザー定義パターンの作成が可能に ◆ サブフローからユーザー定義ノードを作成可能に SOAのためのユニバーサルな接続性の提供 ◆ ◆ ◆ ◆ 2009.11 eGA Linux for Intel Linux for z/OS 追加 HP-UX追加 V7 V7 SOAPノードでのSOAP/JMSサポートの追加 データベースでのイベントをトリガーにフローを起動するDatabaseInputノードの提供 WMQFTEと相互接続するためのFTEノードの提供 CICSノードやCORBAノードの提供 ダイナミックなオペレーション管理 ◆ サポートするセキュリティ・トークンの追加 ◆ フローの途中でセキュリティ処理を行うためのPEPノードの提供 ◆ リソース統計が取得可能なリソース・タイプが追加 (CORBA、FTE、セキュリティ、SOAPの情報など) サポート環境の拡充 ◆ Windows 7と Server 2008 へのサポート・プラットフォームの拡張 ◆ solidDB、SQL Server z/Linux、DB2 9.7のサポート 8 パターン 9 パターン V7より連携パターンに応じたフローの雛形を提供 事例の多い連携パターンでのベスト・プラクティスをフローとして実装し、提供 メッセージフローの設計、実装の指針となる 開発工数の削減、開発時における問題の回避など インスタンス化して、メッセージフローや関連リソースを生成 「パターン・エクスプローラー」ビューで提供されるパターンを確認可能 パターン・パラメーターを編集して、提供パターンをカスタマイズ メッセージ連携、Webサービス連携、ファイル連携など8種類のパターンを提供 V7001でMQからのWebサービス呼び出し(一方向)のパターンを追加 「パターン・エクスプローラー」ビュー 提供されるパターン一覧 NEWV7001 10 パターン <参考> 提供パターン アプリケーション統合パターン SAP MQ一方向(IDoc) このパターンを使用すると、1 つの RFC プログラム ID を使って様々な種類の IDoc を処理できます。 新しいタイプの IDoc を追加する場合であっても既存のメッセージ・セットとアダプターを再デプロイす る必要はありません。 静的エンドポイント Web サービス要求元と Web サービス・プロバイダーを分離するために、ターゲットのサービス・プロバイ ダーに直接バインドされた仮想サービスを通してルーティングするには、このパターンを使用します。 サービス仮想化パターン サービス・プロキシー サービス使用可能化パターン サービス・ファサード MQ要求/応答 MQ のみを介してアクセス可能な機能に Web サービス・ファサードを提供するには、このパターンを使 用します。このパターンは、同期 HTTP プロトコル間のブリッジを作成します。通常このブリッジは Web サービスと併用したり、MQ インターフェースを持つ既存のアプリケーションと併用したりします。 肯定応答を伴う MQ一方向 クライアントに対して Web サービス・インターフェースを表示し、 MQ 使用可能アプリケーションを使っ てサービス要求を実行するには、このパターンを使用します。 NEW V7001 MQからのサービス・ アクセス (一方向) このパターンを使用して、クライアントから受け付けたWebSphere MQ XML メッセージを利用して Web サービスの呼び出し処理を実行します。このパターンを使用することにより、クライアント・アプリ ケーション側の信頼の置ける WebSphere MQ メッセージング・プロトコルと、サービスに対する同期 要求との間にブリッジを設けて更新を処理し、要求の成功または失敗 (タイムアウトを含む) が確 実に報告されるという保証が得られます。このパターンは、クライアント・アプリケーションとサービス・プ ロバイダーとの間での、タイミング、プロトコル、およびトランスポートの疎結合を提供します。これは、 サービスと既存のシステムとの間のインターフェースを設けるのに適しています。 11 パターン <参考> ファイル処理パターン レコード配布 MQ一方向 このパターンを使用して 2 つのスタイルの統合 (ファイル・ベースとトランザクション・ベース) を橋渡しし ます。 メッセージに基づく組み込みパターン メッセージ・ スプリッター MQ一方向(XML) 大きな XML メッセージをより小さなエレメントに分割し、トランザクション・フローと持続 MQ メッセージ を使用して、1 つ以上のターゲットで処理できるようにするには、このパターンを使用します。 メッセージ 相関関係子 持続性のある MQ要求/応答 多数のクライアントからの要求を単一のキューで受け入れ、トランザクション・フローと持続 MQ メッ セージを使用して、正しいクライアントに応答を返すには、このパターンを使用します。 持続性のない MQ要求/応答 多数のクライアントからの要求を単一のキューで受け入れ、非トランザクション・フローと非持続 MQ メッセージを使用して、正しいクライアントに応答を返すには、このパターンを使用します。 12 ユーザー定義のパターン V7.0.0.1よりパターンをユーザー定義することが可能 パターン・エクスプローラーに自作のパターンを追加可能 開発したフローの再利用を容易に パターンの作成 既存のメッセージ・フローを元にパターンを生成 パターン・オーサリング・エディターを使用してパターンを構成 生成したパターンは「パターン・エクスプローラー」ビューに表示される 13 ユーザー定義のパターン パターンの作成手順 1. パターン作成の準備 パターンの元になるメッセージ・フローを用意 ターゲット・プロパティを決定 2. パターン・オーサリング・プロジェクトの作成 パターンを格納するプロジェクトを準備 3. パターン・オーサリング・エディタでパターンを構成 ユーザー定義のパターンで使用するソース・ファイルの選択 ユーザー・インターフェースの定義 作成したパターンを格納する「カテゴリー」を選択 パターン・プラグインのビルド 4. 作成したパターンの確認 5. パターン・プラグインのパッケージ化と配布 14 ユーザー定義のパターン 1. パターン作成の準備 パターンの元となるフローを準備 ① ② ③ ◆今回用意したフロー ①MQメッセージを受信 ②取得したメッセージをロギング ③メッセージ内の共通ヘッダの値をキーに、ルーティングテーブルを 参照し、宛先を決定 ④宛先キューへ送信 ④ ターゲット・プロパティーを決定 ノード・プロパティの中からインスタンス化時にユーザーが指定できるプロパティを決定 メッセージ・フロー・エディターでノードを右クリック→「パターン」→「ターゲット・プロパティーの選択」→「ターゲッ ト・プロパティーの選択」 ① ② ターゲット・プロパティを選択 ◆選択したターゲット・プロパティ ①MQInputノードの入力キュー名 ②トレースノードのログ出力先ファイル名 「パターン」→「ターゲット・プロパティーを選択」 を押す ターゲット・プロパティを選択したノードに マークがつく 15 ユーザー定義のパターン 2. パターン・オーサリング・プロジェクトの作成 「ファイル」→「新規作成」→「その他」で「パターン・オーサリング・プロジェクト」を選択 パターンの元フローを含むプロジェクトにプロジェクト参照を設定 パターンを格納するプロジェクトを作成 パターンの元となるフローを含むプロジェクトに プロジェクト参照を設定 16 ユーザー定義のパターン 「パターン・オーサリング・エディター」が起動 「パターン・オーサリング・エディター」が起動 ここでパターンを構成 17 ユーザー定義のパターン 3. パターン・オーサリング・エディタでパターンを構成 ユーザー定義のパターンで使用するソース・ファイルの選択 「ソース・ファイル」タブで、パターンの元とするフロー定義を選択 プロジェクト参照したプロジェクトの定義が表示される。 パターンの元とするフローをチェック 「ソース・ファイル」タブでの作業 18 ユーザー定義のパターン ユーザー・インターフェースの定義 パターン・ユーザーがカスタマイズ可能なパターン・パラメーターの表示方法、編集方法を設定 「パターン・パラメーター」タブの「グループとパラメーター」リストに、選択したターゲット・プロパティーが表示され る ダブルクリックして、パターン・パラメーターを編集 選択したターゲット・プロパティーが表示 「パターン・パラメーター」タブでの作業 パターン・パラメーターの編集が可能 編集可能項目: ・表示名 ・パラメーターオプション ・ウォーターマーク その他、「エディター」タブでは、値の 入力方法や、デフォルト値の設定が可能 19 ユーザー定義のパターン 作成したパターンを格納する「カテゴリー」を選択 新規カテゴリー「ISEPattern」を追加し、そのカテゴリーに 今回作成するパターンを含める 「カテゴリー」タブでの作業 パターン・プラグインのビルド パターン・プラグインが作成されると、「ワークベンチの起動」 がアクティブになるので、クリック 「パターンの作成」タブでの作業 20 ユーザー定義のパターン 4. 作成したパターンの確認 新しく起動したツールキットの「パターン・エクスプローラー」 ビューに作成したパターンが表示される 作成したパターンを選択 ここで指定した名前は作業セットやプロジェクト名に使用される ボタンを押してインスタンスを生成 パターン・パラメーター値をカスタマイズ 21 ユーザー定義のパターン ノードの編集や追加が可能 生成されたリソース 22 ユーザー定義のパターン 5. パターン・プラグインのパッケージ化と配布 「ファイル」→「エクスポート」で「エクスポート」ウィンドウを開き、「一般」の「アーカイブ・ファイ ル」を選択 エクスポートするプラグインを選択し、生成したアーカイブ・ファイルを配布 パターン・プラグインのインストール 提供された.zipアーカイブ・ファイルを以下のフォルダーに解凍 Windowsの場合 C:¥Program Files¥IBM¥WMBT700 Linuxno場合 /opt/IBM/WMBT700 Eclipseリンク・ファイルを使用して任意のディレクトリーにプラグインを保管することも可能 詳細はInfoCenterを参照 23 blank 24 サブフローのパッケージ化 25 サブフローをユーザー定義ノードとして定義 サブフローをパッケージ化してユーザー定義ノードを作成可能 サブフローをブラック・ボックスとして配布可能 実装の詳細を利用者から隠蔽 サブフローの再利用者による変更を防止 生成したユーザー定義ノードは、メッセージ・フロー・エディタのパレットに表示される サブフローからのユーザー定義ノードの生成方法は以下の2通り ユーザー定義ノードを作成し、サブフローとして実装 既存のサブフローからユーザー定義ノードを生成 26 サブフローをユーザー定義ノードとして定義 ユーザー定義ノードを先に作成し、サブフローとして新規実装する方法 1. 「新規ユーザー定義ノード・プロジェクト」ウィザードを開き、新規ユーザー定義ノード・プロジェ クトを作成する 「ファイル」→「新規作成」→「新規ユーザー定義ノード・プロジェクト」 【新規ユーザー定義ノード・プロジェクト・ウィザード】 要件に応じてプロパティ値を設定 「ユーザー定義ノード・プロジェクト」を 選択 27 サブフローをユーザー定義ノードとして定義 2. プロジェクト内で新規ユーザー定義ノードを作成 ノードの実装は「サブフローとして実装」を選択 「ブローカー開発」ビューで右クリック→ 「新規」→「その他」を選択 【新規ユーザー定義ノード・ウィザード】 デフォルトまたはmqsi以外のスキーマ を作成することを推奨 「サブフローとして実装」を選択 「ユーザー定義ノード」を選択 28 サブフローをユーザー定義ノードとして定義 3. 開いたメッセージ・フロー・エディターでユーザー定義ノードに含めるフロー処理を実装 起動したメッセージ・フロー・エディター で、サブフローを実装 (ブローカー開発ビュー) 29 サブフローをユーザー定義ノードとして定義 既存のサブフローからユーザー定義ノードを作成する方法 1. 既存のプロジェクトを「ユーザー定義ノード・プロジェクトへの変換」 既存プロジェクトを右クリック→「ユーザー定義ノード・プロジェクトへの変換」を選択 要件に応じてプロパティ値を設定 30 サブフローをユーザー定義ノードとして定義 2. 既存のサブフローを「ユーザー定義ノードへの変換」 既存のサブフローを右クリック→「ユーザー定義ノードへの変換」を選択 デフォルトまたはmqsi以外のスキーマ を作成することを推奨 「ユーザー定義ノード」の下に、 サブフローが移動 31 サブフローをユーザー定義ノードとして定義 パレット内でのユーザー定義ノードの位置の選択 パレット・エディターで作成したユーザー定義ノードを登録 「ブローカー開発」ビューで、ユーザー定義ノード・プロジェクト」の下の「ユーザー定義ノード」を選択→「パレッ トの編集および配置」を選択 「ブローカー開発」ビューで、ユーザー定義ノード・プロジェクト内のpalette.xmiを右クリック→「アプリケーション から開く」を選択し、「パレット・エディター」を選択 「表示名」、「パレット上のツールチップ」、「ノード・アイコン」フィールドの詳細を変更可能 【パレット・エディターの起動】 【パレット・エディターの編集画面】 32 サブフローをユーザー定義ノードとして定義 テストの実施 ユーザー定義ノード・プロジェクトを右クリック→「シミュレーションの開始」を選択 プロジェクト内のユーザー定義ノードが「メッセージ・フロー・エディタ」のパレットに追加される ユーザー定義ノードを使用したメッセージ・フローを実装&デプロイし、稼動確認することも可能 シミュレーションの停止は、ユーザー定義ノード・プロジェクトを右クリック→「シミュレーションの停止」 ユーザー定義ノード・プロジェクトを右 クリック→「シミュレーションの開始」 パレット上にユーザー定義ノードが追 加される 33 サブフローをユーザー定義ノードとして定義 ユーザー定義ノード・プロジェクトのパッケージ化および配布 プラグインJARファイルとしてパッケージ化 パッケージ化するプロジェクトを右クリック→「パッケージ」を選択し、「ユーザー定義ノードのパッケージと配布」 ウィザードを開始 更新サイトを使用した配布用のパッケージ化も可 【プラグインJARファイルとしてパッケージ化】 パッケージに含めるプラグインを選択し、 jarファイルの配置ディレクトリを指定 「プラグインjar」を選択 34 指定したディレクトリにjarファ イルが生成される サブフローをユーザー定義ノードとして定義 ユーザー定義ノードのインポート JARファイルをツールキットのインストール・ディレクトリのpluginsフォルダーにコピーして、ツールキット を再起動 サブフローでプロパティのプロモートをしておけば、プロパティ値のカスタマイズも可能 ユーザー定義ノード ユーザー定義ノードのプロパティとして、 プロモートしたプロパティが表示される ノードを選択し、「プロパティーのプロモート」 プロモートしたいプロパティを選択 35 blank 36 DatabaseInputノード 37 DatabaseInputノードの追加 データベースの更新イベントをトリガーにフローの開始が可能 データベースの更新情報を他システムに連携することが可能 イベント・ストアを利用してデータベースの更新イベントを検知 テーブルの更新情報を格納するイベント・ストアを事前に構成 イベント・ストアは任意のテーブル テーブルの更新などのイベントをトリガーにイベント・ストアへ更新情報を登録するようにデータベースを構成 ブローカーは定期的にイベント・ストアをポーリングし、更新を検知 更新を検知するとブローカーは更新情報を取得 ブローカーは更新情報を取得後、イベント・ストアを処理済に更新することで二重処理を回避 – レコードの削除や、レコードに処理済フラグをたてるなど データベースの設定 WMBの設定 イベントストア ⑥処理済のイベントを削除 ③更新情報の有無 をポーリング WMB ②イベント・ストアを 更新 ⑤更新データを処理 アプリDB DBアプリ ①更新 ④更新されていたら データを取得 38 DatabaseInputノードの追加 DatabaseInputノードの処理の流れ 更新イベント読込み 処理の開始 Evenet情報の確認 シングル・ スレッドで実行 ・・・ ①ポーリング間隔ごとに、イベント・ストアに 更新情報がないか確認 ・・・ ②更新情報があれば処理を開始 複数更新があれば、全件読み込む No 新規イベントの有無 commit Yes トランザクションが分かれる 更新データ処理 追加インスタンス を指定することで マルチ・スレッド で実行可能 メッセージの生成 ・・・ ③-1 1件ごとに処理を開始 メッセージの プロパゲート ・・・ ③-2 後続処理にメッセージを渡す イベント終了処理 ・・・ ③-3 イベント・ストアを更新 commit No 未処理イベントの有無 ・・・ Yes ④処理が完了すると、「Event情報の確認」を 呼び出し、他に更新情報の有無を確認 有→継続して処理を実施 無→次のポーリング間隔まで待機 39 DatabaseInputノードの追加 DatabaseInputノードの処理の流れ ① ポーリング間隔ごとに、イベント・ストアに更新情報がないか確認 (ReadEvent) ② 更新情報があれば、処理を開始 複数件ある場合は全件読み込む ③ 1件づつ処理を実施 (BuildMessage) 後続処理の完了後、イベント・ストアのレコードを処理済のステータスに更新 (EndEvent) ④ ②で読み込んだ全件の処理が完了すると、ブローカーは再度ReadEventを呼び出し、他に 更新情報がないかを確認 あれば、継続して処理を実施。なければ、次のポーリング間隔まで待機 DatabaseInputノードの考慮点 データベースとはODBC接続 DatabaseInputノードの処理内でトランザクションは分割される データベースのロックを最小限に抑えるため Read Events処理はシングル・スレッドで実行 BuildMeesage処理はマルチ・スレッドで実行可能 – ReadEvents処理で読み込んだ複数のイベントのBuildMessage処理を、同時並列処理することが可能 ReadEvent、BuildMessage、EndEventの処理はESQLで実装 要件にあわせてサンプルコードを編集 40 DatabaseInputノードの追加 DatabaseInputノード Basicタブでデータベース名を指定 必要に応じてその他のプロパティを設定 -Failure -Out -Catch タブ 説明 ノード・プロパティ 説明 ノード名、ノードの説明 基本 データソース名、呼び出すESQLモジュール名を設定 ポーリング ポーリング間隔を設定 再試行 再試行のメカニズムを指定 トランザクション トランザクション・モードを設定 インスタンス 追加インスタンスの指定(入力ノード単位での指定が可能) モニター ノードで生成するモニター・イベント 41 DatabaseInputノードの追加 【DatabaseInputノード ESQL実装例】 CREATE DATABASEEVENT MODULE TestDBInput_DB01 CREATE PROCEDURE ReadEvents( IN NewEvents REFERENCE ) BEGIN DECLARE EXIT HANDLER FOR SQLSTATE LIKE 'D%' BEGIN RESIGNAL; END; SET NewEvents.Event[] = SELECT TESTTBL_UPD_EVT.* AS Usr, TESTTBL_UPD_EVT.COL1 AS Key FROM Database.WMBADMIN.TESTTBL_UPD_EVT; END; CREATE PROCEDURE BuildMessage(IN DispatchedEvent REFERENCE) BEGIN DECLARE EXIT HANDLER FOR SQLSTATE LIKE 'D%' BEGIN RESIGNAL; END; SET Root.DataObject.TESTTBL[] = SELECT TESTTBL.* FROM Database.WMBADMIN.TESTTBL WHERE TESTTBL.COL1 = DispatchedEvent.Usr.COL1; RETURN; END; CREATE PROCEDURE EndEvent(IN DispatchedEvent REFERENCE) BEGIN DECLARE EXIT HANDLER FOR SQLSTATE LIKE 'D%' BEGIN RESIGNAL; END; DELETE FROM Database.WMBADMIN.TESTTBL_UPD_EVT WHERE TESTTBL_UPD_EVT.COL1 = DispatchedEvent.Usr.COL1; RETURN; END; CREATE PROCEDURE HandleDatabaseError( IN FunctionName CHARACTER ) BEGIN DECLARE message CHARACTER 'Exception occured calling Database Input Node function: ' || FunctionName; THROW USER EXCEPTION VALUES( SQLCODE, SQLSTATE, SQLNATIVEERROR, SQLERRORTEXT, message ); END; END MODULE; 42 ReadEvents BuildMessage EndEvent DatabaseInputノードの追加 フロー実装例 DB2 ポーリング TESTTBL_UPD_EVT INSERT INTO TESTTBL TESTTBL 更新データの取得 ReadEvent、BuildMessage、 EndEventの処理内容をESQL で実装(前ページ参照) DB2のトリガー機能でINSERTを トリガーにTESTTBL_UPDATE_EVT テーブルを更新するように設定 43 blank 44 宛先に応じたメッセージ・ フォーマットの変換 SOAP/JMSサポート 45 SOAP/JMSサポート SOAPノードでSOAP over JMS 1.0を新たにサポート SOAPInput、SOAPReply、SOAPRequestノードでSOAP/JMSメッセージを処理可能 V7.0.0.0まではSOAP/HTTPのみをサポート Point-to-Pointトポロジーをサポート Request/Response型、1-way型のどちらも可能 JMSメッセージのタイプは、テキスト・メッセージおよびバイト・メッセージ Pub/Subトポロジーは未サポート WS-AddressingおよびWS-Securityにも対応 JMSバインディングが定義されたWSDLを基にメッセージ定義の自動生成が可能 メッセージ定義からWSDLを生成する際にJMSバインディングの指定も可能 WSDLからドラッグ&ドロップでSOAPノードのJMS設定を自動的に構成可能 Webサービス プロバイダー SOAP/JMS WMBメッセージフロー SOAP/JMS Webサービス リクエスター SOAP/JMS 46 SOAP/JMSサポート SOAPノードのJMSバインディング時の基本動作 ネーミング・サービスからJNDIを利用してJMSリソース(Connection Factory、Destination)を取得 –ノード・プロパティに、JMSプロバイダー名、初期コンテキスト・ファクトリ、接続ファクトリ名等を指定 JMSリソースを利用してJMSプロバイダーにアクセスし、SOAP/JMSメッセージを送受信 Webサービス プロバイダー JMSプロバイダー JMS プロバイダー WMBメッセージフロー Webサービス リクエスター Lookup Lookup JNDI ConFact Lookup ConFact Dest Dest ネーミング・サービス(ファイルシステム、LDAPなど) 47 SOAP/JMSサポート SOAPInputノードのJMS関連プロパティ 「基本」タブ 「インポートされたバインディング」にJMSバインディングを指定可能 ツールキット内のデプロイ可能なWSDLを指定 WSDLに定義されているJMSバインディングを指定可能 JMSのバインディングとHTTPのバインディングの両方が定義されている場合は、プルダウンで選択可能 48 SOAP/JMSサポート SOAPInputノードのJMS関連プロパティ 「JMSトランスポート」タブ JMSリソースおよびネーミング・サービスの各プロパティを設定 –「基本」タブでJMSバインディングを指定した場合にのみ設定可能になる SOAP/JMSメッセージを受信するキュー(JMS Destination)を指定 (ネーミング・サービスに定義したJNDI名) JMSプロバイダーを指定 指定したJMSプロバイダーに応じて 自動的に対応する 初期コンテキスト・ファクトリがセットされる ポイズン・メッセージに対する バックアウト設定も可能 JMS Connection Factoryを指定 (JNDI名) 49 SOAP/JMSサポート SOAPInputノードのJMS関連プロパティ 「メッセージ選択」タブ メッセージ・セレクターの各条件を設定 –「基本」タブでJMSバインディングを指定した場合にのみ設定可能になる アプリケーションが任意に設定したメッセージ・プロパティに基づく条件式を設定 例: OrderValue > 200 50 ネーミング・サービスのbindingsファイルの ロケーションを指定 SOAP/JMSサポート SOAPRequestノードのJMS関連プロパティ 「基本」タブ 「インポートされたバインディング」にJMSバインディングを指定可能 ツールキット内のデプロイ可能なWSDLを指定 WSDLに定義されているJMSバインディングを指定可能 JMSのバインディングとHTTPのバインディングの両方が定義されている場合は、プルダウンで選択可能 51 SOAP/JMSサポート SOAPRequestノードのJMS関連プロパティ 「JMSトランスポート」タブ JMSリソースおよびネーミング・サービスの各プロパティを設定 –「基本」タブでJMSバインディングを指定した場合にのみ設定可能になる リクエスト先のキュー(JMS Destination)を指定 (ネーミング・サービスに定義したJNDI名) リクエストに対する応答先のキュー(JMS Destination)を指定 (JNDI名) JMSプロバイダーを指定 指定したJMSプロバイダーに応じて 自動的に対応する 初期コンテキスト・ファクトリがセットされる JMS Connection Factoryを指定 (JNDI名) 52 ネーミング・サービスのbindingsファイルの ロケーションを指定 SOAP/JMSサポート SOAPRequestノードのJMS関連プロパティ 「メッセージ・デリバリー」タブ JMSメッセージの各プロパティを設定 –「基本」タブでJMSバインディングを指定した場合にのみ設定可能になる メッセージ・タイプには「バイト」もしくは「テキスト」のみ指定可能 53 SOAP/JMSサポート SOAPRequestノードで使用されるLocalEnvironmentのエレメント LocalEnvironment.Destination.SOAP.Request 下にある以下のエレメントを設定して各 プロパティの値を変更できる エレメント 説明 TransportType 「トランスポート」プロパティを変更(’http’ もしくは ‘jms’) Operation 「操作」プロパティを変更 54 SOAP/JMSサポート SOAPRequest(およびSOAPReply)で使用されるLocalEnvironmentのエレメント LocalEnvironment.Destination.SOAP.Request/Reply.Transport.JMS下にある以下の エレメントを設定して各プロパティの値を変更できる エレメント 説明 Destination 「宛先」プロパティを変更 ProviderName 「JMSプロバイダー名」プロパティを変更 InitialContextFactory 「初期コンテキスト・ファクトリー」プロパティーを変更 BindingsLocation 「JNDI URL バインディング・ロケーション」プロパティーを変更 ConnectionFactoryName 「接続ファクトリー名」プロパティーを変更 ContextParameters 「JNDI コンテキスト・パラメーター」プロパティーを変更 UriFormat 「UriFormat」プロパティーを変更(‘w3c’ もしくは ‘ibm’) TargetService 「TargetService」プロパティーを変更 DeliveryMode 「DeliveryMode 」プロパティーを変更 (’PERSISTENT’ もしくは ‘NON_PERSISTENT’) MessagePriority 「MessagePriority」プロパティーを変更 Expiration 「Expiration」プロパティーを変更 MessageType 「MessageType」プロパティーを変更(’text’ もしくは ‘bytes’) UserProperties 「ユーザー・コンテキスト・パラメーター」プロパティーを変更 ReplyToDestination 「ReplyToDestination(宛先に応答)」プロパティーを変更 Timeout 「Timeout」プロパティーを変更 55 SOAP/JMSサポート SOAPノードでSOAP/JMSメッセージ処理時のメッセージ・ツリー構造 Root Properties Message_MetaData JMSTransport Body Transport_Folders SOAP Header_Values 「Application_Properties」にSOAP/JMS関連のプロパティがセットされる 他は、JMSノードによるJMSメッセージ処理時と同等 Application_Properties JMS_Provider_Properties Standard_Properties PayloadType JMSDestination SOAPJMS_bindingVersion JMS_IBM_PutDate JMSXUserID MessagePersistence JMSDeliveryMode SOAPJMS_soapAction JMS_IBM_PutTime JMSXAppID JMSExpiration SOAPJMS_requestURI JMS_IBM_PutApplType JMSXDeliveryCount JMSPriority SOAPJMS_targetService JMS_IBM_Encoding JMSTimestamp SOAPJMS_contentType JMS_IBM_Format : JMSMessageID : JMS_IBM_Character_Set JMSCorrelationID JMS_IBM_MsgType JMSReplyTo : JMSType JMSRedelivered 56 : SOAP/JMSサポート WSDLにおけるJMSバインディングの定義 bindingエレメントのtransport属性に以下を指定 http://schemas.xmlsoap.org/soap/jms addressエレメントにJMSバインディングのURIを指定 W3C SOAP JMS 仕様のURI形式をサポート jms:jndi:[destination]?<property>=<value>&<property>=<value>&… ※IBM独自形式(WAS V6.1等で使用していた形式)もサポートしているが非推奨 指定可能なプロパティ プロパティ 説明 destination 宛先キューのJNDI名 jndiConnectionFactoryName 接続ファクトリのJNDI名 targetService 要求のディスパッチ先であるポート・コンポーネントの名前 jndiInitialContextFactory 初期コンテキスト・ファクトリー名 jndiURL JNDIプロバイダーのURL replyToName 応答メッセージの受信に使用される、キューの JNDI 名 deliveryMode 要求メッセージを永続性(PERSISTENT/NON_PERSISTENT) timeToLive 要求メッセージの存続時間(ミリ秒単位) priority 要求メッセージの優先順位(0~9、デフォルト4) 57 SOAP/JMSサポート WSDLのJMSバインディング定義例 (省略) <binding name="SOAP_TEST_JMS_Binding" type="tns:SOAP_TEST"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/jms"/> <operation name="SOAP_TEST"> <soap:operation soapAction="SOAP_TEST"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="SOAP_TEST"> <port binding="tns:SOAP_TEST_JMS_Binding" name="SOAP_TEST_JMS_Port"> <soap:address location="jms:jndi:JMS_IN? replyToName=JMS_OUT&jndiConnectionFactoryName=CF1&jndiInitialContextFactory=com.sun.jndi.fscontext.RefFSContext Factory&jndiURL=file:/C:/_shoheim/JNDI_DIR/&deliveryMode=PERSISTENT&timeToLive=300000&priority=1& targetService=SOAP_TEST_JMS_Service"/> </port> </service> (省略) 58 SOAP/JMSサポート JMSバインディングが定義されたWSDLを基にフローの一部を自動生成可能 WSDLをフロー・エディターにドラッグ&ドロップし、ウィザードを起動 フローをWebサービス・プロバイダーとする場合 SOAPInputとSOAPReplyノードを含むフローの一部が生成される (「メッセージ・フローをWebサービスとして公開」を選択した場合の生成フロー) ドラッグ&ドロップ 起動されたウィザード 「メッセージ・フローをWebサービスとして公開」を選択 WSDLに定義された各パラメータを選択 ここでJMSバインディングを指定できる 59 SOAP/JMSサポート SOAPノード・プロパティも自動的にセットされる SOAPInputノードの「基本」タグ ウィザードで指定したポートタイプやバインディングがセットされる SOAPInputノードの「JMSトランスポート」タグ WSDLの「address」エレメントに指定した各プロパティが対応するノード・プロパティにセットされる 60 SOAP/JMSサポート フローをWebサービス・プロバイダーとする場合 SOAPRequestノードを含むサブフローが生成される ウィザード ドラッグ&ドロップ サブフロー 「Webサービス」をメッセージフローから起動」を選択 ウィザードで指定したポートタイプやバインディングがセットされる WSDLの「address」エレメントに指定した各プロパティが 対応するノード・プロパティにセットされる SOAPRequestの「基本」タブ SOAPRequestの「JMSトランスポート」タブ SOAPRequestの「メッセージ・デリバリー」タブ 61 SOAP/JMSサポート 既存メッセージセットからJMSバインディングを含むWSDLの生成が可能 62 SOAP/JMSサポート 既存メッセージセットからJMSバインディングを含むWSDLの生成が可能 SOAP/JMSを選択 JMSバインディングの 各プロパティを設定 WSDL生成 63 blank 64 Webサービスおよび HTTP関連機能拡張 65 WSDL照会 Webサービス・クライアントからのWSDL照会に対応 SOAPInputノードは、クライアントからのWSDL照会要求に対してWSDL定義を返信可能 HTTPトランスポート使用時のみ可能 「HTTPトランスポート」タブの「?wsdl」のサポートを有効にする」プロパティをチェック クライアントは、「?wsdl」を付けてHTTP GET要求をエンドポイントに送信 エンドポイントURLが、http://localhost:7800/test1 の場合のWSDL照会要求 GET http://localhost:7800/test1?wsdl これによってクライアントは最上位のWSDLサービス定義を入手 WSDL内でXMLスキーマ等をインポート/インクルードしている場合は、続けて照会要求を送信 <xsd:import ... schemaLocation=“http://localhost:7800/test1?xsd=xsd0”/> がWSDLに含まれている場合 GET http://localhost:7800/test1?xsd=xsd0 エンドポイント Webサービス クライアント WSDL照会要求(HTTP GET) WSDLサービス定義 WSDL 66 実行グループ・リスナー HTTPノードで実行グループ内のHTTPリスナー(実行グループ・リスナー)を利用可能 V7.0.0.0までHTTPノードはブローカー・レベルのHTTPリスナー(ブローカー・リスナー)を利用 実行グループ・リスナーはSOAPノードが利用 実行グループ・リスナーを利用することで、スループット、レスポンスの向上が期待できる フローを複数の実行グループにデプロイして、複数のリスナーでリクエストを処理できる 実行グループ・リスナーは、HTTPノードと直接通信するため処理速度も向上 –ブローカー・リスナーは、キュー経由でHTTPノードと通信 注意点 HTTPInputノードとHTTPReplyノードは同じ実行グループにデプロイし、 同じリスナーを利用するようにする必要がある(ノードを配置するフローは異なっていてもよい) ブローカー 実行グループ HTTP クライアント 実行グループ リスナー 実行グループ HTTP クライアント ブローカー リスナー 67 実行グループ・リスナー 実行グループ・リスナーの利用設定 デフォルトではHTTPノードはブローカー・リスナーを利用 ブローカー内の全ての実行グループを一括で設定する場合、 以下のコマンドでブローカー・リスナーを使用不可にする mqsichangeproperties <BrokerName> -b httplistener -o HTTPListener -n startListener -v false ブローカーを再起動したタイミングで実行グループはブローカー・リスナーの使用停止を検知し、 自動的に実行グループ・リスナーを使用する –実行グループ個々の設定には依存しない ブローカー・リスナーが利用していたポート(デフォルト、HTTP:7080、HTTPS:7083)を実行グループ・リス ナーが利用するように設定することも可能(mqsichangeproperties コマンドで変更) 設定を戻す場合は、上記コマンドの「-v」オプションに「true」を指定して実行(ブローカー再起動で反映) 実行グループ単位に設定する場合、以下のコマンドで特定の実行グループに対し設定する mqsichangeproperties <BrokerName> -e <EGName> -o ExecutionGroup -n httpNodesUseEmbeddedListener -v true 設定は、ブローカー再起動で反映 設定を戻す場合は、上記コマンドの「-v」オプションに「false」を指定して実行(ブローカー再起動で反映) ※上記設定はHTTPノードにのみ有効で、SOAPノードは常に実行グループ・リスナーを利用 68 HTTPタイムアウト・ターミナル SOAPInputノード、HTTPInputノードでHTTPタイムアウト時の処理を実装可能 各ノードに「HTTP Timeout」ターミナルが新たに追加 SOAPInputノードでは、HTTPトランスポート使用時のみ有効 HTTPInputノードでは、組み込みの実行グループ・リスナー利用時のみ有効 HTTP Timeoutターミナル HTTP Timeoutターミナル タイムアウト時間は各ノードのプロパティに設定 :「HTTPトランスポート」タブの「最大クライアント待機時間(秒)」(デフォルト180秒) HTTPInputノード :「エラー処理」タブの「最大クライアント待機時間(秒)」(デフォルト180秒) SOAPInputノード 「HTTP Timeout」ターミナルの先では、応答ノード(SOAPReply/HTTPReply)を用いて クライアントに応答を返信するフローを実装 「HTTP Timeout」ターミナルを実装しない場合は、リスナーがタイムアウト・エラー応答を返信 –V7.0.0.0までの実装と同じ 「HTTP Timeout」ターミナルを実装した場合でも、タイムアウト発生後、特定時間(※1)内にエラー応答 をフローから返信できないと、リスナーが自動的にタイムアウト・エラー応答を返信 ※1 タイムアウト時間、または10秒のいづれか短い値 69 HTTPタイムアウト・ターミナル 「HTTP Timeout」ターミナルにメッセージが伝播されるときのメッセージ・ツリー構造 ヘッダー部分は、元の入力メッセージのものがそのままセット メッセージ本体は、タイムアウトを示すエラー・メッセージ SOAPの場合は、SOAP Faultメッセージ Root直下のメッセージ・ツリー(SOAPInputの場合) (0x01000000:Folder):SOAP = ( ['SOAP' : 0xbf77f8] (省略) (0x01000000:Folder):Header = (0x01000000:Folder):Body = ( ['xmlnsc' : 0x4245d08] (0x01000000:Folder)http://schemas.xmlsoap.org/soap/envelope/:Fault = ( (0x03000000:PCDataField):faultcode = 'SOAP-ENV:Server' (CHARACTER) (0x03000000:PCDataField):faultstring = 'A timeout occurred during processing' (CHARACTER) (0x03000000:PCDataField):faultactor = '/soap_test_01' (CHARACTER) (0x01000000:Folder ):detail = ( (0x03000000:PCDataField):text = 'Timeout. The Broker 70BK did not provide a response within the specified time interval (10 seconds). The message reached the main flow, but timed out during processing. It was then given to the the timeout flow for processing.' (CHARACTER) 元の入力メッセージの本体は、LocalEnvironmentにBLOB形式で保管 LocalEnvironment直下のメッセージ・ツリー(SOAPInputの場合) (0x01000000:Name):SOAP = ( (0x01000000:Name):Input = ( (0x01000000:Name):Timeout = ( (0x03000000:NameValue):OriginalClientWaitTime (0x03000000:NameValue):OriginalMessageMadeTheFlow (0x03000000:NameValue):OriginalRequestIdentifier (0x03000000:NameValue):OriginalInboundMessage 70 = = = = 10 (INTEGER) TRUE (BOOLEAN) X'534f4150000000000000000000000000300a000000000000' (BLOB) X‘3c736f6170656e763a4・・・・・・・f70653e' (BLOB) HTTPタイムアウト・ターミナル タイムアウト時のユーザ実装の応答メッセージとステータス・コード SOAPの場合、SOAPReplyノードでSOAP Faultメッセージを返信する必要がある ステータス・コードは、「500」(変更不可) HTTPの場合、HTTPReplyノードで任意の応答メッセージを返信できる ステータス・コードは、LocalEnvironment.Destination.HTTP.ReplyStatusCode 71 blank 72 で指定可能 メッセージフロー・セキュリティ 機能強化 73 メッセージフロー・セキュリティの機能強化 WS-Trust V1.3 準拠セキュリティー・トークン・サーバー(STS)を 外部セキュリティ・プロバイダーとして新たにサポート Tivoli Federated Identity Manager(TFIM)V6.2 など セキュリティ・トークン WS-Trust V1.3 準拠STSを使用することで、 新たに右記セキュリティ・トークンが利用可能 SAMLアサーション Kerberosチケット LTPAトークン RACFパスチケット SecurityPEPノードの提供 ユニバーサルWSSEトークン フロー内の任意のポイントでセキュリティー・マネージャーを起動可能 V7.0.0.0までのメッセージフロー・セキュリティ 外部セキュリティ・プロバイダーは以下の2つをサポート ◇Lightweight Directory Access Protocol (LDAP) →認証、許可をサポート ◇TFIM V6.1 →認証、許可、マッピングをサポート 利用可能なセキュリティ・トークンは以下の3つをサポート ◇ユーザー名 / ユーザー名とパスワード / X.509 証明書 セキュリティ・マネージャーの起動ポイントは、 セキュリティが使用可能な入力ノード(MQ/HTTP(S)/SOAP/SCA)に限定 74 メッセージフロー・セキュリティの概要 メッセージのIDに基づいたアクセス制御を可能にするセキュリティー・マネージャーを提供 トランスポート・タイプとメッセージ形式のどちらにも依存しないセキュリティー・メカニズムを提供 当機能は、V6.1から提供開始 セキュリティー・マネージャーを利用して以下の処理を実行可能 ①入力メッセージから ID(セキュリティ・トークン)の抽出 ②外部セキュリティ・プロバイダーによるセキュリティ操作の実施 の認証 の代替 ID へのマップ ID または代替 ID がメッセージ・フローへのアクセスを許可されているかの検査 ※要件(設定)に応じて、上記のいづれか、または複数の処理を実施 ID ID ③ID または代替 ID の出力メッセージへの伝搬 セキュリティ・プロファイルによるセキュリティ機能の制御 プロファイルに、実施するセキュリティ操作(認証/マップ/許可検査)、 使用するセキュリティ・プロバイダー、プロバイダーへの接続情報等を設定 セキュリティが有効な各入力/出力/要求ノードおよびSecurity PEPノード(V7.0.0.1から)に プロファイルを設定 75 メッセージフロー・セキュリティの概要 メッセージフロー・セキュリティの動作イメージ ③IDの伝搬 セキュリティ プロファイル セキュリティ プロファイル ID ID 入力メッセージ 入力ノード: MQ/HTTP(S)/ SOAP/SCA ID 出力ノード: MQ/HTTP(S)/ SOAP/SCA ①IDの抽出 ID セキュリティ・マネージャー セキュリティ キャッシュ ②IDの認証/マップ/許可検査 ブローカー ID ID マップ 認証 外部セキュリティ・プロバイダー(WS-Trust v1.3 STS / LDAP / TFIM V6.1) 76 ID 許可検査 出力メッセージ Security PEPノード Security PEPノードの提供 入力ノードから出力/要求ノードまでの任意の箇所でセキュリティ・マネージャーの呼出が可能 メッセージフロー・セキュリティをサポートしていない入力ノード(※)の場合でも利用可能 ※メッセージフロー・セキュリティをサポートしている入力ノードは、MQ/HTTP(S)/SOAP/SCA 関連付けられたセキュリティ・プロファイルに基づいてセキュリティ処理を実施 セキュリティ プロファイル 出力/要求 ノード 入力 ノード ID セキュリティ キャッシュ セキュリティ・マネージャー ブローカー 許可検査 マップ 認証 外部セキュリティ・プロバイダー(WS-Trust v1.3 STS / LDAP / TFIM V6.1) 77 Security PEPノード Security PEPノードのプロパティ 「基本」タブ セキュリティー・プロファイルがノードに関連付けられている場合に、 メッセージからのID/セキュリティ・トークンの抽出を制御するプロパティーを設定 使用するID/トークンのタイプを指定 メッセージツリー内のID/トークンの位置を指定 指定方法:XPath 式、ESQLフィールド参照、ストリング・リテラル メッセージツリー内のID/トークン発行者の位置を指定 指定方法:XPath 式、ESQLフィールド参照、ストリング・リテラル 78 ID Security PEPノード 「拡張」タブ WS-Trust v1.3 STS のデフォルト設定を変更する際に設定するプロパティー –ノードに関連付けられたセキュリティー・プロファイルが WS-Trust v1.3 STS を指定している場合にのみ設定可能 WS-Trust メッセージの /wst:RequestSecurityToken/wsp:AppliesTo エレメントのアドレス、サービス名、ポート・タイプを指定 79 blank 80 WMQFTEとの接続サポート 81 WMQFTEとの接続サポート WebSphere MQ File Transfer Edition(WMQFTE)との接続をサポート WMQFTE V7.0.2以降をサポート FTEとのインターフェースとして、FTEInputノード、FTEOutputノードを提供 FTEInputノード FTEOutputノード :リモートFTEエージェントからのファイル転送をトリガーにメッセージ・フローを開始 :メッセージ・フローからリモートFTEエージェントへのファイル転送を実施 -Failure -Out -End of Data -Failure -Out -End of Data -Catch ※FTEエージェントとは、 ファイルの送受信を行う WMQFTEのコンポーネント FTEエージェントの自動構成 FTEノードをデプロイした際に自動的にブローカー(実行グループ)内に構成される WMQFTEとWMBを組み合わせることで、フォーマット/データ変換を伴うファイル転送が可能 送信元FTEネットワークより、WMBへファイルを送信 メッセージ・フローでファイルのデータを変換し、送信先FTEシステムへファイルを転送 送信元 FTEシステム FTE エージェント 送信先 FTEシステム WMB WMBメッセージフロー FTE エージェント フォーマット/ データ変換 82 FTE エージェント FTE エージェント WMQFTEとは WebSphere MQ File Transfer Edition 管理されたファイル転送(Managed File Transfer)ソリューションを提供 2009年10月 V7.0.2発表 ファイル転送のバックボーンを提供 バックボーンに接続する任意の拠点同士で ファイル転送が可能 転送プロトコルとしてMQを使用 障害時の自動再転送が可能 監査、転送ログの監視 ファイル 転送要求 管理されたファイル転送バックボーン A B C D E ・・・ X File Y Z File ファイル転送の一元管理 監査ログ、転送ログを任意の場所で監視・収集可能 データベースへの監査ログ蓄積が可能 ファイル転送の自動化 スケジュール機能 トリガー機能 83 WMQFTE論理構成 WMQFTEを構成するコンポーネント WMQFTEの論理コンポーネント 役割 調整キュー・マネージャー ファイル転送のバックボーンを管理する 調整キュー・マネージャーはFTEネットワークに1つのみ構成 FTEエージェント ローカルマシンのファイルの送受信を行う、常駐のJavaアプリケーション FTEエージェント・キュー・マネージャー FTEエージェントがファイル転送を行うために接続(ローカル/クラアイント)するキュー・マネー ジャー コマンド・キュー・マネージャー ファイル転送用のFTEコマンド・メッセージを適切なエージェントに送信するキュー・マネージャー 運用管理コマンド FTEコンポーネントの構成、ファイル転送の開始/スケジュール/取り消しなどの運用を行うコマ ンド群 MQエクスプローラー ファイル転送管理用GUIをプラグインで提供 File FTE エージェント File FTE エージェント MQ エクスプローラー 調整キュー・マネージャー FTE エージェント・ エージェント・ FTE キュー・マネージャー キュー・マネージャー (MQ V6 / V7) コマンド・キュー コマンド・キュー ・マネージャー ・マネージャー (MQ V6 / V7) WebSphere MQベースのファイル転送バックボーン 84 FTE エージェント File FTE エージェント File コマンド WMQFTEファイル転送の仕組み WMQFTEは内部的にMQを使用し、ファイル転送を実施 FTEエージェントは、ファイルをMQメッセージに変換して転送 FTEエージェント同士が転送バイト数を確認しながら、ファイルとMQメッセージ変換を実行 MQのPub/Sub機能を利用して転送ログを一元管理 エージェントは転送状況、監査情報を調整キュー・マネージャーにパブリッシュする 【FTEを使用したファイル転送の流れ】 FTEシステム FTEシステム メッセージをファイルに変換 ファイルをメッセージに変換 FTEファイル転送 エージェント QMGR エージェント QMGR FTE エージェント FTE エージェント 転送用キュー ファイル ファイル ログ、転送状況の表示 FTE管理システム 転送ログを パブリッシュ MQエクスプ ローラー 調整QMGR ログ管理 アプリ 監査ログ 85 ブローカーが使用するWMQFTEコンポーネントの構成 ブローカーが使用するWMQFTEコンポーネントの構成 FTEエージェント(以下、ブローカー使用FTEエージェント) ブローカーは、実行グループ内にFTEエージェントを構成する エージェント・キュー・マネージャー ブローカー・キュー・マネージャーをエージェント・キュー・マネージャーとして使用(変更不可) –ブローカー使用FTEエージェントとエージェント・キュー・マネージャーは、ローカル接続のみ可能 調整キュー・マネージャー ローカル、もしくは、既存リモートの調整キュー・マネージャーを使用 –既存リモート調整キュー・マネージャーを使用する場合は、既存FTE環境が構成済みであることが前提 9ブローカー・キュー・マネージャー、調整キュー・マネージャー間のチャネルを作成 ※WMQFTE環境の設定に関しては、次のSIL:WebSphere MQ File Transfer Edition V7.0 導入ガイドを参照 9http://w3-06.ibm.com/jp/domino02/ise/ISEINFO.NSF/604755fe61c93ffc492563fd002551ec/ 9402f8bdc4e9eace4925756d0027c78f?OpenDocument 【ブローカーが使用するWMBコンポーネントの構成】 ブローカー・システム FTEシステム FTE エージェント ファイル 内部的にFTEエージェントを構成 ブローカーQMGR エージェント QMGR エージェント QMGR 実行グループ メッセージフロー FTE エージェント 転送用キュー ローカル接続のみ可能 調整QMGR 86 ブローカーが使用するWMQFTEコンポーネントの構成 ブローカーが使用するWMQFTEコンポーネントの構成方法 FTEエージェント(以下、ブローカー使用FTEエージェント) FTEノード を含むフローをデプロイした各実行グループに1つ起動される –デプロイ時には自動的に構成される –エージェント名: Broker.ExecutionGroup 9変更不可 実行グループ、フロー起動/停止と同時に、自動的に起動/停止される エージェント・キュー・マネージャー ブローカー使用FTEエージェント構成時、ブローカー・キュー・マネージャーにエージェント・キュー・マネ ジャーが自動的に構成される 調整キュー・マネージャー 実行グループに対し、調整キュー・マネージャーを設定 –設定されていない場合、ブローカー・キュー・マネージャーがデフォルトの調整キュー・マネージャーとして使用される –明示指定しない場合、ブローカー起動/停止の都度、ブローカー使用FTEエージェントが作成/削除されるため、 設定することを推奨 87 構成手順 以下は、ブローカーとWMQFTEの接続を構成する手順 1. ディスク・スペースの確認 ブローカーはリモート・エージェントへの送受信の際に次のディレクトリを使用 <WORKPATH>/common/FTE 転送ファイル・サイズ以上の十分なスペースを準備 2. MQ環境の設定 通常のWMQFTE構成同様、以下MQオブジェクトの作成が必要 エージェント・キュー・マネージャー、調整キュー・マネージャー間のチャネル エージェント・キュー・マネージャー間のチャネル ※既存FTE環境は構成済みであることが前提です。 ※WMQFTE環境の設定に関しては、次のSILを参考にしてください。 –SIL: WebSphere MQ File Transfer Edition V7.0 導入ガイド –http://w3-06.ibm.com/jp/domino02/ise/ISEINFO.NSF/604755fe61c93ffc492563fd002551ec/ 9402f8bdc4e9eace4925756d0027c78f?OpenDocument 3. FTEノードを含むメッセージ・フローをデプロイ ブローカーは、エージェント・キュー・マネージャー に必要なMQオブジェクトを自動的に構成 SYSTEM.FTEから始まるMQオブジェクトが自動的に作成される 88 構成手順 4. 調整キュー・マネージャーの設定 MB Explorer、または mqsichangeproperties コマンドで、調整キュー・マネージャーを指定 ブローカーMB7BROKER の実行グループ myExecutionGroup に対して、調整キュー・マネージャー を QM2に設定する場合 mqsichangeproperties MB MB7BROKER -e myExecutionGroup -o FTEAgent -n coordinationQMgr -v QM2 Explorerから変更する場合 –「ナビゲーター」 - 「ブローカー」 - 「実行グループ」を右クリックし、プロパティを選択 –WebSphere MQ File Transfer Editionから調整キュー・マネージャーを設定 変更後、実行グループ再起動が必要 5. ブローカー使用FTEエージェント名の確認 以下のいずれかで確認 syslog: メッセージ BIP3358 のログで出力される コマンドを使用 mqsireportproperties –ブローカー MB7BROKER の実行グループ FTESAMPLE の FTE エージェント名を表示する mqsireportproperties MB7BROKER -e FTESAMPLE -o FTEAgent -n agentName MB Explorerで確認 –実行グループを右クリックして、ポップアップ・メニューから適切なオプションを選択 6. ブローカー使用FTEエージェントの稼動確認 次のコマンドで確認可能 ftePingAgent –m <BROKER_QMGR> <AGENT_NAME> 89 ブローカー使用FTEエージェント使用時のFTE機能 転送ログ MBExplorerからファイル転送ログの確認が可能 ※MBExpolorerからファイル転送の管理を行うためには、WMQFTEパッケージよりWMQFTEリ モートツールを導入する必要があります。 ブローカー使用FTEエージェントが使用できない主なFTE機能 データベース・ロガー プロトコル・ブリッジ ユーザーEXIT Ant スクリプト 90 FTEInputノード FTE Inputノード リモートFTEエージェントからのファイル転送をトリガーに、フローを開始するノード FTEファイル転送ごとにフローが開始される ノードが処理するファイルのフィルタリグが可能 -Failure -Out -End of Data -Catch リモートFTEエージェントは、ブローカー指定FTEエージェントと宛先ディレクトリ/ファイル名を指定し、 ファイルを転送する デフォルトは、転送されたディレクトリ、ファイル名にかかわらず、すべてのファイルを処理 ブローカー使用FTEエージェントが受信するファイルの名前、宛先ディレクトリを設定することで、 指定したディレクトリ、ファイル名以外に転送されたファイルを処理不可とすることが可能 –「基本」タブで設定 ブローカー使用FTEエージェントが受信したファイルの処置を選択可能 FTEInputノードの「基本」タブで設定 –ファイル名を変更せずに残す –削除 –ファイル名にタイム・スタンプを付与して残す フローは、FTEファイル転送をトリガーに起動されるため、ファイルが残っていてもフローが2重に起動されるこ とはない メタデータ ファイル転送、または、ファイルに関する情報を取得可能 91 メッセージ・フローの開始までの流れ FTEエージェントからのファイル転送をトリガーとしたメッセージ・フローの開始までの流れ ①リモートFTEからブローカー使用FTEエージェントに対しファイルを転送を発行 リモートのFTEエージェントは、相手がブローカーであることを意識しない 宛先のディレクトリは任意の場所を指定可能 ②リモートFTEからブローカーシステムへファイルが転送される ファイル転送とメッセージ・フローは独立した処理 転送状況や転送ログは通常のFTEエージェント間ファイル転送同様、調整キュー・マネージャーに送信される ③ブローカー使用FTEエージェントは、ファイルの到着をFTEInputノードに通知 ④FTEInputノードは転送されたファイルを読み込み、処理を開始する ブローカー・システム 転送要求の発行 FTEシステム コマンド ① ブローカー ② FTE エージェント FTE エージェント File 転送元ファイル 92 ③ ④ メッセージフロー FTEInputノード FTEInputノードの「レコードおよびエレメント」タブで設定 FTEInputノードでのファイル処理 入力ファイルをレコード単位に処理することが可能 レコード単位に読み込んで、都度メッセージフローを実行 レコードの識別方法(レコードの検出) レコードの検出 種別 説明 ファイル全体 ファイル全体を1レコードとして扱う 固定長 バイト単位で指定 区切り文字 カスタム区切り文字(16進で指定)、またはブローカーのデフォルト(改行コード)を区切り文字として 扱う Infix:ファイルの最後が区切り文字で終わった場合、空のレコードを渡す Postfix:ファイルの最後が区切り文字の場合、そこで終了 構文解析されたレコード・シーケンス FileInputノードで指定したメッセージ定義でパースしてレコードを抽出する パースしたレコード順に渡す LocalEnvironment.FTE.Recordでファイル内のレコード番号を確認可能 ファイル内の全レコードの処理が完了すると、メッセージが“End of Data” ターミナルに流れる データ部は空メッセージ “End of Data”ターミナルの先に処理が実装されている場合のみ 93 FTEInputノード ノード・プロパティ タブ 説明 基本 入力メッセージの構文解析 再試行 レコードおよびエレメント 妥当性検査 トランザクション インスタンス 説明 ・ノード名、コメント ・ディレクトリー・フィルター ・ファイル名・フィルター ・正常な処理に対する処置 ・入力メッセージをパースする際の情報 メッセージ・ドメイン、メッセージ・セット、メッセージ・タイプ、メッセージ形式、CCSID、Encoding ・パースするタイミング 即時、要求時など ・処理が失敗した場合の再試行の有無、再試行のメカニズム 短い再試行間隔と回数、長い再試行間隔 ・処理が失敗した場合の入力ファイルの扱い 削除、バックアップなど ・レコードの検出方法とそれに関する設定 ファイル全体(レコード処理しない)、固定長、区切り、レコードシーケンス 長さ、区切り文字、区切り文字タイプなど ・妥当性検査の有無と方法 ・妥当性検査失敗時の対応 例外、ユーザトレース、ローカルエラーログ、例外リスト ・後続のリソース更新処理に対するトランザクション制御の有無 ・追加インスタンスの指定方法(メッセージフロー/ノード) ノード単位の場合のインスタンス数 94 FTEOutputノード FTEOutputノード メッセージ・ツリーのデータをファイルに書き込み、ブローカー使用FTEエージェントに転送要求を 発行するノード -Failure -Out -End of Data ファイル名にワイルドカードを指定可能 – LocalEnvironmentWildcard.WildcardMatchから値を取得 レコードの追記中は以下のディレクトリに出力データを保持 –<workpath>/common/FTE/<BROKER>/<実行グループ>/Transfers/<フロー名>/<ノード名 >/Output/mqsitransit Finish Fileターミナルにファイル処理の終了通知メッセージを受信すると、指定したFTEエージェントに対 するファイル転送要求を発行 FTE間の転送時に指定する宛先などの設定や転送オプションを「基本」タブにて設定 宛先エージェント、ディレクトリー、ファイル名など 転送モードを指定 –バイナリー転送か、テキスト転送か チェックサムの使用 出力先ディレクトリに同一名称のファイルが存在していた場合の対応を指定 –既存ファイルの上書きするか、ファイル転送をエラーにするか LocalEnvironment.Destination.FTEで上書きが可能 メッセージ・ツリーの情報を元に動的なファイル出力の設定が可能 ファイルへの出力内容、ファイルの出力先等の情報をメッセージ・ツリーから指定可能 95 フローからFTEエージェントへファイル転送開始までの流れ メッセージ・フローからFTEエージェントへのファイル転送開始までの流れ ①In ターミナルに入ってきたメッセージからレコード作成し、mqsitransitディレクトリ以下の一時ファ イルに追記 レコードの追記中は以下のディレクトリに出力データを保持 –<workpath>/common/FTE/<BROKER>/<実行グループ>/Transfers/<フロー名>/<ノード名>/Output/mqsitransit ②Finish File ターミナルにメッセージが渡ると、出力ファイルを移動 –<workpath>/common/FTE/<BROKER>/<実行グループ>/Transfers/<フロー名>/<ノード名>/Output ③FTEOutputノードは、ブローカー使用FTEエージェントに対しファイルを転送を発行 ④ブローカー使用FTEエージェントは作成されたファイルを読み込みファイルを転送 ブローカー・システム Output 転送ファイル ① FTEシステム ④ In ④ ② ② Finish File FTE エージェント FTE エージェント mqsitransit ① File レコード1 レコード2 転送先ファイル ③ 96 FTEOutputノード FTEOutputノードでのファイル処理 レコード単位にファイルへ出力 レコードの出力方法(FTEOutputノードの「レコードおよびエレメント」タブで指定) レコードの出力 種別 説明 ファイル全体 1レコードを1ファイルとして出力 未変更 レコードをそのまま追加 固定長 レコードを固定長データとして追加 レコード長(バイト)と埋め込み文字(16進)を指定し、指定した長さまでPaddingして出力 区切り文字 レコードを区切り文字形式で追加 区切り文字にはカスタム区切り文字(16進で指定)、またはブローカーのデフォルト(改行コード)を使 用 Infix:最後の区切り文字は出力されない Postfix:最後のレコードのあとに区切り文字を出力 レコード処理の終わりは、FTEOutputノードの「Finish File」 ターミナルで検知 FTEInputノードの「End of Data」ターミナルとFTEOutputノードの「Finish File」ターミナルを接続するな どの実装が必要 FTEOutputノードの「レコードおよびエレメント」タブで設定 レコード出力種別で「ファイル全体」を設定した場合は この実装は不要 97 ファイル・インターフェースのサポート ノード・プロパティ タブ 説明 説明 基本 ・ノード名、コメント ・メタデータ - ジョブ名 ・宛先 - エージェント、キュー・マネージャー、ファイル・ディレクトリー、ファイル名 ・オプション - モード(Bimary/Text)、チェックサム指定、宛先ファイルの上書き指定 要求 ・出力する内容に関する設定 XPath形式でメッセージツリーを指定 レコードおよびエレメント ・ファイルへの出力方法の指定 ファイル全体、固定長、区切り、未変更 長さ、埋め込み文字、区切り文字、区切り文字タイプなど 妥当性検査 ・妥当性検査の有無と方法 ・妥当性検査失敗時の対応 例外、ユーザトレース、ローカルエラーログ、例外リスト FTEOutputノードのターミナル一覧 ターミナル名 説明 入力 ターミナル in 処理要求メッセージを受信 Finish File ファイル処理を終了するためのトリガーメッセージを受信 出力 ターミナル Failure エラー発生時に出力 Out レコード出力成功時に、inターミナルで受信したメッセージを出力 End of Data ファイルの終了処理成功時に、Finish Fileターミナルで受信したメッセージを出力 98 LocalEnvironment FTEノードで使用するLocalEnvironmentツリー ノード通過時に転送/ファイル情報やレコード情報がLocalEnvironmentのサブ・エレメントに セットされる LocalEnvironment.FTE 現行レコードに関連する情報が格納 エレメント名 TimeStamp データ型 CHARACTER 属性 ノードがファイル処理を開始した時間 UTCタイムゾーン (ファイル名にTimestampを使用する場合に利用) Offset INTEGER ファイル内のレコード開始オフセット Record INTEGER ファイル内のレコード番号(1から) Delimiter CHARACTER レコードの区切り文字 IsEmpty BOOLEAN レコードが空の場合にTrue 99 LocalEnvironment LocalEnvironment.FTE.Transfer FTEから受信する転送またはファイルに関する情報が格納 エレメント名 データ型 属性 Directory JobName CHARACTER CHARACTER 入力ディレクトリーの絶対ディレクトリー・パス 転送の名前 Name CHARACTER ファイル名と拡張子 LastModified SourceAgent TIMESTAMP CHARACTER ファイル最終更新日時 ファイルを送信元FTEエージェント名 DestinationAgent CHARACTER ファイル送信先FTEエージェント名 OriginatingHost CHARACTER ホストの名前 (どのホストから転送を実行するのか) TransferId CHARACTER 転送の固有名 MQMDUser CHARACTER 転送要求メッセージのMQMDにセットされたユーザーID OriginatingUser CHARACTER 転送要求を実行したユーザーのユーザーID TransferMode CHARACTER 転送のモード(Binary/Text) TransferStatus CHARACTER ファイル転送の状況 FileSize INTEGER 転送するファイルのサイズ ChecksumMethod Checksum CHARACTER CHARACTER DestinationAgentQmgr CHARACTER Null / MD5 ChecksumMethod エレメントが MD5 に設定されている場合は、このエレメント が実際のチェックサムになる ファイルの送信先の宛先エージェントのキュー・マネージャーの名前 SourceAgentQmgr CHARACTER ファイルを送信したソース・エージェントのキュー・マネージャーの名前 QverallTransferStatus CHARACTER 転送の全体的な状況 TotalTransfers INTEGER 正常に転送されたファイルの総数 TransferNumber INTEGER 転送に含まれている現在のファイルの番号 100 LocalEnvironment LocalEnvironment.WrittenDestination.FTE FTEOutputノード使用時に出力ファイルの情報をセット エレメント名 DestinationAgent データ型 CHARACTER 属性 ファイルの送信先のエージェントの名前 DestinationQmgr CHARACTER 宛先エージェント・キュー・マネージャーの名前 JobName CHARACTER 転送の名前 Directory CHARACTER 出力ファイルのディレクトリ名 Name CHARACTER ファイル名 Overwrite BOOLEAN TransferId CHARACTER 宛先エージェントが同じ名前のファイルをここに移動するとき、宛先システムのファ イルを上書きできるようにするかどうかの指定 FTEOutput ノードが開始する転送の固有名 LocalEnvironment.Destination.FTE FTEOutput ノードを使用時、「基本」タブに設定した転送オプションを以下の設定値で上書きが可能 エレメント名 DestinationAgent データ型 CHARACTER 属性 ファイルの送信先のエージェントの名前 DestinationQmgr CHARACTER 宛先エージェント・キュー・マネージャーの名前 JobName CHARACTER 転送の名前 Directory CHARACTER 出力ファイルのディレクトリ名 Name CHARACTER ファイル名 Overwrite BOOLEAN 宛先エージェントが同じ名前のファイルをここに移動するとき、宛先システムのファ イルを上書きできるようにするかどうかの指定 101 LocalEnvironment LocalEnvironment.WrittenDestination.FTE FTEInputノードでファイル名にワイルドカードを使用すると、ワイルドカード部分の文字列をセット フロー内で値をセットすることも可能 FTEOutputノードのファイル名指定でワイルドカードを指定すると、この値を使用 情報内容 エレメント名 データ型 属性 ワイルドカードに 関する情報 Directory CHARACTER ファイル名パターン内のワイルドカードに一致するファイル名中の文字 ストリング 102 マルチスレッドでのファイル処理の考慮点 マルチスレッドでのファイル処理 ノード・レベルまたは、フロー・レベルで追加インスタンスを設定可能 フロー・レベルでの設定はBARファイルの「構成」タブで設定 FTEInputノードの「インスタンス」タブで設定 FTEInput FTEInputノードが転送されたファイルを読み込む処理から並列化される FTEOutput 書き込み時、複数のインスタンスから1つの一時ファイルに書き込み可能 –同一実行グループ、同一ノードは、共通の一時ファイルを使用 –レコードの追記順序は保証されない 103 WMB-WMQFTE連携例 WMB-WMQFTE連携例 リモートのFTEサーバーより、中継サーバー(ブローカー)にファイルを転送 中継サーバーでは、ファイルのフォーマットを変更し、転送先FTEサーバーに転送 ①転送元FTEエージェントからブローカー使用FTEエージェントへファイルを転送 ②ブローカーは、ブローカー使用FTEエージェントからファイルを受け取り、一レコードづつ処理 ③ファイルの処理が終了後、転送先サーバーへファイルを再転送する FTEInputの「End of Data」ターミナルとFTEOutputの「Finish File」ターミナルを接続 FTEOutputノードは、レコード処理の終了を、「Finish File」ターミナルで検知 転送先FTEエージェント宛のディレクトリ、ファイル名はLocalEnvironmentで指定 ④転送先サーバーでは、FTEエージェントがファイルを受け取り、指定のディレクトリに書き込む 転送元サーバー 中継サーバー 転送先サーバー FTE エージェント FTE エージェント ① ④ FTE エージェント 出力ファイル 入力ファイル 食品, ワイン, 2300, 12, 27600 食品, ビール, 1300, 10, 13000 雑貨, シート, 400, 2, 800 : ② ③ 104 食品 : 27600 食品 : 13000 : その他 105 CORBARequestノードの追加 外部 CORBA アプリケーションとの接続をサポート CORBARequestノードを提供 -Failure -Out -Error CORBAサーバーに対して、CORBAオブジェクトに対する操作を呼び出し、結果を受信 CORBA オブジェクト ※ CORBA オブジェクト: CORBAによって規定されたプロ トコルによってアクセス可能な、分散アプリケー ション・オブジェクト IDL: CORBAオブジェクトのインタフェースを定義 IDL 接続先CORBAオブジェクトの設定 「基本」タブのIDLプロパティー、CORBAオブジェクト参照プロパティーに設定 –CORBAオブジェクト参照を、構成可能サービスで設定することも可能 9構成可能サービス名を指定 106 CORBARequestノードの追加 構成可能サービスを使用した接続定義の設定 mqsicreateconfigurableserviceコマンドを使用して定義を作成 mqsicreateconfigurableservice MB7BROKER -c CORBA -o myCORBAService -n namingService,objectReferenceName -v localhost:2809,Europe.region/Market.object mqsichangepropertiesコマンドで定義済み構成可能サービスを変更 mqsichangeproperties MB7BROKER -c CORBA -o myCORBAService -n namingService,objectReferenceName -v production.corba.ibm.com:2809,Europe.region/Market.object mqsireportpropertiesコマンドで定義済み構成可能サービスを削除 mqsireportproperties MB7BROKER -c CORBA -o AllReportableEntityNames -r 107 CICSRequestノードの追加 CICSに接続するためのCICSRequestノードを提供 ターゲットの CICS 領域のプログラムを呼び出すことが可能 CICS Transaction Server for z/OS バージョン 3.2 以降をサポート IP InterCommunications (IPIC) プロトコルを使用してCICS へ接続 -Failure -Out -Error -タイムアウト ホスト File MQ WMB TCP/IP CICS for z/OS IPIC TCPIPService IMSノード SOAP 接続先CICS情報の登録 「基本」タブより、接続先CICSサーバー、プログラム名などを指定 –構成可能サービスでの設定も可能 –CICSサーバーに構成可能サービス名を指定 108 Application CICSRequestノードの追加 構成可能サービスを使用した接続定義の設定 mqsicreateconfigurableserviceコマンドを使用して定義を作成 mqsicreateconfigurableservice MB7BROKER -c CICSConnection -o myCICSConnectionService -n cicsServer,clientApplid,clientQualifier,connectionTimeoutSecs,requestTimeoutSecs -v tcp://test.cics.ibm.com:12345,BRKApp,BRKQual,10,5 mqsichangepropertiesコマンドで定義済み構成可能サービスを変更 mqsichangeproperties MB7BROKER -c CICSConnection -o myCICSConnectionService -n cicsServer -v tcp://production.cics.ibm.com:12345 mqsireportpropertiesコマンドで定義済み構成可能サービスを削除 mqsireportproperties MB7BROKER -c CICSConnection -o AllReportableEntityNames -r 109 SSL による IMS に対する接続の保護 IMSとのSSL通信をサポート SSLを使用し、 IMSRequestノード、IMS間のセキュアな通信が可能 ※SSLを使用する場合は、構成可能サービスを使用してIIMSRequestノードを構成することが必要 「基本」タブの「ノードで定義された接続プロパティーを使用します」のチェックを外す mqsicreateconfigurableserviceコマンドを使用して定義を作成 構成手順 Public Key Infrastructure (PKI) をブローカー・レベルでセットアップ 鍵ストア、トラストストア、パスワード、および証明書を構成 IMSConnect 構成可能サービスで UseSSL および SSLEncryptionType プロパティーを設定 myIMSConnectService 構成可能サービスを使用するように構成されたIMSRequest ノードを変更する例 mqsichangeproperties MB7BROKER -c IMSConnect -o myIMSConnectService -n UseSSL,SSLEncryptionType -v True,Weak 110 リソース統計の追加 リソース統計が取得可能なリソース・タイプが追加 CICS CICSサーバーの呼び出し回数、実行成否など CORBA CORBAサーバーの呼び出す回数、実行成否など FTEエージェント FTEエージェントが送受信した転送数など JDBCコネクションプール コネクションプールに関する情報など SOAP SOAPInputノード/SOAPReplyノードでの送受信したメッセージ数、実行成否など セキュリティ 認証要求した数、実行成否など 111 その他 サポート・プラットフォームの拡張 ブローカー、ツールキット、MBExplorerはそれぞれ以下をサポートを追加 Windows 7 Windows Server 2008 R2 Windows (x86-64)環境にて64 ビット・ブローカーと実行グループをサポート サポートパック(IE02): WMB Database Extenderが追加 DataDirect ODBC ドライバーでは対応できない ODBC データ・ソースに対するインターフェース を用意 SolidDBデータ・ソース unixODBC Project で提供されているデータ・ソース 112