AS/400展望台

WebSphere MQ V5.3の新機能



Bridget Meyer著

JMSのサポート、パフォーマンスの向上、セキュリティ機能の強化などを活用する

バージョン5.3ではMQSeries製品ファミリがWebSphereファミリに組み入れられ、ブランド名もWebSphere MQに変更されました。WebSphere Application Server(WAS)5.0の組み込みJavaメッセージ・サービス(JMS: Java Message Service)プロバイダとしてWebSphere MQを統合したことは、WebSphere MQとWebSphere製品ラインが密接な関係にあることを示しています。JMSのサポートがWebSphere MQに直接統合されたことを除けば、製品名の変更はほぼ表面的なものです。製品のディレクトリ構造や名前、OS/400ライブラリ、CLコマンド名などに変更はありません。

IBM WebSphere MQ for iSeries V5.3はOS/400 V5R1およびV5R2上で利用可能で、それ以前のリリースのMQSeriesとの互換性を維持しています(IBM MQSeries for iSeries V5.2のサポートは2004年4月30日までです)。さらに、MA88 Java SupportPacにより提供されていたMQSeries V5.2 JMSのサポートは個別には必要がなくなり、今後、WebSphere MQ V5.3の通常のリリースでは機能強化はされません。

0 WebSphere MQ V5.3で何が提供されたのかを知るために、製品のJMS統合、パフォーマンス向上、スケーラビリティの向上、セキュリティの強化、ユーザービリティと管理機能の強化について見てみましょう。

JMS統合

WebSphere MQ V5.3では、JMSとキュー・マネージャのコードの設計が一部見直されて、アプリケーションが異常終了した場合、一時的にしか保持されないサブスクリプション情報を自動的に削除するようになりました。今まではJMSのサブスクリプションの削除はツールを使って手動で行う必要がありました。

JMSではアプリケーション・コンポーネント間の非同期メッセージングが可能です。JMS 1.0.2はWAS 5.0ランタイム対応のJ2EE 1.3仕様の一部で、JMSプロバイダがWASに統合されている必要があります。

WAS 5.0 for iSeries(Expressではなくベースおよびネットワーク導入版)はWebSphere MQ V5.3をインストールしてJMSプロバイダの統合をサポートしています。統合されたJMSプロバイダはドキュメントがほとんどなく、また、サンプルのCコードがまったくないため、WebSphere MQのフル製品に比べると限定されたものになっています。さらに、JMSプロバイダの使用条件によって、JMSプロバイダの使用は同じシステム上のWASコンポーネントに対してのみに制限されています(ただしWebSphere MQのフル製品にシームレスにアップグレードすることは可能です)。

WebSphere MQ V5.3は、MQのみ関係している場合に、ローカル単位の作業へのサポートおよび関与が可能です。またDB2 Universal Database for iSeries用のOS/400コミット・コントロール(COMMITコマンドおよびROLLBACKコマンド)、またはXA調整機能を使用しているWASによって調整されている場合は、混合単位の作業に関与することも可能です。

WASの管理ツールを使って、組み込みJMSプロバイダを管理するだけでなく、その元になっているキュー・マネージャの作成や修正も行います。キュー・マネージャのセキュリティ・コントロールは、WASのセキュリティ・モデルと関連しています。WebSphere MQのキューとチャネルはJMSのアクションに基づいて自動的に作成されるため、その元になっているキュー・マネージャを管理者が意識することはありません。

WebSphere MQ Event Broker V2.1のコンポーネントはWASに組み込まれており、JMSが必要とするパブリッシュ機能とサブスクライブ機能(pub/sub)を提供します。pub/sub機能は、WAS for iSeries 5.0に統合されたJMSプロバイダがある場合のみサポートされており、WASコンテナからのみアクセス可能です。さらに、最新のWebSphere MQ CSDを含む最新のWASグループのPTFが適用されていなければなりません。

パフォーマンスとスケーラビリティの向上

大規模なWebSphere MQ V5.3のストレス・テストを実施し、JMS操作と一般的なMQ操作の両方に関して以下のエリアでパフォーマンスを最適化しました。

