...

アップデート・ セミナー WebSphere Message Broker V8.0.0.1 2012年10月5日

by user

on
Category: Documents
172

views

Report

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
収集の実行を選択
収集されたデータのアーカイブ・
ファイルへのパスが表示される
Fly UP