(57)【要約】【課題】メッセージキューを受け付けつつキューの管理の移行を行うキュー管理方法、キュー管理プログラム及びキュー管理装置を提供する。【解決手段】第１の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第２の仮想マシンに移行させる際に、第２の仮想マシンに第１のキューと第２のキューとを生成させ、第１の仮想マシンの特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から第１のキューにキューイングさせ、特定のキュー識別情報を含む受信メッセージを、第２のキューにキューイングさせ、特定のメッセージの参照または操作の指示に応じて、第１のキュー、特定のキュー、第２のキューの順に特定のメッセージの参照または操作を行う。【選択図】図７
2017004050.tif 000002
【特許請求の範囲】
【請求項１】
受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理方法において、
第１の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第２の仮想マシンに移行させる際に、前記第２の仮想マシンに第１のキューと第２のキューとを生成させ、
前記第１の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第１のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第２のキューにキューイングさせ、
前記特定のメッセージの参照または操作の指示に応じて、前記第１のキュー、前記特定のキュー、前記第２のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。
【請求項２】
請求項１において、
前記第１のキューまたは第２のキューにキューイングする工程では、前記特定のメッセージの前記第１のキューへの移行が完了した場合、前記特定のキューを削除し、
前記参照または操作を行う工程では、前記特定のメッセージの参照または操作の指示に応じて、前記第１のキュー、前記第２のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。
【請求項３】
請求項２において、
前記特定のメッセージの参照または操作を行う工程では、
前記第１のキューにキューイングされたメッセージが無くなった場合、前記第１のキューを削除し、
前記特定のメッセージの参照または操作の指示に応じて、前記第２のキューに対して前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。
【請求項４】
請求項１において、
前記特定のメッセージの参照または操作を行う工程では、前記特定のメッセージの前記第１のキューへの移行が完了していない場合、前記特定のメッセージの前記第１のキューへのキューイングを中止する、
ことを特徴とするキュー管理方法。
【請求項５】
受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理プログラムにおいて、
第１の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第２の仮想マシンに移行させる際に、前記第２の仮想マシンに第１のキューと第２のキューとを生成させ、
前記第１の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第１のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第２のキューにキューイングさせ、
前記特定のメッセージの参照または操作の指示に応じて、前記第１のキュー、前記特定のキュー、前記第２のキューの順に前記特定のメッセージの参照または操作を行う、
処理をコンピュータで実行させることを特徴とするキュー管理プログラム。
【請求項６】
受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理装置において、
第１の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第２の仮想マシンに移行させる際に、前記第２の仮想マシンに第１のキューと第２のキューとを生成させるキュー生成部と、
前記第１の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第１のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第２のキューにキューイングさせるキュー移行部と、
前記特定のメッセージの参照または操作の指示に応じて、前記第１のキュー、前記特定のキュー、前記第２のキューの順に前記特定のメッセージの参照または操作を行うキュー操作部と、を有する、
ことを特徴とするキュー管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キュー管理方法、キュー管理プログラム及びキュー管理装置に関する。
【背景技術】
【０００２】
利用者に対してサービスを提供する事業者（以下、単に事業者とも呼ぶ）は、利用者に対して各種サービスの提供を行うために、例えば、用途に応じた業務システムを構築して稼働させる。
【０００３】
上記のような業務システムには、例えば、複数のアプリケーション間で送受信される処理の実行要求（メッセージ）を管理するメッセージキューシステムが含まれる。具体的に、メッセージキューシステムは、例えば、あるアプリケーションが他のアプリケーションに対して送信したメッセージの一時的な格納を行う。これにより、メッセージキューシステムと連携する各アプリケーションは、メッセージの送受信を行う際に、アプリケーション間で同期する必要がなくなる。そのため、メッセージキューシステムは、メッセージの送受信を行う各アプリケーションの処理効率を高めることが可能になる（例えば、特許文献１、２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００９−５２８６２０号公報
【特許文献２】特開２００４−３２６７５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のようなメッセージキューシステムは、例えば、物理マシンに生成された仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）上に構築される場合がある。この場合、事業者は、例えば、メッセージの処理量や管理する必要があるキュー（メッセージを格納する領域）の数等によって、メッセージキューシステムが動作する仮想マシンの数を増減させる。これにより、事業者は、仮想マシンを生成するために必要な物理マシンのリソースを効率的に使用することが可能になる。
【０００６】
ここで、例えば、仮想マシンの削除が行われる場合、事業者は、削除される仮想マシンに生成されたキューを、他の仮想マシンに移行する必要がある。また、例えば、新たな仮想マシンが作成された場合、事業者は、既存の仮想マシンの処理負担を軽減させるために、既存の仮想マシンに生成されたキューを、他の仮想マシンに移行する場合がある。
【０００７】
このような場合、事業者は、メッセージキューシステムによって利用者に提供しているサービスを停止した上で、メッセージの移行を行う。これにより、事業者は、キューの管理の移行に伴って、移行対象のキューに格納されているメッセージの処理順序が入れ替わる等の影響を防止することが可能になる。
【０００８】
しかしながら、利用者によるメッセージキューシステムの利用形態によっては、メッセージキューサービスの停止を行うことができない場合がある。そのため、事業者は、この場合、メッセージキューシステムが構築された仮想マシンの数の増減を行うことができない。
【０００９】
そこで、一つの側面では、メッセージキューを受け付けつつキューの管理の移行を行うことを目的とする。
【課題を解決するための手段】
【００１０】
実施の形態の一つの態様によれば、受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理方法において、
第１の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第２の仮想マシンに移行させる際に、前記第２の仮想マシンに第１のキューと第２のキューとを生成させ、
前記第１の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第１のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第２のキューにキューイングさせ、
前記特定のメッセージの参照または操作の指示に応じて、前記第１のキュー、前記特定のキュー、前記第２のキューの順に前記特定のメッセージの参照または操作を行う。
【発明の効果】
【００１１】
一つの側面によれば、メッセージキューを受け付けつつキューの管理の移行を行う。
【図面の簡単な説明】
【００１２】
【図１】情報処理システム１０の全体構成を示す図である。
【図２】メッセージキューシステム１０の動作について説明する図である。
【図３】メッセージキューシステム１０の動作について説明する図である。
【図４】キューの管理の移行を行う場合の動作を説明する図である。
【図５】情報処理装置１のハードウエア構成を説明する図である。
【図６】図５の情報処理装置１の機能ブロック図である。
【図７】第１の実施の形態におけるキュー管理処理の概略を説明するフローチャート図である。
【図８】第１の実施の形態におけるキュー管理処理の概略を説明するフローチャート図である。
【図９】第１の実施の形態におけるキュー管理処理の概略を説明するフローチャート図である。
【図１０】第１の実施の形態におけるキュー管理処理の概略を説明する図である。
【図１１】第１の実施の形態におけるキュー管理処理の概略を説明する図である。
【図１２】第１の実施の形態におけるキュー管理処理の概略を説明する図である。
【図１３】第１の実施の形態におけるキュー管理処理の概略を説明する図である。
【図１４】第１の実施の形態におけるキュー管理処理の概略を説明する図である。
【図１５】第１の実施の形態におけるメッセージ移行処理の詳細を説明するフローチャート図である。
【図１６】第１の実施の形態におけるメッセージ追加処理の詳細を説明するフローチャート図である。
【図１７】第１の実施の形態におけるメッセージ参照処理の詳細を説明するフローチャート図である。
【図１８】第１の実施の形態におけるメッセージ参照処理の詳細を説明するフローチャート図である。
【図１９】第１の実施の形態におけるメッセージ参照処理の詳細を説明するフローチャート図である。
【図２０】第１の実施の形態におけるメッセージ参照処理の詳細を説明するフローチャート図である。
【図２１】第１の実施の形態におけるキュー追加処理の詳細を説明するフローチャート図である。
【図２２】第１の実施の形態におけるキュー削除処理の詳細を説明するフローチャート図である。
【図２３】Ｓ３２の処理が実行される前のキュー識別情報１３１を説明する図である。
【図２４】Ｓ３２の処理が実行された後のキュー識別情報１３１を説明する図である。
【図２５】Ｓ３３の処理が実行される前の状態情報１３２を説明する図である。
【図２６】Ｓ３３の処理が実行された後の状態情報１３２を説明する図である。
【図２７】Ｓ３６の処理が実行された後のキュー識別情報１３１を説明する図である。
【図２８】Ｓ３７の処理が実行された後のキュー識別情報１３１を説明する図である。
【図２９】Ｓ３８の処理が実行された後の状態情報１３２を説明する図である。
【図３０】Ｓ８４の処理が実行された後のキュー識別情報１３１を説明する図である。
【発明を実施するための形態】
【００１３】
［メッセージキューシステムの構成］
図１は、メッセージキューシステム１０（以下、情報処理システム１０とも呼ぶ）の全体構成を示す図である。図１に示すメッセージキューシステム１０は、情報処理装置１（以下、コンピュータ１とも呼ぶ）と、仮想マシン３が生成される物理マシン２と、利用者端末１１と、仮想マシン３の管理を行う管理装置１２とを有する。仮想マシン３には、インターネットやイントラネット等のネットワークＮＷを介して、利用者端末１１ａ、利用者端末１１ｂ及び利用者端末１１ｃ（以下、これらをまとめて利用者端末１１とも呼ぶ）からアクセス可能である。
【００１４】
物理マシン２は、図１の例においては複数の物理マシンから構成されており、各物理マシンは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリ等の物理リソースを有する。そして、各物理マシン２の物理リソースは、複数の仮想マシン３に割り当てられる。
【００１５】
管理装置１２は、仮想マシン３とアクセス可能であり、各仮想マシン３の管理を行う。具体的に、管理装置１２は、仮想マシン３の処理負荷を監視する。そして、管理装置１２は、例えば、処理負荷が所定の上限閾値を上回る仮想マシン３が存在する場合、新たな仮想マシン３を物理マシン２に生成する。一方、管理装置１２は、例えば、処理負荷が所定の下限閾値を下回る仮想マシン３が存在する場合、物理マシン２に生成されている仮想マシン３の一部を削除する。なお、管理装置１２は、物理マシン２と異なる物理マシンに構築されるものであってもよく、物理マシン２に生成された仮想マシン３に構築されるものであってもよい。
【００１６】
仮想マシン３は、例えば、そのインフラをネットワーク経由で利用者に提供するためのもの（以下、クラウドサービスとも呼ぶ）である。クラウドサービスは、コンピュータシステムを構築し稼働させるための基盤、すなわち、仮想マシン３やネットワーク等のインフラストラクチャそのものをネットワーク経由で提供するサービスである。また、利用者は、例えば、利用者端末１１からクラウドサービスポータルサイトにアクセスして、仮想マシンに必要な仕様、例えばＣＰＵのクロック周波数、メモリの容量（ＧＢ）、ハードディスクの容量（ＭＢ／ｓｅｃ、ＩＯＰＳ）、及びネットワークの通信帯域幅（Ｇｂｐｓ）を選択し、それらについてクラウド利用契約を締結する。また、利用者端末１１は、例えば、仮想マシン３の稼働状態を監視や、仮想マシン３に対する操作等を可能にする。
【００１７】
そして、仮想マシン３には、例えば、利用者に対してサービスを提供するための業務システム（以下、単に業務システムとも呼ぶ）が構築される。これにより、事業者は、利用者に対して各種サービスの提供を行うことが可能になる。
【００１８】
仮想化ソフトウエア４は、管理装置１２からの指示に応じて、物理マシン２の物理リソースを割り当てることにより、仮想マシン３を動作させる基盤ソフトウエアである。仮想化ソフトウエア４は、例えば、物理マシン２で動作する。
【００１９】
情報処理装置１は、仮想マシン３に生成されたキュー（図示しない）を管理する。そして、情報処理装置１は、利用者端末１１から受信したＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）に基づき、キューに対して操作を行う。具体的に、情報処理装置１は、キューの作成及び削除や、キューに対する新たなメッセージの追加等を行う。以下、メッセージキューシステムの動作について説明を行う。
【００２０】
［メッセージキューシステムの動作］
図２及び図３は、メッセージキューシステム１０の動作について説明する図である。図２及び図３に示すメッセージキューシステム１０において、物理マシン２には、仮想マシン３Ａと仮想マシン３Ｂとが生成されている。そして、仮想マシン３Ａには、キュー３１Ａが設けられ、仮想マシン３Ｂには、キュー３１Ｂが設けられている。以下、キュー３１Ａは、利用者端末１１ｃ（例えば、利用者端末１１ｃで動作するアプリケーション）が利用者端末１１ａ（例えば、利用者端末１１ａで動作するアプリケーション）に処理の実行を要求するためのメッセージを格納するキューであるものとして説明を行う。
【００２１】
具体的に、図２に示すように、情報処理装置１は、利用者端末１１ｃから、利用者端末１１ａに処理の実行を要求するためのＡＰＩを受信した場合、受信したＡＰＩに含まれるメッセージをキュー３１Ａの最後尾に格納する。そして、情報処理装置１は、図３に示すように、利用者端末１１ａから、キュー３１Ａに格納されたメッセージを取得するためのＡＰＩを受信した場合、キュー３１Ａの先頭に格納されたメッセージを取得して利用者端末１１ａに送信（返信）する。そして、利用者端末１１ａは、受信したメッセージに対応する処理の実行を行う。
【００２２】
すなわち、図２及び図３に示すメッセージキューシステム１０では、キューに先に格納されたメッセージから順に処理を行う。これにより、各利用者端末１１は、例えば、他の利用者端末１１と同期することなくメッセージの送受信を行うことが可能になる。
【００２３】
次に、キューの管理の移行を行う場合の動作について説明を行う。図４は、キューの管理の移行を行う場合の動作を説明する図である。
【００２４】
図４に示す例において、情報処理装置１は、仮想マシン３Ａのキュー３１Ａに含まれるメッセージを、仮想マシン３Ｂのキュー３１Ｂに移行する。これにより、情報処理装置１は、例えば、キュー３１Ａにメッセージ（処理が行われていないメッセージ）が残っている場合であっても、仮想マシン３Ａの削除を行うことが可能になる。
【００２５】
上記のような場合において、情報処理装置１は、例えば、利用者に対するサービスの提供を停止した上で、キューに含まれるメッセージの移行を行う。これにより、情報処理装置１は、移行対象のキューに含まれるメッセージの処理順序等に影響を与えることを防止することが可能になる。
【００２６】
しかしながら、利用者によるメッセージキューシステム１０の利用形態によっては、メッセージキューサービスを停止させることができない場合がある。そのため、事業者は、メッセージキューシステム１０が構築された仮想マシン３の数の増減を行うことができない場合がある。
【００２７】
そこで、本実施の形態では、情報処理装置１は、特定のキューの管理を第１仮想マシンから第２仮想マシンに移行する際に、第１のキューと第２のキューとを生成する。その後、情報処理装置１は、特定のキューに含まれるメッセージを先頭から順に第１のキューに移行する。また、情報処理装置１は、特定のキューに対するメッセージを第２のキューに格納する。そして、メッセージの参照または操作の指示に応じて、情報処理装置１は、第１のキュー、特定のキュー、第２のキューの順にメッセージを参照または操作する。
【００２８】
すなわち、情報処理装置１は、特定のキューに含まれるメッセージの移行中に発生したメッセージを、メッセージの移行が行われている特定のキュー及び第１のキューとは異なるキューである第２のキューに格納する。そのため、情報処理装置１は、キューの管理の移行を開始する前に特定のキューに格納されたメッセージと、キューの管理の移行中の発生したメッセージとを分けた形で管理することが可能になる。
【００２９】
これにより、情報処理装置１は、メッセージの処理順序等に影響が及ぶことを防止するためのサービスの停止を行うことなく、特定のキューの管理の移行を行うことが可能になる。
【００３０】
［情報処理装置のハードウエア構成］
次に、情報処理装置１のハードウエア構成について説明する。図５は、情報処理装置１のハードウエア構成を説明する図である。
【００３１】
情報処理装置１は、プロセッサであるＣＰＵ１０１と、メモリ１０２と、外部インターフェース（Ｉ／Ｏユニット）１０３と、記憶媒体（ストレージ）１０４とを有する。各部は、バス１０５を介して互いに接続される。
【００３２】
記憶媒体１０４は、記憶媒体１０４内のプログラム格納領域（図示しない）に、仮想マシン３に生成されたキューを管理する処理（以下、キュー管理処理とも呼ぶ）を行うためのプログラム１１０を記憶する。
【００３３】
ＣＰＵ１０１は、図５に示すように、プログラム１１０の実行時に、プログラム１１０を記憶媒体１０４からメモリ１０２にロードし、プログラム１１０と協働してキュー管理処理を行う。
【００３４】
記憶媒体１０４は、例えば、キュー管理処理を行う際に用いられる情報を記憶する情報格納領域１３０（以下、記憶部１３０とも呼ぶ）を有する。
【００３５】
外部インターフェース１０３は、物理マシン２（物理マシン２に生成された仮想マシン３）と通信を行う。また、外部インターフェース１０３は、ネットワークＮＷを介して、利用者端末１１と通信を行う。
【００３６】
[情報処理装置のソフトウエア構成]
次に、情報処理装置１のソフトウエア構成について説明する。図６は、図５の情報処理装置１の機能ブロック図である。ＣＰＵ１０１は、プログラム１１０と協働することにより、ＡＰＩ受信部１１１と、キュー操作部１１２と、操作結果送信部１１３と、移行時キュー操作部１１４（以下、単にキュー操作部１１４またはキュー生成部１１４とも呼ぶ）として動作する。また、ＣＰＵ１０１は、プログラム１１０と協働することにより、キュー移行部１１５と、状態情報管理部１１６と、キュー移行停止部１１７と、キュー識別情報管理部１１８として動作する。さらに、情報格納領域１３０には、キュー識別情報１３１（以下、単に識別情報１３１とも呼ぶ）と、状態情報１３２とが記憶されている。
【００３７】
ＡＰＩ受信部１１１は、例えば、利用者が利用者端末１１を介して送信したＡＰＩを受信する。このＡＰＩは、例えば、仮想マシン３に生成されたキューに対するメッセージの追加や、仮想マシン３に生成されたキューに格納されているメッセージの参照や操作（メッセージを処理するための取得を含む）を情報処理装置１に指示するためのものである。また、このＡＰＩは、例えば、仮想マシン３における新たなキューの生成や、既に仮想マシン３に生成されているキューの削除を情報処理装置１に指示するためのものである。
【００３８】
キュー操作部１１２は、例えば、ＡＰＩ受信部１１１がメッセージの追加を目的とするＡＰＩを受信した場合に、受信したＡＰＩに含まれるメッセージ（以下、受信メッセージとも呼ぶ）をキューに格納する。具体的に、キュー操作部１１２は、この場合、受信メッセージに含まれるキュー識別情報１３１に基づいて、それぞれキューを管理する複数の仮想マシン３のうち、受信メッセージに含まれるキュー識別情報１３１に対応するキューを特定する。そして、キュー操作部１１２は、受信メッセージを特定したキューに格納する。なお、キュー識別情報１３１は、仮想マシン３に生成された各キューを識別するための情報である。そして、受信メッセージに含まれている可能性があるキュー識別情報１３１は、例えば、予め情報格納領域１３０に記憶されているものであってよい。
【００３９】
また、キュー操作部１１２は、例えば、ＡＰＩ受信部１１１がメッセージの参照または操作を目的とするＡＰＩを受信した場合に、受信したＡＰＩに含まれる情報が示すメッセージの参照またはメッセージに対する操作を行う。さらに、キュー操作部１１２は、例えば、ＡＰＩ受信部１１１がキューの生成を目的とするＡＰＩを受信した場合に、新たなキューの作成を行う。また、キュー操作部１１２は、例えば、ＡＰＩ受信部１１１がキューの削除を目的とするＡＰＩを受信した場合に、削除対象のキューの削除を行う。
【００４０】
操作結果送信部１１３は、キュー操作部１１２によって行われた操作等に対する結果を送信する。具体的に、操作結果送信部１１３は、ＡＰＩを送信した利用者端末１１に対し、ＡＰＩに含まれる情報に対応して行われた操作の結果や、ＡＰＩに含まれる内容に基づいて取得したメッセージの送信を行う。
【００４１】
移行時キュー操作部１１４は、例えば、仮想マシン３に生成されたキューの管理の移行が行われている際に、キュー操作部１１２に代わってキューの操作等を行う。
【００４２】
また、キュー移行部１１５は、例えば、キューの管理の移行を行う。キュー移行部１１５は、例えば、キューに格納されたメッセージの移行を行う。
【００４３】
具体的に、移行時キュー操作部１１４は、仮想マシン３（以下、第１の仮想マシン３Ａとも呼ぶ）で管理され、特定のキュー識別情報１３１に対応する特定のキューの管理を、他の仮想マシン３（以下、第２の仮想マシン３Ｂとも呼ぶ）に移行させる際に、第２の仮想マシンに第１のキューと第２のキューを生成する。そして、キュー移行部１１５は、特定のキューに格納されている特定のメッセージを、特定のキューの先頭側から第１のキューに格納する。
【００４４】
一方、キュー移行部１１５が特定のキューの管理を移行する間に、ＡＰＩ受信部１１１が特定のキューに対応するキュー識別情報１３１を含むメッセージを追加するためのＡＰＩを受信した場合、移行時キュー操作部１１４は、受信メッセージを第２のキューに格納する。
【００４５】
さらに、キュー移行部１１５が特定のキューの管理を移行する間に、ＡＰＩ受信部１１１がメッセージの参照または操作を指示するためのＡＰＩを受信した場合、移行時キュー操作部１１４は、第１のキュー、特定のキュー、第２のキューの順にメッセージの参照または操作を行う。
【００４６】
また、移行時キュー操作部１１４は、例えば、キュー移行部１１５によるキューの管理の移行が完了した後、特定のキュー及び第２のキューの削除を行う。移行時キュー操作部１１４によるキューの生成及び削除の具体例については後述する。また、キュー移行部１１５によるキューに管理の移行の具体例については後述する。
【００４７】
なお、以下、キュー操作部１１２は、例えば、状態情報１３２がキューの管理の移行が行われていないことを示す場合に動作するものとして説明を行う。また、以下、移行時キュー操作部１１４は、例えば、状態情報１３２がキューの管理の移行が行われていることを示す場合に動作するものとして説明を行う。
【００４８】
状態情報管理部１１６は、状態情報１３２の更新を行う。状態情報１３２は、キュー移行部１１５によるキューの管理の移行が行われているか否かを示す情報を含む。状態情報１３２の具体例については後述する。
【００４９】
キュー移行停止部１１７は、キュー移行部１１５によるキューの管理の移行が行われている間に、ＡＰＩ受信部１１１がメッセージの参照または操作を指示するためのＡＰＩを受信した場合、キュー移行部１１５によるキューの管理の移行を停止（中止）する。キュー移行停止部１１７がキューの管理の移行の停止する場合の具体例については後述する。
【００５０】
キュー識別情報管理部１１８は、キュー識別情報１３１の管理を行う。具体的に、例えば、キュー操作部１１２が行ったキューの生成または削除に応じて、キュー識別情報１３１に含まれる情報のうち、生成または削除されたキューに関する情報の追加または削除を行う。
【００５１】
なお、以下、上記の各部が同一の情報処理装置１で動作する場合について説明を行うが、それぞれ異なる情報処理装置１において動作するものであってもよい。また、キュー移行部１１５は、特定のキューの管理を移行する間に、特定のキューに対応するキュー識別情報１３１を含むメッセージを追加するためのＡＰＩが発生した場合、移行時キュー操作部１１４に代わって受信メッセージを第２のキューに格納するものであってもよい。
【００５２】
[第１の実施の形態の概略］
次に、第１の実施の形態の概略について説明する。図７から図９は、第１の実施の形態におけるキュー管理処理の概略を説明するフローチャート図である。また、図１０から図１４は、第１の実施の形態におけるキュー管理処理の概略を説明する図である。図１０から図１４を参照しながら、図７から図９のキュー管理処理について説明を行う。
【００５３】
[メッセージ移行処理の概略］
初めに、第１の実施の形態におけるキュー管理処理のうち、メッセージの移行を行う処理（以下、メッセージ移行処理とも呼ぶ）について説明を行う。図７は、第１の実施の形態におけるメッセージ移行処理の概略を説明するフローチャート図である。
【００５４】
情報処理装置１は、図７に示すように、キュー移行タイミングまで待機する（Ｓ１のＮＯ）。キュー移行タイミングは、例えば、キューを管理する仮想マシン３の負荷が所定の閾値を超えたことに起因して、第１の仮想マシン３Ａが管理する特定のキューを第２の仮想マシン３Ｂに移行する必要が生じたタイミングであってよい。また、キュー移行タイミングは、例えば、特定のキューを管理する第１の仮想マシン３Ａが削除される前に、特定のキューを第２の仮想マシン３Ｂに移行する必要が生じたタイミングであってよい。
【００５５】
その後、キュー移行タイミングになった場合（Ｓ１のＹＥＳ）、情報処理装置１は、第１の仮想マシン３Ａが管理する特定のキューの管理を移行する第２の仮想マシン３Ｂに、第１のキューと第２のキューとを生成させる（Ｓ２）。以下、Ｓ２の処理の概略の具体例を説明する。
【００５６】
図１０及び図１１は、Ｓ２の処理の概略の具体例を説明する図である。図１０は、Ｓ２の処理が行われる前のメッセージキューシステム１０を説明する図である。図１０に示すメッセージキューシステム１０において、物理マシン２には、仮想マシン３Ａと仮想マシン３Ｂとが生成されている。また、仮想マシン３Ａには、キュー３１Ａが生成され、仮想マシン３Ｂには、キュー３１Ｂが生成されている。
【００５７】
そして、図１１は、Ｓ２の処理が行われた後のメッセージキューシステム１０を説明する図である。情報処理装置１は、図１１に示すように、キュー３１Ａに格納されたメッセージの移行を行う前に、メッセージの移行先の仮想マシンである仮想マシン３Ｂに、第１のキュー３３Ｂ及び第２のキュー３４Ｂを生成する（Ｓ２）。これにより、情報処理装置１は、後述するように、キュー３１Ａの管理の移行を行う前に受信したメッセージと、キュー３１Ａの管理の移行を行う間に受信したメッセージとを分ける形で管理することが可能になる。
【００５８】
図７に戻り、情報処理装置１は、特定のキューの格納済の特定のメッセージを、キューの先頭側に格納されているメッセージから順に、第１のキューに格納する（Ｓ３）。以下、Ｓ３の処理の概略の具体例を説明する。
【００５９】
図１２は、Ｓ３の処理の概略の具体例を説明する図である。具体的に、図１２は、Ｓ３の処理が行われた後のメッセージキューシステム１０を説明する図である。図１２に示すように、情報処理装置１は、キュー３１Ａに格納されているメッセージを、Ｓ２で生成したキューのうち、第１のキュー３３Ｂのみに移行する。ここで、情報処理装置１は、キュー３１Ａに格納されているメッセージを、キュー３１Ａに格納された順（処理順序が早い順）に、第１のキュー３３Ｂへの格納を行う。これにより、情報処理装置１は、第１のキュー３３Ｂへのメッセージの移行後においても、キュー３１Ａに対して行われたメッセージの格納順序に関する情報を維持することが可能になる。
【００６０】
[メッセージ追加処理の概略］
次に、第１の実施の形態におけるキュー管理処理のうち、メッセージの追加を行う処理（以下、メッセージ追加処理とも呼ぶ）について説明を行う。図８は、第１の実施の形態におけるメッセージ追加処理の概略を説明するフローチャート図である。
【００６１】
情報処理装置１は、図８に示すように、図７で説明したＳ３の処理が行われている間に、特定のキュー識別情報１３１を含むメッセージを受信するまで待機する（Ｓ１１のＮＯ）。そして、特定のキュー識別情報１３１を含むメッセージを受信した場合（Ｓ１１のＹＥＳ）、情報処理装置１は、特定のキュー識別情報１３１を含む受信メッセージを、第２のキューに格納する（Ｓ１２）。
【００６２】
すなわち、情報処理装置１は、特定のキューの管理の移行中に、特定のキューに追加すべきメッセージを受信した場合、特定のキューではなく第２のキューに受信メッセージを格納する。これにより、情報処理装置１は、特定のキューの管理の移行前に発生したメッセージと、特定のキューの管理の移行中に発生したメッセージとを分ける形で管理することが可能になる。そのため、情報処理装置１は、特定のキューの管理の移行によって、メッセージの処理順序に影響が及ぶことを防止することが可能になる。以下、Ｓ１２の処理の概略の具体例を説明する。
【００６３】
図１３は、Ｓ１２の処理の概略の具体例を説明する図である。具体的に、図１３は、Ｓ１２の処理が行われた後のメッセージキューシステム１０を説明する図である。図１３に示すように、情報処理装置１は、キュー３１Ａに含まれるメッセージを第１のキュー３３Ｂに移行している間に、キュー３１Ａに対するメッセージを受信した場合、受信メッセージを第２のキュー３４Ｂに格納する。これにより、情報処理装置１は、キュー３１Ａの管理の移行前に発生したメッセージを第１のキュー３３Ｂに格納し、キュー３１Ａの管理の移行中に発生したメッセージを第２のキュー３４Ｂに格納することが可能になる。
【００６４】
[メッセージ参照処理の概略］
次に、第１の実施の形態におけるキュー管理処理のうち、メッセージの参照またはメッセージに対する操作を行う処理（以下、メッセージ参照処理とも呼ぶ）について説明を行う。図９は、第１の実施の形態におけるメッセージ参照処理の概略を説明するフローチャート図である。
【００６５】
情報処理装置１は、図９に示すように、図７で説明したＳ３の処理が行われている間に、特定のキューに格納された特定のメッセージの参照または操作の指示を受信するまで待機する（Ｓ２１のＮＯ）。そして、特定のキューに格納された特定のメッセージの参照または操作の指示を受信した場合（Ｓ２１のＹＥＳ）、情報処理装置１は、第１のキュー、特定のキュー、第２のキューの順に、特定のメッセージの参照または操作を行う（Ｓ２２）。
【００６６】
すなわち、Ｓ３の処理の実行中において、特定のメッセージは、第１のキュー（移行先のキュー）または特定のキュー（移行元のキュー）のいずれかに格納されている。そして、情報処理装置１は、Ｓ３の処理において、特定のキューに先に格納された特定のメッセージから順に移行を行う。さらに、Ｓ３の処理の実行中において、特定のキューに格納されたメッセージの移行中に発生したメッセージは、第２のキューに格納される。そのため、Ｓ３の処理の実行中において、第１のキューに格納されているメッセージと、特定のキューに格納されているメッセージと、第２のキューに格納されているメッセージとは、それぞれ処理順序が連続する関係を有していることになる。
【００６７】
したがって、情報処理装置１は、Ｓ２２の処理において、第１のキュー、特定のキュー、第２のキューの順に特定のメッセージの参照または操作を行うことにより、特定のメッセージの移行が行われていない場合と同様の処理を行うことが可能になる。以下、Ｓ２２の処理の概略の具体例を説明する。
【００６８】
図１４は、Ｓ３２の処理の概略の具体例を説明する図である。具体的に、図１４は、Ｓ２２の処理が行われた後のメッセージキューシステム１０を説明する図である。図１４に示すように、情報処理装置１は、キュー３１Ａに含まれるメッセージを第１のキュー３３Ｂに移行している間に、移行対象のメッセージに対して参照または操作を行う場合、初めに、第１のキュー３３Ｂに含まれるメッセージに対して参照または操作を行う。次に、情報処理装置１は、この場合、移行対象のメッセージの移行元であるキュー３１Ａに含まれるメッセージに対して参照または操作を行い、その後、第２のキューに含まれるメッセージに対して参照または操作を行う。
【００６９】
これにより、情報処理装置１は、利用者に対して意識させることなく、仮想マシン３Ａと仮想マシン３Ｂとの間におけるキューの管理の移行を行うことが可能になる。
【００７０】
このように、情報処理装置１は、第１の仮想マシン３Ａで管理され、特定のキュー識別情報１３１に対応する特定のキュー３１Ａの管理を第２の仮想マシン３Ｂに移行させる際に、第２の仮想マシン３Ｂに第１のキュー３３Ｂと第２のキュー３４Ｂとを生成させる。そして、情報処理装置１は、第１の仮想マシン３Ａの特定のキュー３１Ａに格納済の特定のメッセージを、キューの先頭側から第１のキュー３３Ｂに格納させ、特定のキュー識別情報１３１を含む受信メッセージを、第２のキュー３４Ｂに格納させる。
【００７１】
その後、情報処理装置１は、特定のメッセージの参照または操作の指示に応じて、第１のキュー３３Ｂ、特定のキュー３１Ａ、第２のキュー３４Ｂの順に特定のメッセージの参照または操作を行う。
【００７２】
これにより、情報処理装置１は、メッセージキューシステム１０によるサービスの停止を行うことなく、特定のキュー３１Ａの管理の移行を行うことが可能になる。
【００７３】
[第１の実施の形態の詳細]
次に、第１の実施の形態の詳細について説明する。図１５から図２２は、第１の実施の形態におけるキュー管理処理の詳細を説明するフローチャート図である。また、図２３から図３０は、第１の実施の形態におけるキュー管理処理の詳細を説明する図である。図２３から図３０を参照しながら、図１５から図２２のキュー管理処理を説明する。なお、以下、図１で説明した物理マシン２に、仮想マシン３Ａ、仮想マシン３Ｂ、仮想マシン３Ｃ及び仮想マシン３Ｄが生成されているものとして説明を行う。
【００７４】
[メッセージ移行処理の詳細］
初めに、メッセージ移行処理の詳細について説明を行う。図１５は、第１の実施の形態におけるメッセージ移行処理の詳細を説明するフローチャート図である。
【００７５】
情報処理装置１の移行時キュー操作部１１４は、図１５に示すように、キュー移行タイミングまで待機する（Ｓ３１のＮＯ）。その後、キュー移行タイミングになった場合（Ｓ３１のＹＥＳ）、移行時キュー操作部１１４は、第１の仮想マシン３Ａが管理する特定のキュー３１Ａの管理を移行する第２の仮想マシン３Ｂに、第１のキュー３３Ｂと第２のキュー３４Ｂとを生成させる（Ｓ３２）。これにより、移行時キュー操作部１１４は、キュー３１Ａの管理の移行を行う前に受信したメッセージと、キュー３１Ａの管理の移行を行う間に受信したメッセージとを分ける形で管理することが可能になる。
【００７６】
そして、この場合、情報処理装置１のキュー識別情報管理部１１８は、例えば、第１のキュー３３Ｂ及び第２のキュー３４Ｂが生成されたことに伴って、キュー識別情報１３１の更新を行う。以下、キュー識別情報１３１の具体例を説明する。
【００７７】
図２３及び図２４は、キュー識別情報１３１を説明する図である。具体的に、図２３は、Ｓ３２の処理が実行される前のキュー識別情報１３１を説明する図である。また、図２４は、Ｓ３２の処理が実行された後のキュー識別情報１３１を説明する図である。
【００７８】
図２３に示すキュー識別情報１３１は、キュー識別情報１３１に含まれる各情報を識別する「ＩＤ」と、各仮想マシン３に生成されたキューを識別する「識別情報」と、各キューの属性を示す「属性」とを項目として有する。「識別情報」には、ＡＰＩ受信部１１１が受信するメッセージに含まれるキュー識別情報１３１と同じ情報が設定されている。また、「属性」には、通常のキューを示す「通常」と、メッセージの移行が行われる際に一時的に生成されるキューを示す「一時」とが設定される。また、「属性」には、メッセージの移行が行われる際にメッセージの移行先となるキューを示す「新規」が設定される。
【００７９】
なお、以下、「属性」に「通常」が設定されたキュー（図１１等におけるキュー３１Ａに対応するキュー）を通常キューとも呼ぶ。また、以下、「属性」に「一時」が設定されたキュー（図１１等における第１のキュー３３Ｂに対応するキュー）を一時キューとも呼び、「属性」に「新規」が設定されたキュー（図１１等における第２のキュー３４Ｂに対応するキュー）を新規キューとも呼ぶ。
【００８０】
さらに、図２３に示すキュー識別情報１３１は、各キューが生成された仮想マシン３を識別する「仮想マシン」と、「属性」に「一時」または「新規」が設定されている場合に、対応する通常キューの「識別情報」を設定する「対応キューの識別情報」とを項目として有する。
【００８１】
具体的に、図２３に示すキュー識別情報１３１において、「ＩＤ」が「１」である情報には、「識別情報」として「Ｑ００１」が設定され、「属性」に「通常」が設定され、「仮想マシン」に仮想マシン３Ａを示す「３Ａ」が設定されている。また、図２３に示すキュー識別情報１３１において、「ＩＤ」が「１」である情報には、「対応キューの識別情報」としてブランクが設定されている。すなわち、「ＩＤ」が「１」である情報は、通常キューに関する情報であるため、「ＩＤ」が「１」である情報の「対応キューの識別情報」には、ブランクが設定される。図２３の他の情報については説明を省略する。
【００８２】
次に、Ｓ３２の処理が実行された後のキュー識別情報１３１について説明を行う。図２４に示すキュー識別情報１３１は、図２３に示すキュー識別情報１３１と比較して、「ＩＤ」が「８」及び「９」である情報が追加されている（図２４の下線部分）。すなわち、「ＩＤ」が「８」である情報及び「ＩＤ」が「９」である情報は、それぞれ「識別情報」が「Ｑ００１」である通常キューに対応する一時キュー及び新規キューについての情報である。なお、以下、図２３のキュー識別情報１３１における「ＩＤ」が「１」であるキューの管理が、仮想マシン３Ａから仮想マシン３Ｂに移行する場合について説明を行う。
【００８３】
具体的に、図２４に示すキュー識別情報１３１において、「ＩＤ」が「８」である情報には、「識別情報」として「Ｑ１０１」が設定され、「属性」に「一時」が設定され、「仮想マシン」に仮想マシン３Ｂを示す「３Ｂ」が設定されている。また、図２４に示すキュー識別情報１３１において、「ＩＤ」が「８」である情報には、「対応キューの識別情報」として「Ｑ００１」が設定されている。そして、図２４に示すキュー識別情報１３１において、「ＩＤ」が「９」である情報には、「識別情報」として「Ｑ２０１」が設定され、「属性」に「新規」が設定され、「仮想マシン」に「３Ｂ」が設定されている。また、図２４に示すキュー識別情報１３１において、「ＩＤ」が「８」である情報には、「対応キューの識別情報」として「Ｑ００１」が設定されている。
【００８４】
図１５に戻り、情報処理装置１の状態情報管理部１１６は、情報格納領域１３０に記憶された状態情報１３２を「実施」に変更する（Ｓ３３）。以下、状態情報１３２の具体例を説明する。
【００８５】
図２５及び図２６は、状態情報１３２の具体例を説明する図である。具体的に、図２５は、Ｓ３３の処理が実行される前の状態情報１３２を説明する図である。また、図２６は、Ｓ３３の処理が実行された後の状態情報１３２を説明する図である。
【００８６】
図２５に示す状態情報１３２は、状態情報１３２に含まれる各情報を識別する「ＩＤ」と、各仮想マシン３に生成されたキューを識別する「識別情報」と、各キューの状態を示す「状態」とを項目として有する。「状態」には、例えば、対応するキューの移動が行われていない状態を示す「定常」、対応するキューの移動が行われている状態を示す「実施」、または対応するキューの移動が完了したことを示す「完了」が設定される。
【００８７】
具体的に、図２５に示す状態情報１３２において、「ＩＤ」が「１」である情報には、「識別情報」として「Ｑ００１」が設定され、「状態」として「定常」が設定されている。また、図２５に示す状態情報１３２において、「ＩＤ」が「２」である情報には、「識別情報」として「Ｑ００２」が設定され、「状態」として「実施」が設定されている。図２５の他の情報については説明を省略する。
【００８８】
次に、Ｓ３３の処理が実行された後の状態情報１３２について説明する。図２６に示す状態情報１３２は、図２５に示す状態情報１３２と比較して、「ＩＤ」が「１」である情報の「状態」が「定常」から「実施」に更新されている（図２６の下線部分）。すなわち、状態情報管理部１１６は、特定のキュー３１Ａに格納されたメッセージを第１のキュー３３Ｂに移行する前に、特定のキュー３１Ａに対応する情報の「状態」を「定常」から「実施」に更新する。
【００８９】
図１５に戻り、情報処理装置１のキュー移行部１１５は、特定のキュー３４Ａの格納済の特定のメッセージを、キューの先頭側に格納されているメッセージから順に、第１のキューに格納する（Ｓ３４のＹＥＳ、Ｓ３５）。これにより、キュー移行部１１５は、第１のキュー３３Ｂに対するメッセージの移行後においても、特定のキュー３１Ａに対して行われたメッセージの格納順序に関する情報を維持することが可能になる。
【００９０】
その後、移行時キュー操作部１１４は、特定のキュー３１Ａを削除する（Ｓ３６）。そして、この場合、情報処理装置１のキュー識別情報管理部１１８は、例えば、キュー識別情報１３１に含まれる情報にうち、特定のキュー３１Ａの削除に伴う情報について更新を行う。以下、Ｓ３６の処理が実行された後のキュー識別情報１３１について説明を行う。
【００９１】
図２７は、Ｓ３６の処理が実行された後のキュー識別情報１３１を説明する図である。図２７に示すキュー識別情報１３１は、図２４に示すキュー識別情報１３１と比較して、「ＩＤ」が「１」である情報が削除されている。すなわち、キュー識別情報管理部１１８は、Ｓ３６の処理が実行された場合、キュー識別情報１３１のうち、特定のキュー３１Ａに対応する情報である「ＩＤ」が「１」である情報の削除を行う。
【００９２】
図１５に戻り、情報処理装置１のキュー識別情報管理部１１８は、キュー識別情報１３１のうち、第２のキュー３４Ｂに関する情報を、特定のキュー３１Ａに関する情報として更新する（Ｓ３７）。これにより、キュー識別情報管理部１１８は、情報格納領域１３０に記憶されたキュー識別情報１３１上、Ｓ３６において削除された特定のキュー３１Ａが行っていたキューの管理を、第２のキュー３４Ｂに移行させることが可能になる。そのため、第２のキュー３４Ｂは、削除された特定のキュー３１Ａに代わって、「識別情報」が「Ｑ００１」であるキューとして機能することが可能になる。以下、Ｓ３７の処理が実行された後のキュー識別情報１３１について説明を行う。
【００９３】
図２８は、Ｓ３７の処理が実行された後のキュー識別情報１３１を説明する図である。図２７に示すキュー識別情報１３１は、図２７に示すキュー識別情報１３１と比較して、「ＩＤ」が「９」である情報が更新されている（図２８の下線部分）。具体的に、図２８に示すキュー識別情報１３１において、「ＩＤ」が「９」である情報には、「識別情報」として「Ｑ００１」が設定され、「属性」に「通常」が設定され、「仮想マシン」に「３Ｂ」が設定されている。また、図２８に示すキュー識別情報１３１において、「ＩＤ」が「９」である情報には、「対応キューの識別情報」としてブランクが設定されている。
【００９４】
なお、図２８に示すキュー識別情報１３１において、Ｓ３７の処理で削除された一時キーである「ＩＤ」が「８」である情報が残っている。そして、Ｓ３７の処理が完了した後において、一時キーには、Ｓ３７の処理で削除された通常キューから移行されたメッセージが格納されている場合がある。そのため、情報処理装置１は、メッセージの移行の完了後において、新たな通常キューに対して参照または操作を行う場合、後述するように、新たな通常キューに対して参照または操作を行う前に、一時キューに対して参照または操作を行う必要がある。Ｓ３７の処理が完了した後において一時キーに対して参照または操作を行う場合の具体例については後述する。
【００９５】
図１５に戻り、状態情報管理部１１６は、情報格納領域１３０に記憶された状態情報１３２を「完了」に変更する（Ｓ３８）。以下、Ｓ３８の処理が実行された後の状態情報１３２について説明を行う。
【００９６】
図２９は、Ｓ３８の処理が実行された後の状態情報１３２を説明する図である。図２９の下線部分に示すように、状態情報管理部１１６は、Ｓ３８の処理が実行された後、状態情報１３２における「識別情報」が「Ｑ００１」である情報（管理の移行を行った特定のキュー３１Ａに対応する情報）の「状態」を「完了」に更新する。
【００９７】
[メッセージ追加処理の詳細］
次に、メッセージ追加処理の詳細について説明を行う。図１６は、第１の実施の形態におけるメッセージ追加処理の詳細を説明するフローチャート図である。
【００９８】
初めに、情報処理装置１のＡＰＩ受信部１１１は、図１６に示すように、キューに対するメッセージの追加を目的とするＡＰＩ（以下、メッセージ追加ＡＰＩとも呼ぶ）を受信するまで待機する（Ｓ４１のＮＯ）。その後、メッセージ追加ＡＰＩを受信した場合（Ｓ４１のＹＥＳ）、キュー操作部１１２は、情報格納領域１３０に格納されている状態情報１３２を参照する（Ｓ４２）。
【００９９】
その結果、受信したＡＰＩに含まれるキュー識別情報１３１で識別されるキューの「状態」が「定常」を示している場合（Ｓ４２のＹＥＳ）、キュー操作部１１２は、情報格納領域１３０に格納されているキュー識別情報１３１を参照する。そして、キュー操作部１１２は、Ｓ４１で受信したＡＰＩに含まれるキュー識別情報１３１で識別されるキュー（通常キュー）に、受信したＡＰＩに含まれるメッセージを格納する（Ｓ４３）。
【０１００】
すなわち、状態情報１３２が「定常」である場合、情報処理装置１では、メッセージの移行が行われていない状態であると判定する。そのため、キュー操作部１１２は、この場合、受信したＡＰＩに含まれるキュー識別情報１３１が示す通常キューに、受信メッセージを格納する。
【０１０１】
一方、受信したＡＰＩに対応するキューの「状態」が「定常」以外を示している場合（Ｓ４２のＮＯ）、キュー操作部１１２は、受信したＡＰＩに対応するキューが移行元の仮想マシン３に存在するか否かを判定する（Ｓ４５）。その結果、受信したＡＰＩに対応するキューが移行元の仮想マシン３に存在しない場合（Ｓ４５のＮＯ）、キュー操作部１１２は、情報格納領域１３０に格納されているキュー識別情報１３１を参照する。そして、キュー操作部１１２は、Ｓ４１で受信したＡＰＩに含まれるキュー識別情報１３１で識別される通常キューに、その受信メッセージを格納する（Ｓ４３）。また、受信したＡＰＩに対応するキューが移行元の仮想マシン３に存在する場合（Ｓ４５のＹＥＳ）、移行時キュー操作部１１４は、情報格納領域１３０に格納されているキュー識別情報１３１を参照する。そして、移行時キュー操作部１１４は、Ｓ４１で受信したＡＰＩに含まれるキュー識別情報１３１で識別される通常キューに対応する新規キューに、その受信メッセージを格納する（Ｓ４６）。
【０１０２】
すなわち、Ｓ４５の処理において、受信したＡＰＩに対応する通常キューが移行元の仮想マシン３に存在しない場合、通常キューから一時キューへのメッセージの移行が完了した後、その通常キューが既に削除されていることを示す（図１５のＳ３６）。そして、この場合、通常キューに対応する新規キューが、削除された通常キューに代わって新たな通常キューとして機能していることになる（図１５のＳ３７）。そのため、キュー操作部１１２は、この場合、キューの管理の移行が行われていない場合と同様に、受信したＡＰＩに含まれるキュー識別情報１３１で識別される通常キューに、受信したＡＰＩに含まれるメッセージを格納する。
【０１０３】
一方、Ｓ４５の処理において、受信したＡＰＩに対応する通常キューが移行元の仮想マシン３に存在する場合、通常キューから一時キューへのメッセージの移行が完了していない可能性がある。この場合、キュー操作部１１２（移行時キュー操作部１１４）が受信メッセージを通常キューに格納した場合、通常キューに格納されているメッセージの処理順序に影響を与えてしまう場合がある。そのため、移行時キュー操作部１１４は、この場合、受信したＡＰＩに含まれるキュー識別情報１３１で識別される通常キューに対応する新規キューに、受信したＡＰＩに含まれるメッセージを格納する。
【０１０４】
その後、情報処理装置１の操作結果送信部１１３は、ＡＰＩ受信部１１１が受信したメッセージ追加ＡＰＩの実行結果を、そのメッセージ追加ＡＰＩを送信した送信元（利用者端末１１）に送信する（Ｓ４４）。なお、ＡＰＩ受信部１１１が受信したメッセージ追加ＡＰＩに対応する処理が失敗した場合、操作結果送信部１１３は、Ｓ４４の処理において、その旨を送信元に送信するものであってよい。
【０１０５】
[メッセージ参照処理の詳細］
次に、メッセージ参照処理の詳細について説明を行う。図１７から図２０は、第１の実施の形態におけるメッセージ参照処理の詳細を説明するフローチャート図である。
【０１０６】
初めに、情報処理装置１のＡＰＩ受信部１１１は、図１７に示すように、キューに格納されたメッセージの参照または操作を目的とするＡＰＩ（以下、メッセージ参照ＡＰＩとも呼ぶ）を受信するまで待機する（Ｓ５１のＮＯ）。その後、メッセージ参照ＡＰＩを受信した場合（Ｓ５１のＹＥＳ）、キュー操作部１１２は、情報格納領域１３０に格納されている状態情報１３２を参照する（Ｓ５２）。
【０１０７】
[キューの「状態」が「定常」を示している場合の処理］
初めに、受信したＡＰＩに含まれるキュー識別情報１３１で識別されるキューの「状態」が「定常」を示している場合について説明を行う。受信メッセージに含まれるキュー識別情報１３１で識別されるキューの「状態」が「定常」を示している場合（Ｓ５２のＹＥＳ）、キュー操作部１１２は、情報格納領域１３０に格納されているキュー識別情報１３１を参照する。そして、キュー操作部１１２は、Ｓ５１で受信したＡＰＩに含まれるキュー識別情報１３１で識別されるキュー（通常キュー）を特定し、メッセージ参照ＡＰＩの内容に基づいてメッセージの参照または操作を行う（Ｓ５３）。
【０１０８】
すなわち、状態情報１３２が「定常」である場合、情報処理装置１では、メッセージの移行が行われていない状態であると判定する。そのため、キュー操作部１１２は、Ｓ５１で受信したＡＰＩに含まれるキュー識別情報１３１で識別されるキューに対して、メッセージ参照ＡＰＩの内容に基づくメッセージの参照または操作を行う。
【０１０９】
その後、情報処理装置１の操作結果送信部１１３は、ＡＰＩ受信部１１１が受信したメッセージ参照ＡＰＩの実行結果を、そのメッセージ追加ＡＰＩを送信した送信元（利用者端末１１）に送信する（Ｓ５４）。なお、ＡＰＩ受信部１１１が受信したメッセージ参照ＡＰＩに対応する処理が失敗した場合、操作結果送信部１１３は、Ｓ５４の処理において、その旨を送信元に送信するものであってよい。
【０１１０】
[キューの「状態」が「実施」を示している場合の処理］
次に、受信したＡＰＩに含まれるキュー識別情報１３１で識別されるキューの「状態」が「実施」を示している場合について説明を行う。受信したＡＰＩに対応するキューの状態が「実施」を示している場合（Ｓ５２のＮＯ、Ｓ５５のＹＥＳ）、情報処理装置１のキュー移行停止部１１７は、図１８に示すように、メッセージの移行を停止するように、キュー移行部１１５に指示する（Ｓ６１）。
【０１１１】
すなわち、受信したＡＰＩに対応するキューの状態が「実施」を示している場合、キュー移行停止部１１７は、受信したＡＰＩに対応するキューが特定のキュー３１Ａ（キュー移行部１１５が管理の移行を行っている通常キュー）であるものと判定する。そのため、この場合、移行時キュー操作部１１４は、特定のキュー３１Ａ、第１のキュー３３Ｂ及び第２のキュー３４Ｂの全てを対象として、メッセージの参照または操作を行う必要がある。
【０１１２】
ここで、移行時キュー操作部１１４によるメッセージの参照または操作と、キュー移行部１１５によるメッセージの移行とが同時に行われると、メッセージの移行のタイミングによっては、移行時キュー操作部１１４による処理が行われないメッセージが発生する。具体的に、移行時キュー操作部１１４による処理がまだ行われていないキューから、既に処理が行われたキューに対してメッセージが移行した場合、移行時キュー操作部１１４による処理が行われないメッセージが発生する。
【０１１３】
そこで、キュー移行停止部１１７は、メッセージ参照ＡＰＩが発生した場合、キュー移行部１１５に対してキューの移行の停止を指示する。これにより、キュー移行停止部１１７は、移行時キュー操作部１１４による処理が行われないメッセージの発生を防止することが可能になる。
【０１１４】
その後、移行時キュー操作部１１４は、第１のキュー３３Ｂに参照または操作を行う対象のメッセージ（以下、対象メッセージとも呼ぶ）が存在するか否かを判定する（Ｓ６２）。その結果、第１のキュー３３Ｂに対象メッセージが存在する場合（Ｓ６２のＹＥＳ）、移行時キュー操作部１１４は、第１のキュー３３Ｂに格納されたメッセージに対して参照または操作を行う（Ｓ６３）。
【０１１５】
次に、第１のキュー３３Ｂに対象メッセージが存在しない場合（Ｓ６２のＮＯ）、移行時キュー操作部１１４は、図１９に示すように、特定のキュー３１Ａに対象メッセージが存在するか否かを判定する（Ｓ７１）。その結果、特定のキュー３１Ａに対象メッセージが存在する場合（Ｓ７１のＹＥＳ）、移行時キュー操作部１１４は、特定のキュー３１Ａに格納されたメッセージに対して参照または操作を行う（Ｓ７２）。一方、特定のキュー３１Ａに対象メッセージが存在しない場合（Ｓ７１のＮＯ）、移行時キュー操作部１１４は、特定のキュー３１Ａに格納されたメッセージに対する参照または操作を行わない。
【０１１６】
続いて、移行時キュー操作部１１４は、第２のキュー３４Ｂに対象メッセージが存在するか否かを判定する（Ｓ７３）。その結果、第２のキュー３４Ｂに対象メッセージが存在する場合（Ｓ７３のＹＥＳ）、移行時キュー操作部１１４は、第２のキュー３４Ｂに格納されたメッセージに対して参照または操作を行う（Ｓ７４）。一方、第２のキュー３４Ｂに対象メッセージが存在しない場合（Ｓ７３のＮＯ）、移行時キュー操作部１１４は、第２のキュー３４Ｂに格納されたメッセージに対する参照または操作を行わない。
【０１１７】
すなわち、キュー移行部１１５によるキューの管理の移行中において、第１のキューに格納されているメッセージと、特定のキューに格納されているメッセージと、第２のキューに格納されているメッセージとは、それぞれ処理順序が連続する関係を有している。そのため、移行時キュー操作部１１４は、図１８及び図１９に示すように、第１のキュー、特定のキュー、第２のキューの順に、メッセージ操作ＡＰＩの内容に基づくメッセージの参照または操作を行う。これにより、移行時キュー操作部１１４は、メッセージの移行に伴って、メッセージの処理順序等に影響が及ぶことを防止することが可能になる。そのため、利用者は、メッセージの移行が行われていない場合と同様に、メッセージの参照または操作を行うことが可能になる。
【０１１８】
そして、キュー移行停止部１１７は、メッセージに対して参照または操作を行った場合（Ｓ図１８のＳ６３、Ｓ７２またはＳ７４）、キューの管理の移行を再開するように、キュー移行部１１５に指示を行う（Ｓ７５）。また、キュー移行停止部１１７は、メッセージに対する参照または操作に失敗した場合も同様に（Ｓ７３のＮＯ）、キューの管理の移行を再開するように、キュー移行部１１５に指示を行う（Ｓ７５）。その後、操作結果送信部１１３は、ＡＰＩ受信部１１１が受信したメッセージ参照ＡＰＩに対する実行結果を、そのメッセージ参照ＡＰＩの送信元（利用者端末１１）に送信する（図１７のＳ５４）。
【０１１９】
[キューの「状態」が「完了」を示している場合の処理］
次に、受信したＡＰＩに含まれるキュー識別情報１３１で識別されるキューの「状態」が「完了」を示している場合について説明を行う。
【０１２０】
この場合、移行時キュー操作部１１４は、図２０に示すように、対象メッセージに対応する第１のキュー３３Ｂが存在するか否かを判定する（Ｓ８１）。そして、第１のキュー３３Ｂが存在すると判定した場合（Ｓ８１のＹＥＳ）、移行時キュー操作部１１４は、第１のキュー３３Ｂに格納された対象メッセージに対して参照または操作を行う（Ｓ８２）。
【０１２１】
すなわち、第１のキュー３３Ｂは、後述するように、第１のキュー３３Ｂにメッセージが存在しなくなった際に削除される。そのため、対象メッセージに対応する第１のキュー３３Ｂが存在する場合（Ｓ８１のＹＥＳ）、第１のキュー３３Ｂには、メッセージが必ず存在することになる。したがって、対象メッセージに対応する第１のキュー３３Ｂが存在する場合（Ｓ８１のＹＥＳ）、移行時キュー操作部１１４は、第１のキュー３３Ｂに格納された対象メッセージに対して参照または操作を行う（Ｓ８２）。
【０１２２】
なお、受信したＡＰＩに対応するキューの状態が「完了」を示している場合、特定のキュー３１Ａは既に削除されており（図１５のＳ３６）、第２のキュー３４Ｂが特定のキュー３１Ａの代わりに通常キューとして機能している状態である。以下、通常キューとして機能する第２のキュー３４Ｂを移行済キュー３４Ｂとも呼ぶ。
【０１２３】
一方、第１のキュー３３Ｂが存在しないと判定した場合（Ｓ８１のＮＯ）、キュー操作部１１２は、受信したＡＰＩに含まれるキュー識別情報１３１で識別されるキュー（移行済キュー３４Ｂ）に対して、メッセージの参照または操作を行う（図１７のＳ５３、Ｓ５４）。すなわち、第１のキュー３３Ｂが存在しないと判定した場合、特定のキュー３１Ａ及び第１のキュー３３Ｂが既に削除され、移行済キュー３４Ｂのみが存在している状態である。そのため、キュー操作部１１２は、この場合、キューの管理の移行が行われていない場合と同様に、メッセージの参照または操作を行う。
【０１２４】
その後、移行時キュー操作部１１４は、対象メッセージに対応する第１のキューにメッセージが存在しているか否かを判定する（Ｓ８３）。そして、対象メッセージに対応する第１のキューにメッセージが存在していないと判定した場合（Ｓ８３のＮＯ）、移行時キュー操作部１１４は、対象メッセージに対応する第１のキューを削除する（Ｓ８４）。すなわち、この場合、移行時キュー操作部１１４は、第１のキューに格納されたメッセージが全て仮想マシン３Ａによって実行されたものと判定し、対象メッセージに対応する第１のキューを削除する。
【０１２５】
一方、対象メッセージに対応する第１のキューにメッセージが存在すると判定した場合（Ｓ８３のＹＥＳ）、移行時キュー操作部１１４は、対象メッセージに対応する第１のキューの削除を行わない。以下、Ｓ８４の処理が実行された後のキュー識別情報１３１について説明を行う。
【０１２６】
図３０は、Ｓ８４の処理が実行された後のキュー識別情報１３１を説明する図である。図３０に示すキュー識別情報１３１は、図２８に示すキュー識別情報１３１と比較して、「ＩＤ」が「８」である情報が削除されている。これにより、状態情報管理部１１６は、状態情報１３２の管理上においても、特定のキュー３１Ａの管理の移行を完了させることが可能になる。
【０１２７】
図２０に戻り、メッセージの移行に伴って生成された第１のキュー３３Ｂが削除されている場合（Ｓ８５のＹＥＳ）、状態情報管理部１１６は、情報格納領域１３０に記憶された状態情報１３２のうち、メッセージの移行が行われたキューに対応する情報を「定常」に変更する（Ｓ８６）。すなわち、この場合、状態情報管理部１１６は、特定のキュー３１Ａの管理の移行が完全に完了したものと判定する。
【０１２８】
一方、メッセージの移行に伴って生成された第１のキューの全てが削除されていない場合（Ｓ８５のＮＯ）、状態情報管理部１１６は、情報格納領域１３０に記憶された状態情報１３２に含まれる情報の更新を行わない。
【０１２９】
そして、操作結果送信部１１３は、ＡＰＩ受信部１１１が受信したメッセージ参照ＡＰＩに対する実行結果を、そのメッセージ参照ＡＰＩの送信元（利用者端末１１）に送信する（図１７のＳ５４）。
【０１３０】
[ＡＰＩ受信部がキュー追加ＡＰＩを受信した場合の処理］
次に、ＡＰＩ受信部１１１がキューの追加を目的とするＡＰＩ（以下、キュー追加ＡＰＩとも呼ぶ）を受信した場合の処理（以下、キュー追加処理とも呼ぶ）について説明を行う。図２１は、第１の実施の形態におけるキュー追加処理の詳細を説明するフローチャート図である。
【０１３１】
初めに、ＡＰＩ受信部１１１は、図２１に示すように、キュー追加ＡＰＩを受信するまで待機する（Ｓ１０１のＮＯ）。その後、キュー追加ＡＰＩを受信した場合（Ｓ１０１のＹＥＳ）、キュー操作部１１２は、情報格納領域１３０に格納されている状態情報１３２を参照する（Ｓ１０２）。
【０１３２】
そして、状態情報１３２に含まれる「状態」に設定された情報が全て「定常」である場合（Ｓ１０２のＹＥＳ）、移行時キュー操作部１１４は、仮想マシン３のいずれかに新たなキューを生成する（Ｓ１０３）。一方、状態情報１３２に含まれる「状態」に設定された情報に、「定常」でないものが存在する場合（Ｓ１０２のＮＯ）、移行時キュー操作部１１４は、例えば、管理の移行が行われているキュー（特定のキュー３１Ａ）が生成されている仮想マシン３以外の仮想マシン３のいずれかに新たなキューを生成する（Ｓ１０４）。
【０１３３】
すなわち、キューの管理の移行は、移行元の仮想マシン３の負荷が所定の閾値を超えた場合や、移行元の仮想マシン３を削除する予定がある場合等に行われるものである。そのため、移行時キュー操作部１１４は、キューの管理の移行が行われている場合に、その移行元の仮想マシン３には、新たなキューの生成を行わないものであってよい。
【０１３４】
その後、操作結果送信部１１３は、ＡＰＩ受信部１１１が受信したキュー追加ＡＰＩの実行結果を、そのキュー追加ＡＰＩを送信した送信元（利用者端末１１）に送信する（Ｓ１０５）。
【０１３５】
[ＡＰＩ受信部がキュー削除ＡＰＩを受信した場合の処理］
次に、ＡＰＩ受信部１１１がキューの削除を目的とするＡＰＩ（以下、キュー削除ＡＰＩとも呼ぶ）を受信した場合の処理（以下、キュー削除処理とも呼ぶ）について説明を行う。図２２は、第１の実施の形態におけるキュー削除処理の詳細を説明するフローチャート図である。
【０１３６】
初めに、ＡＰＩ受信部１１１は、図２２に示すように、キュー削除ＡＰＩを受信するまで待機する（Ｓ１１１のＮＯ）。その後、キュー削除ＡＰＩを受信した場合（Ｓ１１１のＹＥＳ）、キュー操作部１１２は、情報格納領域１３０に格納されている状態情報１３２を参照する（Ｓ１１２）。
【０１３７】
そして、状態情報１３２に含まれる「状態」に設定された情報に、「定常」でないものが存在する場合（Ｓ１１２のＮＯ）、移行時キュー操作部１１４は、対象キューに対応する第１のキューが存在するか否かを判定する（Ｓ１１４）。その結果、対象キューに対応する第１のキューが存在する場合（Ｓ１１４のＹＥＳ）、移行時キュー操作部１１４は、その第１のキューを削除する（Ｓ１１５）。一方、対象キューに対応する第１のキューが存在しない場合（Ｓ１１４のＮＯ）、移行時キュー操作部１１４は、Ｓ１１５の処理を行わない。
【０１３８】
さらに、状態情報１３２に含まれる「状態」に設定された情報に、「定常」でないものが存在する場合（Ｓ１１２のＮＯ）、移行時キュー操作部１１４は、対象キューに対応する第２のキューが存在するか否かを判定する（Ｓ１１６）。その結果、対象キューに対応する第２のキューが存在する場合（Ｓ１１６のＹＥＳ）、移行時キュー操作部１１４は、その第２のキューを削除する（Ｓ１１７）。一方、対象キューに対応する第１のキューが存在しない場合（Ｓ１１６のＮＯ）、移行時キュー操作部１１４は、Ｓ１１７の処理を行わない。
【０１３９】
そして、移行時キュー操作部１１４は、削除対象のキューの削除を行う（Ｓ１１３）。また、移行時キュー操作部１１４は、状態情報１３２に含まれる「状態」に設定された情報が全て「定常」である場合も同様に、削除対象のキューの削除を行う（Ｓ１１２のＹＥＳ、Ｓ１１３）。すなわち、状態情報１３２に「状態」が「定常」でない情報が含まれている場合、いずれかのキューにおいてメッセージの移行が行われていることになる。そして、この場合、削除対象のキューに対応する第１のキュー及び第２のキューが作成されている可能性がある。そのため、移行時キュー操作部１１４は、この場合、削除対象のキューに加え、第１のキュー及び第２のキューの削除を行う。
【０１４０】
その後、操作結果送信部１１３は、ＡＰＩ受信部１１１が受信したキュー削除ＡＰＩの実行結果を、そのキュー削除ＡＰＩを送信した送信元（利用者端末１１）に送信する（Ｓ１１８）。
【０１４１】
このように、情報処理装置１は、第１の仮想マシン３Ａで管理され、特定のキュー識別情報１３１に対応する特定のキュー３１Ａの管理を第２の仮想マシン３Ｂに移行させる際に、第２の仮想マシン３Ｂに第１のキュー３３Ｂと第２のキュー３４Ｂとを生成させる。そして、情報処理装置１は、第１の仮想マシン３Ａの特定のキュー３１Ａに格納済の特定のメッセージを、キューの先頭側から第１のキュー３３Ｂに格納させ、特定のキュー識別情報１３１を含む受信メッセージを、第２のキュー３４Ｂに格納させる。
【０１４２】
その後、情報処理装置１は、特定のメッセージの参照または操作の指示に応じて、第１のキュー３３Ｂ、特定のキュー３１Ａ、第２のキュー３４Ｂの順に特定のメッセージの参照または操作を行う。
【０１４３】
これにより、情報処理装置１は、メッセージキューシステム１０によるサービスの停止を行うことなく、特定のキュー３１Ａの管理の移行を行うことが可能になる。
【０１４４】
以上の実施の形態をまとめると、以下の付記のとおりである。
【０１４５】
（付記１）
受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理方法において、
第１の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第２の仮想マシンに移行させる際に、前記第２の仮想マシンに第１のキューと第２のキューとを生成させ、
前記第１の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第１のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第２のキューにキューイングさせ、
前記特定のメッセージの参照または操作の指示に応じて、前記第１のキュー、前記特定のキュー、前記第２のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。
【０１４６】
（付記２）
付記１において、
前記第１のキューまたは第２のキューにキューイングする工程では、前記特定のメッセージの前記第１のキューへの移行が完了した場合、前記特定のキューを削除し、
前記参照または操作を行う工程では、前記特定のメッセージの参照または操作の指示に応じて、前記第１のキュー、前記第２のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。
【０１４７】
（付記３）
付記２において、
前記特定のメッセージの参照または操作を行う工程では、
前記第１のキューにキューイングされたメッセージが無くなった場合、前記第１のキューを削除し、
前記特定のメッセージの参照または操作の指示に応じて、前記第２のキューに対して前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。
【０１４８】
（付記４）
付記１において、
前記特定のメッセージの参照または操作を行う工程では、前記特定のメッセージの前記第１のキューへの移行が完了していない場合、前記特定のメッセージの前記第１のキューへのキューイングを中止する、
ことを特徴とするキュー管理方法。
【０１４９】
（付記５）
付記１において、さらに、
新たなキューの作成の指示に応じて、前記複数の仮想マシンのうち、前記第１仮想マシン以外の仮想マシンに前記新たなキューの作成を行う、
ことを特徴とするキュー管理方法。
【０１５０】
（付記６）
付記１において、さらに、
前記特定のキューの削除の指示に応じて、前記特定のキュー、前記第１のキュー及び前記第２のキューの削除を行う、
ことを特徴とするキュー管理方法。
【０１５１】
（付記７）
受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理プログラムにおいて、
第１の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第２の仮想マシンに移行させる際に、前記第２の仮想マシンに第１のキューと第２のキューとを生成させ、
前記第１の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第１のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第２のキューにキューイングさせ、
前記特定のメッセージの参照または操作の指示に応じて、前記第１のキュー、前記特定のキュー、前記第２のキューの順に前記特定のメッセージの参照または操作を行う、
処理をコンピュータで実行させることを特徴とするキュー管理プログラム。
【０１５２】
（付記８）
付記７において、
前記第１のキューまたは第２のキューにキューイングする処理では、前記特定のメッセージの前記第１のキューへの移行が完了した場合、前記特定のキューを削除し、
前記参照または操作を行う処理では、前記特定のメッセージの参照または操作の指示に応じて、前記第１のキュー、前記第２のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理プログラム。
【０１５３】
（付記９）
付記８において、
前記特定のメッセージの参照または操作を行う処理では、
前記第１のキューにキューイングされたメッセージが無くなった場合、前記第１のキューを削除し、
前記特定のメッセージの参照または操作の指示に応じて、前記第２のキューに対して前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理プログラム。
【０１５４】
（付記１０）
付記７において、
前記特定のメッセージの参照または操作を行う処理では、前記特定のメッセージの前記第１のキューへの移行が完了していない場合、前記特定のメッセージの前記第１のキューへのキューイングを中止する、
ことを特徴とするキュー管理プログラム。
【０１５５】
（付記１１）
受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理装置において、
第１の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第２の仮想マシンに移行させる際に、前記第２の仮想マシンに第１のキューと第２のキューとを生成させるキュー生成部と、
前記第１の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第１のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第２のキューにキューイングさせるキュー移行部と、
前記特定のメッセージの参照または操作の指示に応じて、前記第１のキュー、前記特定のキュー、前記第２のキューの順に前記特定のメッセージの参照または操作を行うキュー操作部と、を有する、
ことを特徴とするキュー管理装置。
【０１５６】
（付記１２）
付記１１において、
前記キュー移行部は、前記特定のメッセージの前記第１のキューへの移行が完了した場合、前記特定のキューを削除し、
前記キュー操作部は、前記特定のメッセージの参照または操作の指示に応じて、前記第１のキュー、前記第２のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理装置。
【０１５７】
（付記１３）
付記１２において、
前記キュー操作部は、
前記第１のキューにキューイングされたメッセージが無くなった場合、前記第１のキューを削除し、
前記特定のメッセージの参照または操作の指示に応じて、前記第２のキューに対して前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理装置。
【０１５８】
（付記１４）
付記１１において、
前記キュー操作部は、前記特定のメッセージの前記第１のキューへの移行が完了していない場合、前記特定のメッセージの前記第１のキューへのキューイングを中止する、
ことを特徴とするキュー管理装置。
【符号の説明】
【０１５９】
１：情報処理装置                ２：物理マシン
３：仮想マシン                  ４：仮想化ソフトウエア
１１：作業者端末                ＮＷ：ネットワーク
【図１】
2017004050.tif 000003
【図２】
2017004050.tif 000004
【図３】
2017004050.tif 000005
【図４】
2017004050.tif 000006
【図５】
2017004050.tif 000007
【図６】
2017004050.tif 000008
【図７】
2017004050.tif 000009
【図８】
2017004050.tif 000010
【図９】
2017004050.tif 000011
【図１０】
2017004050.tif 000012
【図１１】
2017004050.tif 000013
【図１２】
2017004050.tif 000014
【図１３】
2017004050.tif 000015
【図１４】
2017004050.tif 000016
【図１５】
2017004050.tif 000017
【図１６】
2017004050.tif 000018
【図１７】
2017004050.tif 000019
【図１８】
2017004050.tif 000020
【図１９】
2017004050.tif 000021
【図２０】
2017004050.tif 000022
【図２１】
2017004050.tif 000023
【図２２】
2017004050.tif 000024
【図２３】
2017004050.tif 000025
【図２４】
2017004050.tif 000026
【図２５】
2017004050.tif 000027
【図２６】
2017004050.tif 000028
【図２７】
2017004050.tif 000029
【図２８】
2017004050.tif 000030
【図２９】
2017004050.tif 000031
【図３０】
2017004050.tif 000032