・JMSのポイント間操作およびpub/sub操作
・メッセージ・キュー・インタフェース(MQI: Message Queuing Interface)
・キュー・マネージャの起動
・ジャーナル・レシーバの切り替え
・永続性メッセージ用のAPIスループット

システム上で使用できるWebSphere MQチャネル数は通常、プロセス内の最大スレッド数、または多数の個別プロセスが走っているシステムのオーバーヘッドのいずれかによって制限を受けます。WebSphere MQ V5.3のチャネル・プロセス・プーリング機能により、プロセスのプール内のスレッドとしてチャネルを実行させることができるのに対し、今までのリリースのMQSeriesでは、各チャネルは一般的に独自のプロセス(またはジョブ)を持っていました。デフォルトでは、プール中の各プロセスは60個のチャネル・スレッドを利用することができ、システム上のチャネル・ジョブ数を低減しています。妥当な数のスレッドからなる数個のプロセスにより、送受信チャネル操作を処理することができるようになりました。

チャネル・プロセス・プーリングは、WebSphere MQ V5.3における新しいキュー・マネージャのデフォルトの動作です。移行したキュー・マネージャ用にチャネル・プロセス・プーリングを有効にするには、qm.iniファイル中のChannelsスタンザにThreadedListener=YESという値を以下のように追加してください。

Channels:
  ThreadedListener=YES

チャネル・プロセス・プーリングを使用するには、すべてのチャネル出口がスレッド・セーフになっていなければならない点に注意してください。

WebSphere MQ V5.3では、キュー・マネージャの終了時にチャネル・リスナがチャネル・ジョブを起動できないようにしています。その結果、特にMQアクティビティの負荷が大きいときに、キュー・マネージャは今までよりもすばやくシャットダウンすることができます。

キュー・サイズの論理上の制限が2GBに増大され、キューの最大深さも640,000から999,999,999になりました。ユーザーは、自身の統合ファイル・システム(IFS)が2GBより大きいファイルをサポートするように構成されているかどうかを確認しておかなければなりません。キュー・サイズは増大していますが、キューの最小フットプリント(オープンなローカルの空のキューが使用する共有メモリのサイズ)は、250Kから64Kに減少しました。今後のバージョンのWebSphere MQにおいて、パフォーマンスとスケーラビリティの向上が図られる可能性が高いため、最新のCSDレベルを適用して今後のメリットも受けられるようにしておいた方が良いでしょう。

セキュリティの強化

WebSphere MQ V5.3では以下の3つの新しいセキュリティ機能が提供されています

・ セキュア・ソケット・レイヤ(SSL: Secure Sockets Layer)のチャネル・サポート
・オブジェクト権限マネージャ(OAM: Object Authority Manager)の汎用プロファイル
 のサポート
・CLコマンド許可の改良

これらの機能について詳しく見てみましょう。

SSLのチャネル・サポート
SSLは安全な通信を行うためのインターネット標準です。SSLはクライアント/サーバー間のチャネルだけでなくキュー・マネージャ間のチャネルを保護するのに便利です。SSLを使用すると一般的には以下のことを防ぐことができます。

・対称鍵暗号の128ビット・サポートを使用した盗聴
・ハッシュ関数使用のメッセージ整合性チェックを採用した改竄
・ディジタル証明書、非対称鍵、証明書失効リストによる認証を使用したなりすまし

MQSeries V5.2でSSLをサポートするには、チャネル出口を使用する必要があります。チャネル出口は、接続中のユーザーがキュー・マネージャに接続することを許可されているかどうかを検証します。WebSphere MQ V5.3では、チャネル出口は今までと同様に動作しつづけますので、削除する必要はありません。

WebSphere MQ V5.3ではチャネルのサポートが統合されたため、ユーザーが目的の相手と話しているかを検証したり、接続の両側で認証をするのかSSLサーバー側だけで認証するのかを選択したりできるようになりました。セキュリティ証明書を取り消すために証明書失効リストを使用することもできます。

