研鑽、交流、そして共育。全国に拡がるIBMユーザーのネットワーク line IBMユーザー研究会
fream01 ようこそ ゲスト さま separate fream2
 
  logomark IBMユーザー研究会TOP

midashiID登録がまだの方はこちらからblankup

ID登録のススメ
IBMユーザー研究会
入会申し込み
お問い合わせ
 
   
 
 
Security
Analytics
Commerce
Cloud
Social
Systems
Watson
Topics
 <業種別>
金 融
保 険
製 造
流 通
公共・通信
 
 <IBMユーザー研究会主催>
Webセミナー blankup
 <IBM主催>
IBM Webセミナー blankup
OnDemandセミナー blankup
IBM YouTubeチャネルblankup
日本IBMホームページ
Easy Web Browsingヘルプ 拡大読み上げ
当サイトのURLは予告なく変更・削除されることがございますことを予めご了承ください。
7
 
Social
ESB基盤を容易に、迅速に提供 - WebSphere Message Broker (WMB) 7.0
2011年05月25日掲載
ISE エンタープライズ・ミドルウェア
松本 昇平
サマリー
WebSphere Message Broker V7.0では、単純化されたコンポーネント構成と独自の高可用性機能によってSOAにおけるESB基盤を容易に、そして迅速に提供できるようになりました。
 
1.はじめに
WebSphere Message Broker(WMB)は、異機種の IT 環境においてユニバーサルな接続性と多彩なメディエーション機能を提供し、サービス指向アーキテクチャー(SOA)におけるエンタープライズ・サービス・バス(ESB)を実現する製品です。
WMBは、多種多様な通信プロトコルとデータ・フォーマットをサポートすることで実装の異なるシステム間において必要な変換処理とルーティング処理を行い、それらのシステムが相互に自由に通信できるようにします。
WMBは、柔軟でダイナミックなインフラストラクチャーを提供し、スケーラブルなアーキテクチャー、ハイパフォーマンス、使いやすさを備えているため、お客様はSOAの実装を段階的に行うことができます。
本稿では、WMBバージョン7.0において、以前のバージョンから変更され、より使い易くなったWMBのコンポーネント構成と高可用性構成についてご紹介します。
 
2.単純化されたコンポーネント構成
WMB V7.0では、製品コンポーネントと前提ソフトウェアの数が少なくなり、以前のバージョンと比べインストールおよび構成が容易になりました。
以前のバージョンでは、機能ごとにコンポーネントが分かれ、要件、用途に応じて必要なコンポーネントの配置を考え、構成する必要がありました。またブローカーは構成情報の格納場所として内部的にデータベースを利用していたため、データベースの構成、運用も行う必要がありました。
WMB V7.0からは、構成マネージャーおよびユーザー・ネーム・サーバーを廃止し、これらが持っていた機能をブローカーおよび内部的に利用するキューマネージャーに集約しました。これによって実行環境に構成するWMBのコンポーネントはブローカーのみとなりました。
またブローカー・データベースを廃止し、ブローカーの構成情報はファイルシステムに格納されます。したがって、データベースを導入、構成、運用する必要がなくなり、現在、前提とする製品は WebSphere MQバージョン7.0.1 のみとなりました。
図1,図2
上の図2のように構成マネージャーがなくなったことで開発/テスト・ツールであるツールキットは直接それぞれのブローカーに接続し、開発物のデプロイや操作を行ないます。
また、ブローカーの運用管理機能を持つMB Explorerがeclipseのプラグインとして提供され、MQの管理ツールであるMQ Explorerに組み込み、1つの画面上でブローカーとキューマネージャーを管理できるようになりました。
 
3.製品独自の高可用性機能
今日の24時間365日体制でサービスが提供される社会では、システムの機能停止がビジネスに与えるインパクトは深刻で広範囲に及ぶ可能性があります。アプリケーションとサービスを接続するESB基盤も、企業からの高可用性要件を満たす必要があります。高可用性の実現は、SOA の回復力を最大化する基本的な手段であるため、特に障害時のサービス停止から迅速かつ完全に復旧できることが要求されます。

WMB V7.0の前提ソフトウェアである、2009年8月に発表されたWebSphere MQ V7.0.1では、MQ自身の機能でキューマネージャー・リソースを引き継いだフェイルオーバーが可能になりました。このマルチ・インスタンス・キューマネージャー機能により、障害時にキューマネージャーがダウンした場合にも自動的にフェイルオーバーが行なわれ、メッセージング・サービスを継続させることができます。
WMB V7.0では、この機能を活用し、ブローカーをキューマネージャーと連動して自動的にフェイルオーバーできるようになりました。このマルチ・インスタンス・ブローカー機能によって、ブローカーおよびキューマネージャーの高可用性構成に他のHigh Availability製品を用意する必要がなくなります。

