アップデート・ セミナー WebSphere Message Broker V8.0.0.1 2012年10月5日
by user
Comments
Transcript
アップデート・ セミナー WebSphere Message Broker V8.0.0.1 2012年10月5日
WebSphere Message Broker V8.0.0.1 アップデート・セミナー 2012年10月5日 内容 ハイライト 管理・運用機能の強化 アプリケーション開発機能の強化 接続性の強化 その他 この資料に含まれる情報は可能な限り正確を期しておりますが、日本アイ・ビー・エム株式会社の正式なレビューを受けておらず、当資料に記載された内容に関し て日本アイ・ビー・エム株式会社は何ら保証するものではありません。 従って、この情報の利用またはこれらの技法の実施はひとえに使用者の責任において為されるものであり、資料の内容によって受けたいかなる被害に関しても一切 の保証をするものではありません。 当資料に記載された製品名または会社名はそれぞれの各社の商標または登録商標です。 2 ハイライト 3 内容 WebSphere Message Broker製品概要 WMB V8.0.0.1 ハイライト 管理・運用機能の強化 アプリケーション開発機能の強化 接続性の強化 サポートの追加 4 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 分散系からホストまで 5 Message Broker Product Roadmap 将来のプラン、提供機能については変更される可能性がありますので、ご注意ください。 IBM's plans, directions, and intent are subject to change or withdrawal Web管理機能の強化 アプリケーションとライブラリー機能強化 DFDL機能強化 グローバル・キャッシュ機能 アプリケーションおよびライブラリーによる 開発機能強化 DFDLサポート MAPの強化 WS-RMサポート IBM Sterling Connect:Directサポート .NETサポート Record & Replayによる管理機能強化 MB V8.0.0.2 V.Next Q4 2012 MB V8.0.0.1 Q3 2012 HCP V8 2H 2012 Message Broker V8 HCP Fixpack 2 Q4 2011 Q1 2012 MB V7.0.0.3 Q2 2011 HCP Fixpack 1 Q3 2011 MB V7 Q4 2009 Healthcare Connectivity Pack V7.0 Q1 2011 Medical Device Connectivity Clinical Application support Major release Operational Management Minor release 6 WMB V8.0.0.1 製品情報 FixCentralより入手(2012/8/15よりダウンロード可能) http://www-01.ibm.com/support/docview.wss?rs=849&uid=swg24033147 (補足)V8.0 製品情報 製品発表: 2011/10/5 (WWは10/4) 発表レター:SWA11107-3 WebSphere Message Broker V8.0 の 発表 http://www-06.ibm.com/jp/domino02/NewAIS/aisextr.nsf/ByLetterNo/SWA11107?OpenDocument&ExpandSection=1 ライセンス mqsimodeコマンドで段階的な稼動モードの移行が可能 分散プラットフォームの稼動モード 説明 Trial Edition 90日間、無料で使用できる Express Edition (旧Entry) 1実行グループ、機能制限あり Standard Edition (旧Starter) 1実行グループ、機能制限なし Advanced (旧Enterprise) フルライセンス Remote Adapter Deployment 2実行グループ、アダプターのみ利用可能 7 WMB V8.0 GA版ハイライト アプリケーション開発機能と接続性の強化 アプリケーション開発機能と接続性の強化 アプリケーションおよびライブラリーにより、開発物の構成がよりシンプルに アプリケーションおよびライブラリーにより、開発物の構成がよりシンプルに オープンなモデリング標準であるDFDLのサポート オープンなモデリング標準であるDFDLのサポート マッピングのUIとパフォーマンスの改善 マッピングのUIとパフォーマンスの改善 Webサービス高信頼性メッセージング(WS-RM)のサポート Webサービス高信頼性メッセージング(WS-RM)のサポート フロー途中でメッセージを取得するための、JMSReceive フロー途中でメッセージを取得するための、JMSReceive ノードの提供 ノードの提供 Fileノードでの処理ファイルの指定方法がより柔軟に Fileノードでの処理ファイルの指定方法がより柔軟に IBM IBM Sterling Sterling Connect:Directサポートのための、C:Dノードの提供 Connect:Directサポートのための、C:Dノードの提供 .NET .NET アプリケーションサポートのための、.NET アプリケーションサポートのための、.NET Compute Compute ノードの提供 ノードの提供 管理機能の強化 管理機能の強化 Record Record && Replay機能によりフロー中のメッセージの保管、再送が可能に Replay機能によりフロー中のメッセージの保管、再送が可能に 簡易な問題判別を可能にするアクティビティー・ログ機能の追加 簡易な問題判別を可能にするアクティビティー・ログ機能の追加 JMSのリソース統計を取得可能に JMSのリソース統計を取得可能に 8 WMB V8.0.0.1 ハイライト 管理・運用機能の強化 管理・運用機能の強化 Web管理機能が強化され、ツールキット、MBエクスプローラーに加え管理手段の選択肢が追加 Web管理機能が強化され、ツールキット、MBエクスプローラーに加え管理手段の選択肢が追加 BARファイル作成機能の強化 BARファイル作成機能の強化 アプリケーション開発機能の強化 アプリケーション開発機能の強化 アプリケーションおよびライブラリーへの変換ウィザードの追加 アプリケーションおよびライブラリーへの変換ウィザードの追加 Webサービスに特化したサービス・プロジェクトの追加 Webサービスに特化したサービス・プロジェクトの追加 DFDL機能の強化 DFDL機能の強化 JavaComputeノードによるJAXBサポートの追加 JavaComputeノードによるJAXBサポートの追加 Computeノードにおいて、マッピング情報のエクスポート、Java Computeノードにおいて、マッピング情報のエクスポート、Java クラス・ローダーの指定が可能に クラス・ローダーの指定が可能に .NETリソースのコンテナである.NETアプリケーション・ドメインのサポート .NETリソースのコンテナである.NETアプリケーション・ドメインのサポート 9 WMB V8.0.0.1 ハイライト 接続性の強化 接続性の強化 グローバル・キャッシュにより、ブローカー/実行グループ間でデータの共有が可能に グローバル・キャッシュにより、ブローカー/実行グループ間でデータの共有が可能に SOAPノードにて、ブローカー・レベルのHTTPリスナー(ブローカー・リスナー)を利用可能に SOAPノードにて、ブローカー・レベルのHTTPリスナー(ブローカー・リスナー)を利用可能に JDBCProviderサービスにXAの使用を制御するプロパティが追加 JDBCProviderサービスにXAの使用を制御するプロパティが追加 マッピングUIの改善 マッピングUIの改善 HTTP HTTP 非同期要求/応答が可能に 非同期要求/応答が可能に 外部 外部 Web Web サーバー(IBM サーバー(IBM HTTP HTTP Server Server など)用の構成情報を生成可能に など)用の構成情報を生成可能に FileOutputノードにおいて、FTPサーバーの動的指定、ファイル転送前後でのFTPコマンド実行が可能に FileOutputノードにおいて、FTPサーバーの動的指定、ファイル転送前後でのFTPコマンド実行が可能に ブローカー/実行グループレベルのJava ブローカー/実行グループレベルのJava 共有クラス・ローダーを使用可能に 共有クラス・ローダーを使用可能に その他 その他 デフォルト導入ディレクトリ形式の変更 デフォルト導入ディレクトリ形式の変更 モニタリングのサポート拡張 モニタリングのサポート拡張 mqsimodeコマンドのz/OS対応 mqsimodeコマンドのz/OS対応 IBM IBM Support Support Assistantによる障害発生時の情報収集 Assistantによる障害発生時の情報収集 10 サポートの追加 サポートMQバージョンの追加 WebSphere MQ V7.1、V7.5(分散プラットフォームのみ) がサポートに追加 最新サポート状況は、以下URLで確認 http://www-01.ibm.com/software/integration/wbimessagebroker/requirements 11 blank 12 管理・運用機能の強化 13 内容 Web管理機能の強化 BAR作成機能の強化 14 Web管理機能の強化 15 Web管理機能の強化 Webインターフェースを通して、ブローカー・コンポーネントの管理が可能 MBエクスプローラー(管理用)、ツールキット(開発用)に管理IFの選択肢が追加 ただし、(現時点で)実行できる操作は限定的 –ブローカー・コンポーネントのステータス表示と実行グループ/アプリケーション/メッセージフローの起動、停止が可能 –コンポーネントの作成/削除やデプロイ、プロパティの設定、トレース/統計の設定などは不可 Webユーザー・インターフェース・サーバーを提供 HTTP/HTTPSリクエストを受け付け、要求された管理操作を実行する Webインターフェースを使用した管理手段 Web管理コンソール(Webブラウザ)からの管理 WebSphere Application Server(WAS)のIntegration Solution Consoleからの管理 REST管理APIを使用した管理 ロール・ベース・セキュリティによるアクセス制御 ロールに応じてWebインターフェースからブローカーへのアクセスを制御 HTTP(S) Webブラウザ ブローカー Webユーザ I/F Server HTTP(S) WAS 実行グループ MQ メッセージフロー HTTP(S) クライアント・ アプリケーション メッセージフロー MBエクスプローラー MQクライアント ツールキット 16 Web管理コンソール Webブラウザからブローカー実行環境の運用管理が可能 Web管理コンソールから実行できる操作 ※下記内容は今後変更される可能性があります。 ブローカーのステータス表示 起動停止、プロパティ設定は不可 実行グループのステータス表示、起動、停止 アプリケーション/メッセージフローのステータス表示、起動、停止 構成可能サービスの表示 データ・キャプチャ・ストアの表示 Webユーザー・アカウントの表示 管理ログの表示 ブローカー HTTP(S) Webユーザ I/F Server 実行グループ MQ メッセージフロー メッセージフロー 17 Web管理コンソール Web管理コンソール画面イメージ ブローカー 実行グループ アプリケーション メッセージフロー データキャプチャストア ユーザーアカウント 管理ログ 18 ロール・ベース・セキュリティ WebユーザーI/F、REST APIからブローカーへのアクセスをロールに応じて制御 ロールは、システム・ユーザーとして定義し、ブローカー管理セキュリティを利用してブローカーへの アクセス権を設定 ロールの種類、名前は任意に定義できる ブローカー管理セキュリティ機能が有効になっていることが前提 –ブローカーのブローカー管理セキュリティ機能が無効の場合、誰でもアクセス可能 mqsiwebuseradminコマンドでWebユーザー・アカウントを定義し、ロールとパスワードを設定 Webユーザー・アカウントはブローカー内部で管理される –アカウントの種類と名前も任意に定義できる 1つのロールに対して、複数のアカウントを紐付け可能 サーバー ブローカー システム・ユーザー(ロール) Webユーザー・アカウント Web管理コンソールに Webユーザー・アカウントと パスワードを指定してログイン アカウント1/パスワード/ロールA ロールA アカウント2/パスワード/ロールB ロールB パスワード認証 アカウント1 実行グループ ロールA Webユーザ I/F Server アカウント2 ロールB MQ メッセージフロー メッセージフロー アカウントと紐付け られたロールで ブローカーにアクセス 19 ブローカー管理 セキュリティでロール に対し権限チェック ロール・ベース・セキュリティ 実装イメージ 以下の2つのロール&Webユーザー・アカウントを定義 –全ての操作が可能な管理者用のロール(wmbadm)とWebユーザー・アカウント(webadm) –参照のみが可能なユーザー用のロール(wmbuser)とWebユーザー・アカウント(webuser) ロールとなるwmbadmとwmbuserは、この名前でOSのシステム・ユーザーとして定義する ロール=システム・ユーザーに対し、ブローカー管理セキュリティで権限を設定する –wmbadmに全ての権限を付与する ⇒製品既定のWMB管理グループmqbrkrsに所属させる –wmbuserに参照権限のみを付与する ⇒wmbuserg(任意)グループに参照権限のみを付与し、所属させる mqsiwebuseradminコマンドでアカウントを定義し、それぞれにパスワードとロールを設定する –webadm :パスワードwebadmpw、ロールwmbadm –webuser :パスワードwebuserpw、ロールwmbuser MQのOAMコマンドにて、 ブローカー管理セキュリティを 設定する サーバー ブローカー Webユーザー・アカウント システム・ユーザー(ロール)/グループ webadm/apass/wmbadm wmbadm mqbrkrs webuser/upass/wmbuser wmbuser wmbuserg webadm wmbadm Webユーザ MQ I/F Server wmbuser webuser 実行グループ メッセージフロー メッセージフロー 20 Web管理コンソールの利用 Web管理コンソールの利用手順 1.Webユーザー・インターフェース・サーバーの構成 –ポートの設定 –Webユーザー・インターフェース・サーバーの有効化 2.Webユーザー・アカウントの作成 –ブローカー管理セキュリティの有効化 –ロールの作成 –Webユーザー・アカウントの作成 3.Webユーザー・インターフェース・サーバーへアクセス 21 Web管理コンソールの利用 1.Webユーザー・インターフェース・サーバーの構成 ポートの設定 Webユーザー・インターフェース・サーバー用のHTTP/HTTPSリスナーのポート番号を設定する ※デフォルトでHTTPリスナーの4414番は設定済み 以下はポート番号を変更する場合やHTTPSリスナーを利用する場合に実施 mqsichangepropertiesコマンドを使用 –「webadmin」コンポーネントの「HTTPConnector/HTTPSConnector」オブジェクトのポート番号を指定する –HTTPを使用する場合 mqsichangeproperties brokerName -b webadmin -o HTTPConnector -n port -v portValue –HTTPSを使用する場合 mqsichangeproperties brokerName -b webadmin -o HTTPSConnector -n port,keystoreFile, keystorePass -v portValue,fileName,password 9HTTPSを使用する場合は別途キーリポジトリー等などのSSL設定が必要 –ポート番号以外にも「httplistener」コンポーネントの「HTTPConnector/HTTPSConnector」オブジェクトと 同じプロパティを設定可能 設定確認は、mqsireportpropertiesコマンド mqsireportproperties brokerName -b webadmin -o HTTPConnector -a MBエクスプローラーからも設定可能 –MBエクスプローラーにてブローカーのプロパティ画面を開き、「WebAdmin」タブの「HTTPポート/HTTPSポート」 プロパティを設定 22 Web管理コンソールの利用 1.Webユーザー・インターフェース・サーバーの構成 Webユーザー・インターフェース・サーバーの有効化 ※デフォルトでHTTPリスナーを利用するサーバーは有効化済み mqsichangepropertiesコマンドを使用 –「webadmin」コンポーネントの「server」オブジェクトの「enabled/enableSSL」を指定する –HTTPを使用する場合 mqsichangeproperties brokerName -b webadmin -o server -n enabled,enableSSL -v true,false 9ここで、SSL(HTTPS)は使用しないように「enableSSL」は「false」を設定 –HTTPSを使用する場合 mqsichangeproperties brokerName -b webadmin -o server -n enabled,enableSSL -v true,true 設定確認は、mqsireportpropertiesコマンド mqsireportproperties brokerName -b webadmin -o server -a MBエクスプローラーからも設定可能 –MBエクスプローラーにてブローカーのプロパティ画面を開き、「WebAdmin」タブの「使用可能/使用可能SSL」 プロパティを設定 23 Web管理コンソールの利用 2.Webユーザー・アカウントの作成 ブローカー管理セキュリティの有効化 ロール・ベース・セキュリティの前提となるブローカー管理セキュリティを有効にする –デフォルトは無効 (無効の場合は誰でもWeb管理コンソールからアクセスし、全ての操作を実行可能) mqsichangebroker brokerName -s active 9上記コマンドはブローカー停止時に実行 ロールの作成 システム・ユーザーと所属するグループを作成し、ブローカー管理セキュリティでロールに応じた権限を付与 –全権限を持つロールや参照権限のみ持つロールなどを定義 Webユーザー・アカウントの作成 mqsiwebuseradminコマンドでWebユーザー・アカウントを定義し、ロールとパスワードを設定 –アカウントとパスワードはブローカー内部でのみ管理され、任意に指定可 9パスワードはロール(システム・ユーザー)のパスワードと合わせる必要は無い mqsiwebuseradmin brokerName -c -u username -a password -r role 9Web管理コンソールのログイン時にアカウントとパスワードを指定する 24 Web管理コンソールの利用 3.Webユーザー・インターフェース・サーバーへアクセス WebブラウザからWebユーザー・インターフェース・サーバーにアクセス (HTTPの場合)http://xxx.xxx.xxx.xxx:port/ ログイン画面でWebユーザー・アカウントとパスワードを指定 ※ブローカー管理セキュリティを無効にしている場合、 上記ログイン画面は表示されず、右記画面となる 25 (補足)mqsiwebuseradminコマンド mqsiwebuseradminコマンドの文法 mqsiwebuseradmin brokerSpec [-c ¦ -m ¦ -d ¦ -l] [-u username] [-a password] [-r role] コマンド・オプション: 'brokerSpec' は以下のいずれかの値 'brokerName' : ローカルに定義されているブローカーの名前 '-n brokerFileName' : リモート・ブローカー接続パラメーターが含まれているファイル (*.broker) '-i ipAddress -p port -q qMgr' : リモート・ブローカーのホスト名、ポート、およびキューマネージャー 以下のいずれかの値を指定 '-c' : Web ユーザー・アカウントを作成 '-m' : Web ユーザー・アカウントを変更 '-d' : Web ユーザー・アカウントを削除 '-l' : Web ユーザーをリスト 以下は必要に応じて指定 '-u username' : 作成/変更/削除するユーザー名 '-a password' : 作成/変更のためのパスワード '-r role : 作成/変更するロール '-w timeoutSecs' : ブローカーの応答を待機する最大秒数 (デフォルトは 60) '-v traceFileName' : 指定されたファイルに詳細内部トレースを送信 26 (補足)ブローカー管理セキュリティ ブローカーとそのリソースに対する操作を実行するためのユーザ権限を制御 WMB V7.0からの機能 MQベースの権限設定 MQ権限(Inquire、Put、Set)が、それぞれブローカーに対する各操作の権限に対応 MQ権限 ブローカー権限 操作内容 Inquire Read 表示 Put Write 設定、作成/削除、デプロイ Set Execute 開始/停止 操作権限の設定は、MQのキュー(権限キュー)にユーザ/グループに対するMQ権限を設定 ブローカー・レベルの権限キュー : SYSTEM.BROKER.AUTH 実行グループ・レベルの権限キュー : SYSTEM.BROKER.AUTH.EGName (EGNameは実行グループ名) ユーザが操作を実施する際、ブローカーは操作対象の権限キューにそのユーザ/グループに対する適切な権限 が設定されているか確認 セキュリティ機能のアクティブ/インアクティブ化 ブローカー管理セキュリティによるアクセス制御を実施するかどうかブローカーのプロパティで設定 デフォルトはインアクティブ ブローカー作成時の指定、および作成後の変更が可能 27 (補足)ブローカー管理セキュリティ 各操作に必要な権限 操作 SYSTEM.BROKER.AUTH ブローカー・プロパティの表示 構成可能サービス・プロパティの表示 実行グループのリスト表示 Read ブローカー・プロパティの設定 構成可能サービスの作成/削除 構成可能サービス・プロパティの設定 実行グループの作成/削除 実行グループの名前変更 Read + Write 実行グループ・プロパティの表示 デプロイ済みオブジェクトのリスト表示 Read Read 実行グループ・プロパティの設定 デプロイ 実行グループからのリソース削除 Read Write 実行グループの開始/停止 メッセージフローの開始/停止 Read Execute 28 SYSTEM.BROKER.AUTH.EGName (補足)ブローカー管理セキュリティ 権限キューに対する権限の設定方法 MQの権限設定コマンド(setmqaut)、もしくはMB/MQエクスプローラーを利用 設定変更は即座に(ブローカーやキューマネージャーの再起動なし)反映 コマンドによる設定例 setmqaut -m BK7QM -t queue -n SYSTEM.BROKER.AUTH -g ssg +inq +put ・・・ブローカーへのRead/Write権限を付与 setmqaut -m BK7QM -t queue -n SYSTEM.BROKER.AUTH -g ssg -put ・・・ブローカーへのWrite権限を削除 setmqaut -m BK7QM -t queue -n SYSTEM.BROKER.AUTH.ex01 -g ssg +inq ・・・実行グループex01へのRead権限を付与 setmqaut -m BK7QM -t queue -n SYSTEM.BROKER.AUTH.ex* -g ssg +inq +put +set ・・・実行グループex*への全権限を付与 ※MQでは、オブジェクトを特定するプロファイルに対し、権限を設定 setmqautコマンドでは、-nオプションでプロファイル名を指定し、ワイルドカード(?、*)を指定することも可能 1つのオブジェクトに対し複数のプロファイルが該当する場合、最もオブジェクト名に合致するプロファイルの設定のみが有効となる ※権限キューにはデフォルトでmqmグループにMQの全権限が付与され、mqbrkrsグループに対しても自動的にInquire、 Put、Set権限が付与されます。 29 WebSphere Application Serverからの管理 WebSphere Application Server(WAS)のIntegration Solution Console上から 以下の管理タスクを実施可能 ブローカーへの接続のテスト 実行グループおよびそのプロパティーとステータス (実行中または停止中) の表示 起動停止、プロパティ設定は不可 アプリケーションおよびそのプロパティーとステータスの表示 ライブラリーおよびそのプロパティーの表示 実行グループ別のサービス、およびそのステータスの表示 サービスに関する詳細の確認 V8.0.0.1時点ではブローカーの起動/停止や構成情報の更新は不可 複数のローカルまたはリモート・ブローカーへ接続可能 WAS V7.0およびWAS V8.0をサポート ブローカーはWebユーザー・インターフェース・サーバーが構成済み/有効化されていること が前提 30 WebSphere Application Serverからの管理 WAS Integrated Solutions Consoleでの表示 メニューに「WebSphere Message Broker」項目が追加 31 WebSphere Application Serverからの管理 WASにブローカー管理用パッケージをインストール IBM Installation Managerを使用 WASのパッケージ・グループを拡張 ※ インストール時にはWASを停止することが必要 インストール手順 ① IBM Installation Managerを起動し、「ファイル」>「設定」>「リポジトリー」を選択 ② 「リポジトリーの追加」から、WMBのインストール時に作成されたwmb.admin.repository.zipを追加 wmb.admin.repository.zipの格納先: <WMBインストールディレクトリ>¥tools¥wmb.admin.repository.zip 32 WebSphere Application Serverからの管理 ③「WebSphere Application Server バージョン X 用 WebSphere Message Broker Administration」 をインストール 33 WebSphere Application Serverからの管理 ブローカー管理のためのWASプロファイルの設定 Manageprofilesを使用してWASプロファイルを拡張または作成 追加プロファイル・テンプレートとしてdefault.broker, dmgr.brokerを提供 GUI (プロファイル管理ツール/WebSphere Customization Toolbox)はサポートされない プロファイル・テンプレート・ファイル 説明 default.broker ブローカー管理に対応したアプリケーション・サーバー(default)プロファイル dmgr.broker ブローカー管理に対応した管理(dmgr)プロファイル プロファイル・テンプレート・ファイルは WASインストールディレクトリ¥profileTemplates に保管される コマンド (既存プロファイルを拡張する場合) manageprofiles -augment -profileName プロファイル名 ‒templatePath プロファイル・テンプレート・ファイル コマンド (新規プロファイルを作成する場合) manageprofiles -create -profileName プロファイル名 ‒templatePath プロファイル・テンプレート・ファイル 実行例 C:¥IBM¥WebSphere¥AppServer>bin¥manageprofiles.bat -augment -profileName AppSrv01 -templatePath "C:¥IBM¥WebSphere¥AppServer¥profileTemplates¥default.broker" INSTCONFSUCCESS: プロファイルの拡張が成功しました。 34 REST管理API ブローカー管理のためのREST管理API をサポート REST管理APIを使用し、HTTPコマンドを使用してブローカー管理タスクを実施可能 HTTP GET/PUT/POST/DELETEを使用してWebユーザー・インターフェース・サーバーにアクセス ブローカー・コンポーネントのステータス表示と実行グループ/アプリケーション/メッセージフローの起動、停止が可 能 Web管理コンソール/WASからの管理はREST管理APIを使用 API リファレンス <導入ディレクトリ>/docs/REST/ に提供 ブローカー側にWebユーザー・インターフェース・サーバーが構成済み/有効化されていることが前提 Web管理セキュリティを有効にしている場合は、アカウント名/パスワードの指定にBasic 認証を使用 実行グループ一覧をリクエスト クライアント・ アプリケーション HTTPリクエスト GET /executiongroups ブローカー HTTP レスポンス(XML または JSON) <executionGroups type="executionGroups" uri="/apiv1/executiongroups"> <executionGroup isRunning= true name= EG1 uuid="894b6fe7-3901-0000-0080-bb869c995a15" …/> </executionGroups> 実行グループ名とステータスを返却 35 Webユーザ I/F Server RESTful API サポート REST管理API リファレンスでの提供情報 REST Resources API でサポートしている RESTリソース 各リソースアクセスに必要な以下の情報を記載 RESTful –URL パス/HTTP メソッド/パラメーター –パラメータのアクセス方法 9path: URL パスに含まれるパラメーター 9query: URL パスの後に ?<パラメーター名>=<パラメーター値> で指定するパラメーター –レスポンス(データ・エレメント、本文なし、または特定の HTTP ステータスコード) ※レスポンスの種類は HTTP ヘッダーの Accept フィールド で指定する –XML –JSON :なし、text/xml、application/xml :application/json Data Model で使用されるデータモデル データモデルは XML スキーマで定義 Data Elements および DataTypeの情報を記載 Data Elements は XML と JSON の例を記載 API WADL (Web Application Description Language) ファイルを提供 クライアント・アプリケーションで使用可能 36 BAR作成機能の強化 37 BARファイルへのソースファイルを追加 BARファイルにソースファイルを追加可能 BARファイルエディターに「ワークスペース・プロジェクトのソース・ファイルへの追加」オプションが追加 アプリケーション、ライブラリー、およびその他のコンパイル済みリソースのソースが、BARファイルのsrc フォルダーに追加される BARファイルからプロジェクトをツールキットにインポートすることで、フローの実装を確認可能 障害発生時、BARに紐づくリソースを直接解析することができる 38 BARファイルへのソースファイルを追加 BARファイルからのリソースのインポート アーカイブ・ファイルの選択にて、ソースファイルを追加した BARファイルを選択 「インポート」にて、「既存プロジェクトを ワークスペースへ」を選択 インポートするプロジェクトを選択 39 mqsipackagebarコマンドの追加 mqsipackagebarコマンドの追加 ブローカー・コンポーネントが導入されていない環境にて、BARファイルを作成することが可能 デプロイ可能リソースをBARファイルにパッケージ ブローカー・コンポーネントが導入されている環境から、実行に必要なライブラリ等をコピー mqsipackagebarコマンドの使用ケース 開発者は、開発した物をツールキットからリポジトリに保管 リポジトリ管理サーバーにて、複数の開発者の開発物をまとめてBARファイルにパッケージ ブローカーへ作成したBARファイルを転送しデプロイを実施 mqsipackagebarコマンドを使用し、 開発物からBARファイルを作成 ツールキット バージョン管理 リポジトリ管理サーバー ブローカー デプロイ リポジトリ製品 BAR アプリケーション ワークスペース mqsipackagebarコマンド実行 アプリケーション mqsipackagebarコマンド 40 ライブラリー(jar) あらかじめmqsipackagebarコマンドの実行環境を用意 mqsipackagebarコマンドの追加 mqsipackagebarコマンド実行環境の設定 1. MQSI_JREPATHにJREのパスを設定 PATHにjava実行環境へのパスを追加(UNIX) MQSI_JREPATH=<Javaランタイム環境へのパス> PATH=$PATH:$MQSI_JREPATH/bin export MQSI_JREPATH PATH 2. ブローカー・コンポーネントが導入されているマシンから、以下のコマンドとライブラリをコピー <WMB_install_dir>/bin/mqsipackagebar <WMB_install_dir>/classes/ConfigManagerProxy.jar <WMB_install_dir>/classes/brokerutil.jar <MQ_install_dir>/java/lib/com.ibm.mq.jar <MQ_install_dir>/java/lib/connector.jar 3. JARファイルをCLASSPATHに追加 コマンド実行例(UNIX) CLASSPATH=$CLASSPATH:/path/ConfigManagerProxy.jar:/path/brokerutil.jar:/path/com.ibm.mq.jar:/path/co nnector.jar export CLASSPATH 41 mqsipackagebarコマンドの追加 mqsipackagebarコマンドによるBARファイルの作成 1. BARファイルに追加するファイルを、mqsipackagebarコマンド実行環境に用意 2. mqsipackagebarコマンドの実行 mqsipackagebar -a BARファイル名 [-w BARファイルに組み込むリソースの配置場所] [-o BARファイルに追加するリソースへのパス] [-k アプリケーション名(スペース区切りで複数指定可)] [-y ライブラリー名(スペース区切りで複数指定可)] [-n アプリケーション・ドメイン名(.NET) (スペース区切りで複数指定可)] [-u (BARファイルのリソースを上書き) ¦ -d (BARファイルからリソースを削除)] [-i (デプロイ不能リソースも含めて追加 )] [-v トレースファイル名 (コマンドのトレースをファイルに出力)] コマンド実行例 アプリケーション(Application1)を、BAR ファイル(myflow.bar)にパッケージ –Application1のプロジェクトが、C:¥Workspaceに保管されてる –アプリケーション Application1 を BAR ファイルに追加 –トレース機能をON mqsipackagebar -w C:¥Workspace -a myflow.bar -k Application1 -v tracefile mqsipackagebar -w C:¥Workspace -a myflow.bar -k Application1 -v tracefile 42 mqsipackagebarコマンドの追加 mqsipackagebarコマンドのためのリソースのコンパイル Javaコードおよびメッセージ・セットをBARファイルに追加する際、あらかじめコンパイルが必要 –メッセージ・セットは、.dictionaryまたは.xsdzip、Javaコードは.jarファイルにコンパイルされる 以下のいずれかでリソースをコンパイル mqsicreatebarコマンドにて、プロジェクトと「-compileOnly」オプションを指定 mqsicreatebar -data ProjectDirectory -compileOnly Toolkitにて、プロジェクトを右クリックし、「mqsipackagebarのビルド」を選択 「mqsipackagebarのビルド」を選択 43 blank 44 アプリケーション開発機能の強化 45 内容 アプリケーションとライブラリー機能追加 Web サービス開発機能の強化 DFDL の機能強化 マッピング情報のエクスポート JAXB サポート Compute ノードの機能拡張 .NET 機能拡張 46 アプリケーションとライブラリー 機能追加 47 アプリケーション、ライブラリーへの変換ウィザードの追加 アプリケーション、ライブラリーへの変換ウィザードの追加 複数のプロジェクトを自動的にアプリケーションおよびライブラリーに変換することが可能 変換可能なプロジェクトはV8.0GA版と同じ –メッセージ・ブローカー・プロジェクト、メッセージ・セット・プロジェクト、Javaプロジェクト、PHPプロジェクト V8.0GA版では、1プロジェクトずつアプリケーション/ライブラリーへの変換、追加操作が必要だった 変換を妨げるエラーを検出し、エラーの修正方法を提示 存在しないプロジェクトへの参照等があると変換エラー (補足)アプリケーションとライブラリーとは V8.0GA版にて、新規に導入されたWMB開発物の構成単位 リソースの種類単位ではなく、連携ソリューション単位でのプロジェクト構成 –アプリケーションとは、ソリューションを実現するために必要なリソースをまとめたもの –ライブラリーとは、複数のアプリケーションから利用されるリソースをまとめたもの V7.0までの既存リソースをインポートすることで、V8.0にリソースを移行可能 インポート後、アプリケーション、ライブラリーに構成しなおすかどうかは任意 V8開発物 参照 プロジェクト参照 V7開発物 メッセージ・フロー・プロジェクト メッセージ・フロー アプリケーション メッセージ・フロー メッセージ・セット ライブラリー メッセージ・セット・プロジェクト メッセージ・セット 共有されるリソース 48 アプリケーション、ライブラリーへの変換ウィザードの追加 変換ウィザードの使用方法 Javaプロジェクトとメッセージ・セット・プロジェクトを参照するメッセージ・ブローカー・プロジェクトを アプリケーションに変換する例 変換対象のプロジェクトを選択 右クリック → 「複数プロジェクトの分析および変換」を選択 49 アプリケーション、ライブラリーへの変換ウィザードの追加 変換対象のプロジェクトを選択 前提条件の検査 変換を妨げるエラーが検出される 表示は存在しないプロジェクトを参照している場合の例 エラーに対する解決方法を選択し、「選択項目の修正」 もしくは「すべて修正」をクリック 50 アプリケーション、ライブラリーへの変換ウィザードの追加 変換アクションの要約 現在の構成をバックアップのためにエクスポートする場合は、 「エクスポートをクリック」 変換アクションの内容をファイルに保存する場合は、 「すべての変換アクションをファイルに保存」をクリック 指定したプロジェクトが、アプリケーション、 ライブラリーに変換される 51 アプリケーション、ライブラリーへの変換ウィザードの追加 (補足)アプリケーション、ライブラリーへの変換ウィザードの変換ルール レコードの検出 種別 メッセージ・ブローカー・プロジェクト メッセージ・ブローカー・プロジェクト 以外のプロジェクト 条件 変換先 他プロジェクトから参照されていない アプリケーション 他プロジェクトから参照されている ライブラリー なし (他プロジェクトからの参照有無には依存しない) ライブラリー 52 Web サービス開発機能の強化 53 サービス作成 アプリケーションとライブラリーという構成単位に加えてサービスという構成単位が追加 サービスはアプリケーションの一種で Web サービスのサービス作成に適した UI を提供 サービス・エディターで Web サービスのインターフェースとサービス操作を定義できる 定義した Web サービスに応じてフローのひな型が生成される サービス操作はサブフローとして実装する V8開発物 1.サービスを作成する 新しいサービスを作成する WSDL サービス 参照 サービス作成は以下の流れに沿って行う サービス定義 メッセージ・フロー スキーマ定義 ライブラリー に基づいて作成する 共有されるリソース 2.サービス操作を定義する (オプション)HTTP バインディングを再生成する 3.サービス操作を実装する エラー処理サブフローを実装する 54 1.サービスを作成する 「ファイル」メニュー → 「新規」 → 「Service」を選択 新しいサービスを作成または WSDL に基づいてサービスを作成 Service Description と Resources を含むプロジェクトが作成される サービス名を入力 新規で作成するか、WSDL をインポートするかを選択 ※以降は新規で作成する手順を説明 生成されたサービス・プロジェクト ダブルクリックして サービス・エディターを 開く 55 2.サービス操作を定義する サービス・エディターを用いて Web サービスの定義を編集する Overview タブで以下の定義を編集する Input のプロパティーの設定 (オプション)HTTP バインディングの再生成 Service サービス・エディター(Overview タブ) HTTP バインティングを再生成する場合は以下の作業を実施する - 右クリック -> Remove Binding - 右クリック -> Generate Binding - Binding Type (SOAP 1.1/HTTP または SOAP 1.2/HTTP) と URL を指定 Service Input のプロパティー・ビュー SOAP Input を HTTP トランスポートで 使用するのに必要な設定を実施する ※ゲートウェイモードは使用できない ※JMS トランスポートは使用できない 56 2.サービス操作を定義する Interface タブで以下の定義を編集する サービス操作の追加、削除、編集 –サービス操作の Input, Output の追加、削除、編集 9型が複合型の場合はプロジェクトが参照できる所に XML スキーマを用意する必要ある –Fault の追加、削除、編集 サービス操作を追加、削除 サービス・エディター(Interface タブ) サービス操作の編集 サービス・エディター(Overview タブ) •サービス操作名の設定 •Input, Output の追加削除 •Input, Output 名の設定 •Input, Output の型の設定 57 3.サービス操作を実装する 各サービス操作とエラー処理サブフロー(Failure、Timeout、Catch)を実装する サブフローは入力と出力だけの空の状態で生成される サービス・エディター 各サービス操作のサブフロー 処理ロジックを 実装する 各エラー処理(Failure、Timeout、Catch)のサブフロー ※各サブフローは以下のようにメインフローの SOAP ノードのターミナルと接続されている(メインフローは次ページを参照) サブフロー Input の接続元 Output の接続先(Fault を含む) サービス操作 SOAP Input の Out -> Route to Label Failure SOAP Input の Failure Timeout SOAP Input の HTTP Timeout Catch SOAP Input の Catch 58 SOAP Reply の In 3.サービス操作を実装する (補足)サービス作成時には以下のメインフローが自動生成されている ※このメインフローはユーザーが直接編集することは想定されていない Web サービスのメインフロー Failure サブフロー Timeout サブフロー Catch サブフロー サービス操作 サブフロー 定義されたサービス操作の数によって複数作られる 59 DFDL の機能強化 60 DFDL の機能強化 Cヘッダー・ファイルのインポート 既存のCヘッダー・ファイルをもとにDFDLスキーマ・ファイルを作成可能 V8.0 GA版ではCOBOLコピー句のみサポート Cヘッダー・ファイル用の「新規メッセージ・モデル」ウィザードを提供 V6.0から存在する制約あり Technote「Known issues when importing C header files」 –http://www-01.ibm.com/support/docview.wss?uid=swg21219996 ISO8583のサンプル提供 業界標準フォーマットであるISO8583を使用したサンプルを提供 金融取引で使用される電子メッセージの標準規格 ISO8583用のDFDLスキーマ・ファイルを含む 61 (補足)DFDL サポート V8からDFDL(Data Format Description Language)というオープンなモデリング標準をサポート XML Schema 1.0をベースにした、データ構造のモデリング言語 XMLスキーマを固定長やタグ区切り文字などの非XMLデータ・フォーマットを扱うように拡張した規格 データフォーマットや、製品によりバラバラだった、データのモデリング方法を統一 DFDLに準拠したツール間での開発物の互換性 OGF (Open Grid Forum)で規定 http://www.ogf.org/dfdl/ DFDLスキーマ・エディタを新規に提供 DFDLスキーマ・ファイルを定義するためのエディタ 主にNon-XMLメッセージ・フォーマットを定義 XMLは通常のXML スキーマで定義 様々なデータ・フォーマットのモデル化が可能 コンマ区切り(CSV) レコード ユーザー定義のテキストまたはバイナリーデータ COBOLデータ構造 など DFDLパーサーの使用を推奨 標準規格への対応 開発容易性を高めるモデリング・ツールを提供 ツールキット上でのデータ・モデルのテスト機能を提供 62 Cヘッダー・ファイルのインポート手順 「新規メッセージ・モデル」ウィザードを使用 「ブローカー・アプリケーションの開発」パースペクティブの「ブローカー開発」ビューを右クリック⇒「新規」⇒「メッセージ・モデル」を選択 「C (Cプログラムのデータ)」を選択 63 Cヘッダー・ファイルのインポート手順 「Cヘッダー・ファイルをインポートすることによりDFDLスキーマ・ファイルを作成する」を選択 インポート先のアプリケーション/ライブラリーや インポート元のソース・ファイルを指定する 64 Cヘッダー・ファイルのインポート手順 稼働環境に依存する物理プロパティを指定する インポートする構造を指定する 65 Cヘッダー・ファイルのインポート手順 インポートした構造体がDFDLエディターで表示される 作成されたスキーマ・ファイル 66 マッピング情報のエクスポート 67 マッピング情報のエクスポート Compute ノードからマッピング情報(CSV ファイル)をエクスポートできる CSV ファイルは影響分析やデータ来歴の追跡および管理できる製品にインポート可能 IBM® InfoSphere® Metadata Workbench 以下の文書をエクスポート可能 マッピング CSV ファイル(ESQL のマッピング処理情報に相当) データ・ソース CSV ファイル(メッセージ定義情報に相当) マッピング・リジェクト・ファイル マッピングできない ESQL 変換が出力されるファイル 68 マッピング情報のエクスポート 以下の手順でマッピング情報をエクスポートする プロジェクトを右クリック -> 新規 Æデータ・リネージュ文書 以下を指定して、「終了」を選択 ・ソース・プロジェクト ・エクスポートする文書のタイプ ・宛先フォルダーの選択 宛先フォルダーにファイルが出力される 69 マッピング情報のエクスポート 注:以下の ESQL 変換の一部のタイプがサポートされない ESQL 変換タイプ モデル化されないコンテンツ 環境変数 リテラルを使用するマッピング 1 つ以上のワイルドカードを含む ESQL パス。 ユーザー定義のメッセージ・パー サー・ドメイン 説明 アプリケーション、ライブラリー、またはメッセージ・セットでスキーマ定義を 位置指定できない ESQL パス。 ウィザードからの出力 .reject ファイルにリストされます。 環境変数で指定されるパスは、モデル化されるコンテンツに含めることが .reject ファイルにリストされます。 できません。 ソースとターゲットの両方は、参照スキーマで定義されるモデル化されるコ 無視されます。 ンテンツである必要があります。 .reject ファイルにリストされます。 以下の例では、マッピング定義は作成されません。 SET OutputRoot = InputRoot; SET OutputRoot.XMLNSC.* = InputRoot.MRM.*; SET OutputRoot.XMLNSC.*.X = InputRoot.XMLNSC.*.X; マッピング定義は、WebSphere® Message broker V7x または V8.0 無視されます。 で提供されるパーサー・ドメインの場合のみ生成されます。 ヘッダー、プロパティー、 ソースとターゲットの両方は、参照スキーマで定義されるモデル化されるコ .reject ファイルにリストされます。 LocalEnvironment のマッピング定 ンテンツである必要があります。 義 xs:any タイプであるエレメントまたは xs:any タイプを使用するマッピング定義はサポートされません。 .reject ファイルにリストされます。 属性を使用するマッピング・パス 再帰構造を持つデータ・モデル データ定義における再帰構造はサポートされません。 拡張データ・ソース文書は作成されま せん。 ネストされた属性グループ参照を使 データ定義におけるネストされた属性グループ参照はサポートされません。データ・モデルにおけるネストされた属性 用するデータ・モデル グループ参照は、拡張データ・ソース文 書に存在しません。 70 JAXB サポート 71 JAXB サポート Java ComputeノードでJAXBを使用したデータ操作が可能 JAXB 2.0スキーマ・コンパイラーをGUIおよびCUIの形式で提供 CUIはWMB Toolkitに同梱されたJDKに付属のxjcコマンドを利用 Java アプリケーションがメッセージ・データのモデルを Java オブジェクト・クラスとして処理可能 WMB Toolkit上でオートコンプリートによるJavaコード補完を利用可能 Java開発者向け –WMBのメッセージ・ツリー構造を深く理解する必要無しに利用可能 –従来はメッセージ・ツリーを意識したPATHによる指定が必要 (参考) JAXB (Java Architecture for XML Binding) XML Schemaで表現されたデータ構造をJavaオブジェクトに変換するためのJava標準仕様 Java SE 1.6 以降で利用可能 .xsd XML Schema .java WMB Toolkit JAXBオブジェクト・クラス XJC コマンド・ツール ランタイムにて、JAVA Computeノードから利用可能 72 JAXB サポート JAXB Javaオブジェクト・クラスの生成 (GUIによる操作手順) ウィザードによってJAXB Javaオブジェクトクラスを生成することが可能 ① ② ① ① 生成対象のスキーマファイルを右クリックし、 コンテキストメニューから「Generate JAXB Java Object Classes」を選択 ② 生成先のJavaプロジェクトおよびパッケージを指定 ③ ①で指定した宛先にJAXBオブジェクト・クラスが自動生成される ③ ※CUIを利用する場合、WMB Toolkitに付属のJDKに同梱されたxjcコマンドを使用する WMB Toolkitに付属のxjcコマンドは RootInstallationDirectory¥WMBT800¥jdk¥bin に格納 73 JAXB サポート Java Compute ノードからJAXBオブジェクト・クラスを生成する方法 新規Java Computeノードの実装時に選択可能なテンプレートにJAXBが追加された MbJavaComputeNodeクラスの実装雛形クラスを自動生成することが可能 生成されたJAXBオブジェクト・クラスは通常のJAXB呼び出しと同様に利用可能 未実装のノードをダブルクリックして ウィザードを起動 以下の情報を指定 • パッケージ • 名前(クラス名) • スーパークラス • インターフェース 74 JAXB サポート 「Java Architecture for XML Binding (JAXB)クラスを介したプロセス」を選択 「Generate JAXB Java Object Classes from Message Model Schema for use in the Java Compute Node Class」 XMLスキーマから新規にJAXBスキーマオブジェクトを生成する場合に選択 「メッセージ・スキーマ」「ターゲットJavaプロジェクト」「ターゲットJavaパッケージ」の指定が必要 「Reference existing JAXB Java Object Classes for use in the Java Compute Node Class」 既存のJAXBオブジェクト・クラスを使用する場合に選択 「Source Java Project」「Source Java Package」の指定が必要 75 JAXB サポート Javaのビルド情報を指定 新規作成するJAXBオブジェクト・クラスを格納するJava計算ノード・ プロジェクトの情報を指定して「終了」 76 JAXB サポート JAXBによるメッセージ操作方法 (従来の方法との比較) 従来のJava計算ノードの場合 JAXBを使用した計算ノードの場合 メッセージへのアクセス メッセージへのアクセス メッセージ・データの操作 メッセージ・データの操作 中略 中略 77 Compute ノードの機能拡張 78 Compute ノードの機能拡張 ESQLからJava メソッドを使用する際に、Java クラス・ローダーを指定可能 LANGUAGE JAVA節 を使用してJava メソッドを指定する際、CLASSLOADER文節で JavaClassLoader 構成可能サービスを指定することが可能 補足 JavaClassLoader構成可能サービスでは、 実行グループ・クラス・ローダーと共有クラス・ローダーの ロード元をユーザーが任意に指定できる 対象は以下のステートメント CREATE FUNCTION CREATE PROCEDURE CREATE FUNCTION myMethod1 ( IN P1 INTEGER, IN P2 INTEGER ) RETURNS INTEGER LANGUAGE JAVA EXTERNAL NAME "com.ibm.broker.test.MyClass.myMethod1" CLASSLOADER "myClassLoader"; 構成可能サービスを指定しない場合(デフォルト)は、実行グループ・ クラス・ローダーが BARファイルによってデプロイされたJARからクラスをロード 対象のクラスが存在しない場合は、共有クラス・ローダーが各shared-classes 79 ディレクトリーからロード .NET 機能の拡張 80 .NET 機能の拡張 .NETアプリケーション・ドメインによる関連リソースのパッケージ化が可能 .NET アプリケーション・ドメインは、.NET関連リソース用のコンテナ .NETアセンブリー(.dllファイル)などを格納可能 .NET アセンブリーおよびその他の関連リソースを BAR ファイルにパッケージ化可能 複数アプリケーションにて、.NET関連リソースを共有可能 V8.0GA版では、BARファイルとは別に.NETアセンブリーを実行環境にデプロイする必要があった –ブローカーは.NET アセンブリーをファイル・システムから直接ロード V8.0.0.1では、BARファイルにパッケージされたアセンブリーもロード可能 (補足) .NETサポート V8.0GA版にて、新規に.NETサポートが追加 ノードの追加 C#、Visual Basic (VB)、F#、C++/CLI (Common Language Infrastructure) など、共通言語ランタ イム (CLR) に準拠する任意の言語を使用してメディエーション処理の実装が可能 Microsoft Visual Studio 2010 と統合可能 .NETCompute –ツールキットからVisual Studioを起動できる .NET メソッドを ESQL から直接呼び出すことも可能 81 .NET 機能の拡張 .NETアプリケーション・ドメインの使用方法 .NETComputeノードから.NETアプリケーション・ドメインのアセンブリを読み込む例 .NETアプリケーション・ドメインの作成 「ファイル」→「新規」→「その他」→「.NETプロジェクト」 .NETアセンブリーをインポート .NETアセンブリーをインポート .NETプロジェクト名を指定 82 .NET 機能の拡張 .NETアセンブリーから、.NETComputeノードを作成 .NETアプリケーション・ドメインにて、.NET関連リソースをパッケージ キャンバスにドラッグ&ドロップ 83 ドロップダウンより使用するクラスを指定 => .NETComputeノードが配置される .NET 機能の拡張 アセンブリー名の確認とアプリケーション・ドメインの設定 .NETアプリケーション・ドメインから アセンブリー名が自動的に設定される .NETComputeノードのプロパティ「拡張」タブにて AppDomain名を指定 84 .NET 機能の拡張 BARファイルへ.NETアプリケーション・ドメインをパッケージ 85 blank 86 接続性の強化 87 内容 グローバル・キャッシュ JDBCProviderの新規プロパティ グラフィカル・データ・マッピングの機能強化 SOAP ノードのブローカー・リスナー・サポート HTTP 非同期要求/応答 外部Webサーバー・サポートの拡張 FileOutputノードの拡張 Java 共有クラス・ローダー 88 グローバル・キャッシュ 89 グローバル・キャッシュ 複数プロセス間でデータを共有可能な機能として、グローバル・キャッシュを提供 異なる実行グループや異なるブローカー上のメッセージ・フロー間でデータの共有/再利用が可能 WebSphere eXtreme Scaleから、キャッシングの一部機能を移植 データ共有のためのデーターベースなどの代替ソリューションが不要 複数ブローカーでのリクエスト/リプライ処理や、参照データのキャッシュなどに活用可能 キャッシュされたデータを実行グループに複製して保持することで、障害時のデータロスを防止 JavaComputeノードを使用して、グローバル・キャッシュへアクセス キーと値を関連付けるマップ形式でデータを保持 mqsicacheadminコマンド、リソース統計、アクティビティー・ログにてキャッシュ情報を確認可能 ブローカーA メッセージフローA メッセージフローB 異なる実行グループ間でデータを共有 グローバル・キャッシュ マップ形式でデータを保存 異なるブローカー間でデータを共有 ブローカーB メッセージフローA 90 キー 値 Key1 Value1 Key2 Value2 Key3 Value3 グローバル・キャッシュ グローバル・キャッシュの活用シナリオ: リクエスト/リプライ処理 異なるブローカー(実行グループ間)で、リクエスト/リプライの紐付け情報を共有 ワークロード・バランシングのため、異なるブローカーで処理を分散(バックエンドとはMQで通信) リクエスト時、リクエスト元の情報をグローバル・キャッシュに保存 バックエンド・システムは、リクエスト元を意識せず、応答を返信 メッセージ・フローは、グローバルキャッシュのリクエスト/リプライ紐付け情報をもとに応答を返却 ブローカーA メッセージフロー クライアント グローバル・ キャッシュ ブローカーB バックエンド・ システム メッセージフロー バックエンドはリクエストを 意識せず応答 異なるブローカーへのリクエストに対し、 適切なクライアントへ応答 91 リクエスト元を判別してリプライ グローバル・キャッシュ グローバル・キャッシュの活用シナリオ: 静的データのキャッシュ バックエンドシステムの静的データの問い合わせをグローバル・キャッシュに保存 問い合わせ時、キャッシュに問い合わせデータが保存されていた場合、キャッシュのデータを返す キャッシュに問い合わせデータがない場合、バックエンド・システムに問い合わせ結果をキャッシュに保存 バックエンド・システムへのアクセスを最小化し、参照時の応答性能を改善 応答データをキャッシュに保存 クライアント ブローカーA メッセージフロー 参照 バックエンド・ システム キャッシング グローバル・ キャッシュ キャッシュにヒットした場合は、 キャッシュのデータを返す 92 データベース グローバル・キャッシュ グローバル・キャッシュを利用するために必要なキャッシュ・コンポーネント コンポーネント 説明 コンテナ・サーバー グローバル・キャッシュのデータを保持するコンポーネント カタログ・サーバー コンテナ・サーバーのロケーション情報を管理するコンポーネント コンテナ・サーバーをモニターし、データの配置を制御 メッセージフローは、カタログ・サーバーからキャッシュ配置情報を取得し、キャッシュにアクセス キャッシュ・コンポーネントは実行グループ上で動作 以下の方針に従い、実行グループにキャッシュ・コンポーネントを配置 キャッシュのデータを複製して格納する場合、コンテナ・サーバーを複数の実行グループに配置 カタログ・サーバーダウン時にも継続してグローバル・キャッシュを利用するためには、カタログ・ サーバーを複数の実行グループに配置 すべてのカタログ・サーバーがダウンすると、グローバル・キャッシュを利用不可 実行グループすべてに、キャッシュ・コンポーネントを配置する必要はない キャッシュ・コンポーネントがない実行グループからでも、グローバル・キャッシュにアクセスすることは可能 実行グループ1 メッセージフロー 実行グループ2 実行グループ3 メッセージフロー カタログ・サーバー カタログ・サーバー コンテナ・サーバー コンテナ・サーバー メッセージフロー 実行グループ4 メッセージフロー グローバル・キャッシュ コンテナ・サーバー 93 キャッシュ・データは複製され、 コンテナ・サーバーに分散して格納される グローバル・キャッシュ グローバル・キャッシュの構成方法 実行グループにキャッシュ・コンポーネントを配置 デフォルトでは、キャッシュ・コンポーネントはOFF キャッシュ・コンポーネントはTCPで通信し合うため、各コンポーネントが使用するホスト/ポートや 接続先情報を設定 以下の方法のいずれかで、グローバル・キャッシュを構成 1. ブローカーによって自動的にキャッシュ・コンポーネントを配置する方法 –ブローカーが自動的にキャッシュ・コンポーネントを配置(デフォルト・トポロジー(後述)) –ホスト/ポートや接続先情報も自動的に設定 –個々の実行グループでの、設定変更は不可 –1ブローカー内での実行グループ間でグローバル・キャッシュを構成する場合にのみ有効 2. ユーザーがキャッシュ・コンポーネントの配置を任意に指定する方法 –実行グループごとに、配置するキャッシュ・コンポーネントとホスト/ポートや接続先情報を設定 3. ポリシー・ファイルにて構成を指定する方法 –ポリシー・ファイルにキャッシュ・コンポーネントを構成するブローカーとカタログ・サーバー数を設定 –カタログ・サーバー数を除く各ブローカーの構成は、方法1. (デフォルト・トポロジー)と同様に構成される (ブローカーが自動的にキャッシュ・コンポーネントの配置、ホスト/ポートや接続先情報を設定) –複数ブローカーでキャッシュ・コンポーネントを構成する場合は、ポリシー・ファイルでの構成が必須 94 グローバル・キャッシュ デフォルト・トポロジーとは ブローカーによって自動的にキャッシュ・コンポーネントが配置された構成 単一ブローカーに、カタログ・サーバーとコンテナ・サーバーを実行グループに配置 デフォルト・トポロジーの構成 ブローカー内の1 実行グループに、カタログ・サーバーとコンテナ・サーバーを配置 その他実行グループに、コンテナ・サーバーのみを配置 –ただし、コンテナ・サーバー数の合計は最大4つまで デフォルト・トポロジーの構成ルール ブローカー内で最初に起動された実行グループに、カタログ・サーバーおよびコンテナ・サーバーが構成される 番目に起動された実行グループに、コンテナ・サーバーが構成される 5番目以降に起動された実行グループには、カタログ・サーバーへの接続情報のみ設定される 2 番目、3 番目、または 4 番目の実行グループを停止した場合、 停止した実行グループのコンテナ・サーバーは、次に起動する実行グループに割り当てられる 2∼4 95 グローバル・キャッシュ ブローカーに対しグローバル・キャッシュの構成方法を指定 ブローカーの「キャッシュ・ポリシー」プロパティに指定 1. ブローカーによって自動的にキャッシュ・コンポーネントを配置する方法 ⇒ 「default」に設定 2. ユーザーがキャッシュ・コンポーネントの配置を任意に指定する方法 ⇒ 「none」に設定 3. ポリシー・ファイルにて構成を指定する方法 ⇒ 「ポリシーファイルの絶対パス」に設定 具体的な設定方法は、以降の各構成手順にて記載 96 グローバル・キャッシュ 1. ブローカーによって自動的にキャッシュ・コンポーネントを配置する方法 ブローカー・プロパティにて以下を設定 キャッシュ・ポリシーを「default」に設定 キャッシュ・コンポーネントが使用するポート範囲を指定 –xxxx-yyyy 形式で指定し、範囲には少なくとも 20 個のポートを含めることが必要(デフォルト 2800-2819) –「generate」を指定した場合、 2800 から始まる使用されていないポートが使用される ブローカー実行環境のホスト名または IP アドレスを指定 –コンピューターに複数のホスト名がある場合に指定 キャッシュ・コンポーネントが使用するホスト/ポートや接続先情報は、設定したポート範囲とホスト名に基づ き自動的に設定される mqsichangebroker もしくはmqsichangepropertiesにてブローカー・プロパティを設定 mqsichagebrokerでの設定 (ブローカー停止後コマンドを実行) でキャッシュポリシーを指定 -r でキャッシュ・コンポーネントが使用可能なポートの範囲を指定 キャッシュ・ポリシー「default」とポート範囲「2809-2829」を設定する例 -b mqsichangebroker broker_name -b default -r 2809-2829 ※キャッシュ・コンポーネントを配置する実行グループのホスト名またはIP アドレスを指定する場合は、 mqsichangepropertiesコマンドを使用 97 グローバル・キャッシュ mqsichangepropertiesコマンドでの設定 で「cachemanager 」を指定、-oで「CacheManager」 を指定 -n -v で関連プロパティーを設定 -b プロパティ 説明 policy キャッシュ・ポリシーを指定 portRange ポートの範囲を指定 listenerHost ホスト名または IP アドレスを指定 コマンド実行後、ブローカーを再起動 キャッシュ・ポリシー「default」、ポート範囲「2809-2829」、ホスト「hostname1」を設定する例 mqsichangeproperties broker_name -b cachemanager -o CacheManager -n policy,portRange,listenerHost -v default,2809-2829,hostname1 mqsireportproperties にて設定を確認 -bで「cachemanager」 を指定、 -oで「CacheManager 」を指定 -r を指定 mqsireportproperties broker_name -b cachemanager -o CacheManager -r 以上で、デフォルト・トポロジーの構成ルールにもとづきキャッシュ・コンポーネントが構成される 98 グローバル・キャッシュ エクスプローラーでの定義例 ブローカー設定 ブローカー名を右クリック →プロパティ→グローバル・キャッシュ 99 グローバル・キャッシュ 2. ユーザーがキャッシュ・コンポーネントの配置を任意に指定する方法 ブローカー・プロパティにて以下を設定 キャッシュ・ポリシーを「none」に設定 実行グループのプロパティーにて以下を設定 対象の実行グループへのカタログ・サーバー/コンテナ・サーバーの配置有無 キャッシュ・コンポーネントが使用するホスト/ポートや接続先情報 mqsichangebroker もしくはmqsichangepropertiesにてブローカー・プロパティを設定 mqsichagebrokerでの設定 (ブローカー停止後コマンドを実行) -b で「none」を指定 mqsichangebroker broker_name -b none mqsichangepropertiesコマンドでの設定 で「cachemanager 」を指定、-oで「CacheManager」 を指定 -n で「policy」 -v で「none」を指定 コマンド実行後、ブローカーを再起動 -b mqsichangeproperties broker_name -b cachemanager -o CacheManager -n policy -v none 100 グローバル・キャッシュ mqsichangepropertiesにて実行グループのプロパティーを設定 -bでcachemanagerを指定、-oでComIbmCacheManager を指定 -n -v で関連プロパティーを設定 カタログ・サーバー/コンテナ・サーバーを配置する実行グループに以下を指定 プロパティ 説明 enableCatalogService カタログ・サーバーを配置する場合 true を指定(デフォルト: false) enableContainerService コンテナ・サーバーを配置する場合 true を指定(デフォルト: false) コンテナ・サーバー/カタログ・サーバーを配置する実行グループにて、以下のホスト/ポートを設定 プロパティ 設定が必要なコンポーネント 説明 listenerPort カタログ・サーバー/コンテナサーバー カタログ・サーバーおよびコンテナサーバーが使用するポートを 指定 listenerHost カタログ・サーバー/コンテナサーバー ローカル・コンピューターのホスト名を指定 2つ以上ホスト名を持つ場合に指定 haManagerPort カタログ・サーバー/コンテナサーバー カタログ・サーバーおよびコンテナサーバーが使用するポートを 指定 catalogClusterEnd Points カタログ・サーバー カタログ・サーバーが使用するエンドポイントを指定 複数のカタログ・サーバーが存在する場合は、コンマ区切りで リスト ※エンドポイントの指定方法は次頁 101 ※各ポートはそれぞれ固有の番号を指定 グローバル・キャッシュ ※カタログ・サーバーが使用するエンドポイントの指定方法 –以下の形式で指定 ServerName:listenerHost:CatalogPeerPort:haManagerPort haManagerPortプロパティ設定したポート番号を指定 新たにポート番号を指定 listenerHostプロパティで設定したホスト名を指定 BrokerName_listenerHost_listenerPort 形式で指定 ・BrokerName: ブローカー名 ・listenerHost: listenerHostプロパティで設定したホスト名を指定 ・listenerPort: listenerPortプロパティで設定したポート番号を指定 catalogClusterEndPointsの設定例 –他プロパティにて以下を設定した場合 ブローカー名: MBV8BK、listenerHost: localhost、listenerPort: 2809、haManagerPort: 2810 –CatalogPeerPortの指定:2811 catalogClusterEndPointsの指定 ⇒ MBV8BK_localhost_2809:localhost:2811:2810 102 グローバル・キャッシュ カタログ・サーバーへの接続情報を設定 グローバル・キャッシュにアクセスするすべての実行グループで設定が必要 プロパティ 説明 connectionEndPoints 接続先カタログ・サーバーホスト名、ポート番号を指定 複数のカタログ・サーバーが存在する場合は、コンマ区切りでリスト 設定形式: listenerHost:listenerPort, listenerHost2:listenerPort2 mqsicacheadmin コマンドでグローバル・キャッシュ情報を取得する場合、以下を設定 プロパティ 説明 enableJMX 実行グループがグローバル・キャッシュの管理情報を提供するどうかを指定 jmxServicePort enableJMX パラメーターが true に設定される場合、使用されるポート mqsireportproperties にて設定を確認 -o で「ComIbmCacheManager」 を指定 -r を指定 mqsireportproperties broker_name -e execution_group_name -o ComIbmCacheManager -r 103 グローバル・キャッシュ 構成例: 1ブローカーにグローバル・キャッシュを構成 ホスト名: server1 ブローカー BK1 EG1 EG2 EG3 カタログ・サーバー コンテナ・サーバー EG1でのプロパティ設定 ・enableCatalogService: true ・enableContainerService: true ・listenerPort: 2809 ・listenerHost: server1 ・haManagerPort: 2810 ・catalogClusterEndPoints: BK1_server1_2809:server1:2811:2810 ・connectionEndPoint: server1:2809 コンテナ・サーバー EG2でのプロパティ設定 ・enableCatalogService: false ・enableContainerService: true ・listenerPort: 2812 ・listenerHost: server1 ・haManagerPort: 2813 ・connectionEndPoint: server1:2809 EG3でのプロパティ設定 ・enableCatalogService: false ・enableContainerService: false ・connectionEndPoint: server1:2809 実行グループEG1にプロパティ設定を設定するコマンド例 mqsichangeproperties BK1 -e EG1 -o ComIbmCacheManager -n enableCatalogService,enableContainerService,listenerPort,listenerHost,haManagerPort ,catalogClusterEndPoints,connectionEndPoints -v true,true,2809,server1,2810, BK1_server1_2809:server1:2811:2810,server1:2809 104 グローバル・キャッシュ エクスプローラーでの定義例 実行グループ設定 実行グループ名を右クリック →プロパティ→グローバル・キャッシュ 105 グローバル・キャッシュ 3. ポリシー・ファイルにて構成を指定する方法 ブローカー・プロパティにて以下を設定 キャッシュポリシーに「ポリシー・ファイルの絶対パス」を設定 キャッシュ・コンポーネントが使用するホスト/ポートや接続先情報は、ポリシー・ファイルに設定したポート範囲 とホスト名に基づき自動的に設定される 複数ブローカーにキャッシュ・コンポーネントを配置する場合は、各ブローカーに同一のポリシー・ファイルを 指定 ポリシー・ファイルに構成をあらかじめ記述 グローバル・キャッシュを構成するブローカー名、各ブローカーに属するカタログ・サーバー数、 各ブローカーが使用するポート範囲とリスナー・ホストを指定 –ポート範囲には、少なくとも 20 個のポートを含めることが必要 サンプル・ポリシー・ファイルを <導入ディレクトリ>/sample/globalcache に提供 3つの構成サンプルを提供 –2つのブローカーが、片方のブローカーに配置されるカタログ・サーバーを共用する構成 –2つのブローカーにそれぞれカタログ・サーバーを配置する構成 –単一のブローカーに2つのカタログ・サーバーを配置する構成 106 グローバル・キャッシュ ポリシーファイルの設定例 2ブローカーにキャッシュ・コンポーネントを配置 各ブローカーにカタログ・サーバーを配置 各ブローカーにおける、実行グループへのコンテナ・サーバーの配置とホスト/ポート接続先情報は、 デフォルト・トポロジーと同様自動的に設定される <?xml version="1.0" encoding="UTF-8"?> <cachePolicy xmlns="http://www.ibm.com/xmlns/prod/websphere/messagebroker/globalcache/policy1.0"> <broker name="BK1" listenerHost= server1"> <catalogs>1</catalogs> <portRange> <startPort>3000</startPort> <endPort>3019</endPort> </portRange> </broker> <broker name="BK2" listenerHost= server2"> <catalogs>1</catalogs> <portRange> <startPort>3020</startPort> <endPort>3039</endPort> </portRange> </broker> </cachePolicy> 107 ブローカー名と自身のホスト名を指定 カタログ・サーバー数を指定 使用するポート範囲を指定 グローバル・キャッシュ mqsichangebroker もしくはmqsichangepropertiesにてブローカー・プロパティを設定 mqsichagebrokerでの設定 (ブローカー停止後コマンドを実行) -b で「ポリシーファイルの絶対パス」を指定 mqsichangebroker broker_name -b /path/policy.xml mqsichangepropertiesコマンドでの設定 で「cachemanager 」を指定、-oで「CacheManager」 を指定 -nで「policy」 -v で「ポリシー・ファイルの絶対パス」を設定 -b コマンド実行後、ブローカーを再起動 mqsichangeproperties broker_name -b cachemanager -o CacheManager -n policy -v /path/policy.xml 108 グローバル・キャッシュ グローバルキャッシュへのアクセス JavaCompute ノードを使用してグローバル・キャッシュのデータへアクセス データはマップ形式でグローバル・キャッシュに格納される マップは、キーを値に対応させるデータ構造 MbGlobalMap オブジェクトを使用してマップを操作 SYSTEM.BROKERから始まる名前以外の、任意の名前をマップに指定可能 –デフォルト・マップの名前は SYSTEM.BROKER.DEFAULTMAP マップを取得する際、マップが存在しない場合は自動的に作成される マップに対する操作 データの書き込み、取得、更新、削除が可能 マップ操作は、メッセージ・フロー・トランザクションの外部で発生し、直ちにコミットされる –後続のノードで例外が発生した場合でも、キャッシュ操作はロールバックされない MbGlobalMapオブジェクトを使用して、 グローバル・キャッシュのデータにアクセス グローバル・キャッシュ メッセージフロー キー キー キー PUT MbGlobalMap GET 109 値 値 値 グローバル・キャッシュ グローバルキャッシュへのアクセスコード例 キャッシュへのデータ格納 メッセージIDをキーにMQMDをキャッシュに格納する例 MbMessage message = assembly.getMessage(); String msgId = message.getRootElement().getFirstElementByPath("/MQMD/MsgId").getValueAsString(); byte[] mqmd = message.getRootElement().getFirstElementByPath("/MQMD").toBitstream( null, null, null,0, 0, 0); メッセージIDを取得 MQMDを取得 メッセージIDをキーに MQMDをキャッシュに保存 MbGlobalMap globalMap = MbGlobalMap.getGlobalMap("MyMap"); globalMap.put(msgId, mqmd); キャッシュからデータ取得 CorrelIDを取得 CorrelIDをキーにキャッシュからMQMDを取得する例 String correlId = message.getRootElement().getFirstElementByPath("/MQMD/CorrelId").getValueAsString( ); MbGlobalMap globalMap = MbGlobalMap.getGlobalMap("MyMap"); byte[] retrieveMQMD = (byte[]) globalMap.get(correlId); if (retrieveMQMD == null) { エラー処理 } 110 CorrelIDをキーに MQMDをキャッシュから取得 グローバル・キャッシュ グローバル・キャッシュ情報の取得 mqsicacheadmin コマンド グローバル・キャッシュ関する情報を取得可能 –マップのサイズ、キャッシュを保存しているホストなど マップからデータを消去することが可能 mqsicacheadmin コマンドの出力例 mqsicacheadmin broker_name -c placementServiceStatus > mqsicacheadmin V8BK -c placementServiceStatus Configuration related values Name Value Messages --------------placementStrategy FIXED_PARTITIONS numInitialContainers 1 minSyncReplicas 0 developmentMode true Runtime related values Name ---numContainers numMachines numOutstandingWorkItems Value Messages ----- -------3 1 0 111 グローバル・キャッシュ mqsicacheadmin broker_name -c showMapSizes > mqsicacheadmin V8BK -c showMapSizes *** WMB データ・グリッドおよび mapSet マップ・セットの結果を表示します。 合計カタログ・サービス・ドメイン数: 0 (0 B) アクティビティー・ログ グローバル・キャッシュの操作、キャッシュ・コンポーネントの開始/停止などを取得可能 リソース統計 グローバル・キャッシュに関するリソース統計データを取得可能 取得可能なグローバル・キャッシュのリソース情報 レコードの検出 種別 説明 ConfigurableService キャッシュへの接続に使用される構成可能サービスの名前 ConnectionFailures この実行グループから指定キャッシュへの接続試行のうち、失敗した回数 Connects グループから指定キャッシュへの接続試行のうち、正常に確立された回数 FailedActions 指定キャッシュのこの実行グループのメッセージ・フローによるマップ操作のうち、失敗した回数 MapReads 指定キャッシュのこの実行グループのメッセージ・フローによって完了された読み取り操作の総数 MapRemoves 指定キャッシュのこの実行グループのメッセージ・フローによって完了された削除操作の総数 MapsUsed 指定キャッシュのこの実行グループのメッセージ・フローによって使用されたマップの総数 MapWrites 指定キャッシュのこの実行グループのメッセージ・フローによって完了された書き込み操作の総数 112 グローバル・キャッシュ グローバル・キャッシュの考慮点 カタログ・サーバーが停止すると、グローバル・キャッシュが使用不可となる カタログ・サーバー再起動後も、コンテナサーバーとの通信は不可 カタログ・サーバー再起動後、コンテナ・サーバーが配置された実行グループも再起動が必要 ⇒カタログ・サーバーのダウン時にキャッシュを継続するには、複数のカタログ・サーバーを構成 一方のカタログ・サーバーがダウン時、ブローカーは他方のカタログ・サーバーに切り替え カタログ・サーバーを複数構成した場合、キャッシュ・コンポーネントの起動に時間がかかる ⇒必要以上にカタログ・サーバー数を増やさない キャッシュのサイズ キャッシュにデータをため続けると、メモリ消費量が増大 不要なデータは、アプリケーションの中でremoveするか、mqsicacheadminコマンドで定期的に削除 –一定時間たったキャッシュ・データを削除といった機能はない 113 JDBCProviderの新規プロパティ 114 JDBCProviderの新規プロパティ JDBCProviderサービスにXAの使用を制御するプロパティが追加 jdbcProviderXASupport プロパティ ブローカーが XA プロトコルを使用してデータベースに接続するかどうかを制御するプロパティー –XAを使用しないデータベース接続のときにXA用のクラスがロードされることを防ぐための設定 データベースが XA サポートに対応していない場合、またはグローバル整合トランザクションが必要ではない 場合は、false に設定(デフォルトは、true) –falseの場合、type4DatasourceClassName プロパティーに指定されたXA用のデータソース・クラスではなく、 type4DriverClassName プロパティーに指定された通常のデータソース・クラスが使用される (補足) 9type4DatasourceClassNameプロパティーには、XA用のJDBCデータソース・クラスを指定 DB2では com.ibm.db2.jcc.DB2XADataSource Oracleでは oracle.jdbc.xa.client.OracleXADataSource 9type4DriverClassName プロパティーには、通常のJDBCデータソース・クラス名を指定 DB2 では com.ibm.db2.jcc.DB2Driver Oracle では oracle.jdbc.OracleDriver –falseに設定した場合、メッセージフローの「整合トランザクション」プロパティは設定しないこと mqsichangepropertiesコマンド、もしくはmqsicreateconfigurableserviceコマンドでJDBCProvider サービスの当プロパティを設定 115 グラフィカル・データ・マッピング の機能強化 116 グラフィカル・データ・マッピングの機能強化 グラフィカル・データ・マッピング・エディターを使用して、データベース表のデータ行の挿入、 更新、削除が可能に V8.0GA版までは参照のみが可能 データベースアクセスを構成するウィザードが提供される データベース名や構造はデータベース定義ファイル (.dbm ファイル) を利用 マッピング・エディター アイコンをクリックしてウィザードを起動 アイコン 説明 データベースから行を選択します (既存) データベースへ行を挿入します データベースの行を更新します データベースから行を削除します データベースへのアクセス情報、抽出条件を指定 117 DBアクセス用のマップが生成 SOAP ノードの ブローカー・リスナー・サポート 118 SOAPノードのブローカー・リスナー・サポート SOAPノードでブローカー・レベルのHTTPリスナーが使用可能 V8.0GA以前は実行グループ・レベルのHTTPリスナーのみ利用可能 実行グループごとにどちらのHTTPリスナーを使用するか指定 デフォルトで使用されるリスナーは従来通り HTTP ノード: ブローカー・リスナー SOAP ノード: 実行グループ・リスナー ブローカー 実行グループ HTTP クライアント 実行グループ リスナー 実行グループ HTTP クライアント ブローカー リスナー NEW ! in V8.0.0.1 119 SOAPノードのブローカー・リスナー・サポート SOAPノードでブローカー・リスナーを利用するための設定 コマンドで設定する場合 (オプション)ブローカー・リスナーが有効になっていることを確認(デフォルトで有効) mqsireportproperties broker_name -b httplistener -o HTTPListener -n startListener 「startListener」プロパティが「true」の場合、有効 明示的に有効にする場合は以下で設定 mqsichangeproperties broker_name -b httplistener -o HTTPListener -n startListener -v true 以下のコマンドで実行グループに対し、ブローカー・リスナーを使用するように設定 mqsichangeproperties broker_name -e execution_group -o ExecutionGroup -n soapNodesUseEmbeddedListener -v false 「soapNodesUseEmbeddedListener」プロパティを「false」に設定することで、 SOAPノードは実行グループ・リスナーではなく、ブローカー・リスナーを使用する 設定を反映させるため、ブローカーを再起動 120 SOAPノードのブローカー・リスナー・サポート MB エクスプローラーから設定する場合 下記の通り設定し、ブローカーを再起動 チェックを外し適用ボタンを押す 実行グループを右クリック ⇒プロパティ 121 HTTP 非同期要求/応答 122 HTTP 非同期要求/応答 HTTP通信でブロック待機なしに非同期応答を受け取ることが可能 メッセージフローはHTTPの応答を待つことなく、後続のメッセージを処理できる HTTPノードを使用する場合: HTTPAsyncRequest/HTTPAsyncResponse HTTP を使用 NEW ! in V8.0.0.1 非同期応答/要求を使用する –応答は別のスレッドの新規トランザクションで受信 SOAPノードを使用する場合: /SOAPAsyncResponse を使用 2種類の方法が選択可能 SOAPAsyncRequest –WS-Addressing を使用する(デフォルトの設定) NEW ! –HTTP 非同期応答/要求を使用する in V8.0.0.1 要求送信と受信が 別スレッドで処理される 実行グループ フロー フロー 123 Web サーバー HTTP 非同期要求/応答 HTTPAsyncRequestノード 非同期にリモートのHTTPサーバー呼び出しを実施 サーバー応答を待たずに、後続処理を継続 -Failure -Out ノード・プロパティ タブ 説明 説明 ノード名、ノードの説明 基本 「固有ID」 「Web サービス URL」 「要求タイムアウト」 レスポンス・フローと紐付けるため、ペアのHTTPAsyncResponseノードと同じ値を設定 宛先URL。入力メッセージに以下のいずれかが指定された場合は無視される ・HTTPRequest ヘッダー内の X-Original-HTTP-URL ・LocalEnvironment.Destination.HTTP.RequestURL リクエストに対する応答を待機する時間を設定 HTTP設定 HTTPプロキシー、HTTPメソッドなど、HTTP要求のプロパティーを指定 SSL SSLを使用する場合のプロパティーを指定 拡張 固有のHTTPヘッダーに関する処理を指定 モニター ノードで出力するイベントを指定 124 HTTP 非同期要求/応答 HTTPAsyncResponseノード HTTPAsyncRequestフローとは別スレッドで非同期にサーバーからの応答を待つ -Failure -Out -Fault -Catch ノード・プロパティ タブ 説明 説明 ノード名、ノードの説明 基本 「固有ID」 応答メッセージの構文解析 応答メッセージのパースに使用するメッセージ定義 処理対象のメッセージ・ドメインは DFDL,XMLNSC,JSON,BLOB,MIME,MRM,XMLNS パーサー・オプション 構文解析のタイミングやHTTPパーサー・オプションを指定 妥当性検査 妥当性検査の有無 モニター ノードで出力するイベントを指定 リクエスト・フローと紐付けるため、ペアのHTTPAsyncRequestノードと同じ値を設定 125 HTTP 非同期要求/応答 タイムアウトについて HTTPAsyncRequest のプロパティーで設定 タイムアウト発生のタイミングによって伝播されるターミナルが異なる HTTP要求の送信時にタイムアウトが発生した場合 ⇒HTTPAsyncRequest の Failure ターミナルに入力メッセージと例外を伝搬 HTTP応答の待機時にタイムアウトが発生した場合 ⇒HTTPAsyncResponse の Failure ターミナルに例外を伝搬(入力メッセージは含まれない) エラー処理について Request TCP/IP によって生成されるエラー:Failure ターミナルに入力メッセージと例外を伝搬 Response TCP/IP によって生成されるエラー:Failure ターミナルに例外を伝搬(入力メッセージは含まれない) 100 から 299 の範囲を除くHTTP 状況コード:Error ターミナルに応答を伝搬 – HTTPRequest ノードの Error 処理と同じ その他 ローカル環境の以下の場所で、BLOB コンテキスト・データを保管できる OutputLocalEnvironment.Destination.HTTP.UserContext – UserContext に保管されるデータは、BLOB 形式 要求ノードと応答ノードのペアは同じ実行グループに含める必要がある 126 外部Webサーバー サポートの拡張 127 外部Webサーバー・サポートの拡張 フロントエンドのWebサーバーに配置可能な構成ファイルを自動生成すること が可能 以下のコンポーネントをサポート Application Server プラグイン Apache mod_proxy WebSphere MBエクスプローラー(またはMessage Broker API)で構成ファイルを生成 HTTP 7080 ブローカー1 HTTPS 443 HTTP クライアント システムA Webサーバー (IHS/Apache) HTTP 7080 Plugin ブローカー2 システムB マージ Webサーバー用 構成ファイル 128 生成 外部Webサーバー・サポートの拡張 MBエクスプローラーによる構成ファイルの出力方法 右クリック 構成ファイルが生成される 出力する構成を選択 129 外部Webサーバー・サポートの拡張 Message Broker API による構成ファイルの出力方法 構成ファイルを出力するstaticメソッドがBrokerProxyクラスに追加された WASプラグイン用の構成ファイルを出力するメソッド public static String generateWASPlugin (Map <BrokerProxy,String> brokerHostMap, long timeoutInMilliseconds) throws ConfigManagerProxyLoggedException Apache mod_proxy モジュール 用の構成ファイルを出力するメソッド public static String generateModProxyPlugin (Map <BrokerProxy,String> brokerHostMap, long timeoutInMilliseconds) throws ConfigManagerProxyLoggedException 130 外部Webサーバー・サポートの拡張 生成された構成ファイルのサンプル WASプラグイン 用の構成ファイル #Uncomment the following section for configuring SSL #LoadModule ibm_ssl_module modules/mod_ibm_ssl.so #SSLProxyEngine on #Keyfile "SET ME TO YOUR KDB FILE" #SSLStashFile "SET ME TO YOUR STASH FILE" #Broker:MB8BROKER Execution Groups: default ProxyPass /Svc01/Svc01 http://win2008r2:7800/Svc01/Svc01 Apache mod_proxy モジュール 用の構成ファイル <?xml version="1.0" encoding="UTF-8"?><Config> <!--PLUGININSTALLROOT MUST BE UNCOMMENTED FOR SSL--> <!--Property Name="PluginInstallRoot" Value="SET ME TO YOUR WEBSPHERE PLUGINS DIRECTORY"/--> <VirtualHostGroup Name="default_host"> <VirtualHost Name="*:80"/> </VirtualHostGroup> <ServerCluster LoadBalance="Round Robin" Name="Cluster_0" RetryInterval="60"> <!--Broker:MB8BROKER Execution Groups: default--> <Server Name="win2008r2_MB8BROKER_7800_http_Server"> <Transport HostName="win2008r2" Port="7800" Protocol="http"/> </Server> </ServerCluster> <UriGroup Name="Group_0"> <Uri Name="/Svc01/Svc01"/> </UriGroup> <Route ServerCluster="Cluster_0" UriGroup="Group_0" VirtualHostGroup="default_host"/> </Config> 131 FileOutputノードの拡張 132 FileOutputノードの拡張 FileOutputノードの拡張 FTP/SFTPサーバーの接続情報を動的に設定可能 V8.0GA版では、接続先の動的設定はできなかった FTE/SFTPサーバーおよびポートをLocalEnvironment.Destination.File.Remote.Serverで指定 –「リモート・サーバーおよびポート」プロパティーをオーバーライド メッセージごとに接続先サーバーを変更することが可能 LocalEnvironmentにてFTP/SFTP転送の前後に実行するFTP/SFTPコマンドを指定可能 以下のLocalEnviornment配下の配列にて、コマンドを指定 –転送前コマンド: LocalEnvironment.Destination.File.Remote.Precommand [n] –転送後コマンド: LocalEnvironment.Destination.File.Remote.Postcommand [n] FTPサーバー FTP/SFTP 接続先FTP/SFTPサーバーを 動的に変更可能 転送前後でFTPコマンドの実行が可能 (転送前) ディレクトリ作成 (転送後) ディレクトリにファイルを移動 ファイル名の変更 など 動的に生成された ディレクトリ 133 FileOutputノードの拡張 FTP、SFTP両方でサポートされるコマンド フィールド名 パラメーター 使用法 RENAME From、To From フィールドで指定されたファイルを、To フィールドで指定されたファイル 名に名前変更 DELETE フィールドの値 DELETE フィールドで指定されたファイルを削除 MKDIR フィールドの値 MKDIR フィールドで指定されたディレクトリーを作成 RMDIR フィールドの値 RMDIR フィールドで指定されたディレクトリーを削除 CD フィールドの値 現行ディレクトリーから、CD フィールドで指定されたディレクトリーに切り替え CDUP パラメーターなし 現行ディレクトリーから親ディレクトリーに切り替え FTPでのみサポートされるコマンド フィールド名 パラメーター 使用法 SITE フィールドの値 SITE FTP コマンドを実行 パラメーターやオプションを含む、実行対象のストリングを指定 QUOTE フィールドの値 QUTE FTP コマンドを実行 実行するパラメーターを含むコマンドを指定。 FTP コマンドにエラーが返る場合に処理を続行する設定 –転送前後コマンドに、フィールド名 IgnoreErrors を追加しtrueを設定 LocalEnvironment/Destination/File/Remote/Postcommand[1]/IgnoreErrors = true; 134 FileOutputノードの拡張 コマンド実行例 –以下の順番にFTPコマンドを実行 (ファイル転送前) –リモートのサーバーを設定 –転送先のディレクトリ(TmpDir)を作成 –作成したディレクトリにカレントを移動 –作成するファイルを指定 ファイル転送 (ファイル転送後) –作成したファイルを親ディレクトリに移動 –カレントを親ディレクトリに移動 –作成したディレクトリ(TmpDir)を削除 --before the transfer set OutputLocalEnvironment.Destination.File.Remote.Server = ‘ftpserver.hostname:21'; set OutputLocalEnvironment.Destination.File.Remote.Precommand[1].MKDIR = 'TmpDir'; set OutputLocalEnvironment.Destination.File.Remote.Precommand[2].CD = 'TmpDir'; -- set the name to which to transfer the file set OutputLocalEnvironment.Destination.File.Name = 'TestOfFileOutput.txt'; -- after the transfer set OutputLocalEnvironment.Destination.File.Remote.Postcommand[1].RENAME.From = 'TestOfFileOutput.txt'; set OutputLocalEnvironment.Destination.File.Remote.Postcommand[1].RENAME.To = '../TestOfFileOutput.txt'; set OutputLocalEnvironment.Destination.File.Remote.Postcommand[2].CDUP = ''; set OutputLocalEnvironment.Destination.File.Remote.Postcommand[3].RMDIR = 'TmpDir'; 135 Java 共有クラス・ローダー 136 Java 共有クラス・ローダー 共有クラス・ローダーによってロード時に検索されるディレクトリの追加 V8.0GA版までは、以下のディレクトリからロード <workpath>の shared-classes ディレクトリ ※workpathはブローカー・プロパティに設定されている作業ディレクトリ(デフォルト:(UNIX)/var/mqsi) V8.0.0.1から以下のディレクトリが追加 実行グループ・レベルのshared-classes ディレクトリー Windows の場合: workpath¥config¥<my_broker_name>¥<my_eg_label>¥shared-classes Linux、UNIX、および z/OS の場合 workpath/config/<my_broker_name>/<my_eg_label>/shared-classes ブローカー・レベルのshared-classes ディレクトリー Windows の場合: workpath¥config¥<my_broker_name>¥shared-classes Linux、UNIX、および z/OS の場合 workpath/config/<my_broker_name>/shared-classes ロードの優先順位は以下の通り 1. 2. 3. 実行グループ・レベルの shared-classes ディレクトリ ブローカー・レベルの shared-classes ディレクトリ <workpath>の shared-classes ディレクトリ 137 補足 Javaのクラス・ローダーは以下の順にクラスを検索 1.実行グループ・クラス・ローダーがBARファイルによってデプ ロイされたJARを検索 2.共有クラス・ローダーが各shared-classes ディレクトリを 順番に検索 上記にも存在しない場合は、導入Dir/classes、 CLASSPATH、JVMに指定されたディレクトリを順に検索 blank 138 その他 139 内容 デフォルト導入ディレクトリ形式の変更 z/OSでのmqsimodeコマンドのサポート ビジネス・レベル・モニターの拡張 IBM Support Assistant データ・コレクターのサポート 140 その他 デフォルトのブローカー・コンポーネント導入ディレクトリ形式が変更 V8.0では、(バージョン番号).(リリース・レベル).(モディフィケーション).(フィックス)に変更 形式であった 例: AIXでは、V8.0.0.1は/opt/IBM/mqsi/8.0.0.1ディレクトリに導入される V7.0では、(バージョン番号).(リリース・レベル) デフォルトでは後続のフィックスを導入する度に、ディレクトリが作成される プラットフォーム デフォルト導入ディレクトリ AIX、HP-UX、Solaris Linux(POWER/System Z/x86-64) /opt/IBM/mqsi/(バージョン番号).(リリース・レベル).(モディフィケーション).(フィックス) Linux(x86) /opt/ibm/mqsi/バージョン番号).(リリース・レベル).(モディフィケーション).(フィックス) Windows %ProgramFiles%¥IBM¥MQSI¥(バージョン番号).(リリース・レベル).(モディフィケーション).(フィックス) フィックス・レベルで導入ディレクトリを管理する場合の考慮点 フィックス適用毎に、読み込むmqsiprofileを変更する必要がある –フィックス・レベルに合わせて、 <導入ディレクトリ>/bin/mqsiprofileの<導入ディレクトリ>を変更 読み込むmqsiprofileの切り替えにて、フィックス・レベルの実行モジュールの切り替え可能 バージョン・レベルで実行モジュールを管理する場合は、導入モジュールのディレクトリを変更 例えば、V8.0.0.0の導入ディレクトリを、<導入ディレクトリ>/8.0とする 後続のフィックス適用時は、フィックス導入ディレクトリに<導入ディレクトリ>/8.0を指定 141 その他 z/OSでのmqsimodeコマンドのサポート mqsimodeコマンドは、ブローカーの稼動モード「Advanced Edition 」などを設定するコマンド ブローカー・コンポーネント・データ・セットのカスタマイズが必要 作成したブローカーJCL用データ・セットに、<hlq>.SBIPPROCを元とするブローカーPDSEメンバー ( BIPMODE )をコピー ビジネス・レベル・モニターの拡張 全てのノードがメッセージのビット・ストリームを生成可能 ビット・ストリームはイベントに含みモニタリングすることが可能 V7.0時には、ビット・ストリームを生成可能なノードに制約があった –MRMドメインを使用するFileInputノードでは生成できない 等 142 その他 IBM Support Assistant データ・コレクターのサポート IBMサポートに送信するための、診断文書の収集が可能 汎用問題コレクターにて、イベント・ログ、syslog、OS/MQ/WMBバージョン情報などが zipファイルにアーカイブされる 今後のリリースにて、使用可能なコレクターが追加される予定 ブローカー・コンポーネントに含まれるため、別途導入は不要 z/OSはサポート対象外 mqsidc コマンドを実行しIBM Support Assistant データ・コレクターを起動 収集した診断文書を保存するアーカイブ名を入力 データ転送方式を選択 –HTTPS を使用して IBM サポートに送信(PMR 番号が必要) –FTP を使用して IBM サポートに送信(PMR 番号が必要) –FTP を使用して別サーバーに送信 –送信しない(ローカルにのみ保存) 143 その他 コマンド実行例(UNIX) $ mqsidc Running License Acceptance Process Tool ・・・・ Press Enter to continue viewing the license agreement, or enter "1" to accept the agreement, "2" to decline it, "3" to print it, or "99" to go back to the previous screen. 初回実行時、ライセンス情報が 表示されるため同意を選択 Provide a file name for saving the collected data or press enter to generate a unique file name: > /home/wmbadm/wmb_support_doc.zip アーカイブファイル名を指定 Create the collection zip file at /home/wmbadm/wmb_support_doc.zip? [1] Yes [2] No > 1 Enter the number of the IBM Support Assistant Data Collector option you want to execute. [1] General Collector [2] Quit > 1 コレクターのオプションを選択 現時点ではGeneral Collectorのみ 選択可能 Starting the collection for the General Collector option 次頁に続く 144 その他 =========================================================================== ¦ Collection Input Request ¦ =========================================================================== Would you like to transfer the data collection archive file? For other ways to exchange data with IBM, see http://www14.software.ibm. com/webapp/set2/sas/f/handbook/policies.html#exchange I would like to: [1] send using secure transfer to IBM Support (HTTPS) IBMサポートへの送信方法を選択 [2] send using FTP to IBM Support (unencrypted) [3] send using FTP to another location (unencrypted) [4] end the collection without sending [4]> 4 All values for the input request have been obtained. Please select how you would like to proceed. [1] Process input and continue collection [2] Cancel the collection [3] Go back and change input [1]> 1 The collection has completed successfully. The collection results (which may not exist in all cases) are located in /home/wmbadm/wmb_support_doc.zip 145 収集の実行を選択 収集されたデータのアーカイブ・ ファイルへのパスが表示される