ディジタル証明書マネージャ(DCM: Digital Certificate Manager)は、LDAPサーバーを使用してキーストアを管理します。認証局はLDAPサーバーを用いて証明書失効リスト(CRL: Certificate Revocation List)を検索します。キーストアをキュー・マネージャや対称鍵暗号化アルゴリズムごとに構成したり、使用するハッシュ関数、またはチャネルごとに接続できるユーザーを構成したりすることができます。

認証情報(AuthInfo)オブジェクトはWebSphere MQ V5.3で新たに加わったオブジェクトで、このオブジェクトを使用するとCRLへのアクセスが可能になります。WebSphere MQ for iSeriesサーバーはAuthInfoオブジェクトを直接使用することはしませんが、AMQCLCHL.TABファイルを使用しているクライアントはこのオブジェクトを直接使用します。AuthInfoオブジェクトをサポートするために以下のコマンドが追加されました。

・CHGMQMAUTI(Change MQ AuthInfoオブジェクト)
・CPYMQMAUTI(Copy MQ AuthInfoオブジェクト)
・CRTMQMAUTI(Create MQ AuthInfoオブジェクト)
・DLTMQMAUTI(Delete MQ AuthInfoオブジェクト)
・DSPMQMAUTI(Display MQ AuthInfoオブジェクト)
・WRKMQMAUTI(Work with AuthInfoオブジェクト)

SSLの概要とAuthInfoオブジェクトの使用方法については、http://www.redbooks.ibm.comに掲載されているレッドブックWebSphere MQ Security in an Enterprise Environment(SG24-6814)をご覧ください。

OAM汎用プロファイル
OAMは、キューやプロセスの定義といったWebSphere MQオブジェクトを、ユーザーがどのように操作できるかについて規定するセキュリティ・モデルを定義します。WebSphere MQ V5.3では、OAMコンポーネントがワイルドカードをサポートしていますので、汎用プロファイルが有効です。(疑問符(?)、アスタリスク(*)、二重アスタリスク(**)などのワイルドカードの使用方法の詳細については、WebSphere MQ for iSeries System Administration Guide(SC34-6070)をご参照ください。)

古いバージョンのOAMからの移行はユーザーが意識することはなく、キュー・マネージャの管理も変更なしで継続することができます。OAM汎用プロファイルにより、管理者は多数のオブジェクトに対するユーザーの権限を一度に設定できるので、オブジェクトの作成時に各オブジェクトに対して個別のGRTMQMAUT(Grant MQ Object Authority)コマンドを発行する必要がありません。ワイルドカードによるマッチングを使用すれば、ユーザーがアクセスできるオブジェクトのグループを定義できるので、新しいオブジェクトは自動的にこの定義を継承します。

権限の構成を行うための、以下の2つのCLコマンドが利用可能になりました。

・WRKMQMAUT(Work with MQ Authority)
・WRKMQMAUTD(Work with MQ Authority Data)

WRKMQMAUT CLコマンドは、キュー・マネージャ用のすべての権限レコードをトップレベルのビューで表示します(図1)。このコマンドはコマンドラインから直接実行するか、またはWRKMQM(Work with Queue Managers)結果パネルからオプション14を指定して起動することができます。管理者は、特定のキュー・マネージャに関連しているさまざまなオブジェクト用に定義されたプロファイルや権限データを操作することができます。Object/Profileの名前パラメータに*ALLを選択した場合、リスト中の最初の項目は、表示されている各オブジェクト・タイプに対する&classオブジェクトとなります。指定したオブジェクト・タイプの&classプロファイルは、どのユーザーがそのタイプのオブジェクトを作成する権限をもっているかを定義します。

WRKMQMAUTD CLコマンドは、すべてのユーザーと権限プロファイルに対するユーザーの権限の詳細を図2のように一覧表示します。このコマンドはコマンドラインから直接実行するか、またはWRKMQMAUT結果パネルからオプション12を指定して起動することができます。