※WMB V7.0およびWebSphere MQ V7.0.1では、今までのバージョンと同様にHA製品を用いた高可用性構成にすることも可能です。

3-1 マルチ・インスタンス・キューマネージャー
マルチ・インスタンス・キューマネージャーの構成データ(メッセージやオブジェクトの実体)やログ・ファイルは、ネットワーク・ファイルシステム (NFS) バージョン 4 のような最新のNFSプロトコルを介してアクセスされるネットワーク型ストレージに保持するように構成します。
図3
マルチ・インスタンス・キューマネージャーの複数のインスタンス (1つはアクティブ・インスタンスで、1つはスタンバイ・インスタンス) は、それぞれネットワーク型ストレージにアクセス可能な異なるマシン上に定義します。そして、アクティブなキューマネージャー・インスタンスがメッセージを処理し、アプリケーションおよび他のキューマネージャーからの接続を受け入れます。

キューマネージャーのアクティブ・インスタンスを確実に 1つだけにするために、キューマネージャー・データに対しては排他制御が行なわれます。スタンバイ・キューマネージャー・インスタンスは、アクティブ・キューマネージャー・インスタンスがまだ実行中であるかどうかを定期的に検査します。もしアクティブ・キューマネージャー・インスタンスに障害があるか、またはキューマネージャー・データに接続されていない場合は、キューマネージャー・データのロックが解放され、スタンバイ・キューマネージャー・インスタンスがこのロックを取得します。続いて、スタンバイ・キューマネージャー・インスタンスはキューマネージャーの再始動処理を実行して、アクティブ・キューマネージャー・インスタンスになります。

フェイルオーバーが発生する理由として以下のような障害が考えられます。

*アクティブ・キューマネージャー・インスタンスをホストするサーバーの障害
*アクティブ・キューマネージャー・インスタンスをホストするサーバーとファイルシステムの間の接続障害
*キュー・マネージャー・プロセスのハング


3-2 マルチ・インスタンス・ブローカー
マルチ・インスタンス・ブローカーの構成データもマルチ・インスタンス・キューマネージャーと同様にネットワーク型ストレージに格納し、両方のインスタンスからアクセスできるように構成します。
図4
ブローカーは自身のサブコンポーネントであるキューマネージャーと連動して稼動します。キューマネージャーがアクティブ・インスタンスで稼動している場合、ブローカーもアクティブ・インスタンスとして稼動し、他のシステムからの接続を受け付けます。一方、キューマネージャーがスタンバイ・インスタンスとして待機している場合は、ブローカーもスタンバイ・インスタンスとして待機します。
アクティブ側のシステム障害などでキューマネージャーのフェイルオーバーが発生し、スタンバイ・インスタンス・キューマネージャーがアクティブ・インスタンスになるとブローカーも連動して、ネットワーク型ストレージ上の構成データを引き継いでアクティブ・インスタンスとして稼動し、サービスを再開します。
図5
3-3 ファイル共用システムの要件
ブローカーやキューマネージャーの構成データやログ・ファイルを格納するネットワーク型ファイル共用システムは、以下の3つの基本要件があります。

データ書き込み整合性
データ書き込み整合性は、「フラッシュ時のディスクへの書き込み」と呼ばれることがあります。キューマネージャーは、物理デバイスに正常にコミットされているデータと同期できなければなりません。トランザクション・システムでは、他の処理を続行する前に、いくつかの書き込みが安全にコミットされたことを確認する必要があります。

ファイルに対する排他的アクセスの保証
複数のキューマネージャーを同期するために、キューマネージャーにはファイルへの排他ロックを獲得する手段が必要です。

障害時のロック解除
キューマネージャーに障害が発生したり、ファイルシステムとの通信障害がある場合は、キューマネージャーがファイルシステムに再接続するのを待たずに、キューマネージャーによってロックされたファイルをアンロックして、他のプロセスで使用できるようにしなければなりません。

最新のファイルシステム (NFS v4 など) は、専用ロックを使用して障害を検出し、障害の後にロックを解除します。以前のファイルシステム (NFS v3 など) は、障害後にロックを解除するための信頼性のある仕組みを持たないため、マルチ・インスタンス・キューマネージャーでは使用できません。
 
