JP2006189964A - メッセージ配布方法、待機系ノード装置およびプログラム - Google Patents

メッセージ配布方法、待機系ノード装置およびプログラム Download PDF

Info

Publication number
JP2006189964A
JP2006189964A JP2004382030A JP2004382030A JP2006189964A JP 2006189964 A JP2006189964 A JP 2006189964A JP 2004382030 A JP2004382030 A JP 2004382030A JP 2004382030 A JP2004382030 A JP 2004382030A JP 2006189964 A JP2006189964 A JP 2006189964A
Authority
JP
Japan
Prior art keywords
queue
executing
node
node device
message
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
JP2004382030A
Other languages
English (en)
Other versions
JP4392343B2 (ja
Inventor
Takashi Yoshimoto
宇 吉本
Hironari Tsuzuki
裕也 都築
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004382030A priority Critical patent/JP4392343B2/ja
Priority to US11/316,990 priority patent/US20060159012A1/en
Publication of JP2006189964A publication Critical patent/JP2006189964A/ja
Application granted granted Critical
Publication of JP4392343B2 publication Critical patent/JP4392343B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】 スケーラビリティを確保すると共に障害発生時の可用性についての問題を解決し、システム構築コストおよび待機系の管理コストの低減をはかる。
【解決手段】 クラスタ構成のメッセージキューイングシステムにおいて、実行系Aのコンピュータ1に障害が発生したときに、待機系ノード4は、ディスク装置5に記憶されているキューノード対応情報51を参照することにより、実行系Bと実行系Cのコンピュータ2,3には実行系Aのコンピュータ1が使用するキューと同一名称のキューがあることを認識する。そして、障害発生コンピュータ1のキューに滞留しているメッセージを、実行系Bと実行系Cのコンピュータ2,3へ配布し、それらのコンピュータに配布したメッセージの処理を継続させる。以上の障害の回復処理は、1つの待機系ノード4で複数の実行系ノードの障害回復を行うことができるので、スケーラビリティに優れている。
【選択図】 図1

Description

本発明は、クラスタ構成のメッセージキューイングシステムおけるメッセージ配布技術に関する。
メッセージキューイングシステムは、送信側と受信側の双方のノードが稼動していなくても、自ノードが稼動していれば、キューを介することによって相手側の稼働状態に依存することなく送信処理または受信処理を行うことができる。また、通信障害やシステムダウンが発生しても、送受信されるメッセージは、ディスク装置等の物理実体を有するキューに格納されているので、そのメッセージが消失することはない。従って、メッセージキューイングシステムは、信頼性が高く、かつ、拡張性と柔軟性に優れたシステムであるといえる。
また、複数のノード装置がネットワークを介してディスク装置を共有するクラスタ構成のメッセージキューイングシステムにおいては、同一のアプリケーションプログラムを複数のノード装置で同時に並列処理させることができる。従って、次々に要求されるトランザクション処理を複数のノード装置で負荷分散して実行することができる。また、いずれかのノード装置に障害が発生した場合にも、システム全体の稼働が停止することはない。可用性に優れたシステムである。
ところで、メッセージキューイングシステムの負荷分散の方式には、大きく分けて2通りのタイプがある。一つは、ノード装置ごとにキューを割付けるタイプ(例えば、特許文献1参照)、他の一つは、キューをノード装置間で共用するタイプ(例えば、特許文献2参照)である。さらには、クラスタ構成のメッセージキューイングシステムにおいて、一部のノード装置で障害が発生した場合、障害が発生したノードが使用していたキューを他の正常なノード装置が引き継いで処理を継続するタイプもある(例えば、特許文献3参照)。
米国特許6711606号公報(ABSTRACT、図1) 米国特許6023722号公報(ABSTRACT、図1) 特開2004−32224号公報(段落0006〜0008、図1〜図6)
特許文献1に開示された技術によれば、特許文献2に開示された技術に比べてスケーラビリティに関してキューアクセスの競合がない分優位である。しかしながら、可用性について問題があり、障害発生時にメッセージが滞留してしまうという欠点がある。一方、特許文献2に開示された技術では、障害発生時に他ノード装置での処理を可能にするため、同一メッセージをマルチキャストする方式を採ることによって、可用性の問題に対処している。しかしながら、特許文献2に開示された技術では、ネットワークトラフィックの増大という新たな問題が発生する。
また、特許文献3に開示されているように、ノード装置ごとに実行系ノード装置と待機系ノード装置とのクラスタ構成を採れば、障害発生時にもメッセージを滞留させることなく、メッセージを回復することができるが、システム構築コストが増大するとともに、待機系のノード装置の管理コストが高くなる。
以上の従来技術の問題点に鑑み、本発明は、スケーラビリティを確保するとともに障害発生時の可用性についての問題を解決し、かつ、システム構築コストおよび待機系の管理コストの低減をはかった、クラスタ構成のメッセージキューイングシステムにおけるメッセージ配布方法、待機系ノード装置およびプログラムを提供することを目的とする。
前記課題を解決するため、本発明は、ユーザプログラムを実行する複数の実行系ノード装置と、前記実行系ノード装置が使用するキューに滞留したメッセージの配布を制御する待機系ノード装置と、前記複数の実行系ノード装置および前記待機系ノード装置に接続され、前記複数の実行系ノード装置がそれぞれ使用するキューとそのキューを使用するノード装置とを対応付けるキューノード対応情報を記憶した記憶装置とを含んで構成されたクラスタ構成のメッセージキューイングシステムにおけるメッセージ配布方法であって、前記待機系ノード装置は、前記記憶装置に記憶されている前記キューノード対応情報を参照して、前記複数の実行系ノード装置のうちの1の実行系ノード装置が使用するキューと同一名称のキューを使用する他の実行系ノード装置の一覧を取得する第1のステップと、前記1の実行系ノード装置が使用するキューに滞留している滞留メッセージを、前記他の実行系ノード装置の一覧に含まれる実行系ノード装置が使用するキューに配布する第2のステップとを実行することを特徴とするメッセージ配布方法である。また、本発明は、以上のメッセージ配布方法を実行する待機系ノード装置であり、プログラムである。
すなわち、本発明においては、ある実行系ノード装置に障害が発生した場合には、そのノード装置が使用するキューに滞留したメッセージを、他の実行系のノード装置が使用するキューに配布することができ、そのメッセージに係るユーザプログラムの処理をメッセージ配布先のノード装置に継続して実行させることができる。従って、障害発生時の可用性が確保されていることになる。また、本発明においては、1つの待機系ノード装置が、任意の複数の実行系ノード装置で構成されるクラスタ構成のメッセージキューイングシステムにおいて生じる実行系ノード装置の障害の障害回復のためのメッセージ配布処理を行うことができる。つまり、スケーラビリティが確保されており、そのシステム構築コストおよび待機系ノード装置の管理コストは低減されているといえる。
本発明によれば、クラスタ構成のメッセージキューイングシステムにおける障害回復時の処理において、可用性とスケーラビリティが確保され、かつ、システム構築コストおよび待機系ノード装置の管理コストは低減される。
以下、図面を参照して本発明の実施形態について詳しく説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態に係るクラスタ構成のメッセージキューイングシステムの一例を示した図である。図1に示すように、本発明の実施形態に係るクラスタ構成のメッセージキューイングシステムは、実行系Aのコンピュータ1と、実行系Bのコンピュータ2と、実行系Cのコンピュータ3と、待機系のコンピュータ4と、ディスク装置5とがネットワーク6によって接続されて構成される。
なお、これらのコンピュータ1〜4は、ネットワーク6におけるいわゆるノード装置であり、以下、本明細書および図面においては、単に「ノード」と、適宜、略称する。また、「実行系#のコンピュータ」を単に「実行系#」と、また、「待機系のコンピュータ」を単に「待機系」と、適宜、略称する。ここで、#は、A,BまたはCである。
図1において、実行系Aのコンピュータ1は、CPU(Central Processing Unit)11と、メモリ12とから構成され、メモリ12には、クラスタプログラム121、キューマネージャ122、ユーザプログラム123が格納されている。なお、メモリ12は、通常は、主メモリ部分が半導体メモリで構成され、補助メモリ部分がハードディスク記憶装置によって構成される。
ここで、クラスタプログラム121は、待機系のコンピュータ4におけるクラスタプログラムとの間で通信を行ない、障害発生の監視を行うとともに、障害発生時には系切り替えを要求する機能などを持つ。また、キューマネージャ122は、使用するキューを管理するとともに、ユーザプログラム123がAPI(アプリケーション・プログラム・インタフェース)を介して操作するキューに対し、メッセージの登録および読み出しを行う。
なお、「キュー」とは、メッセージを保存するための論理的な待ち行列を構成する器であり、通常はディスク装置5上のファイルとして実現される。ユーザプログラム123は、メッセージ送信時に、宛先キューを指定してメッセージ登録APIを発行することによって、メッセージを送信側ノードの転送用キューに格納する。すると、メッセージキューイングシステムの転送機能によって、転送用キューに格納されたメッセージは、例えば、FIFO(先入れ・先出し)アルゴリズムに従って取り出され、所定の宛先キューへ送信され、宛先キューに登録される。
また、図1では、キューは、キュー51、52として2つしか示されていないが、各実行系のコンピュータが少なくとも1つのキュー、通常は、複数のキューを使用するので、実行系のコンピュータの数よりは多いキューがあることになる。
また、ユーザプログラム123は、受信時には、メッセージ読み出しAPIを発行することによって、宛先キューに格納されているメッセージを、例えば、キューに最も長く格納されている順番に取り出す。なお、この取り出しにおいては特定のメッセージを優先的に取り出すことも可能である。
次に、実行系Bのコンピュータ2は、CPU21とメモリ22から構成され、メモリ22には、クラスタプログラム221、キューマネージャ222、ユーザプログラム223が格納されている。クラスタプログラム221、キューマネージャ222、ユーザプログラム223のそれぞれの機能は、実行系Aのコンピュータ1におけるクラスタプログラム121、キューマネージャ122、ユーザプログラム123のそれぞれの機能と同じである。
さらに、実行系Cのコンピュータ3は、CPU31とメモリ32から構成され、メモリ32には、クラスタプログラム321、キューマネージャ322、ユーザプログラム323が格納されている。クラスタプログラム321、キューマネージャ322、ユーザプログラム323のそれぞれの機能は、実行系Aのコンピュータ1におけるクラスタプログラム121、キューマネージャ122、ユーザプログラム123のそれぞれの機能と同じである。
一方、待機系のコンピュータ4は、CPU41とメモリ42から構成され、メモリ42には、クラスタプログラム421、キューマネージャ422、メッセージ配布プログラム423がそれぞれ格納されている。
ここで、メッセージ配布プログラム423は、障害発生ノードが使用していたキューにおける滞留メッセージの情報を取得し、その滞留メッセージの情報と、後記するキューノード対応情報とに基づき、滞留メッセージの配布先ノードを選択する。そして、選択されたノードに対して、その滞留メッセージを配布し、キューノード対応情報におけるキューの状態情報を更新する。
なお、クラスタプログラム421、キューマネージャ422のそれぞれの機能は、実行系Aのコンピュータ1におけるクラスタプログラム121、キューマネージャ122のそれぞれの機能と同じである。
図1において、ディスク装置5は、クラスタ構成の各ノード(実行系A、B、Cの各コンピュータ1,2,3、待機系のコンピュータ4)によってネットワーク6を介して共通に使用される。システム共通領域50には、キューノード対応情報51、キュー順序情報52の領域が割り付けられ、さらに、各ノードに対応するようにキュー53、54の領域が割付けられている。
図2(a)は、キューノード対応情報のデータ構造の一例を示した図、図2(b)は、キュー順序情報のデータ構造の一例を示した図である。
キューノード対応情報51は、キューマネージャごとにそのキューマネージャが使用するキューを対応付けた情報であり、図2(a)に示すように、キューマネージャ名、アドレス、キュー名、状態などのフィールドによって構成される。なお、ここでのアドレスとは、キューマネージャの格納場所を示す物理アドレスであり、状態とは、キューの稼働状況を示す状態である。ちなみに、実行系Aのコンピュータ1に障害が発生し、その滞留メッセージが他の実行系コンピュータに引き継がれると、実行系Aのコンピュータ1のキューマネージャ1(122)が使用していたキューの稼働状態は、稼働中から停止中に変更される。
また、キュー順序情報52は、メッセージ処理に順序性がある場合に、ユーザによって定義される情報である。例えば、図2(b)では、Queue1のメッセージをユーザプログラムが取り出してQueue2に格納し、Queue2のメッセージをユーザプログラムが取り出してQueue7に格納する場合に、Queue1でのメッセージの順序性をQueue2、Queue7でも保証する必要があることを示している。なお、この場合、順序性を保ちつつメッセージを回復するには、Queue7→Queue2→Queue1の順で回復させる必要がある。
図3は、本実施形態のメッセージキューイングシステムにおける障害回復処理の流れの例を示した図である。すなわち、図3は、実行系Aのコンピュータ1において障害が発生したとき、その実行系Aのコンピュータ1が使用していたキューに滞留しているメッセージを障害が発生していない実行系Bのコンピュータ(ここでは、実行系Bのコンピュータ2および実行系Cのコンピュータ3)のキューマネージャへ配布する処理の例を示したものである。以下、その処理の内容について説明する。なお、滞留メッセージをキューマネージャに配布するとは、そのキューマネージャが管理するキュー、つまり、そのキューマネージャが動作しているコンピュータ(ノード)が使用するキューに滞留メッセージを配布することを意味する(以下、本明細書において同じ)。
図3には、待機系コンピュータ4のメッセージ配布プログラム423、待機系コンピュータ4のキューマネージャ422、待機系コンピュータ4のクラスタプログラム421、実行系Aのコンピュータ1のクラスタプログラム121、実行系Bのコンピュータ2のキューマネージャ222、実行系Cのコンピュータ3のキューマネージャ322およびシステム共通領域50におけるキューノード対応情報51のそれぞれの動作が示されている。
待機系コンピュータ4と実行系#のコンピュータ1,2,3(ここで、#=A,B,C)との間には、通常、障害情報通知のための専用線(図1において図示せず)が設けられており、待機系コンピュータ4は、その通信線を介して実行系#のコンピュータ1,2,3の障害を検知することができる。そこで、例えば、実行系Aのコンピュータ1において障害が発生し、その障害をクラスタプログラム121が検知した場合には、クラスタプログラム121は、待機系コンピュータ4のクラスタプログラム421に対して系切り替えを要求する(ステップS31)。
その要求を受けた待機系コンピュータ4のクラスタプログラム421は、自身のキューマネージャ422を起動する(ステップS32)。すると、待機系コンピュータ4のキューマネージャ422は、障害が発生した実行系Aのコンピュータ1に対し割付けられたキュー53,54を参照することによって、未決着(仕掛り中)トランザクションの有無を確認する。そして、未決着トランザクションがあった場合には、未決着トランザクションの解決のための処理を実行し(ステップS33)、メッセージ配布プログラム423に対してメッセージ配布要求を発行する(ステップS34)。
次に、メッセージ配布要求を受信した待機系コンピュータ4のメッセージ配布プログラム423は、障害発生ノード(本例の場合は、実行系Aのコンピュータ1)のキューに滞留メッセージを持つキューが存在するか否かを判定する(ステップS35)。その判定の結果、滞留メッセージを持つキューが存在した場合には(ステップS35でYes)、そのキューの一つを取り出し、ディスク装置5上のキューノード対応情報51を参照して、そのキューと同一名称のキューを持つキューマネージャ一覧を取得する(ステップS36、S37)。
続いて、メッセージ配布プログラム423は、そのキューマネージャ一覧に基づき、滞留しているメッセージを他の実行系のコンピュータへ引き継がせるために、メッセージ引き継ぎ処理を実行する(ステップS38)。このメッセージ引き継ぎ処理の具体的な処理手順については、次に、図4を用いて詳細に説明する。
図4は、メッセージ引き継ぎ処理の具体的な処理手順を示したフローチャートである。図4において、メッセージ配布プログラム423は、キューマネージャ一覧を参照して、まず、先頭のキューマネージャを選択する(ステップS371)。そして、当該キューに滞留メッセージが存在するか否かをチェックする(ステップS372)。ここで、滞留メッセージが存在する場合には(ステップS372でYes)、滞留メッセージの一つを取り出し、取り出した滞留メッセージをその当該キューマネージャに配布する(ステップS373)。
続いて、キューマネージャのポインタを進めて(ステップS374)、次に位置するキューマネージャを選択し、ステップS372〜S374の処理を、滞留メッセージがなくなる(ステップS372でNo)まで繰り返す。なお、ステップS374において、キューマネージャのポインタが末尾に達していた場合には、ポインタを進めるのではなく、先頭に戻すものとする。
説明を図3に戻す。メッセージ配布プログラム423は、以上のようにして、障害発生ノードのキューの1つについて滞留していたメッセージを他の実行系コンピュータへ配布すると(ステップS39)、そのキューについてキュー状態の変更を行う(ステップS40)。具体的には、システム共通領域50のキューノード対応情報51を参照して、該当キューマネージャ上のそのキューのキュー状態を「停止中」に設定する(ステップS41)。
続いて、ステップS35へ戻り、滞留メッセージを持つキューが存在しなくなるまで、ステップS36以下の処理を再度実行し、存在しなくなった場合には(ステップS35でNo)、待機系コンピュータ4のキューマネージャ422に制御を移し、キューマネージャ422は、終了処理を実行し(ステップS42)、クラスタプログラム421は、再度障害待機の状態となり(ステップS43)、障害回復処理を終える。
なお、本実施形態においては、障害が発生した実行系Aのコンピュータ1のクラスタプログラム121から待機系コンピュータ4のクラスタプログラム421へ系切り替えを要求しているが(ステップS31)、その要求がない場合であっても、待機系コンピュータ4のクラスタプログラム421自身が、障害情報通知のための専用線を介して、実行系Aのコンピュータ1の障害を検知したときには、ステップS32以下の処理を行うようにしてもよい。
以上のように、本実施形態においては、待機系のノードは、あるノードに障害が発生したときには、その障害ノードが使用していたキューに滞留したメッセージを他の障害のないノードへ配布し、配布先のノードでその滞留したメッセージの処理を継続して実行することができる。また、待機系のノードは、以上の障害回復の処理が終了した後は、再び、障害待機の状態となる。そのため、本実施形態のメッセージキューイングシステムにおいては、1つの待機系のノードによりN個の実行系のノードにおける障害回復が実現されるとともに、そのNは2以上の任意の整数であればよい。従って、スケーラビリティと可用性を確保することができる上に、システムの構築コストも低減することができる。
<第2の実施形態>
次に、第2の実施形態として、クラスタ構成のメッセージキューイングシステムにおけるメッセージ処理に順序性がある場合に障害回復の処理を行う例を、図5および図6に示す。ここで、図5は、クラスタ構成のメッセージキューイングシステムにおいて、メッセージ処理に順序性がある場合の障害回復処理の流れの例を示した図である。また、図6は、メッセージ処理に順序性がある場合のメッセージ引継ぎ処理の具体的な処理手順を示した図である。
すなわち、図5および図6は、実行系Aのコンピュータ1において障害が発生したとき、その実行系Aのコンピュータ1が使用していたキューに滞留しているメッセージを、ディスク装置51に記憶されているキュー順序情報52に基づくキューの順序に従い、障害が発生していない実行系のコンピュータの1つ(ここでは、実行系Bのコンピュータ2)のキューマネージャへ配布する処理の例を示したものである。以下、その処理の内容について説明する。なお、本実施形態におけるクラスタ構成のメッセージキューイングシステムの構成は、第1の実施形態において図1および図2に示した構成とほぼ同じであるので、その説明を省略する。また、図5については、図3に示した障害回復処理との相違部分についてのみ説明する。
図5において、ステップS51〜S57の処理は、図3のステップS31〜S37までの処理と同じである。そのステップS57までに、待機系コンピュータ4のメッセージ配布プログラム423は、ディスク装置5上のキューノード対応情報51から、障害発生ノードが持つキューと同一名称のキューを持つキューマネージャ一覧を取得する。そして、図2(b)に一例が示されるキュー順序情報52を取得し(ステップS58)、さらに、実行系B、Cのコンピュータ2、3のキューマネージャ222、322の滞留メッセージ数を取得する(ステップS59)。次に、メッセージ配布プログラム423は、滞留メッセージ数が最小のキューマネージャを選択してそのキューマネージャに全てのメッセージを配布するための引き継ぎ処理を実行する(ステップS60)。ステップS60における詳細な処理の内容は、図6に示されている。
図6において、待機系コンピュータ4のメッセージ配布プログラム423は、取得した滞留メッセージ数に応じて、滞留メッセージ数が最小のキューマネージャを選択し(ステップS601)、先に取得済みのキュー順序情報に基づくキューが存在するか否かをチェックする(ステップS602)。そして、そのようなキューが存在する場合には(ステップS602でYes)、キュー順序情報52のキュー一覧の先頭のキューを選択する(ステップS603)。続いて、メッセージ配布プログラム423は、そのキューに存在する滞留メッセージをステップS601で選択されたキューマネージャに配布し(ステップSS604)、キューのポインタ(ステップS603でキューの先頭に代え、用いられるポインタ)を1つ進め(ステップSS605)、ステップS602へ戻る。そして、キュー順序情報に基づくキューについて未処理のキューが存在しなくなる(ステップS602でNo)まで、ステップS603以下の処理を繰り返す。
再び図5において、メッセージ配布(ステップS61)より後の処理(ステップS62〜S65)は、図3に示した処理(ステップS40〜S43)と同じであるが、本例の場合には、滞留メッセージはすべてのキューについて配布済みなので、ステップS55へ戻る必要はない。
以上、第2の実施形態によれば、メッセージに順序性がある場合についても、障害発生時に、その障害ノードが使用していたキューに滞留したメッセージを他の障害のないノードが使用するキューへ配布し、配布先のノードでその滞留したメッセージの処理を継続して実行することができる。
<第3の実施形態>
次に、第3の実施形態として、クラスタ構成のメッセージキューイングシステムにおいて、メッセージ配布先ノードの負荷分散を考慮した障害回復の処理を行う例を、図7および図8に示す。ここで、図7は、クラスタ構成のメッセージキューイングシステムにおいて、メッセージ配布先ノードの負荷分散を考慮した障害回復処理の流れの例を示した図である。また、図8は、負荷分散処理におけるメッセージ引継ぎ処理の具体的な処理手順を示した図である。
すなわち、図7および図8は、実行系Aのコンピュータ1において障害が発生したとき、その実行系Aのコンピュータ1が使用していたキューに滞留しているメッセージを、障害が発生していない複数の実行系のコンピュータ(ここでは、実行系Bのコンピュータ2および実行系Cのコンピュータ3)のキューマネージャへ、それらのキューマネージャが使用するキューに滞留するメッセージの数が平均化するように配布する処理の例を示したものである。以下、その処理の内容について説明する。なお、本実施形態におけるクラスタ構成のメッセージキューイングシステムの構成は、第1の実施形態において図1および図2に示した構成とほぼ同じであるので、その説明を省略する。
図7において、例えば、実行系Aのコンピュータ1において障害が発生し、その障害をクラスタプログラム121が検知した場合には、クラスタプログラム121は、待機系コンピュータ4のクラスタプログラム421に対して系の切り替えを要求すると同時に、負荷分散を要求する(ステップS71)。すると、待機系コンピュータ4のクラスタプログラム421は、待機系コンピュータ4のキューマネージャ422を起動し(ステップS72)、キューマネージャ422は、待機系コンピュータ4のメッセージ配布プログラム423に対して、メッセージの配布を要求する(ステップS73)。
以下、メッセージ配布プログラム423における処理は、図3とほぼ同じであるが、負荷を平均的に分散させる必要性により、図3の処理に対して、他の実行系BおよびCのキューマネージャ222,322から滞留メッセージ数を取得する処理(ステップS77)が追加されている。そして、その取得した滞留メッセージ数に従い、各実行系のコンピュータ1、2、3の負荷がバランスするようにメッセージの引き継ぎ処理を行っている(ステップS78)。ステップS78における詳細な処理の内容は、図8に示されている。
図8において、待機系コンピュータ4のメッセージ配布プログラム423は、まず、取得した滞留メッセージ数に基づき、負荷分散要求を発した実行系を含めて実行系コンピュータの平均滞留メッセージ数を計算する(ステップS781)。そして、キューマネージャ一覧に配布すべきキューマネージャが存在するか否かをチェックし(ステップS782)、配布すべきキューマネージャが存在した場合には(ステップS782でYes)、キューマネージャ一覧から先頭のキューマネージャを選択する(ステップS783)。続いて、先に計算済みの平均滞留メッセージ数から滞留メッセージ数を差し引いた個数のメッセージを引き継ぎメッセージとして、選択したキューマネージャへ配布する(ステップS784)。そして、キューマネージャのポインタ(ステップS783でキューマネージャ一覧の先頭に代わり、その位置を指し示す)を進めて(ステップS785)、ステップS782へ戻る。そして、キューマネージャ一覧から配布すべきキューマネージャがなくなったときに(ステップS782でNo)、処理を終了する。
以上、第3の実施形態によれば、障害発生時に、障害が発生した実行系ノードのキューに滞留しているメッセージを、配布先の実行系ノードのキューに滞留するメッセージ数が平均化するように分散させて配布することができる。
<第4の実施形態>
次に、第4の実施形態として、クラスタ構成のメッセージキューイングシステムに新たなノードを追加するスケールアウト処理の例を、図9および図10に示す。ここで、図9は、クラスタ構成のメッセージキューイングシステムにおけるスケールアウト処理の流れの例を示した図である。また、図10は、スケールアウト処理におけるメッセージ引き継ぎ処理の詳細を示した図である。
図9および図10は、稼動中のメッセージキューイングシステムに新たにコンピュータが追加される(スケールアウトされる)とき、稼動中のコンピュータ(ここでは、実行系Aのコンピュータ1および実行系Bのコンピュータ2)のキューマネージャが使用しているキューに滞留しているメッセージをスケールアウトされたコンピュータのキューマネージャへ配布する処理の例を示したものである。以下、その処理の内容について説明する。なお、本実施形態におけるクラスタ構成のメッセージキューイングシステムの構成は、第1の実施形態において図1および図2に示した構成とほぼ同じであるので、その説明を省略する。
スケールアウト処理においては、実行系ノードに滞留しているメッセージをスケールアウトにより追加されるノードに配布する。図9に示すように、スケールアウトノードのキューマネージャは、まず、待機系コンピュータ4のメッセージ配布プログラム423に対してメッセージの分散を要求する(ステップS91)。以下、メッセージ配布プログラム423は、図3に示した処理と同様な処理を行うが、メッセージの引き継ぎ処理(ステップS95)は、図10に示すように異なっている。なお、メッセージ配布プログラム423は、メッセージの引継ぎ処理を実行するときに、実行系のキューマネージャ122,222から滞留メッセージ数を取得する(ステップS96)。
図10において、待機系コンピュータ4のメッセージ配布プログラム423は、取得した滞留メッセージ数に基づき、追加するノードを含め平均滞留メッセージ数を計算する(ステップS951)。そして、キューマネージャ一覧に配布元となるキューマネージャが存在するか否かをチェックし(ステップS952)、配布元となるキューマネージャが存在する場合には(ステップS952でYes)、キューマネージャ一覧から先頭のキューマネージャを選択する(ステップS953)。そして、その選択したキューマネージャから、先にステップS96で取得した滞留メッセージ数からステップS951で計算した平均滞留メッセージ数を差し引いた個数のメッセージを取得し(ステップS954)、その取得したメッセージをスケールアウトしたキューマネージャに配布する(ステップS955)。そして、キューマネージャのポインタ(ステップS953でキューマネージャ一覧の先頭に代わり、その位置を指し示す)を進めて(ステップS956)、S952へ戻る。そして、キューマネージャ一覧から配布元のキューマネージャがなくなったときに(ステップS952でNo)、処理を終了する。
なお、図9においては、メッセージ配布プログラム423は、メッセージ配布後(ステップS98)、キュー状態の変更を行う(ステップS99)。具体的には、システム共通領域50のキューノード対応情報51を参照して、スケールアウトするキューマネージャ上のキュー状態を「稼動中」に設定する(ステップS100)。
以上、第4の実施形態によれば、新たにスケールアウトするノードを追加する場合にも、実行系ノードが使用しているキューに滞留しているメッセージの一部を、各キューの滞留メッセージ数が平均化するよう取り出し、その取り出したメッセージを新たに追加されたノードが使用するキューに配布することができる。
本発明の第1の実施形態に係るクラスタ構成のメッセージキューイングシステムの一例を示した図である。 (a)は、本発明の第1の実施形態に係るキューノード対応情報のデータ構造の一例を示した図、(b)は、本発明の第1の実施形態に係るキュー順序情報のデータ構造の一例を示した図である。 本発明の第1の実施形態に係るメッセージキューイングシステムにおける障害回復処理の流れの例を示した図である。 本発明の第1の実施形態に係るメッセージ引き継ぎ処理の具体的な処理手順を示したフローチャートである。 本発明の第2の実施形態に係るクラスタ構成のメッセージキューイングシステムにおいて、メッセージ処理に順序性がある場合の障害回復処理の流れの例を示した図である。 本発明の第2の実施形態に係るメッセージ処理に順序性がある場合のメッセージ引き継ぎ処理の具体的な処理手順を示した図である。 本発明の第3の実施形態に係るクラスタ構成のメッセージキューイングシステムにおいて、メッセージ配布先ノードの負荷分散を考慮した障害回復処理の流れの例を示した図である。 本発明の第3の実施形態に係る負荷分散処理におけるメッセージ引き継ぎ処理の具体的な処理手順を示した図である。 本発明の第4の実施形態に係るクラスタ構成のメッセージキューイングシステムにおけるスケールアウト処理の流れの例を示した図である。 本発明の第4の実施形態に係るスケールアウト処理におけるメッセージ引継ぎ処理の具体的な処理手順を示した図である。
符号の説明
1,2,3 実行系コンピュータA,B,C
4 待機系コンピュータ
5 ディスク装置
6 ネットワーク
11,21,31,41 CPU
12,22,32,42 メモリ
50 システム共通領域
51 キューノード対応情報
52 キュー順序情報
53,54 キュー
121,221,321,421 クラスタプログラム
122,222,322,422 キューマネージャ
123,223,323 ユーザプログラム
423 メッセージ配布プログラム

Claims (13)

  1. 受け付けた複数のメッセージをキューに格納し、前記受け付けたメッセージに基づきユーザプログラムを実行する複数の実行系ノード装置と、
    待機系ノード装置と、
    前記複数の実行系ノード装置および前記待機系ノード装置からアクセス可能であり、前記複数の実行系ノード装置がそれぞれ使用するキューを記憶した記憶装置と
    を含んで構成されたクラスタ構成のコンピュータシステムにおけるメッセージ配布方法であって、
    前記待機系ノード装置は、
    前記実行系ノード装置のいずれかの実行系ノード装置に障害が発生したことを認知したときに、前記障害が発生した実行系ノード装置が使用するキューに滞留している滞留メッセージを、障害が発生していない実行系ノード装置が使用するキューに配布する
    ことを特徴とするメッセージ配布方法。
  2. 受け付けた複数のメッセージをキューに格納し、前記受け付けたメッセージに基づきユーザプログラムを実行する複数の実行系ノード装置と、
    待機系ノード装置と、
    前記複数の実行系ノード装置および前記待機系ノード装置からアクセス可能であり、前記複数の実行系ノード装置がそれぞれ使用するキューとそのキューを使用するノード装置とを対応付けるキューノード対応情報を記憶した記憶装置と
    を含んで構成されたクラスタ構成のコンピュータシステムにおけるメッセージ配布方法であって、
    前記待機系ノード装置は、
    前記実行系ノード装置のいずれかの実行系ノード装置に障害が発生したことを認知したときに、前記記憶装置に記憶されている前記キューノード対応情報を参照して、前記複数の実行系ノード装置のうちの1の実行系ノード装置が使用するキューと同一名称のキューを使用する他の実行系ノード装置の一覧を取得する第1のステップと、
    前記1の実行系ノード装置が使用するキューに滞留している滞留メッセージを、前記他の実行系ノード装置の一覧に含まれる実行系ノード装置が使用するキューに配布する第2のステップと
    を実行することを特徴とするメッセージ配布方法。
  3. 前記待機系ノード装置は、
    前記第1のステップを実行後に、前記他の実行系ノード装置の一覧に含まれる実行系ノード装置が使用するキューを参照してその滞留メッセージ数を取得し、前記第2のステップでは、前記取得した滞留メッセージ数に基づき、前記他の実行系ノード装置の一覧に含まれる実行系ノード装置が使用するキューの滞留メッセージ数が平均化されるように、前記滞留メッセージを配布すること
    を特徴とする請求項2に記載のメッセージ配布方法。
  4. 前記待機系ノード装置は、
    前記第1のステップを実行後に、前記記憶装置が記憶している、メッセージの処理順序を示したキュー順序情報を取得し、前記第2のステップでは、前記他の実行系ノード装置の一覧に含まれる実行系ノード装置の1つが使用するキューに、前記取得したキュー順序情報に基づく順序で前記滞留メッセージを配布すること
    を特徴とする請求項2に記載のメッセージ配布方法。
  5. 受け付けた複数のメッセージをキューに格納し、前記受け付けたメッセージに基づきユーザプログラムを実行する複数の実行系ノード装置と、
    待機系ノード装置と、
    前記複数の実行系ノード装置および前記待機系ノード装置からアクセス可能であり、前記複数の実行系ノード装置がそれぞれ使用するキューとそのキューを使用するノード装置とを対応付けるキューノード対応情報を記憶した記憶装置と
    を含んで構成されたクラスタ構成のコンピュータシステムにおけるメッセージ配布方法であって、
    前記待機系ノード装置は、
    前記メッセージキューイングシステムに追加された実行系ノード装置からメッセージ配布要求を受けたときに、前記記憶装置に記憶されている前記キューノード対応情報を参照して、前記追加された実行系ノード装置が使用するキューと同一名称のキューを使用する他の実行系ノード装置の一覧を取得する第1のステップと、
    前記他の実行系ノード装置の一覧に含まれる実行系ノード装置が使用するキューに滞留している滞留メッセージを、前記追加された実行系ノード装置が使用するキューに配布する第2のステップと
    を実行することを特徴とするメッセージ配布方法。
  6. 前記待機系ノード装置は、
    前記第1のステップを実行後に、前記他の実行系ノード装置の一覧に含まれる実行系ノード装置が使用するキューを参照してその滞留メッセージ数を取得し、前記第2のステップでは、前記取得した滞留メッセージ数に基づき、前記他の実行系ノード装置の一覧に含まれる実行系ノード装置が使用するキューの滞留メッセージ数および前記追加された実行系ノード装置が使用するキューのメッセージ配布後の滞留メッセージ数が平均化されるように、前記滞留メッセージを配布すること
    を特徴とする請求項5に記載のメッセージ配布方法。
  7. 受け付けた複数のメッセージをキューに格納し、前記受け付けたメッセージに基づきユーザプログラムを実行する複数の実行系ノード装置と、
    待機系ノード装置と、
    前記複数の実行系ノード装置および前記待機系ノード装置からアクセス可能であり、前記複数の実行系ノード装置がそれぞれ使用するキューを記憶した記憶装置と
    を含んで構成されたクラスタ構成のコンピュータシステムにおける待機系ノード装置であって、
    前記実行系ノード装置のいずれかの実行系ノード装置に障害が発生したことを認知したときに、前記障害が発生した実行系ノード装置が使用するキューに滞留している滞留メッセージを、障害が発生していない実行系ノード装置が使用するキューに配布する
    ことを特徴とする待機系ノード装置。
  8. 受け付けた複数のメッセージをキューに格納し、前記受け付けたメッセージに基づきユーザプログラムを実行する複数の実行系ノード装置と、
    待機系ノード装置と、
    前記複数の実行系ノード装置および前記待機系ノード装置からアクセス可能であり、前記複数の実行系ノード装置がそれぞれ使用するキューとそのキューを使用するノード装置とを対応付けるキューノード対応情報を記憶した記憶装置と
    を含んで構成されたクラスタ構成のコンピュータシステムにおける待機系ノード装置であって、
    前記実行系ノード装置のいずれかの実行系ノード装置に障害が発生したことを認知したときに、前記記憶装置に記憶されている前記キューノード対応情報を参照して、前記複数の実行系ノード装置のうちの1の実行系ノード装置が使用するキューと同一名称のキューを使用する他の実行系ノード装置の一覧を取得する第1の処理と、
    前記1の実行系ノード装置が使用するキューに滞留している滞留メッセージを、前記他の実行系ノード装置の一覧に含まれる実行系ノード装置が使用するキューに配布する第2の処理と
    を実行することを特徴とする待機系ノード装置。
  9. 前記第1の処理を実行後に、前記他の実行系ノード装置の一覧に含まれる実行系ノード装置が使用するキューを参照してその滞留メッセージ数を取得し、前記第2の処理では、前記取得した滞留メッセージ数に基づき、前記他の実行系ノード装置の一覧に含まれる実行系ノード装置が使用するキューの滞留メッセージ数が平均化されるように、前記滞留メッセージを配布すること
    を特徴とする請求項8に記載の待機系ノード装置。
  10. 前記第1の処理を実行後に、前記記憶装置が記憶している、メッセージの処理順序を示したキュー順序情報を取得し、前記第2の処理では、前記他の実行系ノード装置の一覧に含まれる実行系ノード装置の1つが使用するキューに、前記取得したキュー順序情報に基づく順序で前記滞留メッセージを配布すること
    を特徴とする請求項8に記載の待機系ノード装置。
  11. 受け付けた複数のメッセージをキューに格納し、前記受け付けたメッセージに基づきユーザプログラムを実行する複数の実行系ノード装置と、
    待機系ノード装置と、
    前記複数の実行系ノード装置および前記待機系ノード装置からアクセス可能であり、前記複数の実行系ノード装置がそれぞれ使用するキューとそのキューを使用するノード装置とを対応付けるキューノード対応情報を記憶した記憶装置と
    を含んで構成されたクラスタ構成のコンピュータシステムにおける待機系ノード装置であって、
    前記メッセージキューイングシステムに追加された実行系ノード装置からメッセージ配布要求を受けたときに、前記記憶装置に記憶されている前記キューノード対応情報を参照して、前記追加された実行系ノード装置が使用するキューと同一名称のキューを使用する他の実行系ノード装置の一覧を取得する第1の処理と、
    前記他の実行系ノード装置の一覧に含まれる実行系ノード装置が使用するキューに滞留している滞留メッセージを、前記追加された実行系ノード装置が使用するキューに配布する第2の処理と
    を実行することを特徴とする待機系ノード装置。
  12. 前記第1の処理を実行後に、前記他の実行系ノード装置の一覧に含まれる実行系ノード装置が使用するキューを参照してその滞留メッセージ数を取得し、前記第2の処理では、前記取得した滞留メッセージ数に基づき、前記他の実行系ノード装置の一覧に含まれる実行系ノード装置が使用するキューの滞留メッセージ数および前記追加された実行系ノード装置が使用するキューのメッセージ配布後の滞留メッセージ数が平均化されるように、前記滞留メッセージを配布すること
    を特徴とする請求項11に記載の待機系ノード装置。
  13. 請求項1ないし請求項6のいずれかの一項に記載のメッセージ配布方法をコンピュータに実行させるためのプログラム。
JP2004382030A 2004-12-28 2004-12-28 メッセージ配布方法、待機系ノード装置およびプログラム Expired - Fee Related JP4392343B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004382030A JP4392343B2 (ja) 2004-12-28 2004-12-28 メッセージ配布方法、待機系ノード装置およびプログラム
US11/316,990 US20060159012A1 (en) 2004-12-28 2005-12-27 Method and system for managing messages with highly available data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004382030A JP4392343B2 (ja) 2004-12-28 2004-12-28 メッセージ配布方法、待機系ノード装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2006189964A true JP2006189964A (ja) 2006-07-20
JP4392343B2 JP4392343B2 (ja) 2009-12-24

Family

ID=36683751

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004382030A Expired - Fee Related JP4392343B2 (ja) 2004-12-28 2004-12-28 メッセージ配布方法、待機系ノード装置およびプログラム

Country Status (2)

Country Link
US (1) US20060159012A1 (ja)
JP (1) JP4392343B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033398A (ja) * 2008-07-30 2010-02-12 Internatl Business Mach Corp <Ibm> トランザクションを処理する本番システムと該本番システムのバックアップ・システムである代行システムとを含む本番−代行システム
JP2010526358A (ja) * 2007-04-13 2010-07-29 マイクロソフト コーポレーション 拡張可能且つプログラム可能なマルチテナントサービスアーキテクチャー
JP2021157345A (ja) * 2020-03-25 2021-10-07 京セラドキュメントソリューションズ株式会社 データ連携システムおよびapiプラットフォーム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8789013B1 (en) 2006-08-28 2014-07-22 Rockwell Automation Technologies, Inc. Ordered execution of events in a data-driven architecture
US8289842B2 (en) * 2010-01-04 2012-10-16 International Business Machines Corporation Bridging infrastructure for message flows
JP2022021026A (ja) * 2020-07-21 2022-02-02 キオクシア株式会社 メモリシステムおよびコマンドをフェッチする方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2514208B2 (ja) * 1987-07-15 1996-07-10 富士通株式会社 ホットスタンドバイメモリ−コピ−方式
GB2320112B (en) * 1996-12-07 2001-07-25 Ibm High-availability computer server system
IL130029A (en) * 1998-06-17 2003-01-12 Ibm Method of increasing availability in clustered application servers
JP4315016B2 (ja) * 2004-02-24 2009-08-19 株式会社日立製作所 コンピュータシステムの系切替方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010526358A (ja) * 2007-04-13 2010-07-29 マイクロソフト コーポレーション 拡張可能且つプログラム可能なマルチテナントサービスアーキテクチャー
JP2014132462A (ja) * 2007-04-13 2014-07-17 Microsoft Corp 拡張可能且つプログラム可能なマルチテナントサービスアーキテクチャー
JP2010033398A (ja) * 2008-07-30 2010-02-12 Internatl Business Mach Corp <Ibm> トランザクションを処理する本番システムと該本番システムのバックアップ・システムである代行システムとを含む本番−代行システム
JP2021157345A (ja) * 2020-03-25 2021-10-07 京セラドキュメントソリューションズ株式会社 データ連携システムおよびapiプラットフォーム
JP7473870B2 (ja) 2020-03-25 2024-04-24 京セラドキュメントソリューションズ株式会社 データ連携システムおよびapiプラットフォーム

Also Published As

Publication number Publication date
US20060159012A1 (en) 2006-07-20
JP4392343B2 (ja) 2009-12-24

Similar Documents

Publication Publication Date Title
US9317384B2 (en) Cache data processing using cache cluster with configurable modes
JP5695324B2 (ja) スプリットブレイン状況におけるメジャーグループを決定するための方法、システム、及びコンピュータ読み取り可能な記録媒体
JP6382454B2 (ja) 分散ストレージ及びレプリケーションシステム、並びに方法
US8484354B2 (en) Distributed resource management
EP1402363B1 (en) Method for ensuring operation during node failures and network partitions in a clustered message passing server
US8429444B2 (en) Multipurpose storage system based upon a distributed hashing mechanism with transactional support and failover capability
US8612561B2 (en) Virtual network storage system, network storage device and virtual method
US20180375927A1 (en) Information processing apparatus and memory control method
CN105337780B (zh) 一种服务器节点配置方法及物理节点
JP2002526821A (ja) 複数のファイルサーバ間における永続状況情報の調整
JP6615761B2 (ja) 分散データグリッドにおいて非同期呼出をサポートするためのシステムおよび方法
US20100332532A1 (en) Distributed directory environment using clustered ldap servers
JP6405255B2 (ja) 通信システム、キュー管理サーバ、及び、通信方法
JP4612714B2 (ja) データ処理方法、クラスタシステム、及びデータ処理プログラム
JP4392343B2 (ja) メッセージ配布方法、待機系ノード装置およびプログラム
CN114130035A (zh) 一种用户匹配方法、装置、设备及存储介质
JP2008124977A (ja) メッセージ配送方法、装置及びプログラム
US7302607B2 (en) Two node virtual shared disk cluster recovery
JP2008304982A (ja) 情報の管理方法及び情報処理装置
US7051113B1 (en) Method and apparatus for computing a primary path while allowing for computing an alternate path by using a blocked list
KR102611301B1 (ko) 전화 교환 시스템의 메시지 전달 장치 및 방법
EP3534588A1 (en) Network policy exchanging method and system
JP2006244016A (ja) コンピュータシステム及びアクセスパスの管理方法
CN113254159B (zh) 有状态服务的迁移方法、装置、计算机设备及存储介质
JP2011248737A (ja) タスク引継プログラム、処理装置及びコンピュータ・システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090323

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: 20091006

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091009

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131016

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees