(57)【要約】【課題】【解決手段】コンピュータ・システムが、非同期メッセージング・キューイング・システムと、ストレージ・エリア・ネットワーク・コントローラを備えたストレージ・エリア・ネットワークとを含み、ストレージ・エリア・ネットワーク・コントローラが、異種であり得る、１つまたは複数のキュー・マネージャに代わってメッセージ・キューを制御する制御手段を含む。  またストレージ・エリア・ネットワーク・コントローラは、メッセージの永続性を制御する手段と、同期点コーディネータなどのトランザクション制御手段と、ロック・マネージャなどのデータ保全性制御手段とを含み得る。
2006503347.tif 000002
【特許請求の範囲】
【請求項１】
非同期メッセージング・キューイング・システムと、
ストレージ・エリア・ネットワーク・コントローラを備えたストレージ・エリア・ネットワークとを含むコンピュータ・システムであって、
前記ストレージ・エリア・ネットワーク・コントローラが、１つまたは複数のキュー・マネージャに代わってメッセージ・キューを制御する制御手段を含むコンピュータ・システム。
【請求項２】
前記１つまたは複数のキュー・マネージャが複数のキュー・マネージャを含み、前記複数のキュー・マネージャのうちの少なくとも２つが異種である、請求項１に記載のコンピュータ・システム。
【請求項３】
前記メッセージ・キュー内のメッセージが永続的であり、前記ストレージ・エリア・ネットワーク・コントローラが、前記メッセージの永続性を制御する手段を含む、請求項１または２に記載のコンピュータ・システム。
【請求項４】
前記メッセージがトランザクション・メッセージであり、前記ストレージ・エリア・ネットワーク・コントローラが、トランザクション制御手段を含む、請求項１ないし３のいずれかに記載のコンピュータ・システム。
【請求項５】
前記トランザクション制御手段が同期点コーディネータを含む、請求項４に記載のコンピュータ・システム。
【請求項６】
非同期メッセージング・キューイング・システムと、ストレージ・エリア・ネットワーク・コントローラを備えたストレージ・エリア・ネットワークとを含むコンピュータ・システムを制御するための方法であって、
キュー・マネージャでメッセージ要求を受信するステップと、
前記メッセージ要求を、前記ストレージ・エリア・ネットワーク・コントローラに渡すステップとを含み、
前記ストレージ・エリア・ネットワーク・コントローラが、１つまたは複数のキュー・マネージャに代わってメッセージ・キューを制御する制御手段を含む方法。
【請求項７】
前記１つまたは複数のキュー・マネージャが複数のキュー・マネージャを含み、前記複数のキュー・マネージャが異種である、請求項６に記載の方法。
【請求項８】
前記メッセージ・キュー内のメッセージが永続的であり、前記ストレージ・エリア・ネットワーク・コントローラが、前記メッセージの永続性を制御する手段を含む、請求項６または７に記載の方法。
【請求項９】
前記メッセージがトランザクション・メッセージであり、前記ストレージ・エリア・ネットワーク・コントローラが、トランザクション制御手段を含む、請求項６ないし８のいずれかに記載の方法。
【請求項１０】
コンピュータ内にロードされ実行されたとき、前記コンピュータ・システムに、請求項７ないし９のいずれかに記載の方法のすべてのステップを実施させるためのコンピュータ・プログラム・コードを含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期のメッセージングおよびキューイングのためのシステムに関し、より詳細には、メッセージの格納を制御するためのシステムに関する。
【背景技術】
【０００２】
非同期のメッセージング・キューイング・システムは、当技術分野では、よく知られている。その１つは、ＩＢＭ  ＭＱＳｅｒｉｅｓメッセージング・キューイング製品である（ＩＢＭおよびＭＱＳｅｒｉｅｓは、IBM Corporationの米国その他の国における商標である）。以下の説明では、便宜上、ＭＱＳｅｒｉｅｓシステムを用いるが、本発明の背景は、多くの他のメッセージング・キューイング・システムを含むことが当業者には明らかであろう。
【０００３】
ＭＱＳｅｒｉｅｓメッセージ・キューイング・システムでは、「キュー・マネージャ」と称されるシステム・プログラムが、キュー・マネージャを使用してネットワークを介してメッセージを送受信するアプリケーション群に、メッセージ・キューイング・サービスを提供する。ネットワーク内にいくつかのキュー・マネージャを設けることができ、それぞれが、そのキュー・マネージャにとってローカルな１つまたは複数のアプリケーションにサービスする。あるアプリケーションから別のアプリケーションに送信されたメッセージは、受信側アプリケーションがそれを取り出す準備が整うまで、受信側アプリケーションのローカルのキュー・マネージャによって維持されるメッセージング・キューイング内に格納される。アプリケーションは、そのローカル・キュー・マネージャによって維持されるキューからメッセージを取り出すことができ、またそのローカル・キュー・マネージャを介して、ネットワーク全体にわたってキュー・マネージャによって維持されるキューにメッセージを置くことができる。アプリケーションは、ＭＱＩ（メッセージ・キュー・インターフェイス：Message Queue Interface）と称されるインターフェイスを介して、ローカル・キュー・マネージャと通信する。これは、１組の要求、すなわちキュー・マネージャのサービスを呼び出すためにアプリケーションが使用する「呼出し」を定義する。ＭＱＩによれば、アプリケーションは、サービスの実施ために必要なリソースをまず要求し、キュー・マネージャからそのリソースを受信すると、アプリケーションは、使用されるリソースを指定して、サービスの実施を要求する。特に、任意のキュー・マネージャ・サービスを呼び出すために、アプリケーションはまず、キュー・マネージャとの接続を必要とする。したがって、アプリケーションはまず、キュー・マネージャとの接続を要求する呼出しを発行し、この呼出しに応答して、キュー・マネージャは、アプリケーションによって使用される接続を識別する接続ハンドルを返す。次いで、アプリケーションは、接続の継続中に他の呼出しを行うときに、この接続ハンドルを入力パラメータとして渡す。このアプリケーションは、必要とされるサービスを実施する際に使用される、キューなどの各オブジェクトのオブジェクト・ハンドルをも必要とする。したがって、アプリケーションは、使用される各オブジェクトのオブジェクト・ハンドルを要求する１つまたは複数の呼出しを発行し（submit）、キュー・マネージャによって、適切なオブジェクト・ハンドルが提供される。キュー・マネージャに提供されるすべてのオブジェクト・ハンドルが特定の接続ハンドルに関連付けられ、特定の接続によって使用するために、したがって、関連する接続ハンドルと共に使用するために、所与のオブジェクト・ハンドルが提供される。使用されるリソースを受信すると、アプリケーションは、サービスの実施を要求するサービス要求の呼出しを発行することができる。この呼出しは、使用される各オブジェクトの接続ハンドルおよびオブジェクト・ハンドルを含む。キューからメッセージを取り出す場合、たとえば、アプリケーションは、キュー・マネージャに対して、接続およびキューを明らかにするために���アプリケーションに提供されたその接続ハンドルおよび適切なキュー・ハンドルを含む、「メッセージ取得」呼出しを発行する。
【０００４】
今日使用可能な非同期メッセージング・システムでは、メッセージは、サーバに到着したとき、そのサーバによってだけ使用可能であり、そのサーバに障害が発生すると、そのメッセージは、サーバが再開され得るまで、サーバ内に「閉じ込め（トラップ）」られる。
【０００５】
大容量および高パフォーマンスのアプリケーション・アーキテクチャでは、意図された宛先サーバがメッセージを、またその後の任意の必要とされる処理を適時に処理できることを、一般にはメッセージが送信される前に決定しなければならないため、単一のサーバ上にメッセージを格納することは、制約でもある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
こうしたシステムにおいて、非同期メッセージを格納するためのより堅牢で柔軟な方法およびシステムが、明らかに求められている。
【課題を解決するための手段】
【０００７】
したがって、本発明は、第１の態様において、非同期メッセージング・キューイング・システムと、ストレージ・エリア・ネットワーク・コントローラを備えたストレージ・エリア・ネットワークとを含むコンピュータ・システムであって、前記ストレージ・エリア・ネットワーク・コントローラが、１つまたは複数のキュー・マネージャに代わってメッセージ・キューを制御するための制御手段を含む、コンピュータ・システムを提供する。
【０００８】
好ましくは、前記１つまたは複数のキュー・マネージャは、複数のキュー・マネージャを含み、また複数のキュー・マネージャのうちの少なくとも２つは、異種である。
【０００９】
好ましくは、前記メッセージ・キュー内のメッセージは、永続的であり、また前記ストレージ・エリア・ネットワーク・コントローラは、前記メッセージの永続性を管理するための手段を含む。
【００１０】
好ましくは、前記メッセージは、トランザクション・メッセージであり、また前記ストレージ・エリア・ネットワーク・コントローラは、トランザクション制御手段を含む。
【００１１】
好ましくは、前記トランザクション制御手段は、同期点コーディネータを含む。
【００１２】
好ましくは、前記ストレージ・エリア・ネットワーク・コントローラは、データ保全性の制御手段を含む。
【００１３】
好ましくは、前記データ保全性制御手段は、ロック・マネージャを含む。
【００１４】
第２の態様では、本発明は、非同期メッセージング・キューイング・システムと、ストレージ・エリア・ネットワーク・コントローラを備えたストレージ・エリア・ネットワークとを含む、コンピュータ・システムを制御するための方法であって、キュー・マネージャでメッセージ要求を受信するステップと、前記メッセージ要求を、前記ストレージ・エリア・ネットワーク・コントローラに渡すステップとを含み、前記ストレージ・エリア・ネットワーク・コントローラが、１つまたは複数のキュー・マネージャに代わってメッセージ・キューを制御するための制御手段を含む方法を提供する。
【００１５】
第２態様の方法の好ましい方法特徴は、第１態様の好ましい特徴によって提供される手段に対応する。
【００１６】
第３の態様では、本発明は、コンピュータ・システムに、第２態様の方法のステップに対応する、コンピュータ・プログラム・ステップを実施させるためのコンピュータ・プログラムを提供する。
【００１７】
ストレージ・エリア・ネットワーク（ＳＡＮ：Storage Area Network）を使用して、メッセージ・データを保持すると、データの格納が集中化されるだけでなく、単一障害箇所（singlepoint of failure）が存在しないので、より堅牢な全体的な解決策も提供される。
【００１８】
ＳＡＮの一定義は、記憶装置とプロセッサ（サーバ）の間で直接接続を確立できるようにする、ＬＡＮに匹敵する高速ネットワークである。ＳＡＮは、ローカル・エリア・ネットワーク（ＬＡＮ：Local Area Network）および広域エリア・ネットワーク（ＷＡＮ：Wide Area Network）内のものと類似の要素、すなわちルータ、ハブ、交換機およびゲートウェイを使用して、記憶装置とサーバを相互接続することを可能にする、ストレージ・バスの概念の拡張機能と見なされ得る。ＳＡＮは、サーバ間で共有すること、または１つのサーバで専用すること、あるいはその両方を行うことができる。それは、ローカルとすることができ、また地理的な距離にわたって広げることもできる。
【００１９】
本発明のある実施形態では、単に、連携する様々なコンポーネント間で、データ保全性、トランザクション性、および他のサービス品質のためのプロトコル・セットを一致させることが可能である。このような場合、データ保全性、同期点調整などは、ミドルウェア層によって実施され制御され、このミドルウェア層は、ＳＡＮコントローラ、ならびにアプリケーションおよびキュー・マネージャに、適切なプリミティブ・セットを提供する。
【００２０】
それとは異なり、本発明の現在最も好ましい実施形態では、個々のサーバからメッセージの格納を取り除き、その代わりに、ネットワーク・レベルで、ＳＡＮ内にそれを格納するだけでなく、必要なすべてのデータ保全性機能を提供するために、ＳＡＮ内に、サポート・インフラストラクチュアをも設け、複数のキュー・マネージャが（読み書き操作のために）、完全な信頼をもって、キューに同時にアクセスできるようにする。
【００２１】
従来、キューは、特定のキュー・マネージャによって所有され、キュー・マネージャは、そのキューへのマルチスレッド・アクセスが、順序よく正しく維持されるようにする働きをする。キューをＳＡＮに移動することによって、キューの所有権がキュー・マネージャから取り除かれ、ＳＡＮコントローラに与えられる。それがローカルに所有されるキューなので、キュー・マネージャがキュー内の複数のメッセージにアクセスし、それを操作し得るように見えるが、実際は、基礎をなす操作の管理は、ＳＡＮコントローラ内で維持される。
【００２２】
これが機能するように、ＳＡＮコントローラは、それが所有するキュー内のメッセージのロッキングおよびトランザクション保全性を制御するのに必要なプリミティブを提供することができる。
【００２３】
本発明の好ましい諸実施形態には、複数の利点がある。第１は、メッセージ（データ）が、より脆弱なアプリケーション・サーバ環境から、より堅牢なＳＡＮに移されることであり、１つのサーバによってだけアクセスできるのではなく、潜在的には、ＳＡＮに接続し得るどのサーバもが、メッセージにアクセスすることができる。
【００２４】
複数のサーバが潜在的にファイルをマウントし使用することができる、キュー・データを保持するファイル・システムを単にマウントすることによるだけで、同じ利点を得ることはできない。これが許されるならば、たとえば、あるキュー・マネージャによってロックされたメッセージが、別のキュー・マネージャによって削除される競合状態が迅速に発生することになり、それが、そのようなどのシステムをも、完全に動作不能なものとすることになろう。
【００２５】
ロッキングおよび２相コミットのプリミティブをＳＡＮコントローラに追加することによって、本発明の好ましい一実施形態では、複数のサーバが、（読出し、書込み、削除、ロックおよびトランザクション操作のために）ＳＡＮに接続し、したがって、キュー内のメッセージに同時にアクセスすることができ、単一のキューへのマルチスレッド・アクセスを制御する単一のキュー・マネージャによって、同じレベルのデータ保全性が提供される。
【００２６】
第２の利点は、特定のアプリケーションに入るすべてのメッセージをフィルタリングして、ＳＡＮ内で維持される１つのキューに入れることができることである。そこから、アプリケーションによるその後の処理のために、アプリケーションにとって完全に透過的に、任意の数の接続されたサーバに、それを配布することができる。
【００２７】
最後の主な利点は、すべてのメッセージ・データが中央に位置しているので、すべての関係するデータが１箇所に位置し、また基本のＳＡＮサービスを使用して、安全なコピーを行うようにすることができるため、バックアップおよび災害時回復が、大幅に簡略化されることである。
【００２８】
メッセージは、「永続的」である属性を有することができ、すなわち、後でどんな処理が行われ得る前にも、キュー・マネージャによって、ログおよびジャーナルを取る必要があり、またはそれは、「非永続的」とすることもでき、その場合は、キュー・マネージャの障害時に、メッセージが廃棄される。本発明の好ましい実施形態は、永続的メッセージが置かれ得る場合のキューの制御に特に適している。
【００２９】
ＳＡＮによって制御されるキュー内にあるデータの保護の要件は、キュー・マネージャによってローカルに制御されるキュー内にそれがあるのと同じである。すなわち、キューの作成および削除、ならびにキューへのメッセージの書込み、そこからの読出しを行うには、権限が必要である。複数のキュー・マネージャにキューの定義を公開し、またアクセス制御（ローカル・キュー・マネージャによってアクセスが有効であるかどうかを判断する）を提供するための機構（キューのクラスタリング）は既に存在する。
【００３０】
好ましくは、ＳＡＮコントローラは、キュー・マネージャのＳＡＮへの接続を監視し、その後は、接続されたキュー・マネージャによって送信されるキュー操作の要求が検査されていると見なす。
【００３１】
メッセージ・データは、ネットワーク上を流れているので、ＳＡＮとキュー・マネージャの間のデータを暗号化するオプションもまた、好ましい特徴である。
【００３２】
現在好ましい諸実施形態は、他にも多くの利点があるが、堅牢性、スケーラビリティ、制御の集中化および維持の容易性の向上を実現するために、ネットワーク化されたシステム上に分散されたミドルウェア層に通常関連する属性およびアクティビティを、ＳＡＮコントローラに転送することを必要とすることが当業者には明らかであろう。ミドルウェア層に関連する属性およびアクティビティはしばしば、「サービス品質」定義と称される。上述したように、単にキュー・マネージャのローカル・ストレージからＳＡＮにキュー・データの構造体を転送し、たぶん従来のミドルウェアのプロビジョンによって、キュー・マネージャに、それ自体の間でプロトコルを取り決めて、ロッキングおよび同期点調整（syncpointing）を管理させることが可能である。しかし、上述したように、本発明の現在最も好ましい実施形態では、こうした解決策によって提供されるもの以上の利点が提供される。
【００３３】
当業者には明らかであるように、トランザクション性、同期点の調整、回復可能性などと同じように、ＳＡＮコントローラ内に組み込むことができる他の多くの「サービス品質」定義がある。こうしたサービス品質定義の一例には、長時間継続するトランザクションの下位トランザクションの「補償可能性」がある。
【００３４】
次に、本発明の好ましい一実施形態について、例示するためだけに、添付の図面を参照して述べる。
【発明を実施するための最良の形態】
【００３５】
次に図１を参照すると、相互作用する、本発明の現在好ましい実施形態の３つの主要構成要素がある。第１は、ＳＡＮコントローラ（１０４）によって制御されるＳＡＮ（１０２）、第２は、ＳＡＮ内に保持されるキュー（１０８）にメッセージを書き込んでいるキュー・マネージャ（１１４）、第３は、ＳＡＮで保持されるキュー（１０８）からそのメッセージを読み出すために見ているキュー・マネージャ（１２２）である。それぞれのキュー・マネージャ（１１４、１２２）は、キュー・マネージャ（１１４、１２２）によって満たされなければならない要求を行っているアプリケーション（１１２、１２０）の代理で役割を果たす。キュー・マネージャ（１１４、１２２）および要求側アプリケーション（１１２、１２０）は、ネットワーク内のどこにでも位置することができる。すなわち、システムまたはシステム構成要素（１１０、１１８）は、システム内の領域またはパーティション、別個の物理コンピュータ・システム、ネットワーク内の分散されたシステム、あるいはシステムまたはシステム構成要素の他の任意の組合せであり得る。
【００３６】
特に、任意のキュー・マネージャ・サービスを呼び出すために、アプリケーション（１１２、１２０）はまず、キュー・マネージャ（１１４、１２２）との接続を必要とする。したがって、アプリケーション（１１２、１２０）は、キュー・マネージャ（１１４、１２２）との接続を要求する呼出しを発行し、この呼出しに応答して、キュー・マネージャは、アプリケーションによって使用される接続を識別する接続ハンドルを返す。次いで、アプリケーション（１１２、１２０）は、接続の継続中に他の呼出しを行うときに、入力パラメータとして、この接続ハンドルを渡す。アプリケーション（１１２、１２０）は、必要とされるサービスを実施する際に使用される、キュー（１０８）などの各オブジェクトのオブジェクト・ハンドルを必要とする。したがって、アプリケーション（１１２、１２０）は、使用される各オブジェクトのオブジェクト・ハンドルを要求する１つまたは複数の呼出しを発行し、キュー・マネージャ（１１４、１２２）によって、適切なオブジェクト・ハンドルが提供される。キュー・マネージャ（１１４、１２２）に提供されるすべてのオブジェクト・ハンドルが特定の接続ハンドルに関連付けられ、所与のオブジェクト・ハンドルが、特定の接続によって使用するために、したがって、関連する接続ハンドルと共に使用するために提供される。使用されるリソースを受信すると、アプリケーション（１１２、１２０）は、サービスの実施を要求する、サービス要求の呼出しを発行することができる。この呼出しは、使用される各オブジェクトの接続ハンドルおよびオブジェクト・ハンドルを含む。キュー（１０８）からメッセージを取り出す場合、たとえば、アプリケーションは、キュー・マネージャ（１１４、１２２）に対して、接続およびキュー（１０８）を明らかにするために、アプリケーションに提供された、その接続ハンドルおよび適切なキュー・ハンドルを含む「メッセージ取得」呼出しを発行する。
【００３７】
好ましくは、本発明の好ましい実施形態のＳＡＮコントローラ（１０４）は、同期点コーディネータ（１２４）、永続性マネージャ（１２６）およびロック・マネージャ（１２８）を備える。これによって、そうでない場合には、キュー・マネージャに委ねられて、従来のメッセージング・キューイング・システム内で発生し得る潜在的な問題につながる機能を、集中化することが可能になる。
【００３８】
本発明の好ましい実施形態は、高スループットのシステムに非常に適したアーキテクチャであり、障害が発生したサーバ内でメッセージが「閉じ込められる」ことになる可能性はなく、また単により多くのサーバをＳＡＮに接続することによって、アプリケーションのスループットを「高める」こともできる。それとは逆に、アプリケーションの需要が低下した場合は、サーバが切断され、最大可能スループットが動的に低減され得る。図２に示すように、キュー（２０８）内のメッセージ処理の需要が、１つまたは複数のアプリケーション・サーバ（２１０）の能力を超えて増加した場合、１つまたは複数の拡張サーバ（２１２）をＳＡＮに接続し、したがって、使用可能な処理リソースを増やすことができる。
【００３９】
以下に、本発明の現在好ましい実施形態内で提供され得る対話について述べる。
対話１−接続
１００  キュー・マネージャが、ＳＡＮコントローラに接続要求を送信する
１０５  ＳＡＮコントローラが、接続要求を受け付ける
１１０  ＳＡＮコントローラが、キュー・マネージャの識別を検証する
１１５  識別が確認される場合、ＳＡＮコントローラが、接続要求を確認し、そうでない場合、接続を拒否する
対話２−キューを定義する
２００  管理者が、ＳＡＮ上のキューの定義要求を送信する
２０５  ＳＡＮコントローラが、要求を検査し、適切であれば、受け付ける
２１０  ＳＡＮコントローラが、管理対象のストレージ上にキュー用の空間を割り当てる
２１５  ＳＡＮコントローラが、必要な制御構造を作成する
２２０  ＳＡＮコントローラが、キュー作成の完了を確認をする
対話３−キューへのハンドルを開く
３００  キュー・マネージャが、キューへのハンドルを開く要求を送信する
３０５  ＳＡＮコントローラが、キューの存在およびハンドルを開く権限を確認する
３１０  キューが存在せず、または権限が不適切である場合、要求を失敗とする
３１５  ＳＡＮコントローラが、ハンドルを開き、要求側のキュー・マネージャに返す
３２０  ＳＡＮコントローラが、キューの使用カウンタを更新する
対話４−キューにメッセージを置く
４００  キュー・マネージャが、キューに置くメッセージを送信する
４０５  ＳＡＮコントローラが、キューにメッセージを置く権限を検証する
４１０  ＳＡＮコントローラが、割り当てられた管理ストレージ内にメッセージ・データを書き込む
４１５  ＳＡＮコントローラが、書込みが同期点の一部かどうかをチェックする
４２０  同期点の一部である場合、ＳＡＮコントローラが、メッセージにロックをかけ、アプリケーションに確認する
４２５  同期点でない場合、ＳＡＮコントローラが、キューに書き込まれたメッセージを確認する
対話５−同期点を確認する（簡略型）（読出しおよび書込み操作）
５００  キュー・マネージャが、ＳＡＮコントローラに、同期点の確認を送信する
５０５  ＳＡＮコントローラが、キュー操作（読出しまたは書込み）を確認する
５１０  ＳＡＮコントローラが、メッセージへのロックを解除し、読出し操作であれば、キューからメッセージを削除する
対話６−同期点をバックアウトする（簡略型）（読出しおよび書込み操作）
６００  キュー・マネージャが、ＳＡＮコントローラに、同期点のバックアウトを送信する
６０５  ＳＡＮコントローラが、バックアウトされたキュー操作（読出しまたは書込み）を確認する
６１０  ＳＡＮコントローラが、メッセージへのロックを解除し、書込み操作であれば、キューからメッセージを削除する
どの同期点操作も一般に、２相コミットタイプのものであるが、このレベルの詳細は、本説明では必要ないことに留意されたい。ＳＡＮコントローラと接続されたキュー・マネージャの間に、完全な２相コミットは、必要でないことがある。
対話７−キューからメッセージを読み出す
７００  キュー・マネージャが、ＳＡＮコントローラに、読出し要求メッセージを送信する
７０５  ＳＡＮコントローラが、要求が特定のメッセージに対するものかどうかをチェックする。そうである場合、対話８−特定のメッセージを読み出す
７１０  ＳＡＮコントローラが、次に得られる、読み出されるメッセージを判断する
７１５  ブラウズでない場合、ＳＡＮコントローラが、メッセージをロックし、読出しが同期点にあるかどうかをチェックする
７２０  ＳＡＮコントローラがメッセージを送信し、必要であれば、同期点をマークする
７２５  ブラウズではなく、また同期点を外れている場合、メッセージが、管理ストレージから削除される
対話８−キューから特定のメッセージを読み出す
８００  ＳＡＮコントローラが、メッセージが存在し、また他のキュー・マネージャによってロックされていないかどうかをチェックする
８０５  メッセージがロックされ、または存在しない場合、読出し要求が拒否される
８１０  ブラウズでない場合、ＳＡＮコントローラが、メッセージをロックし、読出しが同期点にあるかどうかをチェックする
８１５  ＳＡＮコントローラがメッセージを送信し、必要であれば、同期点をマークする
８２０  ブラウズではなく、また同期点を外れている場合、メッセージが、管理ストレージから削除される
対話９−キューへのハンドルを閉じる
９００  キュー・マネージャが、キューへのハンドルを閉じる要求を送信する
９０５  ＳＡＮコントローラが、要求を検証し、使用カウンタを減分する
９１０  ＳＡＮコントローラが、キューの使用カウンタをチェックする
９１２  ＳＡＮコントローラが、コミットされなかったどの同期点をもチェックし、検出された場合、ハンドルを閉じる要求を拒否する
９１５  使用カウントが０の場合、ＳＡＮコントローラがキュー・ハンドルを削除する
９２０  使用カウントが０でない場合、ＳＡＮコントローラが閉じる要求を拒否する
対話１０−キューを削除する
１０００  管理者がキューの削除要求を送信する
１００５  要求が「強制削除」である場合、キューを削除し、割り当てられた管理対象のストレージを開放する
１０１５  ＳＡＮコントローラが、同期点でロックされているメッセージがないことを検証する
１０２０  ＳＡＮコントローラが、ハンドルを開いている他のキュー・マネージャがないことを検証する
１０２５  上記のテストが真であれば、キューを削除し、割り当てられた管理対象のストレージを開放する
１０３０  上記のいずれかのテストが偽であれば、閉じる要求を拒否する
対話１１−所有されているキューをリストする
１１００  キュー・マネージャまたはシステム管理ＡＰＩが、所有されているキューのリスト要求を送信する
１１０５  ＳＡＮコントローラが、詳細を送信する
対話１２−キュー定義の修正
１２００  キュー・マネージャまたはシステム管理ＡＰＩが、キュー定義の修正要求を送信する
１２０５  ＳＡＮコントローラが、要求が可能であることを検証し、変更を実行する
対話１３−キュー・マネージャの動作状況チェック（health check）
１３００  ＳＡＮコントローラが、接続された各キュー・マネージャに、動作状況チェックを送信する
１３０５  動作状況チェックからの応答がない場合、ＳＡＮコントローラが、障害のあるキュー・マネージャを切断する
対話１４−障害のあるキュー・マネージャを切断する
１４００  ＳＡＮコントローラが、障害のあるキュー・マネージャによって所有される各ハンドルを終了する
１４０５  ＳＡＮコントローラが、コミットされなかったすべての同期点についてチェックし、それをバックアウトする
１４１０  ＳＡＮコントローラが、キューへのすべての開きハンドルを閉じる
１４１５  ＳＡＮコントローラが、障害のあるキュー・マネージャへの接続ハンドルを閉じる
１４２０  ＳＡＮコントローラが、障害イベントを報告する
【図面の簡単な説明】
【００４０】
【図１】本発明の好ましい一実施形態によるシステムの構成要素を示すブロック図である。
【図２】本発明の好ましい一実施形態によるシステムのロード・バランス機能を示すブロック図である。
【図１】
2006503347.tif 000003
【図２】
2006503347.tif 000004
【手続補正書】
【提出日】平成16年9月24日(2004.9.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
非同期メッセージング・キューイング・システムと、
ストレージ・エリア・ネットワーク・コントローラを備えたストレージ・エリア・ネットワークとを含むコンピュータ・システムであって、
前記ストレージ・エリア・ネットワーク・コントローラが、１つまたは複数のキュー・マネージャに代わってメッセージ・キューを制御する制御手段を含み、また前記ストレージ・エリア・ネットワーク・コントローラが、
前記メッセージの永続性を制御する手段、および
トランザクション制御手段のうちの１つを含むコンピュータ・システム。
【請求項２】
前記１つまたは複数のキュー・マネージャが複数のキュー・マネージャを含み、前記複数のキュー・マネージャのうちの少なくとも２つが異種である、請求項１に記載のコンピュータ・システム。
【請求項３】
前記トランザクション制御手段が同期点コーディネータを含む、請求項１または２に記載のコンピュータ・システム。
【請求項４】
非同期メッセージング・キューイング・システムと、ストレージ・エリア・ネットワーク・コントローラを備えたストレージ・エリア・ネットワークとを含むコンピュータ・システムを制御するための方法であって、
キュー・マネージャでメッセージ要求を受信するステップと、
前記メッセージ要求を、前記ストレージ・エリア・ネットワーク・コントローラに渡すステップとを含み、
前記ストレージ・エリア・ネットワーク・コントローラが、１つまたは複数のキュー・マネージャに代わってメッセージ・キューを制御する制御手段を含み、また前記ストレージ・エリア・ネットワーク・コントローラが、
前記メッセージの永続性を制御する手段、および
トランザクション制御手段のうちの１つを含む方法。
【請求項５】
前記１つまたは複数のキュー・マネージャが複数のキュー・マネージャを含み、前記複数のキュー・マネージャが異種である、請求項４に記載の方法。
【請求項６】
コンピュータ内にロードされ実行されたとき、前記コンピュータ・システムに、請求項４または５に記載の方法のすべてのステップを実施させるためのコンピュータ・プログラム・コードを含むコンピュータ・プログラム。
【国際調査報告】
2006503347.tif 000005
2006503347.tif 000006
2006503347.tif 000007