4.連携システムからの再接続
マルチ・インスタンス・ブローカーおよびマルチ・インスタンス・キューマネージャーは、異なるネットワーク・アドレスを持つ複数のサーバー上に構成されています。
仮想 IP アドレスを指定して、そのアドレスをアクティブ・サーバーに転送するHA製品の方法とは異なり、WMBおよびWebSphere MQのマルチ・インスタンス機能では、IP アドレスの転送は行ないません。
そのためアクティブ・インスタンスのフェイルオーバーが発生した後には、新たにアクティブ・インスタンスになったほうのIPアドレスに対して再接続を実施する必要があります。
図6
4-1 MQチャネルおよびクライアントの再接続
スタンバイ・キューマネージャー・インスタンスがアクティブになった後、メッセージ処理を回復させるためにはMQのチャネルおよびクライアントの再接続が必要です。
マルチ・インスタンス・キューマネージャーへのフェイルオーバー後の再接続を可能にするには、それぞれのキューマネージャー・インスタンスの接続情報をチャネルおよびクライアントに定義しておきます。
こうすることでフェイルオーバーが発生し、キューマネージャーへの接続が切断されると、チャネルおよびクライアントは、別のIPアドレスに接続を試み、新たにアクティブになったキューマネージャー・インスタンスに自動的に再接続します。

マルチ・インスタンス・キューマネージャーに対して複数のネットワーク・アドレスを構成する方法は、以下になります。

キューマネージャー・チャネル
チャネルのCONNAME属性に、コンマ区切りで接続情報のリストを定義できます。例えば、CONNAME('92.46.1.1(1415), 85.42.3.8(2423)') のようになります。接続は、正常に確立されるまで、この接続リストに指定された順序に従って試行されます。どの接続も正常に確立されなかった場合、チャネルは再試行処理を開始します。

クライアント接続チャネル
クライアント接続では、チャネル定義テーブルを利用するか、環境変数MQSERVERにコンマ区切りで接続情報のリストを定義します。

フェイルオーバー実行時の再接続には、ある程度の時間がかかります。スタンバイ・キュー・マネージャーはその開始処理を完了する必要があり、そのクライアントおよびチャネルは、接続の障害を検出して、新たにアクティブになったスタンバイに対する接続を選択し、再接続を実行する必要があります。メッセージ・チャネルでバッチ転送中に障害が発生した場合、そのバッチはロールバック後、リスタートされます。再接続時にクライアントが MQI 呼び出しの途中である場合は、その呼び出しが完了するまで待つ必要があります。


4-2 自動クライアント再接続機能
WebSphere MQ V7.0.1 を使用すると、クライアント・アプリケーションは、ネットワーク障害やキューマネージャー障害時に、キューマネージャーまたは別のキューマネージャーに自動的に再接続できるようになります。接続が切断されているかどうかの判別および再接続の試みをクライアント・アプリケーションではなく、WebSphere MQ V7.0.1 クライアント・ライブラリーが障害を検出し、同じキューマネージャーまたは別のキューマネージャーへの接続を再試行するロジックを備えています。クライアント・アプリケーションは、キューマネージャー接続情報のリストを指定でき、マルチ・インスタンス・キューマネージャーのフェイルオーバーにも対応できます。
接続の復旧が可能な場合、それはクライアント・アプリケーションに対して完全に透過的に行われ、障害が起きたことはアプリケーションに通知されません。アプリケーションは、再接続および他の関連イベントが起きたときに通知が必要な場合は、イベント・ハンドラーへ登録することで実現できます。
 
5.おわりに
本稿では、WMB V7.0によって簡素化されたコンポーネント構成とソフトウェア・レベルで高可用性を実現するマルチ・インスタンス・ブローカー機能、およびWebSphere MQ V7.0.1のマルチ・インスタンス・キューマネージャー機能について紹介してきました。
これらの変更、機能によって、より容易に短期間で信頼性の高いESB基盤を構築することが可能になり、お客様のSOA化を強力にバックアップし、ダイナミックなシステム変更にも迅速に、そして柔軟に対応できるようになりました。今後、WMBの設計、構築に携わる方の一助になれば幸いです。

ご注意)
この資料は2011年5月1日現在のものであり、将来この資料の全体または一部につき変更する場合があります。また、記載されている製品名または会社名はそれぞれの各社の商標または登録商標です。
 
参考文献
[1] WebSphere Message Broker V7.0 Information Center
http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/index.jsp外部サーバー

[2] WebSphere MQ V7.0 Information Center
http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp外部サーバー
 


 
 
 
サイトマップ関連リンクプライバシーポリシーblankupご利用にあたってblankup
ページのトップへ