[go: up one dir, main page]

JP2018120374A - 情報処理システム、及び制御方法 - Google Patents

情報処理システム、及び制御方法 Download PDF

Info

Publication number
JP2018120374A
JP2018120374A JP2017010747A JP2017010747A JP2018120374A JP 2018120374 A JP2018120374 A JP 2018120374A JP 2017010747 A JP2017010747 A JP 2017010747A JP 2017010747 A JP2017010747 A JP 2017010747A JP 2018120374 A JP2018120374 A JP 2018120374A
Authority
JP
Japan
Prior art keywords
message
application
server
virtual machine
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017010747A
Other languages
English (en)
Other versions
JP7030412B2 (ja
Inventor
鉄也 佐藤
Tetsuya Sato
鉄也 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2017010747A priority Critical patent/JP7030412B2/ja
Priority to US15/866,292 priority patent/US10896076B2/en
Publication of JP2018120374A publication Critical patent/JP2018120374A/ja
Application granted granted Critical
Publication of JP7030412B2 publication Critical patent/JP7030412B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】 複数のアプリケーションが配置される仮想マシンで異常が検知された際に、システムに影響を与えることなく、その仮想マシンを削除可能とするための仕組みを提供する。【解決手段】 複数のアプリケーションが配置される仮想マシンと、前記仮想マシンを管理する管理サーバーとを含む情報処理システムであって、前記仮想マシンに配置される各アプリケーションは、前記情報処理システムで管理される設定に基づき、メッセージを格納する格納領域からメッセージを取得し、前記管理サーバーは、前記設定を、前記各アプリケーションによるメッセージの取得を停止させるための設定に変更する。前記アプリケーションいずれかの異常が検知された場合、前記各アプリケーションは、前記変更された設定に基づきメッセージの取得を停止し、かつ、前記変更前に取得したメッセージに基づく処理を完了させる。【選択図】 図1

Description

本発明は、キューから取得したメッセージに基づく処理を実行する情報処理システム、及び制御方法に関する。
近年、インターネット上にあるサーバーで動作する各種アプリケーションを利用することができるサービスとして、クラウドサービスがある。IaaSやPaaSなどのクラウドサービスでは、クラウドサービスベンダーが、ネットワークを介して、仮想マシンやストレージなどのリソースをシステム管理者に提供する。仮想マシンとは、仮想化技術によって、サーバーを物理的な構成にとらわれずに論理的な単位で分割し、分割されたそれぞれで独立したオペレーティングシステムをもって動作する論理的なコンピューターである。システム管理者は、クラウドサービスベンダーによって提供される仮想マシンやストレージなどのリソースを用いて、独自のサービスを提供するためのシステムを構築することができる。
クラウドサービスを用いて構築されるシステムは、データを並列的に処理するためにメッセージキュー(以降、キューと呼ぶ)が利用されることがある。キューには、処理対象のデータに対応するメッセージが格納される。このメッセージを処理する機能を備える仮想マシンは、キューに格納されるメッセージを取得し、メッセージに記述された処理内容に従って処理を実行する。このように、複数の仮想マシンが、キューから取得したメッセージを処理することで、データの並列処理が可能となる。
上述したシステムを運用するためには、仮想マシンにおいて異常が発生した際、システムの運用に影響を与えないようにその仮想マシンを削除することが求められる。特許文献1に記載の実行システムでは、ジョブ実行サーバーが、1つのジョブ実行コマンドに対応する複数のプロセスの処理を順次実行する。ジョブ実行サーバー内のプロセス実行部がプロセスの処理を開始してから一定時間経過後にもなお処理完了の応答がなければ、ジョブ実行サーバーは、プロセスの処理が異常であると判断し、プロセス実行部による処理を終了させる。その後、プロセス実行サーバーは消滅することとなる。
特開2015−57685号公報
上述したキューを利用したシステムでは、キューからメッセージを取得して、そのメッセージに基づく処理を実行するアプリケーションが少なくとも1つ、仮想マシンに配置される。ここで、複数のアプリケーションが配置される仮想マシンにおいて1つのアプリケーションで異常が発生した際に、そのアプリケーションを停止させたとしても、他のアプリケーションが更にメッセージを取得してしまう。すると、他のアプリケーションが取得したメッセージを処理している最中は、その仮想マシンを削除することができないといった問題が発生する。仮に、他のアプリケーションが処理をしている最中の仮想マシンを削除した場合、メッセージに基づく処理が中断されてしまい、システムに影響を与えるおそれがある。
本発明は、複数のアプリケーションが配置される仮想マシンで異常が検知された際に、システムに影響を与えることなく、その仮想マシンを削除可能とするための仕組みを提供することを目的とする。
上記課題を解決するために、本発明は、複数のアプリケーションが配置される仮想マシンと、前記仮想マシンを管理する管理サーバーとを含む情報処理システムであって、前記仮想マシンに配置される各アプリケーションは、前記情報処理システムで管理される設定に基づき、メッセージを格納する格納領域からメッセージを取得し、前記管理サーバーは、前記情報処理システム内で管理される設定を、前記仮想マシンに配置される各アプリケーションによるメッセージの取得を停止させるための設定に変更する設定手段を有し、前記仮想マシンに配置されるアプリケーションいずれかの異常が検知された場合、前記各アプリケーションは、前記設定手段により変更された設定に基づきメッセージの取得を停止し、かつ、前記設定手段による変更前に取得したメッセージに基づく処理を完了させることを特徴とする。
本発明によれば、複数のアプリケーションが配置される仮想マシンで異常が検知された際に、システムに影響を与えることなく、その仮想マシンを削除可能とすることができる。
本発明の実施形態におけるシステムの全体構成を示す模式図 情報処理装置の内部構成の一例を示す図 本発明の実施形態におけるサーバーの機能構成の一例を示す図 メッセージ実行処理の手順例を示すフローチャート メッセージ実行アプリケーション310のログファイルの一例を示す図 ログ監視処理の手順例を示すフローチャート 異常通知受信処理の手順例を示すフローチャート 実施例2におけるシステムの全体構成を示す模式図 実施例2におけるサーバーの機能構成の一例を示す図 実施例2おけるログ監視処理の手順例を示すフローチャート 実施例3におけるサーバーの機能構成の一例を示す図 実施例3におけるメッセージ実行処理の手順例を示すフローチャート 実施例3における異常通知受信処理の手順例を示すフローチャート
以下、本発明を実施するための形態について図面を用いて説明する。
(実施例1)
<システム構成>
図1は、本発明の実施形態におけるシステムの全体構成を示す模式図である。
図1において、情報処理システム101は、クラウドサービスベンダーによって提供される仮想マシンやストレージなどのリソースを用いて構築される。ここで、仮想マシンとは、仮想化技術によって、サーバーを物理的な構成にとらわれずに論理的な単位で分割し、分割されたそれぞれで独立したオペレーティングシステムをもって動作する論理的なコンピューターである。情報処理システム101は、Webサーバー103、スケジューラー104、メッセージ登録サーバー105、キュー106、メッセージ実行サーバー107を含む。さらに、情報処理システム101は、システム管理サーバー108、オートスケール管理サーバー109を含む。
情報端末102は、PC(Personal Computer)などであり、情報処理システム101が提供するサービスを利用するユーザーが使用する端末である。ユーザーは、情報処理システム101が提供するWebページを通して、情報処理システム101に処理の実行指示をする。
Webサーバー103は、ユーザーがサービスを利用するためのWebページを提供する、1台以上の仮想マシンである。Webサーバー103は、Webページを通してユーザーからの処理の実行指示を受信する。そして、指示された処理を実行するためのメッセージの登録要求を、メッセージ登録サーバー105に送信する。
スケジューラー104は、定期処理の実行指示をする。定期処理とは、情報処理システム内で管理するデータの定期集計処理などである。スケジューラー104は、予め設定された定期処理の実行時刻になると、定期処理を実行するためのメッセージをキュー106に送信する。
メッセージ登録サーバー105は、メッセージを作成してキュー106に登録する、1台以上の仮想マシンである。メッセージ登録サーバー105は、Webサーバー103からメッセージ登録要求を受信すると、メッセージを作成し、作成したメッセージをキュー106に登録する。
キュー106は、メッセージ登録サーバー105によって登録されたメッセージを格納する格納領域である。キュー106は、メッセージが登録された際に遅延時間が経過するまでメッセージを不可視状態にする。さらに、キュー106は、メッセージが取得された際に不可視時間が経過するまでメッセージを不可視状態にする。
メッセージ実行サーバー107は、キュー106に登録されたメッセージを取得し、メッセージで指示された処理を実行する、1台以上の仮想マシンである。メッセージ実行サーバー107は、後述するメッセージ実行アプリケーション310が複数配置される。ここで、メッセージ実行サーバー107は、後述するオートスケール管理サーバー109においてオートスケールの対象となっており、CPUの使用率やキュー106に格納されているメッセージの数などに応じ、台数を増減するように構成される。
ここで、本実施例では、情報処理システムが実行する処理の種類ごとにキュー106が用意されるものとする。例えば、データの集計処理を実行するためのメッセージを登録するキュー106と、メール送信を実行するためのメッセージを登録するキュー106は、別のキューとする。なお、処理の種類ごとに適当な単位でメッセージをグループ化して一つのキューを使用するように構成しても良い。
システム管理サーバー108は、情報処理システム101の状況に応じて、システム管理者へのメール通知や、仮想マシンの削除などの各種処理を実行する。また、システム管理サーバー108は、システム管理者の指示に基づき情報処理システム101のメンテナンス等を行う。
オートスケール管理サーバー109は、情報処理システム101におけるオートスケール対象の仮想マシンの数を管理する。ここで、オートスケールとは、仮想マシンの処理負荷などに応じて、仮想マシンの台数や仮想マシンに対するCPUなどの割り当てを自動で調整する機能のことを指す。オートスケール管理サーバー109は、システム管理者が設定した条件に合致する場合に、オートスケール対象となる仮想マシンの数を増減させる。例えば、オートスケール管理サーバー109は、Webサーバー103にリクエストを転送するロードバランサ(不図示)が受け付けるリクエストの量に応じて、Webサーバー103の台数を調整する。オートスケール管理サーバー109は、メッセージ登録サーバー105の台数も同様に調整する。また、オートスケール管理サーバー109は、CPUの使用率やキュー106に格納されているメッセージの数などに応じて、メッセージ実行サーバー107の台数を調整する。また、オートスケール管理サーバー109は、オートスケール対象となる仮想マシンの最少の起動台数などを管理する。仮想マシンが削除された場合など、オートスケール管理サーバー109は、新たな仮想マシンを起動させて、最少の起動台数を保つようにする。
ここで、Webサーバー103で異常が発生した場合、そのWebサーバー103をオートスケールの対象から除外することで、そのWebサーバー103に対してロードバランサ(不図示)はリクエストを転送しないようになる。結果として、そのWebサーバー103はリクエストを受け付けなくなるため、Webサーバー103の削除や、Webサーバー103で発生した異常の原因調査などを行うことができる。一方で、メッセージ実行サーバー107で異常が発生した場合、そのメッセージ実行サーバー107をオートスケールの対象から除外したとしても、そのメッセージ実行サーバー107はキュー106からメッセージを取得して処理をしてしまう。したがって、メッセージ実行サーバー107の削除や、メッセージ実行サーバー107で発生した異常の原因調査などを行うための工夫が必要となる。
なお、図1に示した情報端末102乃至オートスケール管理サーバー109の各部は、インターネットなどの既知の技術により相互に通信可能に接続されている。
<情報処理装置の内部構成>
図2は、情報処理装置の内部構成の一例を示す図である。本実施例における情報処理装置としては、情報端末102や、情報処理システム101内の各構成としての機能をもつ仮想マシンが動作するサーバーコンピュータなどが該当する。
情報処理装置は、記憶装置であるハードディスクドライブ(HDD)210に記憶されたソフトウェアを実行するCPU201を備える。CPU201はシステムバス204に接続される各ハードウェアを総括的に制御する。
メモリー202は、CPU201の主メモリー、ワークエリア等として機能する。ネットワークインターフェースカード(NIC)203は、ネットワークを介して、他のノードと双方向にデータをやりとりする。
キーボードコントローラー205は、PCに備えられたキーボード206からの指示入力を制御する。なお、情報処理装置の役割によっては、キーボードコントローラー205、キーボード206がない構成でも良い。
ディスプレイコントローラー207は、例えば液晶ディスプレイなどで構成される表示モジュール208の表示を制御する。なお、情報処理装置の役割によっては、ディスプレイコントローラー207、表示モジュール208がない構成でも良い。ディスクコントローラー209は、大容量記憶装置であるハードディスクドライブ(HDD)210を制御する。
<メッセージ実行サーバーの機能構成>
図3(A)は、メッセージ実行サーバー107の機能構成の一例を示す図である。メッセージ実行サーバー107では、監視エージェントアプリケーション300と複数のメッセージ実行アプリケーション310が動作する。複数のメッセージ実行アプリケーション310は、それぞれ処理するメッセージの種類が異なり別のキュー106からメッセージを取得して実行する。例えば、あるメッセージ実行アプリケーション310はデータの集計処理を行い、別のメッセージ実行アプリケーション310はメール送信を行う。これらの各アプリケーションの機能は、メッセージ実行サーバー107が構築されるサーバーコンピュータのHDD210に記憶されているプログラムを、CPU201がメモリー202に読み出して実行することによって実現される。
ここで、メッセージ実行サーバー107に、1つのメッセージ実行アプリケーション310が配置される場合を考える。そのメッセージ実行アプリケーション310で異常が発生した際に、そのアプリケーションを停止させれば、その仮想マシンが更にメッセージを取得することはないため、その仮想マシンを削除することができる。一方、メッセージ実行サーバー107に、複数のメッセージ実行アプリケーション310が配置されている場合を考える。その一部のメッセージ実行アプリケーション310で異常が発生する場合、異常が発生したアプリケーションのみを停止させたとしても、他のアプリケーションがメッセージを取得してしまう。そのため、他のアプリケーションがメッセージを処理している最中には、情報処理システム101に影響を与えずにその仮想マシンを削除することが不可能となる。そこで、この課題を解決するために、複数のアプリケーションが配置される仮想マシンで異常が検知された際に、複数のアプリケーションいずれも更にメッセージを取得することを防ぐための仕組みを、後述する図4、図6、図7などを用いて説明する。
監視エージェントアプリケーション300は、ログ監視部301と通知部302で構成される。ログ監視部301は、システム管理サーバー108から、後述する表Bからログ監視条件を取得し、そのログ監視条件に合致するかログを監視するモジュールである。すなわち、ログ監視部301は、メッセージ実行アプリケーション310の異常の有無を監視する。通知部302は、ログ監視部301からの要求に応じて、システム管理サーバー108に通知を行うモジュールである。
メッセージ実行アプリケーション310は、メッセージ取得部311、メッセージ実行部312、メッセージ削除部313、オートスケール確認部314で構成される。メッセージ取得部311は、キュー106に登録されたメッセージを取得するモジュールである。メッセージ実行部312は、メッセージ取得後に、メッセージで指示された処理を実行するモジュールである。メッセージ削除部313は、メッセージの処理実行後に、実行したメッセージをキュー106から削除するモジュールである。オートスケール確認部314は、メッセージ実行アプリケーション310が動作しているメッセージ実行サーバー107がオートスケール設定に紐づいているかを確認するモジュールである。メッセージ実行処理の詳細については、後述する図4を用いて説明する。
<システム管理サーバーの機能構成>
図3(B)は、システム管理サーバー108の機能構成の一例を示す図である。システム管理サーバー108では、監視サーバーアプリケーション320が動作する。監視サーバーアプリケーション320の機能は、システム管理サーバー108が構築されるサーバーコンピュータのHDD210に記憶されているプログラムを、CPU201がメモリー202に読み出して実行することによって実現される。
監視サーバーアプリケーション320は、サーバー管理部321、処理実行部322で構成される。サーバー管理部321は、メッセージ実行サーバー107が正常に動作しているかを管理するモジュールである。メッセージ実行サーバー107に異常が発生した場合、サーバー管理部321は、処理実行部322に異常が発生したメッセージ実行サーバー107をオートスケールの対象から外すなどの処理を指示する。処理実行部322は、サーバー管理部321からの指示を受けて、オートスケール管理サーバー109に対して、異常が発生したメッセージ実行サーバー107をオートスケールの対象から外す要求を行う等の各種処理を行うモジュールである。データ格納部323は、表Aから表Dを用いて後述するテーブルを管理するモジュールである。
<オートスケール管理サーバーの機能構成>
図3(C)は、オートスケール管理サーバー109の機能構成の一例を示す図である。オートスケール管理サーバー109では、オートスケール管理アプリケーション350が動作する。オートスケール管理アプリケーション350の機能は、オートスケール管理サーバー109が構築されるサーバーコンピュータのHDD210に記憶されているプログラムをCPU201がメモリー202に読み出して実行することで実現される。
オートスケール管理アプリケーション350は、リソース監視部351、オートスケール管理部352、オートスケール実行部353で構成される。リソース監視部351は、オートスケール対象の各サーバーの状態を監視するモジュールである。リソース監視部351は表Eで後述するリソース監視条件に基づいて、各サーバーを監視する。リソース監視条件に合致した場合、オートスケール管理部352に通知する。オートスケール管理部352は、オートスケールの対象を管理するモジュールである。
オートスケール管理部352は、表Fを用いて後述するオートスケール設定に基づいてオートスケール対象の各サーバーの数を管理する。オートスケール管理部352は、オートスケール対象のサーバーが落ちてしまったような場合にはオートスケール設定のサーバーの数を保つように、新たなサーバーを起動するようにオートスケール実行部353に指示する。オートスケール実行部353は、オートスケール管理部352の指示を受けて、サーバーを起動したり、削除したりするモジュールである。データ格納部354は、表Eおよび表Fを用いて後述するテーブルを管理するモジュールである。
<システム管理サーバーが管理するテーブル>
表1から表4はシステム管理サーバー108が管理するテーブルの一例であり、システム管理サーバー108のデータ格納部323に保存する。
Figure 2018120374

表Aは、サーバー管理テーブルである。本テーブルは、表Fを用いて後述するオートスケール設定を一意に識別するためのスケールIDを格納するカラムを備える。本テーブルは、メッセージ実行サーバー107を一意に識別するためのサーバーIDを格納するカラムを備える。本テーブルは、サーバーIDで識別されるメッセージ実行サーバー107上で動作するアプリケーションのアプリケーション名を格納するカラムを備える。アプリケーションの処理は、データ集計の処理、メール送信の処理、ファイルエクスポートの処理などである。本テーブルは、アプリケーションのログの出力状況を示すログ状況を格納するカラムを備える。サーバー管理テーブルにより、どのオートスケール設定に紐づいたどのメッセージ実行サーバー107のどのアプリケーションのログが正常に出力されているのか、停止しているのかがわかる。
Figure 2018120374

表Bは、ログ監視条件テーブルである。本テーブルは、監視エージェントアプリケーション300を一意に識別するためのエージェントIDを格納するカラムを備える。本テーブルは、監視エージェントアプリケーション300が監視するアプリケーション名を格納するカラムを備える。本テーブルは、監視エージェントアプリケーション300が監視すべきログファイルパスを格納するカラムを備える。本テーブルは、ログファイルの更新がどの程度行われていなかった場合に、監視エージェントアプリケーション300が異常と判断するかを示す更新停止時間を格納するカラムを備える。
Figure 2018120374

表Cは、処理管理テーブルである。本テーブルは、オートスケール設定を一意に識別するためのスケールIDを格納するカラムを備える。本テーブルは、システム管理サーバー108の監視サーバーアプリケーション320が実行する処理を格納するカラムを備える。本テーブルは、実行する処理がメール通知だった場合に通知先を示すメールアドレスを格納するカラム備える。処理管理テーブルでは、スケールIDで示されるオートスケール設定に紐づくメッセージ実行サーバー107で稼働するアプリケーションのログが停止した場合に実行する処理が何であるかを管理する。システム管理サーバー108の監視サーバーアプリケーション320の本処理については、図7を用いて後述する。
Figure 2018120374

表Dは、メッセージ管理テーブルである。本テーブルは、オートスケール設定を一意に識別するためのスケールIDを格納するカラムを備える。本テーブルは、メッセージ実行サーバー107などのサーバーを一意に識別するためのサーバーIDを格納するカラムを備える。本テーブルは、ログの出力が停止したアプリケーション名を格納するカラムを備える。本テーブルは、ログの出力が停止した時に処理していたメッセージの識別情報であるメッセージIDを格納するカラムを備える。メッセージ管理テーブルにより、どのメッセージを処理しているときにログの出力が停止したのかがわかる。
<オートスケール管理サーバーが管理するテーブル>
表5、表6はオートスケール管理サーバー109が管理するテーブルの一例であり、オートスケール管理サーバー109のデータ格納部354に保存する。
Figure 2018120374

表Eはリソース監視条件テーブルである。リソース監視条件テーブルは、オートスケール管理アプリケーション350のリソース監視部351が監視するリソースや監視した結果を格納する。本テーブルは、リソース監視条件を一意に識別するための監視条件IDを格納するカラムを備える。本テーブルは、オートスケール設定を一意に識別するためのスケールIDを格納するカラムを備える。本テーブルは、監視する項目を示す監視項目を格納するカラムを備える。本テーブルは、オートスケール実行が必要な測定値であるか示す測定値の閾値を格納するカラムを備える。本テーブルは、監視した結果、測定値の閾値を超えた状態が連続して何回測定されたかを示す継続回数を格納するカラムを備える。本テーブルは、継続回数が何回に達した場合にオートスケールを行うかを示す回数の閾値を格納するカラムを備える。例えば、最初のレコードはスケールIDが「A001」であるオートスケール設定に紐づくサーバーのCPU使用率を監視すること示している。そして、最初のレコードは、定期的に監視した結果、CPU使用率が80パーセントを超える状態が3回継続して測定された場合にスケールアウトすることを示している。また、最初のレコードは、現在継続して測定値の閾値を超えて測定された回数は1回であることを示している。
Figure 2018120374

表Fは、オートスケール設定管理テーブルである。オートスケール設定管理テーブルは、1つのレコードが1つのオートスケール設定を表している。本テーブルでは、オートスケール管理アプリケーション350のオートスケール管理部352が管理するサーバーの数などが示される。オートスケール設定管理テーブルは、オートスケール設定を一意に識別するためのスケールIDを格納するカラムを備える。本テーブルは、オートスケール設定に紐づくサーバーが最低何台起動していないといけないかを示す最少台数を格納するカラムを備える。本テーブルは、オートスケール設定に紐づくサーバーが現在何台必要かを示すカラムを備える。本テーブルは、現在起動しているサーバーのサーバーIDを示す起動サーバーを格納するカラムを備える。起動サーバーのカラムに格納されているサーバーがオートスケール対象となる。本テーブルは、オートスケール設定に紐づくサーバーが多くても何台までかを示す最多台数を格納するカラムを備える。前述した表Eのリソース監視条件テーブルで示された条件に合致すると必要台数が増減する。これにより、オートスケール管理部352がサーバーの削除や新たなサーバーを起動する。そのため、起動サーバーのカラムに格納されるサーバーIDの数も増減する。
<メッセージ実行処理>
図4は、メッセージ実行サーバー107のメッセージ実行アプリケーション310が実行するメッセージ実行処理の手順例を示すフローチャートである。本処理は、メッセージ実行サーバー107のメッセージ実行アプリケーション310がキュー106に登録されているメッセージを確認し、取得可能なメッセージがある際に実行される処理である。
S401で、オートスケール確認部314は、オートスケール管理サーバー109のオートスケール管理アプリケーション350からメッセージ実行サーバー107が紐づいているオートスケール設定を取得し、S402に遷移する。
S402で、オートスケール確認部314は、S401で取得したオートスケール設定を確認して、メッセージ実行アプリケーション310が動作するメッセージ実行サーバー107がオートスケール設定に紐づいているかを判断する。オートスケール設定に紐づいている場合はS403に遷移する。オートスケール設定に紐づいていない場合は、メッセージ実行サーバー107が要停止状態であると判断されて、メッセージ取得部311がキュー106からメッセージを取得することなく、本フローチャートの処理を終了する。処理を終了するとログが出力されなくなる。すると、監視エージェントアプリケーション300によりログが停止していると判断され、システム管理サーバー108の監視サーバーアプリケーション320により、メッセージ実行アプリケーション310の処理が停止したことが伝わる。これらのシステム管理サーバー108の監視サーバーアプリケーション320の処理については、後述する図7を用いて説明する。
S403で、メッセージ取得部311は、キュー106からメッセージを取得する旨をログに出力してS404に遷移する。S404でメッセージ取得部311は、キュー106からメッセージを1つ取得して、S405に遷移する。S405でメッセージ取得部311は、S404でメッセージが取得できたかを確認する。メッセージを取得できた場合は、S406に遷移する。メッセージが取得できなかった場合は、S401に遷移する。
なお、本実施例ではメッセージを取得する前に、必ずS401、S402の処理を実行しているが、オートスケール管理サーバー109の負荷を考慮して、メッセージの取得が規定回数行われる毎に、S401、S402の処理を実行するようにしてもよい。また、同様に本実施例ではメッセージを取得する前に、S403で必ずログを出力しているが、ログファイルのサイズを考慮してメッセージの取得が規定回数行われる毎に、S403の処理を実行するようにしてもよい。
S406で、メッセージ実行部312は、取得したメッセージの識別情報を含めた、メッセージの処理開始を示すログを出力し、S407に遷移する。尚、出力したログについては、後述する図5を用いて説明する。
S407で、メッセージ実行部312は、S404で取得したメッセージで指示された処理を実行してS408に遷移する。メッセージ実行部312は、メッセージの処理実行中にも定期的にログを出力する。尚、前述したようにメッセージ実行サーバー107では複数のメッセージ実行アプリケーション310が動作する。そのためS407で実行される処理は異なる。例えば、あるメッセージ実行アプリケーション310はデータの集計処理を行い、別のメッセージ実行アプリケーション310はメール送信を行う。尚、本実施例では、メッセージ取得前に、メッセージ実行サーバー107がオートスケール設定に紐づいているかを確認している。さらに、S407のメッセージの処理の実行中にも定期的にS401、S402の処理を行うようにし、オートスケール設定に紐づいていない場合には処理の中断、メッセージの再登録を行い、処理を終了するように構成してもよい。このようにすることで、データ集計など時間がかかる処理を実行していたとしても、すぐにメッセージ実行サーバー107が要停止状態であることを確認でき、より早くメッセージ実行サーバー107を停止状態にすることができる。
S408で、メッセージ実行部312は、メッセージの処理終了を示すログを出力し、S409に遷移する。S409で、メッセージ削除部313は、キュー106からS404で取得したメッセージを削除して、S401に遷移する。
<メッセージ実行アプリケーションのログ>
図5は、メッセージ実行アプリケーション310のログファイルの一例を示した図である。ログファイル500は、データ集計のメッセージを処理するメッセージ実行アプリケーション310が出力したログである。
ログ501、および、ログ502は、上述した図4で示すフローチャート中のS403の処理で出力されたログである。ログ503は、S406の処理で出力されたログである。メッセージIDが「1000003」であるメッセージの処理を開始したことを示している。ログ504は、S407のメッセージの処理実行中に出力されるログを示している。ログ505は、S408の処理で出力されたログであり、メッセージの処理が終了したことを示している。尚、本実施例ではログ505にメッセージIDを出力していないが、ログ505にメッセージIDを出力するように構成してもよい。メッセージの処理中にデッドロックのようなことが発生してしまった場合は、ログ503が出力された後にログ505が出力されないため、ログ503に含まれるメッセージIDを基に、処理中に問題の発生したメッセージを特定できる。
<ログ監視処理>
図6は、メッセージ実行サーバー107の監視エージェントアプリケーション300が実行するログ監視処理の手順例を示すフローチャートである。本処理は、メッセージ実行サーバー107の監視エージェントアプリケーション300が、ログ監視条件に従ってログの監視を実行する処理である。
S601で、ログ監視部301は、監視エージェントアプリケーション300のログ監視条件を、システム管理サーバー108の監視サーバーアプリケーション320から取得して、S602に遷移する。システム管理サーバー108の監視サーバーアプリケーション320は、ログ監視部301のリクエストに含まれるエージェントIDを基に表Bで説明したログ監視条件テーブルからログ監視条件を取得して返却する。
S602で、ログ監視部301は、取得した監視条件が監視の終了を示しているかを判断する。監視の終了である場合は、処理を終了する。監視の終了でない場合はS603に遷移する。
S603は、繰り返しの処理開始を表しており、S607が繰り返しの処理終了を表している。S607の処理に移ったときに、取得したログ監視条件の数だけS604からS606の処理を実行していた場合は、S601に遷移する。
S604で、ログ監視部301は、現在日時と、ログ監視条件に含まれるログファイルパスにあるログファイルの更新日時の差分がログ監視条件に含まれる基準時間(所定時間)を超えていないかを判断する。所定時間を超えている場合は、異常が発生したと判断して、S605に遷移する。所定時間内である場合は、S607に遷移する。
S605で、ログ監視部301は、ログファイルから処理が完了していないメッセージのメッセージIDを取得してS606に遷移する。処理が完了していないメッセージは、先に説明したようにログ503が出力され、ログ505が出力されないことで判断する。
S606で、通知部302は、システム管理サーバー108の監視サーバーアプリケーション320に、S604で異常を検知したメッセージ実行アプリケーション310に異常が発生したことを通知して、S607に遷移する。尚、S606での通知にはS605で取得したメッセージIDを含める。
<異常通知受信処理>
図7は、システム管理サーバー108の監視サーバーアプリケーション320が実行する異常通知受信処理の手順例を示すフローチャートである。本処理は、S606で処理されたメッセージ実行サーバー107の監視エージェントアプリケーション300の通知を監視サーバーアプリケーション320が受信したときに実行する処理である。
S701で、サーバー管理部321は、サーバー管理テーブル(表A)のログ状況のカラムを「停止」に変更してS702に遷移する。尚、停止に変更するのは、異常を通知した監視エージェントアプリケーション300が動作するメッセージ実行サーバー107のログの更新が停止したアプリケーションのレコードである。
S702で、サーバー管理部321は、サーバー管理テーブルを確認し、通知を受信したメッセージ実行サーバー107で動作するメッセージ実行アプリケーション310の中で最初にログが停止したアプリケーションであるかを判断する。最初にログが停止したメッセージ実行アプリケーション310であった場合は、S703に遷移する。最初にログが停止したメッセージ実行アプリケーション310でなかった場合は、S708に遷移する。
S703で、処理実行部322は、ログの出力が停止したメッセージ実行アプリケーション310が動作するメッセージ実行サーバー107に紐づいたオートスケール設定の最少台数と必要台数を1台追加してS704に遷移する。具体的には、処理実行部322は、オートスケール管理サーバー109のオートスケール管理アプリケーション350にオートスケール設定の最少台数と必要台数を1台追加するリクエストを行う。オートスケール管理サーバー109のオートスケール管理アプリケーション350から完了のレスポンスを受信してS704に遷移する。
S704で、処理実行部322は、ログの出力が停止したメッセージ実行アプリケーション310が動作するメッセージ実行サーバー107をオートスケール対象から外してS705に遷移する。具体的には、処理実行部322は、オートスケール管理サーバー109のオートスケール管理アプリケーション350にメッセージ実行サーバー107のサーバーIDを含めてオートスケールの対象から外すリクエストを行う。尚、このリクエストには最少台数を1台減らすリクエストも含める。オートスケール管理サーバー109のオートスケール管理アプリケーション350から完了のレスポンスを受信してS705に遷移する。
S704の処理でログの出力が停止したメッセージ実行アプリケーション310が動作するメッセージ実行サーバー107をオートスケール対象から外す前に、S703においてオートスケール設定を変更してメッセージ実行サーバー107を1台追加した。オートスケールの対象からメッセージ実行サーバー107が外れた場合、オートスケール管理サーバー109のオートスケール管理アプリケーション350は最少台数を保つためにメッセージ実行サーバー107を新たに起動する。しかし、起動が完了するまでにはある程度時間がかかるため、その間稼働中の情報処理システム101は1台少ない状態でメッセージを処理することとなる。そのため、S703の処理で予め1台増やしておくことで稼働中の情報処理システム101に影響を与えずに済むようになる。尚、本実施例では必ずS703の処理を行っているが、例えば、キュー106のメッセージ数を確認して、メッセージが閾値以上の場合にだけS703の処理を実行するように構成してもよい。
S705で、サーバー管理部321は、受信した通知に含まれるメッセージID等をメッセージ管理テーブルに格納してS706に遷移する。S706で、サーバー管理部321は、受信した通知に含まれるメッセージIDがメッセージ管理テーブルに複数含まれるかを判断する。メッセージIDが複数含まれる場合は、S707に遷移する。メッセージIDが複数含まれない場合はS708に遷移する。
S707で、処理実行部322は、受信した通知に含まれるメッセージIDのメッセージをキュー106から削除し、S708に遷移する。前述したようにメッセージの不可視時間が経過すると、他のメッセージ実行サーバー107のメッセージ実行アプリケーション310が、同一メッセージをキュー106から取得できるようになる。デッドロックのような状態に陥る原因がメッセージの内容にあった場合、他のメッセージ実行サーバー107のメッセージ実行アプリケーション310でもログの出力が停止し、繰り返し問題が発生し続けることになる。S707の処理でメッセージを削除することによって繰り返し問題が発生し続けることを回避することができる。
S708で、サーバー管理部321は、サーバー管理テーブル(表A)を参照し、メッセージ実行サーバー107のすべてのメッセージ実行アプリケーション310のログの出力が停止したかを判断する。メッセージ実行サーバー107のすべてのメッセージ実行アプリケーション310のログの出力が停止した場合、メッセージ実行サーバー107が停止状態になったと判断して、S709に遷移する。すなわち、ここでは全てのメッセージ実行アプリケーション310が、メッセージの取得を停止し、かつ、S701での設定の変更前に取得したメッセージに基づく処理が完了していることが確認される。メッセージ実行サーバー107のすべてのメッセージ実行アプリケーション310のログの出力が停止していない場合は処理を終了する。
S709で、処理実行部322は、処理管理テーブル(表C)を参照して、所定の処理を実行して終了する。なお、S709では、所定の処理として複数の処理が実行されても良い。所定の処理は、処理管理テーブルにおいて、停止状態となったメッセージ実行サーバー107が紐づいていたオートスケール設定のスケールIDで特定される処理を実行する。
なお、S708で、サーバー管理部321は、異常が発生したアプリケーション以外のアプリケーションによる処理が完了したことを示すログを確認して、S709に遷移しても良い。
以上、本実施例では、システム管理サーバーは、メッセージ実行サーバーにおけるいずれかのメッセージ実行アプリケーションで異常が発生した場合に、そのメッセージ実行サーバーをオートスケールの対象から除外した。メッセージ実行サーバーは、オートスケールの対象から除外されたことを確認した際に、キューからメッセージを取得することを停止する。本実施例によれば、メッセージ実行サーバーがキューからメッセージを取得しなくなるため、メッセージ実行サーバーの削除や原因調査を行うことができる。
(実施例2)
実施例1においては、メッセージ実行サーバー107に監視エージェントアプリケーション300を配置してログファイルの監視を行った。実施例2においては、メッセージ実行サーバー107に監視エージェントアプリケーション300を配置しない例について記載する。実施例2においては、実施例1と異なる部分のみ説明する。
<システム構成>
図8は、実施例2におけるシステムの全体構成を示す模式図である。
図1と異なるのは、ストレージサービス801が追加されている点である。ストレージサービス801は、ファイルを管理するサービスである。ディレクトリの作成、削除、ファイルの登録、取得、削除などの機能を有する。ストレージサービス801は、本実施例ではメッセージ実行アプリケーション310のログファイルを格納する。ストレージサービス801に格納されるログファイルは、システム管理サーバー108やメッセージ実行サーバー107からアクセスが可能なように構成する。
<メッセージ実行サーバーの機能構成>
図9(A)は、実施例2におけるメッセージ実行サーバー107の機能構成の一例を示す図である。図3(A)と異なるのは監視エージェントアプリケーション300がない点である。
<システム管理サーバーの機能構成>
図9(B)は、実施例2におけるシステム管理サーバー108の機能構成の一例を示す図である。図3(B)と異なるのはログ監視部901が追加となった点である。
ログ監視部901は、後述する表Gを用いて説明するログ監視条件テーブルからログ監視条件を取得し、そのログ監視条件に合致するかログを監視するモジュールである。
<システム管理サーバーが管理するテーブル>
システム管理サーバー108が管理するテーブルで実施例1と異なるのは、ログ監視条件テーブルである。
Figure 2018120374

表Gは、実施例2におけるログ監視条件テーブルである。実施例1のログ監視テーブルである表Bと異なるのは、エージェントIDのカラムがサーバーIDのカラムに変更になっている点である。またログファイルパスに格納されるログのファイルパスが、ストレージサービス801となっている点が実施例1と異なる。システム管理サーバー108のログ監視部901は、本テーブルで指定されたストレージサービス801に格納されたメッセージ実行サーバー107の各メッセージ実行アプリケーション310のログファイルを監視する。尚、本実施例ではシステム管理サーバー108のログ監視部901は、メッセージ実行サーバー107に保存されたログファイルではなく、ストレージサービス801に格納されたログファイルを監視するように構成している。外部からメッセージ実行サーバー107に保存されたログファイルを監視するためには、メッセージ実行サーバー107にログインする等の処理が必要となる。これはシステム管理サーバー108が各メッセージ実行サーバー107のログイン情報を管理する必要があることを意味する。また、サービスを顧客に提供している稼働中のメッセージ実行サーバー107にログインしなければならない。そのため、本実施例ではシステム管理サーバー108及びメッセージ実行サーバー107のどちらもアクセス可能なストレージサービスにログファイルを格納するように構成している。
<メッセージ実行処理>
実施例2のメッセージ実行処理で実施例1と異なるのは、S403、S406、S407、S408でのログの出力先がストレージサービス801になっている点のみである。本実施例では、ログの出力先をストレージサービス801とするが、例えば、メッセージ実行サーバー107のログファイルにログを出力し、そのログファイルをストレージサービス801に同期するような構成でも良い。
<ログ監視処理>
図10は、システム管理サーバー108の監視サーバーアプリケーション320が実行する実施例2おけるログ監視処理の手順例を示すフローチャートである。実施例1でログ監視処理は監視エージェントアプリケーション300が実行していたが、実施例2ではシステム管理サーバー108の監視サーバーアプリケーション320が実行する。
S1001で、ログ監視部901は、表Gで説明したログ監視条件テーブルからログ監視条件をすべて取得しS1002に遷移する。実施例1では、各監視エージェントアプリケーション300は、その監視エージェントアプリケーション300が動作するメッセージ実行サーバー107のログ監視条件だけを監視していた。しかし、実施例2においては、システム管理サーバー108の監視サーバーアプリケーション320は、すべてのメッセージ実行サーバー107のログ監視条件を監視する。
S1002で、ログ監視部901は、取得した監視条件が監視の終了を示しているかを判断する。監視の終了である場合は、処理を終了する。監視の終了でない場合はS1003に遷移する。S1003は、繰り返しの処理開始を表しており、S1008が繰り返しの処理終了を表している。S1008の処理に移ったときに、取得したログ監視条件の数だけS1004からS1007の処理を実行していた場合は、S1001に遷移する。
S1004で、ログ監視部901は、ストレージサービス801からログ監視条件に含まれるログファイルパスにあるログファイルを取得してS1005に遷移する。S1005で、ログ監視部901は、現在日時と、S1004で取得したログファイルの更新日時の差分がログ監視条件に含まれる更新停止時間を超えていないかを判断する。更新停止時間を超えている場合は、異常が発生したと判断して、S1006に遷移する。更新停止時間を超えていない場合は、S1008に遷移する。
S1006で、ログ監視部901は、ログファイルから処理が完了していないメッセージのメッセージIDを取得してS1006に遷移する。処理が完了していないメッセージは、先に説明したようにログ503が出力され、ログ505が出力されないことで判断する。
S1007で、図7を用いて説明した異常通知受信処理を実行してS1008に遷移する。
以上、本実施例では、システム管理サーバー108は、ストレージサービス801に格納されたメッセージ実行サーバー107の各メッセージ実行アプリケーション310のログファイルを監視した。ログファイルの監視の結果に基づいて、システム管理サーバー108は、メッセージ実行アプリケーションの処理を停止することが可能となる。
(実施例3)
実施例1および実施例2において、メッセージ実行サーバー107が要停止状態であるかの判断を、オートスケールの対象になっているかで判断していた。実施例3においては、システム管理サーバー108から命令を送ることで要停止状態であると判断する例について記載する。実施例1および実施例2と同じ点については説明を省略する。
<システム構成>
実施例3におけるシステムの全体構成は実施例2と同じであり、図8で示す構成である。
<メッセージ実行サーバーの機能構成>
図11(A)は、実施例3におけるメッセージ実行サーバー107の機能構成の一例を示す図である。図3(A)と異なるのはメッセージ実行アプリケーション310のオートスケール確認部314がなく、命令処理部1101が追加されている点である。
命令処理部1101は、ストレージサービス801に格納されている命令を定期的に取得して解析するモジュールである。
<システム管理サーバーの機能構成>
図11(B)は、実施例3におけるシステム管理サーバー108の機能構成の一例を示す図である。図3(B)と異なるのは命令部1121が追加となった点である。
命令部1121は、メッセージ実行アプリケーション310の処理を停止する停止命令等をストレージサービス801に格納するモジュールである。また、定期的に命令の完了結果ファイルがあるかをストレージサービス801に確認して、命令の完了結果ファイルを取得する。
<システム管理サーバーが管理するテーブル>
システム管理サーバー108が管理するテーブルで実施例1と異なるのは、サーバー管理テーブルである。
Figure 2018120374

表Hは、実施例3におけるサーバー管理テーブルである。実施例1のサーバー管理テーブルである表Aと異なるのは、ログ状況のカラムが処理モードのカラムになっている点である。処理モードは、メッセージ実行アプリケーション310が動作する処理モードを表している。処理モードが、「実行」である場合は、正常にメッセージを処理していることを表している。処理モードが「停止」である場合は、システム管理サーバー108の監視サーバーアプリケーション320からの命令を受けて、メッセージの処理を停止していることを表している。処理モードが「異常」である場合は、デッドロックのようなことが発生した場合など、何らかの理由でメッセージの処理ができていないことを表している。
<メッセージ実行処理>
図12は、メッセージ実行サーバー107のメッセージ実行アプリケーション310が実行する実施例3におけるメッセージ実行処理の手順例を示すフローチャートである。
S1201で、命令処理部1101は、ストレージサービス801から命令を取得する旨をログに出力してS1202に遷移する。S1202で、命令処理部1101は、ストレージサービス801から命令を取得し、S1203に遷移する。
S1203で、命令処理部1101は、S1202で取得した命令があるかを確認する。命令がある場合はS1204に遷移する。命令がない場合は、S1201に戻り命令の監視を続ける。
S1204で、命令処理部1101は、命令の内容を確認する。処理モードを「実行」に変更する命令であった場合は、S1205に遷移する。処理モードを「停止」に変更する命令であった場合はS1206に遷移する。命令が処理の終了であった場合は、処理を終了する。
S1205で、命令処理部1101は、処理モードを「実行」に変更してS1207に遷移する。S1206で、命令処理部1101は、処理モードを「停止」に変更してS1207に遷移する。S1207で、命令処理部1101は、命令の完了結果ファイルをストレージサービス801に登録して、S1207に遷移する。
S1208で、メッセージ取得部311は現在の処理モードを確認する。現在の処理モードが「実行」である場合は、S403に遷移する。現在の処理モードが「停止」である場合は、S1201に遷移する。尚、S403からS409は図4を用いて説明した処理と同じため説明を省略する。
<異常通知受信処理>
図13は、システム管理サーバー108の監視サーバーアプリケーション320が実行する実施例3における異常通知受信処理の手順例を示すフローチャートである。
S1301で、サーバー管理部321は、図Hで説明したサーバー管理テーブルの処理モードを「異常」で登録して、S703に遷移する。S703からS707の処理は図7を用いて説明した処理と同じであるため、説明を省略する。
S1302で、命令部1121は、メッセージ実行サーバー107のメッセージ実行アプリケーション310の処理モードを「停止」に変更する命令をストレージサービス801に登録し、S1303に遷移する。
S1303で、命令部1121は、ストレージサービス801からメッセージ実行サーバー107のメッセージ実行アプリケーション310の命令の完了結果を取得し、S1304に遷移する。尚、S1302で、命令を登録してから、メッセージ実行サーバー107のメッセージ実行アプリケーション310が命令を実行するのにはある程度時間がかかるため、S1302とS1303の間は一定期間ウェイトしてもよい。また、命令を登録するS1302までの処理と命令の完了結果を取得するS1303以降の処理を別のスレッドで実行するように構成してもよい。
S1304で、命令部1121は命令の完了結果が取得できたかを判断する。1つ以上取得できた場合は、S1305に遷移する。1つも取得できなかった場合は、S1303に遷移する。
S1305で、サーバー管理部321は、S1304で取得したメッセージ実行サーバー107のメッセージ実行アプリケーション310の完了結果を基に、表Hで説明したサーバー管理テーブルの処理モードを「停止」に変更してS1306に遷移する。
S1306で、サーバー管理部321は、表Hで説明したサーバー管理テーブルを参照して、メッセージ実行サーバー107のすべてのメッセージ実行アプリケーション310が「停止」か「異常」になっているかを確認する。メッセージ実行サーバー107のすべてのメッセージ実行アプリケーション310が「停止」か「異常」になっている場合は、メッセージ実行サーバー107は停止状態になったと判断して、S709に遷移する。メッセージ実行サーバー107のすべてのメッセージ実行アプリケーション310が「停止」か「異常」になっていない場合は、S1303に遷移する。尚、S709の処理は図7を用いて説明した処理と同じである為、説明を省略する。
実施例3では、実施例1と同じようにメッセージ実行サーバー107に監視エージェントアプリケーション300を配置する構成とした。しかし、実施例2と同じようにメッセージ実行サーバー107に監視エージェントアプリケーション300を配置せずにシステム管理サーバー108の監視サーバーアプリケーション320にログ監視部901を配置する構成にしてもよい。
以上、本実施例では、システム管理サーバーがストレージに格納した命令を、メッセージ実行サーバーが取得し、その後メッセージ実行アプリケーションによるキューからのメッセージの取得を停止した。本実施例によれば、システム管理サーバーの監視サーバーアプリケーションが明示的に命令を出すことで、メッセージ実行アプリケーションの処理を停止させることができる。
(他の実施例)
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
ここで、本発明は、上述した実施形態の機能を実現する1つ以上のソフトウェア(プログラム)を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の1つである。また、そのプログラムは、ネットワークまたは各種記憶媒体を介してシステムあるいは装置に供給され、そのシステムあるいは装置の1つ以上のコンピューター(CPUやMPU等)によりそのプログラムが読み出され、実行される。つまり、本発明の1つとして、さらにそのプログラム自体、あるいは当該プログラムを格納したコンピューターにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路(例えば、ASIC)によっても、本発明は実現可能である。
101 情報処理システム
107 メッセージ実行サーバー
108 システム管理サーバー
310 メッセージ実行アプリケーション
311 メッセージ取得部
312 メッセージ実行部
320 監視サーバーアプリケーション
321 サーバー管理部
322 処理実行部

Claims (9)

  1. 複数のアプリケーションが配置される仮想マシンと、前記仮想マシンを管理する管理サーバーとを含む情報処理システムであって、
    前記仮想マシンに配置される各アプリケーションは、前記情報処理システムで管理される設定に基づき、メッセージを格納する格納領域からメッセージを取得し、
    前記管理サーバーは、
    前記情報処理システム内で管理される設定を、前記仮想マシンに配置される各アプリケーションによるメッセージの取得を停止させるための設定に変更する設定手段を有し、
    前記仮想マシンに配置されるアプリケーションいずれかの異常が検知された場合、前記各アプリケーションは、前記設定手段により変更された設定に基づきメッセージの取得を停止し、かつ、前記設定手段による変更前に取得したメッセージに基づく処理を完了させることを特徴とする情報処理システム。
  2. 前記仮想マシンに配置される全てのアプリケーションが、前記設定手段により変更された設定に基づきメッセージの取得を停止し、かつ、前記設定手段による変更前に取得したメッセージに基づく処理を完了させた後、前記仮想マシンは削除されることを特徴とする請求項1に記載の情報処理システム。
  3. 前記仮想マシン、および、前記管理サーバーのいずれかが、
    前記各アプリケーションの異常の有無を監視する監視手段を有することを特徴とする請求項1または2に記載の情報処理システム。
  4. 前記仮想マシンは、前記各アプリケーションの異常の有無を監視する監視手段を有し、
    前記各アプリケーションは、
    前記取得したメッセージに基づく処理を実行し、
    前記メッセージに基づく処理の動作に関するログを出力し、
    前記監視手段は、所定時間内に前記アプリケーションによるログの出力がない場合に、前記管理サーバーに対して、前記アプリケーションの異常として通知を行うことを検知することを特徴とする請求項1または2に記載の情報処理システム。
  5. 前記各アプリケーションは、前記取得したメッセージの識別情報を含めたログを出力することを特徴とする請求項4に記載の情報処理システム。
  6. 前記各アプリケーションが実行する処理には、データ集計の処理、メール送信の処理、および、ファイルエクスポートの処理のうち少なくともいずれかが含まれることを特徴とする請求項4または5に記載の情報処理システム。
  7. 前記情報処理システムでは、前記格納領域に格納されたメッセージによる処理負荷に応じて、前記格納領域に格納されたメッセージの処理を行う仮想マシンの台数の調整が行われるように各仮想マシンが管理され、
    前記アプリケーションが前記情報処理システムにおける前記調整の対象となる仮想マシンに配置されている場合に、該アプリケーションは前記格納領域からメッセージを取得し、
    前記設定手段は、前記仮想マシンに配置されるアプリケーションいずれかの異常が検知された場合に、前記各アプリケーションによるメッセージの取得を停止させるための設定として、当該仮想マシンを前記情報処理システムにおける前記調整の対象から外すことを特徴とする請求項1乃至6のいずれか1項に記載の情報処理システム。
  8. 前記情報処理システムには、前記仮想マシンと前記管理サーバーとがアクセス可能なストレージサービスが更に含まれており、
    前記管理サーバーは、
    前記仮想マシンに配置されるアプリケーションいずれかの異常が検知された場合に、前記各アプリケーションによるメッセージの取得を停止させるための設定として、メッセージの取得を停止させる命令を前記ストレージサービスに格納する格納手段を有し、
    前記各アプリケーションは、前記ストレージサービスに前記命令が格納されていた場合、前記格納領域からのメッセージの取得を停止することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理システム。
  9. 複数のアプリケーションが配置される仮想マシンと、前記仮想マシンを管理する管理サーバーとを含む情報処理システムの制御方法であって、
    前記仮想マシンに配置される各アプリケーションは、前記情報処理システムで管理される設定に基づき、メッセージを格納する格納領域からメッセージを取得し、
    前記管理サーバーは、
    前記情報処理システム内で管理される設定を、前記仮想マシンに配置される各アプリケーションによるメッセージの取得を停止させるための設定に変更する設定工程を有し、
    前記仮想マシンに配置されるアプリケーションいずれかの異常が検知された場合、前記各アプリケーションは、前記設定手段により変更された設定に基づきメッセージの取得を停止し、かつ、前記設定手段による変更前に取得したメッセージに基づく処理を完了させることを特徴とする制御方法。
JP2017010747A 2017-01-24 2017-01-24 情報処理システム、及び制御方法 Active JP7030412B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017010747A JP7030412B2 (ja) 2017-01-24 2017-01-24 情報処理システム、及び制御方法
US15/866,292 US10896076B2 (en) 2017-01-24 2018-01-09 Information processing system and control method for executing a process based on a message acquired from a queue

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017010747A JP7030412B2 (ja) 2017-01-24 2017-01-24 情報処理システム、及び制御方法

Publications (2)

Publication Number Publication Date
JP2018120374A true JP2018120374A (ja) 2018-08-02
JP7030412B2 JP7030412B2 (ja) 2022-03-07

Family

ID=62906238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017010747A Active JP7030412B2 (ja) 2017-01-24 2017-01-24 情報処理システム、及び制御方法

Country Status (2)

Country Link
US (1) US10896076B2 (ja)
JP (1) JP7030412B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021185453A (ja) * 2020-05-25 2021-12-09 日本電気株式会社 サーバ、クラウドシステム、サーバ制御方法、及び、プログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6440203B2 (ja) * 2015-09-02 2018-12-19 Kddi株式会社 ネットワーク監視システム、ネットワーク監視方法およびプログラム
US20240231664A9 (en) * 2022-10-20 2024-07-11 Capital One Services, Llc Refresh of stale reference to physical file locations

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129376A (ja) * 2007-11-27 2009-06-11 Hitachi Ltd クライアントサーバシステムにおける要求制御方法、要求制御プログラム、および、サーバ装置
JP2012088770A (ja) * 2010-10-15 2012-05-10 Nautilus Technologies Inc コンピュータリソース制御システム
JP2017004050A (ja) * 2015-06-04 2017-01-05 富士通株式会社 キュー管理方法、キュー管理プログラム及びキュー管理装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070101323A1 (en) * 2005-10-28 2007-05-03 Microsoft Corporation Automatic virtual machine adjustments to network changes
US8612971B1 (en) * 2006-10-17 2013-12-17 Manageiq, Inc. Automatic optimization for virtual systems
JP5298764B2 (ja) * 2008-10-22 2013-09-25 富士通株式会社 仮想システム制御プログラム、方法及び装置
JP5166318B2 (ja) * 2009-02-24 2013-03-21 株式会社東芝 情報を処理する装置、方法およびプログラム
JP2015057685A (ja) 2013-08-12 2015-03-26 株式会社三菱東京Ufj銀行 監視システム
US9183093B2 (en) * 2013-12-05 2015-11-10 Vmware, Inc. Virtual machine crash management
US9529997B2 (en) * 2014-09-19 2016-12-27 Intel IP Corporation Centralized platform settings management for virtualized and multi OS systems
JP6447258B2 (ja) * 2015-03-09 2019-01-09 富士通株式会社 管理プログラム、管理方法、および管理装置
US10437621B2 (en) * 2015-04-22 2019-10-08 Cisco Technology, Inc. Monitoring and managing applications on virtual machines using a proxy agent
JP2017033331A (ja) * 2015-08-03 2017-02-09 富士通株式会社 代理応答プログラム、代理応答装置及び代理応答方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129376A (ja) * 2007-11-27 2009-06-11 Hitachi Ltd クライアントサーバシステムにおける要求制御方法、要求制御プログラム、および、サーバ装置
JP2012088770A (ja) * 2010-10-15 2012-05-10 Nautilus Technologies Inc コンピュータリソース制御システム
JP2017004050A (ja) * 2015-06-04 2017-01-05 富士通株式会社 キュー管理方法、キュー管理プログラム及びキュー管理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021185453A (ja) * 2020-05-25 2021-12-09 日本電気株式会社 サーバ、クラウドシステム、サーバ制御方法、及び、プログラム
JP7631679B2 (ja) 2020-05-25 2025-02-19 日本電気株式会社 クラウドシステム、制御方法、及び、プログラム

Also Published As

Publication number Publication date
JP7030412B2 (ja) 2022-03-07
US10896076B2 (en) 2021-01-19
US20180210771A1 (en) 2018-07-26

Similar Documents

Publication Publication Date Title
US8938510B2 (en) On-demand mailbox synchronization and migration system
US10491704B2 (en) Automatic provisioning of cloud services
US8266301B2 (en) Deployment of asynchronous agentless agent functionality in clustered environments
US11157324B2 (en) Partitioning for delayed queues in a distributed network
US11119829B2 (en) On-demand provisioning of customized developer environments
CN113382077B (zh) 微服务调度方法、装置、计算机设备和存储介质
JP6548540B2 (ja) 管理システムおよび管理システムの制御方法
US10355922B1 (en) Automated computing architecture configuration service
US9984139B1 (en) Publish session framework for datastore operation records
CN103281344A (zh) 用于混合云的服务使用的集成计量的方法和系统
JP7030412B2 (ja) 情報処理システム、及び制御方法
CN105874453B (zh) 为多承租者数据库提供一致的承租者体验
JP2019008454A (ja) 情報処理システムおよびリソース割り当て方法
US11281550B2 (en) Disaster recovery specific configurations, management, and application
KR20220061995A (ko) 마이크로 서비스 아키텍처의 최적화를 제공
CN118922820A (zh) 针对容器化应用程序的定制跨场所资源选择
JP5884566B2 (ja) バッチ処理システム、進捗状況確認装置、進捗状況確認方法、及びプログラム
JP2015106345A (ja) 情報処理システム、情報処理装置及びプログラム
JP2018063672A (ja) メッセージ実行サーバー、制御方法、およびプログラム
US20170168867A1 (en) Information processing system and control method
CN106657195B (zh) 任务处理方法和中继设备
CN108200151A (zh) 一种分布式存储系统中ISCSI Target负载均衡方法和装置
CN115220640A (zh) 用于处理数据的方法、电子设备和计算机程序产品
CN105830032A (zh) 管理服务器成员资格
CN111045778B (zh) 一种虚拟机的创建方法、装置、服务器及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210812

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220222

R151 Written notification of patent or utility model registration

Ref document number: 7030412

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151