この一覧には、ユーザー・プロファイルに明示的に与えられている権限が表示されるので、わかりやすくなっています。ここに表示されている権限は、ユーザーの権限をチェックする際にOAMが収集した完全に解決された権限とは限りません。(収集権限は表示されないため)管理者はこの結果パネルを使用してユーザーが最近失効した権限が実際に失効になっているかどうかを確認してください。収集権限を確認するには、ユーザーに対してオプション5を選択し、DSPMQMAUT(Display MQ Object Authority)を実行してください。たとえば図2では、BRIDGETはMQGETTERグループに属している可能性があるので、キュー・マネージャMQTESTのSYSTEM.ADMIN.QMGR.EVENTキューに対して具体的に与えられたPUT権限に加えてGET権限とBROWSE権限を所有しています。

CLコマンド許可
MQSeries V5.1では、MQコマンドを使用したいと考えているユーザーは(MQコマンドに対して明示的に権限が与えられていたとしても)、QMQMADMグループのメンバーでなければなりません。しかし、このあまりに柔軟性のないセキュリティ・モデルでは制限がきつすぎるとユーザーが感じるため、WebSphere MQ V5.3ではコマンド権限が修正されて、2つのグループ・コマンドをサポートするようになりました(各グループのコマンド・リストはここに掲載するには長すぎるため、詳細についてはWebSphere MQ System for iSeries Administration Guideをご参照ください)。

・グループ1:ユーザーがコマンドを処理するためには、QMQMADMユーザー・グループに属しているか、または*ALLOBJ権限を所有していなければなりません。このいずれかの権限を所有しているユーザーは、他に特別な権限を必要とすることなく、全カテゴリの全MQコマンドを処理することができます。注記:これらの権限はOAM権限をオーバーライドします。

・グループ2:グループ1に属さないユーザーは、以下の2段階のステップによって、全MQコマンドを処理する権限が与えられます。
1. GRTOBJAUT(Grant Object Authority)コマンドを使用してOS/400権限を得る。
2. GRTMQMAUTコマンドを使用してMQ OAM権限を得る。

WebSphere MQ V5.3で採用された新しいセキュリティ・モデルにより、QMQMADMグループに属さないユーザーは、ほとんどのMQコマンドを実行できるようになりました。すべてのコマンドは出荷時に*PUBLIC、*EXCLUDE、QMQMADM *USE権限が付けられていますので、デフォルトでは依然として、QMQMADMグループのユーザーだけがアクセスできるようになっています。

ユーザービリティと管理

WebSphere MQ V5.3では、チャネル、クラスタ、キュー・マネージャ、キュー、リスナを管理するためのCLコマンドが強化されました。

・ENDMQMCHL(End MQ Channel)CLコマンドでSTATUS(*INACTIVE)を指定することにより、特定のチャネルに対してそのステータスを*INACTIVEに指定することができます。STATUS(*STOPPED)でENDMQMCHLを使用して終了したチャネルは、再起動する前にオペレータの介在が必要ですが、STATUS(*INACTIVE)でENDMQMCHLを使用して終了したチャネルには必要ありません。

・多数のチャネル・インスタンスが、レシーバまたはSVRCONN定義を使用している可能性があります。ENDMQMCHL CLコマンドの接続インスタンス名(CONNAME)パラメータおよびリモート・キュー・マネージャ(RQMNAME)パラメータを使用することで、同一の名前が付けられた全チャネルを停止せずに、個別のインスタンスを識別することができます。

・強制的に削除されるキュー・マネージャの識別子を使用して、RSTMQMCL(Reset Cluster)CLコマンドでQMIDパラメータを指定することができます。

・新しいRFRMQMCL(Refresh MQ Cluster)CLコマンドがローカルに保持されているクラスタ情報(自動的に定義された疑わしいチャネルを含む)を更新し、クラスタを新しく起動することができます。

・WRKMQMCHST(Work with MQ Channel Status)CLコマンドの結果パネルに、チャネル・ステータスが表示されるリモートのキュー・マネージャ名が表示されるようになりました。「F11=Change view」を使用して、新しい「Remote Queue Manager」列を確認してください。

・特定のキュー・マネージャに接続されているジョブのスナップショットを、AMQXLISTを使用せずに表示することができます。「22=Work with Jobs」オプションをWRKMQM CLコマンドの結果パネルで選択し、スナップショットを含んだ新しい結果パネルを表示してください(図3)。

・STRMQMLSR(Start MQ Listeners)CLコマンドは、特定のIPアドレス用のリスナを起動します。

・ENDMQMLSR(End MQ Listeners)CLコマンドでポート番号を指定することができます。さらに、ENDMQMLSRでOPTION(*WAIT)を使用すると、リスナを同期的に終了します(今までは、リスナは常に非同期的に終了していました)。

・WRKMQMQ(Work with MQ Queues)CLコマンドの結果パネルに、キューの現在の深さとキューをオープンしたジョブ数が表示されるようになりました。「F11=Change view」を選択して、新しい「Depth and Apps」列を確認してください。

・WRKMQMの結果パネルで「23=Display Logs」オプションを選択することで、特定のキュー・マネージャ用のエラー・ログを表示することができます。

・新しいWRKMQMQSTS(Work with MQ Queue Status)CLコマンドは、WebSphere MQキューを現在オープンしているジョブの一覧を表示します。このコマンドにより、キューがオープンされたときのオプションを判断したり、キューをオープンしたチャネルや接続を確認したりすることができます。

・WRKMQMの結果パネルから「26=MQSC」オプションを選択することで、MQSCコマンドを対話形式で発行することができます。

・新しいWRKMQMLSR(Work with MQ Listeners)CLコマンドは、システム用の全TCPリスナの一覧を表示します。WRKMQMLSRの結果パネルには、キュー・マネージャ、ポート番号、スレッド化されたリスナであるかどうかが表示されます。

・ENDMQM(End Message Queue Manager)CLコマンドでキュー・マネージャ名(MQMNAME)と「ENDCCTJOB(*YES)」オプションを指定することで、単一のキュー・マネージャ用の共有メモリを消去することができます。

APIの機能強化

新しいMQインタフェース(MQI)オプションにより、MQCONNX中のサポートを明示的に要求することで、プロセスの複数のスレッドにまたがる接続ハンドル(hConns)を共有することができます。hConn上では常に、MQGET(WAIT)を含む1つの操作しか許可されていないことに変わりはありません。
API交差出口は、APIの出口を利用して監視を行いたい場合や、ローカル標準を実装したい場合などに便利です。クライアント・プログラムは直接サポートされていませんが、クライアント・プログラムに代わって実行されているプロキシ・コードは、この出口を利用することができます。
この新しいAPIサポートにより、複数の独立した出口を構成することができ、出口コードで以下のことが可能になります。

・ほぼすべてのMQIパラメータの監視と変更(変更については可能性ありの意)
・MQI呼び出し前後での出口コードの起動(したがって戻りコードのチェックが可能)
・MQI呼び出しの発行
・作業が順序正しく行われるようにするためのチェーン・ルールの定義

API交差出口は、アプリケーションが独自の出口を他の出口に異存せずに追加できるようにした汎用のフレームワークです(サード・パーティ・ベンダーにとっては利点となります)。アプリケーション・コードは、出口の構成と管理を意識する必要はありません。つまり、MQIプログラムは出口がインストールされたことを知る必要もないし、再リンクの必要もありません。製品には、十分に機能する有用なサンプルが提供されています。そのサンプルはアプリケーションが呼び出したMQI呼び出しをトレースして、その結果をフォーマットされたファイルに書き出します。

進化の継続

WebSphere MQは多数の分散アプリケーション開発に使用されてきた成熟したミドルウェアであり、WebSphere MQが今後も継続的に進化することは、e-ビジネスの世界にとって重要なことです。今回ご紹介した新しい機能や強化された機能を活用するために、WebSphere MQ V5.3に移行することをご検討ください。(WebSphere MQや利用可能なSupportPacダウンロードの詳細については、IBM WebSphere MQのWebサイトhttp://www-3.ibm.com/software/integration/wmqをご覧ください。) Bridget MeyerはIBMのWebSphere MQ開発チームのメンバーで、iSeriesアドバイザリとして活躍しています。また現在は、WebSphere Application Server開発チームのメンバーでもあり、iSeriesプラットフォーム用の新製品の開発に力を注いでいます。



↑このページのトップへ
TOPPAGE

BELLDATA, Inc. Copyright reserved.