JPH10111859A - 複合系計算機システム - Google Patents

複合系計算機システム

Info

Publication number
JPH10111859A
JPH10111859A JP8264495A JP26449596A JPH10111859A JP H10111859 A JPH10111859 A JP H10111859A JP 8264495 A JP8264495 A JP 8264495A JP 26449596 A JP26449596 A JP 26449596A JP H10111859 A JPH10111859 A JP H10111859A
Authority
JP
Japan
Prior art keywords
computer
scenario
script
event
computers
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
JP8264495A
Other languages
English (en)
Other versions
JP3788832B2 (ja
Inventor
Shinichiro Suzuki
慎一郎 鈴木
Kotaro Endo
浩太郎 遠藤
Katsufumi Fujimoto
克文 藤本
Yoshiya Mori
良哉 森
Akisato Yamada
晃智 山田
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP26449596A priority Critical patent/JP3788832B2/ja
Priority to KR1019970048432A priority patent/KR100326100B1/ko
Priority to US08/943,764 priority patent/US6073126A/en
Publication of JPH10111859A publication Critical patent/JPH10111859A/ja
Application granted granted Critical
Publication of JP3788832B2 publication Critical patent/JP3788832B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • 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
    • 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/2028Failover techniques eliminating a faulty processor or activating a spare
    • 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/2035Error 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 without idle spare hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Devices For Executing Special Programs (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】複合系計算機システムの構成及び制御内容の定
義が容易に記述でき、記述や操作上の誤りを少なくでき
ることを主要な課題とする。 【解決手段】複合系計算機システムを構成する計算機1
00A,100Bのうちの例えば計算機100A(また
はシステムから独立の計算機)にHAシナリオコンパイ
ラ140を設け、当該システムの構成及び制御内容を抽
象的且つ統合的に記述したHAシナリオ110を読み込
んで各計算機100A,100B毎の別々の処理に分解
し、そのHAシナリオ110から各計算機100A,1
00Bで直接実行可能な形式のHAスクリプトの集合1
20を生成し、そのうちの計算機100A用のHAスク
リプト集合130Aは当該計算機100Aの、計算機1
00B用のHAスクリプト集合130Bは当該計算機1
00Bのそれぞれ特定ディレクトリに、スクリプト配布
機構150により配布される構成とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の計算機によ
り構成される複合系計算機システムに係り、特にシステ
ムの構成及び制御内容を定義して、その定義内容に従う
運用を行うのに好適な複合系計算機システムに関する。
【0002】
【従来の技術】従来、複数の計算機で構成される複合系
計算機システムの構成及び制御内容の定義は、実行可能
なスクリプト(プログラム)として、人が直接または簡
単なマクロ(macro )を介して各計算機毎に記述するの
が一般的であった。この実行可能スクリプトの具体的な
内容は、各計算機の接続関係の登録専用コマンドや各計
算機の状態取り出しコマンド、例外手続きとしてのCP
Uやディスク、ネットワーク等の障害検出時に実行させ
るべきコマンド列等である。また、例外手続きとして
は、この他に、サーバ・プロセスの別計算機への移動ま
たは待機プロセスの実行開始、データやファイル、ネッ
トワーク・アドレスの別計算機への引き継ぎ、警報出力
などの特殊入出力装置の操作などがある。
【0003】
【発明が解決しようとする課題】上記したように従来
は、複合系計算機システムの構成及び制御内容の定義
は、実行可能なスクリプトとして人が直接または簡単な
マクロを介して各計算機毎に記述したいた。
【0004】しかし、構成及び制御内容の定義には、あ
らゆる事態への配慮が必要であり、そのスクリプト記述
は一般に難しい。
【0005】また、各計算機間での不整合等、スクリプ
トの記述ミスが発生し易い。
【0006】また、例外手続きに記述ミスまたは考え違
い(意味的な不整合)があっても発見し難く、そのよう
な誤りや漏れが運用時まで引き継がれる可能性が高い。
【0007】また、障害時の手続きについて、複合系計
算機システムを構成する計算機の台数が多くなると(例
えば3台以上になると)想定すべき障害のパターン数が
多くなることから、スクリプト記述時に考え漏れを生じ
易い。このため、障害発生時それを回避するための処理
が正しく行われず、システムの異常停止という最悪の事
態を招くことが少なくない。
【0008】本発明は上記事情を考慮してなされたもの
でその目的は、システム構成及び制御内容の定義が容易
に記述でき、記述や操作上の誤りを少なくでき、しかも
障害想定漏れが少なくて済み、その定義内容に従う信頼
性のある運用が保証できる複合系計算機システムを提供
することにある。
【0009】
【課題を解決するための手段】本発明は、複合系計算機
システムの構成及び制御内容を抽象的且つ統合的に記述
したプログラムであるシナリオを、上記各計算機毎の別
々の処理に分解し、当該シナリオから上記各計算機で直
接実行可能な形式のコマンド列である処理スクリプトを
生成するシナリオコンパイル手段を備えると共に、上記
各計算機に、上記シナリオコンパイル手段により生成さ
れている各計算機別の各処理スクリプトのうち、計算機
状態に対応し且つ該当する計算機用の処理スクリプトを
実行するスクリプト実行手段とを備えたことを特徴とす
る。
【0010】ここで、複合系計算機システムの制御内容
の具体例としては、計算機で発生する各種イベント(事
象)に対するシステムの動作がある。
【0011】また、シナリオの抽象性の具体例として
は、システム構成を定義する記述(例えば複合系計算機
システムを構成する計算機を定義する計算機記述)の中
で、実際の計算機の名前(定数)を、シナリオ内に閉じ
た変数(即ち、シナリオから生成される処理スクリプト
には表われない変数)として定義し、シナリオ内の他の
記述では、この変数を参照する形式がある。
【0012】また、シナリオの統合性(共通化)の具体
例としては、イベントに対する処理を、複数の計算機に
ついて共通化して記述する形式、複数のイベントに対す
る処理も共通化して記述する形式、更には自系を指す特
別な変数とイベントの部分を指す変数を設けることで、
一部のみある計算機またはあるイベントに特別な処理が
ある場合にも共通化して記述する形式がある。この他、
シナリオ内の特定の単位内での例えば稼働系と待機系の
計算機の記述を、処理スクリプト内で用いられる定数と
関係付けられたシナリオ内で用いられる変数(第1の変
数)とは別の変数(第2の変数)に定義し、上記特定の
単位内の他の部分では、この第2の変数を参照する形式
がある。
【0013】このような構成においては、複合系計算機
システムの構成及び制御内容を抽象的且つ統合的に記述
したシナリオ(プログラム)が適用できることから、従
来のように実行可能なスクリプトとして各計算機毎に記
述する必要があった複合系計算機システムと異なって、
システム構成及び制御内容の定義が容易に記述できる。
特に、シナリオの抽象性と統合性(共通化)により、各
計算機での同一計算機状態(イベント)に対する別々の
処理をあたかも1つの処理であるかのように記述できる
ことから、処理の記述数を減少できる。この効果は、複
合系計算機システムの構成計算機数が多いほど顕著とな
る。特に、シナリオの動作する計算機群である後述する
特定グループを設定し、各計算機上に当該グループの各
計算機の状態を記憶するための状態記憶手段を設け、こ
の状態記憶手段の内容によりイベント発生時の動作内容
を決定する構成を適用する場合、当該状態記憶手段の更
新に関しては、同一イベントに対して上記特定グループ
内の全ての計算機で同一操作が行われるため、処理記述
数削減の効果が大きい。
【0014】また本発明は、上記シナリオコンパイル手
段により生成された各計算機別の各処理スクリプトを対
応する各計算機の記憶領域に配布するスクリプト配布手
段を設け、上記計算機での計算機状態に応じて(例えば
イベント発生により)、その計算機に配布されている処
理スクリプトのうち、当該計算機状態(発生イベント)
に対応する処理スクリプトが上記スクリプト実行手段に
て実行される構成としたことを特徴とする。ここで、上
記シナリオコンパイル手段が、各計算機別の各処理スク
リプトの他に、当該各処理スクリプトを該当する計算機
に配布するためのコマンド列である配布スクリプトを生
成する構成とし、この配布クリプトを上記スクリプト配
布手段が実行することで、各計算機への処理スクリプト
配布が行われるようにするとよい。
【0015】このように、シナリオコンパイル手段によ
り生成された処理スクリプト等の成果物を(上記シナリ
オで定義された複合系計算機システムの)各計算機にス
クリプト配布手段が配布するためのプログラム(配布ス
クリプト)が、当該シナリオコンパイル手段により自動
生成される構成とすることで、この種のプログラムを人
が各計算機毎に記述する場合と異なって記述誤りをなく
すことができ、これにより配布操作の誤りと、計算機間
の不整合を防止できる。
【0016】また本発明は、上記スクリプト実行手段
に、処理スクリプトの実行の許可または禁止について、
各計算機毎に別々に、初期状態での設定及びイベント発
生時での再設定を可能にする機構を持たせ、シナリオの
動作する計算機群である特定グループをイベント発生時
に自動的に変化せることを特徴とする。
【0017】このようにすることで、特に(オペレーテ
ィングシステムの入れ替えやテストなどを目的とする)
保守等のために、システムを停止させることなく、所望
の計算機を切り離したり、或いは組み込むことが可能と
なる。
【0018】また本発明は、上記スクリプト実行手段
に、複数のイベントに対する処理スクリプトの実行順序
が上記特定グループ内で全て同一となり、1つのイベン
トに対する処理スクリプトの実行が上記特定グループ内
で全て終了するまで次の処理スクリプトの実行の開始を
待つことを保証する機構を更に持たせたことを特徴とす
る。
【0019】このような構成においては、ほぼ同時に複
数の計算機で障害が発生したとしても正しい引き継ぎが
可能となる同期イベント型複合系計算機システムが実現
できる。
【0020】また本発明は、上記特定グループの各計算
機の状態を記憶するための状態記憶手段を上記各計算機
上に設け、上記特定グループ内の各計算機上のスクリプ
ト実行手段において、イベント発生に伴う処理スクリプ
トの実行時に自系の状態記憶手段を参照してイベント発
生時の動作内容を決定すると共に、状態記憶手段の内容
に対して各計算機上で同一の更新処理を行う構成とした
ことを特徴とする。
【0021】このような構成においては、例えば特定グ
ループ内の計算機で障害が発生がした場合に、その時点
における特定グループ内の各計算機の状態を自系の状態
記憶手段を参照することで知ることができ、これによ
り、障害が発生した計算機がサービス(アプリケーショ
ンプログラム)の実行中の計算機であるならば、どの計
算機がその処理を引き継ぐかなどを自動決定できる。そ
のためには、計算機の状態に、処理の引き継ぎの優先順
位を含めるとよい。
【0022】この他、互いに交わらない複数の特定グル
ープを構成し、イベント発生時の動作内容を、各特定グ
ループ毎に異なった状態記憶手段の内容によって変化さ
せるようにすることで、物理的に1つのシステムであり
ながら、特定グループ数分の独立したシステムを自由に
構築することが可能となる。
【0023】また本発明は、上記スクリプト実行手段
に、上記特定グループ内でイベント発生に伴う処理スク
リプトの実行が終了した後に、当該グループ内の全ての
計算機に関する処理スクリプトの終了状態を取得し、そ
の終了状態に従ってエラーリカバリ用の処理スクリプト
を実行する機能を更に持たせたことを特徴とする。
【0024】このような構成においては、イベント発生
時の処理のエラーリカバリが可能となる。
【0025】また本発明は、上記処理スクリプトに、そ
の処理の一部として少なくとも1つのイベントを疑似的
に発生させるコマンドを持たせることで、当該処理スク
リプトが上記スクリプト実行手段により実行された場合
に、少なくとも1つのイベントが疑似的に発生され、当
該処理スクリプトの実行後に、この疑似的に発生された
イベント(疑似イベント)に対応する処理スクリプトが
実行される構成としたことを特徴とする。
【0026】このような構成においては、1つのイベン
トに起因して複数の処理スクリプトを実行させることが
可能となる。特に、上記エラーリカバリ用の処理スクリ
プトの実行により、少なくとも1つの疑似イベントが発
生される構成とすることで、複合したエラーリカバリが
可能となる。
【0027】また本発明は、上記シナリオコンパイル手
段に、上記シナリオの記述内容の正誤を検出するための
正誤検出手段及び上記シナリオの記述内容の意味を確認
してその整合性を判定する意味確認手段の少なくとも1
つを持たせると共に、上記正誤検出手段による記述誤り
検出時または上記意味確認手段による不整合検出時に、
その旨のエラーメッセージを出力するエラー出力手段を
持たせたことを特徴とする。
【0028】このように、上記シナリオの記述内容の正
誤確認機能を、当該シナリオの記述内容からその記述内
容と同等の作用を与える処理スクリプトを生成するシナ
リオコンパイル手段に持たせることで、当該シナリオの
記述誤りを容易に見つけることができる。この正誤確認
機能の実現手段(正誤検出手段)としては、コマンドの
引数に代表される記述値が不適合であることを検出する
記述値不適合検出手段等が適用可能である。
【0029】また、上記シナリオの記述内容の意味の確
認機能、或いはデバイス故障など起こり得る各種障害時
を想定したシミュレーション機能を上記シナリオコンパ
イル手段に持たせることで、当該シナリオの意味的に不
整合性のある箇所を容易に見つけることができ、実行す
るまで分かり難い制御アルゴリズムの問題点を実行前に
認識することができる。この意味の確認機能の実現手段
(意味確認手段)としては、イベントの発生が無限ルー
プを構成していることを検出する無限ループ検出手段、
状態記憶手段に対する更新操作内容が特定グループ内で
同一とならないことを検出する状態記憶手段内容不一致
検出手段、状態記憶手段に対する更新操作内容が、予め
定められている当該状態記憶手段の内容が満たすべき条
件(インタロック)に合致していないことを検出するイ
ンタロック検出手段、及び1つのイベントに対する各計
算機での共有装置に対する操作内容が不整合であること
を検出する共有装置操作不整合性検出手段の少なくとも
1つが適用可能である。
【0030】特に、正誤検出手段により記述内容の誤り
が検出された場合(記述値不適合検出手段によりコマン
ドの引数に代表される記述値が不適合であることが検出
された場合)には、シナリオコンパイル手段による処理
スクリプト生成を停止する構成とすることで、誤った処
理スクリプトが生成されて、処理スクリプトの実行がエ
ラーとなることを防止できる。
【0031】同様に、意味確認手段によりシナリオ中で
意味的に不整合性のある箇所が検出された場合、シナリ
オコンパイル手段による処理スクリプト生成を停止する
構成とすることで、各計算機間で整合性のない処理スク
リプトが生成されて、例えば障害発生時の引き継ぎ等が
正常に行われないといった不具合が生じるのを防止でき
る。
【0032】特に、イベントの発生が無限ループを構成
していることを検出した場合に処理スクリプト生成を停
止するならば、1つのイベントに対する一連の処理スク
リプトの実行が必ず停止することを保証できる。また、
状態記憶手段に対する更新操作内容が特定グループ内で
同一とならないことを検出した場合に処理スクリプト生
成を停止するならば、状態記憶手段の内容が上記特定グ
ループ内で常に同一であることを保証できる。また、状
態記憶手段に対する更新操作内容が、予め定められてい
る当該状態記憶手段の内容が満たすべき条件(インタロ
ック)に合致していないことを検出した場合に処理スク
リプト生成を停止するならば、状態記憶手段の内容が常
に指定条件を満たすことを保証できる。なお、この指定
条件を上記シナリオ中に記述しているならば、インタロ
ック検出手段での検出処理に便利である。また、1つの
イベントに対する各計算機での共有装置に対する操作内
容が不整合であることを検出した場合に処理スクリプト
生成を停止するならば、処理スクリプトの共有装置に対
する処理が不整合を起こさないことを保証できる。
【0033】この他、上記意味確認手段として、上記シ
ナリオに記述された内容を解釈し、非同期に発生する可
能性のある各種イベントを任意に組み合わせてシミュレ
ーションする動作シミュレーション手段を適用するなら
ば、意味の確認を動的に行うことができる。
【0034】また、上記シナリオコンパイル手段に、上
記シナリオ内で用いられる変数を定数に置き換える置換
手段と、この置換手段により置き換えられた定数を上記
シナリオ内で伝播させる定数伝播手段とを持たせること
で、変数を用いた記述に対しても上記各検出手段を有効
に適用することが可能となる。また、上記シナリオコン
パイル手段に、シナリオ内のループ文での記述を内部的
に展開するループ展開手段を持たせることで、ループ変
数を用いた記述に対しても上記各検出手段を有効に適用
することが可能となる。
【0035】
【発明の実施の形態】以下、本発明の実施の形態につき
図面を参照して説明する。
【0036】[第1の実施形態]図1は本発明の第1の
実施形態に係る複合系計算機システムのブロック構成図
である。
【0037】図1において、100A,100Bは複合
系計算機システムを構成する計算機であり、計算機間接
続手段としての例えばLAN(ローカルエリアネットワ
ーク)101により相互接続されている。
【0038】計算機100A,100Bのうちの例えば
計算機100Aには、複合系計算機システムの構成及び
制御(特に、障害やオペレータ操作等により発生する各
種イベントに対するシステムの動作)の定義内容を抽象
的に且つ統合的に記述したプログラム(以下、HAシナ
リオと称する)110が保存されているものとする。こ
のHA(High Availavility )シナリオ110は、図2
に示すように、人201が直接に、或はグラフィカルユ
ーザインタフェース(Graphical User Interface;GU
I)202を介して記述されるものである。
【0039】計算機100Aは、HAシナリオ110を
コンパイルして、そのHAシナリオ110の記述内容通
りの作用を与えるための、例えば計算機100A,10
0Bで実行可能な形式のコマンド列の集合(以下、HA
スクリプト集合と称する)120を変換生成するコンパ
イラ(以下、HAシナリオコンパイラと称する)140
と、HAスクリプト集合120の中から計算機100
A,100B用のHAスクリプト集合130A,130
Bを選択して該当する計算機100A,100Bに配布
するHAスクリプト配布機構150を内蔵している。
【0040】図1の構成の複合系計算機システムでは、
図2に示すように、人201が直接に、或はGUI20
2を介して記述したHAシナリオ110は、(計算機1
00A上の)HAシナリオコンパイラ140により読み
込まれる。HAシナリオコンパイラ140は、読み込ん
だHAシナリオ110について、その書式に従った字句
及び構文解析を行って、システム内の各計算機毎の別々
の処理、例えば計算機100A,100B毎の別々の処
理に分解し、計算機100A,100Bで直接実行可能
な形式のHAスクリプト集合120を生成する。このH
Aシナリオコンパイラ140の動作の詳細は後述する。
【0041】計算機100A上のHAスクリプト配布機
構150は、HAシナリオコンパイラ140により生成
されたHAスクリプト集合120の中から計算機100
A,100Bで実行すべき部分を選択し、それぞれ計算
機100A,100B用のHAスクリプト集合130
A,130Bとして該当する計算機100A,100B
の持つ例えば大容量記憶装置内の特定ディレクトリに配
布(コピー)する。ここで、計算機100A上の配布機
構150による計算機100BへのHAスクリプト集合
130Bの配布は、計算機100A,100Bが相互接
続されているLAN101を介して行われる。
【0042】HAスクリプト配布機構150により計算
機100A,100Bの特定ディレクトリに配布された
HAスクリプト集合130A,130B(中のHAスク
リプト)は、計算機100A,100Bが有するHAス
クリプト実行機構160A,160Bにより実行され
る。
【0043】次に、HAシナリオ110と当該HAシナ
リオ110から生成されるHAスクリプト集合120の
詳細につき、計算機100A,100Bのうちの一方の
計算機、例えば計算機100A上で1つのアプリケーシ
ョンプログラム(以下、アプリケーションと略称する)
が実行されており、他方の計算機である計算機100B
が待機する形態の場合を例に、図3乃至図6を参照して
説明する。
【0044】まず、本システム内の計算機100A,1
00Bで発生する各種イベント(事象)には、(1)他
の計算機の障害検出、(2)アプリケーションの強制引
継ぎ要求(以下、テイクオーバと称する)、(3)アプ
リケーションの通常引継ぎ要求(以下、スイッチオーバ
と称する)、(4)アプリケーションの開始要求、
(5)アプリケーションの終了要求の5種類が含まれて
いる。
【0045】HAシナリオ110は、図3に示すよう
に、計算機記述111と、システム記述112と、サー
ビス記述113を含んでいる。
【0046】計算機記述111は、計算機に固有な情報
を定義するものであり、例えば計算機の名前、ネットワ
ークアドレスなどを定義する。
【0047】システム記述112は、計算機での各イベ
ント(以下、HAイベントと称する)に対するアプリケ
ーションによらないシステムの動作を定義するものであ
る。システム記述112は、主として他の計算機の障害
検出に対して、HAスクリプト実行機構(160A,1
60B)を制御する処理を記述する。このシステム記述
112は、アプリケーションによらないHAイベント、
例えば他の計算機の障害検出を定義するシステムイベン
ト記述112aを含む。
【0048】サービス記述113は、各HAイベントに
対するアプリケーションの動作を定義するものであり、
主としてアプリケーションのテイクオーバ、スイッチオ
ーバ、開始要求、及び終了要求の各HAイベントに対し
て、各計算機上での処理を定義する。このサービス記述
113は、アプリケーション毎のHAイベント、例えば
テイクオーバ、スイッチオーバ、開始要求、終了要求を
定義するサービスイベント記述113aを含む。
【0049】HAシナリオ110は、前述したように、
複合系計算機システムの構成及び制御(障害やオペレー
タ操作に対するシステムの動作)の定義内容を抽象的に
且つ統合的に記述したものである。
【0050】ここでHAシナリオ110の抽象性につい
て説明する。
【0051】まず本実施形態では、HAスクリプト内で
用いられる名前(である定数)と、HAシナリオ110
内で用いられる名前(である変数)とを区別し、HAシ
ナリオ110内で用いられる名前(変数)とHAスクリ
プト内で用いられる名前(定数)との関係をHAシナリ
オ110内に定義する形式を適用する。そこでHAシナ
リオ110では、計算機記述111の中で、実際の計算
機の名前(定数)を、HAシナリオ110内に閉じた変
数(即ち、HAシナリオ110から生成されるHAスク
リプトには表われない変数)として定義し、HAシナリ
オ110内の他の記述では、この変数を参照する形式を
適用する。
【0052】このようなHAシナリオ110の抽象性に
より、当該HAシナリオ110では、実際の計算機の名
前は計算機記述の中の1箇所に記述すればよいことにな
る。これにより、システムを他のシステムに移動する場
合などにおけるHAシナリオの変更が容易となる。
【0053】例えば、計算機Aを計算機Cに、計算機B
を計算機Dに置き換える場合を考えると、HAシナリオ
の記述は、図5(a)から図5(b)のように変更する
だけでよい。なお、図5中の{name="X"}のような記述(X
=A,B,C,D) が実際の計算機の名前の記述部であり、例え
ば"server cpu1{name="B"}" は、計算機Bをserver cpu
1 (第1のサーバ計算機)として定義していることを示
す。
【0054】以上がHAシナリオ110の抽象性であ
る。
【0055】次に、HAシナリオ110の統合性につい
て説明する。
【0056】まずHAシナリオ110では、システム記
述112及びサービス記述113内で、HAイベントに
対する処理を、複数の計算機(ここでは計算機100
A,100B)について共通化して記述してある。ま
た、複数のHAイベントに対する処理も共通化して記述
してある。更に、自系を指す特別な変数とHAイベント
の部分を指す変数を設けることで、一部のみある計算機
またはあるHAイベントに特別な処理がある場合にも、
共通化が図られている。
【0057】以上が、HAシナリオ110の統合性(共
通化)であり、このような統合性(共通化)により、H
Aシナリオ110の作成が容易になる。
【0058】HAシナリオ110の統合性(共通化)の
例を、切り離しHAイベントに対する処理を共通化した
サービス記述113の場合につき図6に示す。但し、こ
の例では、システムを構成する計算機がcpu1,cpu2の2
台ではなく、cpu1〜cpu4の4台の場合を想定している。
【0059】図6中の"syncevent OutX =(“切り離
し”,cpuX)"のような記述(X=1,2,3,4)は、"syncevent
OutX"の記述部分が、cpuXを切り離す切り離しHAイベ
ントを表すことを定義したものである。
【0060】また、"syncaction ( cpu1|cpu2|cpu3|
cpu4, Out1|Out2|Out3|Out4 )"は、処理をする計算
機と、その計算機がどのイベントに対して処理をするか
を、cpu1〜cpu4の4計算機と、Out1〜Out4の4イベント
の合計4×4=16通りの組み合わせについて共通化し
て記述したものである。
【0061】また、"if ( localcpu==event.cpu )"中
の"localcpu"はcpu1〜cpu4のうちの自系を指す変数であ
り、"event.cpu" は上記切り離しHAイベントOut1〜Ou
t4の第2フィールド(cpuX)を指す変数であり、自系がH
AイベントOut1〜Out4の第2フィールドの指す計算機で
あるか否かを判定する。
【0062】なお、図6中で"#" が付された記述行は、
コメントの記述行である。
【0063】さて、HAシナリオコンパイラ140は、
計算機100A上で、以上に述べた形式のHAシナリオ
110を読み込み、その計算機記述111の内容から、
計算機の種類の情報を得ると共に、システムイベント記
述112a及びサービスイベント記述113aの内容か
らイベントの種類を取得し、更にシステム記述112及
びサービス記述113の内容から処理の内容を得て、
(イベント処理用HAスクリプトの集合である)HAス
クリプト集合120を生成する。
【0064】HAスクリプト集合120は、図4に示す
ように、計算機100Aにおける、計算機100Bの障
害検出に対する処理を記述したHAスクリプト131
A、計算機100Aにおける、計算機100Bからのテ
イクオーバに対する処理を記述したHAスクリプト13
2A、計算機100Aにおける、計算機100Aへのス
イッチオーバに対する処理を記述したHAスクリプト1
33A、計算機100Aにおける、計算機100Bへの
スイッチオーバに対する処理を記述したHAスクリプト
134A、計算機100Aにおける、計算機100Aで
の開始要求に対する処理を記述したHAスクリプト13
5A、計算機100Aにおける、計算機100Bでの開
始要求に対する処理を記述したHAスクリプト136
A、及び計算機100Aにおける、終了要求に対する処
理を記述したHAスクリプト137Aを有している。
【0065】HAスクリプト集合120はまた、計算機
100Bにおける、計算機100Aの障害検出に対する
処理を記述したHAスクリプト131B、計算機100
Bにおける、計算機100Aからのテイクオーバに対す
る処理を記述したHAスクリプト132B、計算機10
0Bにおける、計算機100Aへのスイッチオーバに対
する処理を記述したHAスクリプト133B、計算機1
00Bにおける、計算機100Bへのスイッチオーバに
対する処理を記述したHAスクリプト134B、計算機
100Bにおける、計算機100Aでの開始要求に対す
る処理を記述したHAスクリプト135B、計算機10
0Bにおける、計算機100Bでの開始要求に対する処
理を記述したHAスクリプト136B、及び計算機10
0Bにおける、終了要求に対する処理を記述したHAス
クリプト137Bを有している。
【0066】ここで、障害検出、テイクオーバ、スイッ
チオーバ及び開始要求のイベントは、本実施形態では2
種類ずつある。但し、障害検出及びテイクオーバの各イ
ベントに対するHAスクリプトは、HAスクリプト13
1A,131B及びHAスクリプト132A,132B
のように、その性質から片方の計算機にしか必要ない。
【0067】計算機100A上のHAスクリプト配布機
構150は、HAシナリオコンパイラ140により生成
されたHAスクリプト集合120の中から、計算機10
0Aで実行すべきHAスクリプト131A〜137Aを
選択し、それらを計算機100A用のHAスクリプト集
合130Aとして、計算機100Aの持つ大容量記憶装
置内の特定ディレクトリに配布する。またHAスクリプ
ト配布機構150は、HAスクリプト集合120の中か
ら、計算機100Bで実行すべきHAスクリプト131
B〜137Bを選択し、それらを計算機100B用のH
Aスクリプト集合130Bとして、計算機100Bの持
つ大容量記憶装置内の特定ディレクトリにLAN101
を経由して配布する。
【0068】なお、HAシナリオコンパイラ140及び
HAスクリプト配布機構150は、(計算機100Aで
はなくて)計算機100B上に設けられていても構わな
い。
【0069】計算機100A,100B上のHAスクリ
プト実行機構160A,160Bは、イベントが発生す
る毎に、HAスクリプト集合130A,130B中の該
当するHAスクリプトを実行する。
【0070】[第2の実施形態]次に、本発明の第2の
実施形態につき図面を参照して説明する。
【0071】図7は4台の計算機で構成された複合系計
算機システムの実施形態を示すブロック図である。
【0072】図7のシステムにおいて、4台の計算機7
00A,700B,700C,700Dのうちの3台の
計算機、例えば計算機700A,700B,700C
は、その計算機上でそれぞれ独立したアプリケーション
AP1〜AP3が動作している稼働系(master)とな
り、残りの1台の計算機700Dは各計算機700A〜
700Cに共通の待機系(slave )として待機する形態
をとっているものとする。
【0073】この形態では、一般には、(前記第1の実
施形態におけるHAシナリオ110に相当する)HAシ
ナリオ内に(サービス記述113に相当する)3つのサ
ービス記述が必要になる。
【0074】しかしながら、HAスクリプト内で用いら
れる名前(定数)と関係付けられたHAシナリオ内で用
いられる名前(第1の変数)と、HAシナリオ内の特定
の単位内で用いられる名前(第2の変数)とを区別し、
それらの関係をHAシナリオ内の特定の単位内に記述す
るならば、3つのサービス記述をほぼ共通化することが
可能になる。このようなHAシナリオの例を図8に示
す。
【0075】ここでは、3つのサービス記述801,8
02,803の先頭で、master=cpuX 及びslave=cpu4の
ような記述(X=1,2,3) により、稼働系と待機系の計算機
を定義し、サービス記述801〜803内の他の部分8
04-1〜804-3(図8中の(1),(2),(3)の
部分)では、この変数を参照する形式を適用している。
【0076】[第3の実施形態]次に、本発明の第3の
実施形態につき図面を参照して説明する。
【0077】図9は本発明の第3の実施形態に係る複合
系計算機システムにおいて、オペレータ要求による計算
機の組み込み/切り離し、及び障害発生計算機の自動切
り離しを説明するための図である。ここでは、3台の計
算機900A,900B,900Cから構成される複合
系計算機システムであって、ハードウェアまたはソフト
ウェアの障害や、オペレータ操作(オペレータ入力)な
どの各イベントに対して、各計算機900A〜900C
が同期をとって、各計算機900A〜900Cに定義さ
れているイベント処理のためのHAスクリプトを同時に
実行することにより、障害処理もしくは要求された処理
を行う同期イベント型の複合系計算機システムを前提と
している。
【0078】本システムでのHAイベントには、(1)
実行禁止にできない特別なHAイベントである新HAグ
ループの作成要求、(2)他の計算機の障害検出、
(3)計算機の組み込み要求、(4)計算機の切り離し
要求の4種類が含まれている。ここで、HAグループ
(特定グループ)とは、互いに同期をとってHAスクリ
プトを実行する計算機の集合をいう。但し、初期状態の
HAグループ(新HAグループ)は、1台の計算機のみ
からなる。
【0079】上記(1)〜(4)の各HAイベントは、
(前記第1の実施形態におけるシステムイベント記述1
12aに相当する)HAシナリオのシステムイベント記
述内に記述されるもので、上記(2)を除く各HAイベ
ントはオペレータ操作に従って発生され、上記(2)の
HAイベントは計算機の障害検出により自動的に発生さ
れる。
【0080】上記(1)の新HAグループの作成要求に
対する処理は、指定された計算機をHAスクリプトの実
行許可にする処理を含む。
【0081】次に、上記(2)の他の計算機の障害検出
に対する処理は、障害を起こした計算機をHAスクリプ
トの実行禁止にする処理を含む。
【0082】次に、上記(3)の計算機の組み込み要求
に対する処理は、指定された計算機をHAスクリプトの
実行許可にする処理を含む。
【0083】次に、上記(4)の計算機の切り離し要求
に対する処理は、指定された計算機をHAスクリプトの
実行禁止にする処理を含む。
【0084】なお、上記(1)の新HAグループの作成
要求と、(2)の計算機の組み込み要求とは、以下に述
べるように異なる機能である。まず、前者はHAグルー
プが新しく作られることを意味するのに対し、後者は既
に作成されているあるHAグループに対して組み込まれ
ることを意味する。特に前者はHAスクリプトの実行禁
止になっている計算機に発生するイベントであるのに対
し、後者はHAスクリプトの実行許可になっている計算
機(即ちHAグループ内の計算機)に発生するイベント
である点で異なる。
【0085】また、計算機の組み込み、切り離しは、主
として保守などの目的で1台だけの計算機を停止させた
い場合などに用いられる。
【0086】図9中の各計算機900A〜900Cは図
示せぬLANにより相互接続されている。計算機900
A〜900C上には、(前記第1の実施形態におけるH
Aスクリプト実行機構160A,160Bに相当する)
HAスクリプト実行機構960A〜960Cが設けられ
ている。これら計算機900A〜900C上のHAスク
リプト実行機構960A〜960Cは、互いに協調して
動作し、特に他の計算機のHAスクリプトの実行を許可
することができるようになっている。この場合、実行を
許可された計算機は、実行を許可した計算機と同じHA
グループに入っていると認識する。
【0087】図9において、同図(a)に示すように、
計算機900Aで、当該計算機900Aからなる新HA
グループの作成要求のHAイベント901がオペレータ
操作により発生したものとする。この場合、計算機90
0Aは、自系をHAスクリプトの実行許可状態にするこ
とで、図9(b)に示すように自系のみからなるHAグ
ループ902を作成する。
【0088】次に、HAグループ902の計算機900
Aで、図9(b)に示すように、計算機900Bの(H
Aグループ902への)組み込み要求のHAイベント9
03がオペレータ操作により発生したものとする。この
場合、計算機900Aは、HAイベント903で指定さ
れた計算機900BをHAスクリプトの実行許可状態に
することで、図9(c)に示すように当該計算機900
BをHAグループ902に組み込む。これにより、HA
グループの計算機900Aと、新たにHAグループ90
2に組み込まれた計算機900Bとは、互いに協調して
動作する。
【0089】次に、HAグループ902の計算機900
A,900Bで、図9(c)に示すように、計算機90
0Cの(HAグループ902への)組み込み要求のHA
イベント904が(計算機900Aまたは900Bに対
する)オペレータ操作により発生したものとする。この
場合、計算機900A,900Bは、HAイベント90
4で指定された計算機900CをHAスクリプトの実行
許可状態にすることで、図9(d)に示すように当該計
算機900CをHAグループ902に組み込む。これに
より、HAグループの計算機900A,900Bと、新
たにHAグループ902に組み込まれた計算機900C
とは、互いに協調して動作する。
【0090】このような状態で、図9(e)に示すよう
に計算機Aで障害905が発生し、その障害905を計
算機900B,900Cにおいて検出したものとする。
すると、計算機900B,900Cでは、図9(e)に
示すように計算機900Aの障害検出のHAイベント9
06が発生する。この場合、計算機900B,900C
は、障害905が発生した計算機900AがHAスクリ
プトの実行禁止状態になったとみなすことで、図9
(f)に示すように当該計算機900AをHAグループ
902から自動的に切り離す。
【0091】次に、計算機900AがHAグループ90
2から切り離されている状態で、HAグループ902の
計算機900B,900Cで、図9(f)に示すよう
に、計算機900Bの(HAグループ902からの)切
り離し要求のHAイベント907がオペレータ操作によ
り発生したものとする。この場合、計算機900B,9
00Cは、HAイベント907で指定された計算機90
0BをHAスクリプトの実行禁止状態にすることで、図
9(g)に示すように当該計算機900BをHAグルー
プ902から切り離す。
【0092】次に、計算機900A,900BがHAグ
ループ902から切り離されている状態で、HAグルー
プ902の900Cで、図9(g)に示すように、計算
機900C自身の(HAグループ902からの)切り離
し要求のHAイベント908がオペレータ操作により発
生したものとする。この場合、計算機900Cは、HA
イベント908で指定された計算機900C自身をHA
スクリプトの実行禁止状態にすることで、図9(h)に
示すように当該計算機900C自身をHAグループ90
2から切り離す。
【0093】このように、各計算機900A〜900D
毎に別々に、HAスクリプトの実行の許可/禁止の初期
状態での設定、及びHAイベント発生時での再設定を可
能とする機構を持つことで、HAグループをHAイベン
ト発生時に自動的に変化させ、オペレータ操作に従うオ
ンライン状態での計算機の組み込み/切り離し、及び障
害発生計算機の自動切り離しが容易に行える。
【0094】これは、特に(オペレーティングシステム
の入れ替えやテストなどを目的とする)保守等のため
に、システムを停止させることなく、所望の計算機を切
り離したり、或いは組み込むのに好都合である。なお従
来は、システムを停止させずに計算機の組み込み/切り
離しを行うと、誤って障害として検出されて引き継ぎ処
理が行われるため、一旦システムを停止させてから計算
機の組み込み/切り離しを行う必要があった。
【0095】[第4の実施形態]次に、本発明の第4の
実施形態につき図面を参照して説明する。
【0096】図10は、複合系計算機システムにおい
て、障害が発生した計算機で動いていたアプリケーショ
ンを他の計算機で自動的に引き継ぐ形態を説明するため
の図である。ここでは、4台の計算機1000A,10
00B,1000C,1000Dから構成される複合系
計算機システムを前提としている。
【0097】まず本システムで適用される(前記第1の
実施形態におけるHAシナリオ110に相当する)HA
シナリオは、次のような条件に従うアプリケーションの
引き継ぎを行うように記述されているものとする。
【0098】(1)計算機1000Aに障害発生したと
き、計算機1000Bが正常なら、計算機1000Aで
動いていたアプリケーションを計算機1000Bへ引き
継ぐ。
【0099】(2)計算機1000Aに障害発生したと
き、計算機1000Bが正常でなく、計算機1000C
が正常なら、計算機1000Aで動いていたアプリケー
ションを計算機1000Cへ引き継ぐ。
【0100】(3)計算機1000Bに障害発生したと
き、計算機1000Dが正常なら、計算機1000Bで
動いていたアプリケーションを計算機1000Dへ引き
継ぐ。
【0101】(4)計算機1000Cに障害発生したと
き、計算機1000Dが正常なら、計算機1000Cで
動いていたアプリケーションを計算機1000Dへ引き
継ぐ。
【0102】図10において、計算機1000A,10
00Bにほぼ同時に障害が発生したものとする。この場
合、計算機1000Aの障害検出のHAイベントと計算
機1000Bの障害検出のHAイベントとが、それぞれ
計算機1000C,1000Dでほぼ同時に発生する
が、その発生順序は、計算機1000C,1000Dに
おいて同一であるとは限らない。これは、検出の遅延や
通信の遅延のために起こる。
【0103】ところが従来は、障害が発生した計算機で
動いていたアプリケーションを別の計算機で引き継ぐ場
合には、次に述べるように上記した障害検出のHAイベ
ントの発生順序は重要である。
【0104】例えば、計算機1000A、計算機100
0Bの順序で障害が検出されたとするならば、計算機1
000Aで実行されていたアプリケーションは、まず上
記(1)の条件に従い、図10において符号1001a
で示される引継ぎ経路で計算機1000Bに(一時的
に)引き継がれ、計算機1000Bの障害が検出された
時点で、上記(3)の条件に従い、図10において符号
1001bで示される引継ぎ経路で計算機1000Dに
引き継がれる。即ち、先に計算機1000Aの障害が検
出された場合には、計算機1000Aで実行されていた
アプリケーションは結局計算機1000Dに引き継がれ
る。
【0105】一方、計算機1000B、計算機1000
Aの順序で障害が検出されたとするならば、計算機10
00Bで実行されていたアプリケーションは、まず上記
(3)の条件に従って計算機1000Dに(一時的に)
引き継がれるものの、計算機1000Aの障害が検出さ
れた時点で、この引き継ぎは解消され、新たに、計算機
1000Aで実行されていたアプリケーションが、上記
(2)の条件に従い、図10において符号1002で示
される引継ぎ経路で計算機1000Cに引き継がれる。
即ち、先に計算機1000Bの障害が検出された場合に
は、計算機1000Aで実行されていたアプリケーショ
ンは計算機1000Cに引き継がれる。
【0106】したがって、計算機1000C,1000
Dにおいて、いずれも計算機1000A、計算機100
0Bの順序で障害が検出された場合には、計算機100
0Aで実行されていたアプリケーションが経路1001
a,1001bで計算機1000Dに正しく引き継がれ
る。同様に、計算機1000C,1000Dにおいて、
いずれも計算機1000B、計算機1000Aの順序で
障害が検出された場合には、計算機1000Aで実行さ
れていたアプリケーションが経路1002で計算機10
00Cに正しく引き継がれる。
【0107】しかしながら、計算機1000Cにおいて
計算機1000A、計算機1000Bの順序で障害が検
出され、計算機1000Dにおいてその逆に計算機10
00B、計算機1000Aの順序で障害が検出された場
合には、計算機1000C,1000Dのいずれでも引
き継ぎが行われない。また、計算機1000Cにおいて
計算機1000B、計算機1000Aの順序で障害が検
出され、計算機1000Dにおいてその逆に計算機10
00A、計算機1000Bの順序で障害が検出された場
合には、計算機1000Aで実行されていたアプリケー
ションが、経路1002で計算機1000Cに引き継が
れると共に、経路10001a,10001bで計算機
1000Dにも引き継がれる。
【0108】即ち従来技術では、計算機1000C,1
000Dで発生される、計算機1000Aの障害検出の
HAイベントと計算機1000Bの障害検出のHAイベ
ントの順序が、両計算機1000C,1000Dで異な
る場合には、計算機1000Cと計算機1000Dの両
方に(計算機1000Aで実行していたアプリケーショ
ンの)引き継ぎが行われてしまうか、両方共引き継ぎが
行われないかのいずれかとなり、正しい結果とならな
い。
【0109】そこで本実施形態では、このような不具合
を解消するために、(前記第1の実施形態におけるHA
スクリプト実行機構160A,160Bに相当する)各
計算機1000A〜1000D内のHAスクリプト実行
機構を、図11のように構成している。
【0110】まず、各計算機1000A〜1000D内
のHAスクリプト実行機構は、新HAグループの作成要
求HAイベントを受け付けるHAイベント受付部110
1、計算機の障害検出HAイベントを受け付けるHAイ
ベント受付部1102、計算機の組み込み要求HAイベ
ントを受け付けるHAイベント受付部1103、計算機
の切り離し要求HAイベントを受け付けるHAイベント
受付部1104、及びその他のHAイベントを受け付け
るHAイベント受付部1105とを有している。
【0111】HAスクリプト実行機構はまた、他系のH
Aスクリプト実行機構との間の通信を行う通信部110
6、及びHAスクリプトを実行するHAスクリプト実行
部1107を有している。
【0112】HAスクリプト実行機構は更に、HAグル
ープの構成情報を格納しておくHAグループ構成記憶部
1108、次に実行する可能性のあるHAスクリプトの
要因となるHAイベントを候補HAイベントとして格納
しておく候補HAイベント記憶部1109、検出した障
害の情報を格納しておく障害検出記憶部1110、及び
候補HAイベントの確定状態を格納しておく確定状態記
憶部1111を有している。各記憶部1108〜111
1は、自系に関する該当する情報を格納しておくための
記憶領域と、他系に関する該当する情報を格納しておく
ための3台の計算機分の記憶領域とを持つ。
【0113】HAスクリプト実行機構は更に、HAイベ
ント受付部1103〜1105で受け付けられたHAイ
ベントを一時格納(保留)しておくためのFIFO(先
入れ先出し)方式のHAイベント保留記憶部1112、
一連のHAスクリプトの実行順序を管理する順序番号を
記憶しておくための順序番号記憶部1113、及びHA
グループ内の各計算機が協調してHAイベント処理を行
うための同期制御を司る同期制御部1114を有してい
る。
【0114】次に、図11の構成のHAスクリプト実行
機構の動作の概略について述べる。
【0115】まず、新HAグループの作成要求HAイベ
ントの受付部1101は、自系計算機がHAグループに
入ってない場合にのみ、該当するHAイベントを受け付
ける。
【0116】一方、計算機の障害検出HAイベントの受
付部1102は、障害検出HAイベントを無条件で受け
付ける。また、計算機の組み込み要求HAイベントの受
付部1103、計算機の切り離し要求HAイベントの受
付部1104、及びその他のHAイベントの受付部11
05は、該当するHAイベントを無条件で受け付ける。
【0117】新HAグループの作成要求HAイベントの
受付部1101、及び計算機の障害検出HAイベントの
受付部1102で受け付けられた各HAイベントは、そ
のまま同期制御部1114に入力される。
【0118】これに対し、計算機の組み込み要求HAイ
ベントの受付部1103、計算機の切り離し要求HAイ
ベントの受付部1104、及びその他のHAイベントの
受付部1105で受け付けられた各HAイベントは、一
旦HAイベント保留記憶部1112に保持され、同期制
御部1114からの要求に応じて当該同期制御部111
4に入力される。
【0119】一方、通信部1106は、HAグループ構
成記憶部1108、候補HAイベント記憶部1109、
障害検出記憶部1110、及び確定状態記憶部1111
の自系用の記憶領域にそれぞれ格納されている自系に関
する情報を、他系(のHAスクリプト実行機構)に通知
すると共に、他系(のHAスクリプト実行機構内の通信
部1106)から通知された情報をそれぞれ対応する記
憶部1108〜1111の対応する記憶領域に格納す
る。ここで、他系への情報通知は、順序番号記憶部11
13に格納されている順序番号を付加して行われる。ま
た、他系からの情報の受信時には、その情報が当該情報
に付加されていた順序番号と共に、記憶部1108〜1
111のうちの該当する情報の記憶部に格納される。
【0120】同期制御部1114は、HAグループ構成
記憶部1108、候補HAイベント記憶部1109、障
害検出記憶部1110、及び確定状態記憶部1111に
それぞれ格納されている自系並びに他系に関する情報
と、自系で入力されたHAイベントから、最新の自系の
状態を決定し、その状態を対応する各記憶部1108〜
1111の自系用記憶領域に格納する。
【0121】このとき、もし自系の確定状態が確定成功
であるならば、HAスクリプト実行部1107は、候補
HAイベント記憶部1109に格納されている候補HA
イベントに対応するHAスクリプトの実行を行い、順序
番号を更新する。これに対し、自系の確定状態が確定失
敗であるならば、HAスクリプト実行部1107は、候
補HAイベント記憶部1109に格納されている候補H
Aイベントを破棄し、順序番号を更新する。
【0122】次に、図11の構成のHAスクリプト実行
機構を図10の複合系計算機システムの各計算機100
0A〜1000Dに設けた場合の典型的な処理につい
て、(1)新HAグループの作成、計算機の組み込み/
切り離し以外の場合の通常の処理(障害が検出されなか
った場合の処理)、(2)新HAグループの作成、計算
機の組み込み/切り離し以外の場合の障害検出時の処
理、(3)新HAグループの作成の場合の処理、(4)
計算機の組み込みの場合の処理、(5)計算機の切り離
しの場合の処理を例に、図12乃至図16を適宜参照し
て順に説明する。
【0123】(1)新HAグループの作成、計算機の組
み込み/切り離し以外の場合の通常の処理 この処理は、HAグループ内の計算機で行われる。ここ
では、図10中の各計算機1000A〜1000Dが全
てHAグループに含まれているものとする。
【0124】まずHAグループ内のある計算機のHAス
クリプト実行機構の持つ同期制御部1114からの入力
要求により、HAイベント保留記憶部1112の先頭に
位置している(新HAグループの作成、計算機の組み込
み/切り離し以外の)HAイベント、例えばHAイベン
ト受付部1105で受け付けられてHAイベント保留記
憶部1112にFIFOで格納されたHAイベント(そ
の他のHAイベント、通常のHAイベント)が入力され
たものとする。この場合、同期制御部1114は、この
入力HAイベントを候補HAイベントとして候補HAイ
ベント記憶部1109内の自系用記憶領域に格納する
(ステップS1)。
【0125】通信部1106は、候補HAイベント記憶
部1109に格納された自系の候補HAイベントを他系
に通知する(ステップS2)。
【0126】この他系に通知された候補HAイベント
は、その系の候補HAイベント記憶部1109内の通知
元計算機用の記憶領域に格納される(ステップS3)。
また、候補HAイベントが通知された系で候補HAイベ
ントが決定していない場合には、当該イベントはその系
の候補HAイベントとなり、その系の候補HAイベント
記憶部1109内の自系用記憶領域にも格納される。ま
たステップS3では、この候補HAイベント記憶部11
09内の自系用記憶領域の内容が他系に通知される。
【0127】このようにして、HAグループ内の各計算
機1000A〜1000DのHAスクリプト実行機構の
持つ通信部1106では、いずれかの計算機の障害が検
出されない限り(ステップS4)、他系の候補HAイベ
ントを全て受信する(ステップS5)。
【0128】HAグループ内の各計算機1000A〜1
000Dの同期制御部1114は、候補HAイベント記
憶部1109に格納されている他系の候補HAイベント
と自系の候補HAイベント、即ち各計算機1000A〜
1000Dの候補HAイベントが全て等しいならば(ス
テップS6)、自系の確定状態を確定成功とし(ステッ
プS7)、そうでないならば確定失敗とする(ステップ
S8)。確定成功の例を図17(a)に、確定失敗の例
を図17(b)に示す。なお、図17においてe,fは
それぞれ異なる候補HAイベントを示す。
【0129】各計算機1000A〜1000Dでは、確
定成功となった場合には、同期制御部1114の制御に
よりHAスクリプト実行部1107にて該当するHAイ
ベントについてのHAスクリプトが実行され(ステップ
S9)、その実行終了時にHAイベント保留記憶部11
12の先頭に位置しているHAイベントが、上記確定し
たHAイベントと同一であれば、それが削除される(ス
テップS10)。また、確定状態記憶部1111の自系
用の記憶領域に確定成功を示す確定状態が格納される。
【0130】これに対し、確定失敗となった場合には、
候補HAイベント記憶部1109に格納されている自系
の候補HAイベントは破棄され(ステップS11)、同
期制御部1114からHAイベント保留記憶部1112
に対してHAイベントの再要求が行われる(ステップS
13)。ここで、確定失敗判定時からHAイベントの再
要求までの時間間隔はランダムに設定される(ステップ
S12)。また、確定状態記憶部1111の自系用の記
憶領域に確定失敗を示す確定状態が格納される。
【0131】同期制御部1114は、上記ステップS1
0またはS13の後、順序番号記憶部1113内の順序
番号を次に進め、次のHAイベントの入力を待つ(ステ
ップS14)。
【0132】このように本実施形態においては、HAグ
ループ内の全ての計算機の候補HAイベントが等しくな
るまでは、言い換えれば、1つのHAイベントに対する
処理スクリプトの実行がHAグループ内で全て終了する
までは、次のHAスクリプトの実行は抑止される。この
結果、複数のHAイベントに対するHAスクリプトの実
行順序がHAグループ内で全て同一となる。
【0133】なお、1つの順序番号についての確定状態
は、最終的にはHAグループ内の計算機1000A〜1
000Dで全て確定成功か或いは全て確定失敗かのどち
らかに決定されるが、通信の遅延時間のために、決定は
全ての計算機1000A〜1000Dで同時ではない。
したがって、他系の計算機の処理が次の順序番号に進ん
でしまっているか否かを、その系からの通知情報に付さ
れていた順序番号から判断し、進んでいる場合には、自
系の次の順序番号の処理が開始するまで保留する必要が
ある。そのため、各記憶部1108〜1111には、現
在の状態の記憶領域と1つ前の状態の記憶領域の2つが
確保されている。
【0134】(2)新HAグループの作成、計算機の組
み込み/切り離し以外の場合の障害検出時の処理 まずHAグループ内のある計算機で障害検出HAイベン
トが入力されると、前記した通常のHAイベントの入力
時と同様にして、その障害検出HAイベントが他系に通
知される。
【0135】このように、HAグループ内のある計算機
で障害検出HAイベントが入力され、その障害検出HA
イベントが他系に通知された場合、即ちHAグループ内
の計算機で障害が検出された場合(ステップS4)、H
Aグループ内の障害が検出された計算機を除く各計算機
の通信部1106では、障害が検出された計算機以外の
候補HAイベントを全て受信する(ステップS15)。
【0136】HAグループ内の障害が検出された計算機
を除く各計算機の同期制御部1114は、候補HAイベ
ント記憶部1109に格納されている、障害が検出され
た計算機以外の候補HAイベントと自系の候補HAイベ
ントが全て等しいならば(ステップS16)、自系の確
定状態を確定保留とし(ステップS17)、そうでない
ならば確定失敗とする(ステップS18)。この確定保
留は、確定成功と確定失敗との間の中間的な状態を示す
もので、この確定保留の例を図17(c)に示す。ま
た、この図17(c)には、上記確定保留判定時におけ
る確定状態記憶部1111の内容が併せて示されてい
る。
【0137】次に、自系の確定状態が確定状態記憶部1
111の自系用の記憶領域に格納され、その確定状態が
他系に通知される(ステップS19)。
【0138】HAグループ内の障害が検出された計算機
を除く各計算機では、障害が検出された計算機以外の確
定状態を全て受信する(ステップS20)。この結果、
HAグループ内の障害が検出された計算機を除く各計算
機の確定状態記憶部1111の内容は図17(d)に示
すようになる。
【0139】HAグループ内の障害が検出された計算機
を除く各計算機の同期制御部1114は、確定状態記憶
部1111に格納されている、障害が検出された計算機
以外の確定状態が全て確定保留か確定成功であるならば
(ステップS21)、確定状態を確定成功とし(ステッ
プS7)、そうでないならば確定失敗とする(ステップ
S8)。
【0140】このように本実施形態においては、HAグ
ループ内の障害が検出された計算機を除く全ての計算機
の確定状態が確定保留か確定成功となるまでは、HAス
クリプトの実行は抑止される。従って、このような障害
検出時の処理を図10の例に適用した場合には、計算機
1000A〜1000Dのうち、障害が発生していない
計算機1000C及び計算機1000Dにおいて確定状
態が確定保留か確定成功となって初めてHAスクリプト
が実行されることから、結局計算機Aで実行されていた
アプリケーションは計算機1000Cまたは計算機10
00Dのどちらか一方のみに正しく引き継がれる。
【0141】(3)新HAグループの作成の場合の処理 まずHAグループ内のある計算機(のHAスクリプト実
行機構の持つ同期制御部1114)で新HAグループの
作成要求HAイベントが入力されたものとする。この場
合、計算機間の通信は行われず、計算機1000A〜1
000Dのうち、新HAグループの作成要求HAイベン
トが入力された計算機が、1台でHAグループを構成す
るような設定に、全ての記憶部1108〜1111を初
期化する(ステップS31) (4)計算機の組み込みの場合の処理 まずHAグループ内のある計算機(のHAスクリプト実
行機構の持つ同期制御部1114)で計算機の組み込み
要求HAイベントが入力されたものとする。この場合、
図12及び図13のフローチャート中のステップS1〜
S21と同様の処理が行われ、その結果、計算機の組み
込み要求HAイベントが確定成功となったなら(ステッ
プS41)、組み込まれる計算機以外の計算機(の同期
制御部1114)は、組み込み要求HAイベントで要求
された計算機がHAグループに組み込まれるように自系
のHAグループ構成記憶部1108を変更し(ステップ
S42)、組み込まれる計算機に対してHAグループ構
成を通知する(ステップS43)。
【0142】これを受けて、組み込まれる計算機は、通
知されたHAグループ構成に基づいて、自系のHAグル
ープ構成記憶部1108及び順序番号記憶部1113に
対する情報設定を行い、候補HAイベント記憶部110
9、障害検出記憶部1110及び確定状態記憶部111
1を初期化する(ステップS44)。
【0143】その後、組み込み要求HAイベントで要求
された計算機を含むHAグループ内の各計算機(の同期
制御部1114)は、順序番号記憶部1113内の順序
番号を次に進め、次のHAイベントの入力を待つ(ステ
ップS45)。
【0144】これに対し、計算機の組み込み要求HAイ
ベントが確定失敗となったなら(ステップS46)、組
み込まれる計算機以外の計算機(の同期制御部111
4)は、順序番号記憶部1113内の順序番号を次に進
め、次のHAイベントの入力を待つ(ステップS4
5)。
【0145】(5)計算機の切り離しの場合の処理 まずHAグループ内のある計算機(のHAスクリプト実
行機構の持つ同期制御部1114)で計算機の切り離し
要求HAイベントが入力されたものとする。この場合、
図12及び図13のフローチャート中のステップS1〜
S21と同様の処理が行われ、その結果、計算機の切り
離し要求HAイベントが確定成功となったなら(ステッ
プS51)、切り離される計算機以外の計算機(の同期
制御部1114)は、自系のHAグループ構成記憶部1
108の内容(HAグループ構成)を変更し、切り離し
要求HAイベントで要求された計算機をHAグループか
ら切り離す(ステップS52)。
【0146】一方、切り離される計算機は、新HAグル
ープの作成要求HAイベントが入力されるか、他系から
組み込みのためのHAグループ構成が通知されるまで待
機状態となる(ステップS53)。
【0147】その後、切り離された計算機を除くHAグ
ループ内の各計算機(の同期制御部1114)は、順序
番号記憶部1113内の順序番号を次に進め、次のHA
イベントの入力を待つ(ステップS54)。
【0148】これに対し、計算機の切り離し要求HAイ
ベントが確定失敗となったなら(ステップS55)、切
り離しが要求された計算機を含むHAグループ内の各計
算機(の同期制御部1114)は、順序番号記憶部11
13内の順序番号を次に進め、次のHAイベントの入力
を待つ(ステップS54)。
【0149】以上のように、本実施形態においては、複
数のHAイベントに対するHAスクリプトの実行順序が
HAグループ内で同一であり、1つのHAイベントに対
するHAスクリプトの実行がHAグループ内で全て終了
するまで次のHAスクリプトの実行が開始されないよう
に保証できるため、複数のHAイベントに対する動作が
矛盾なく行える。
【0150】[第5の実施形態]次に、本発明の第5の
実施形態につき図面を参照して説明する。
【0151】図18は、複合系計算機システムにおい
て、アプリケーションの引き継ぎ先を、動的に変更可能
な優先順位に従って決定する形態を説明するための図で
ある。ここでは、4台の計算機1800A,1800
B,1800C,1800Dから構成される複合系計算
機システムを前提としている。
【0152】各計算機1800A〜1800Dには、前
記第4の実施形態で述べた図11と同様の構成のHAス
クリプト実行機構1810に加えて、各計算機1800
A〜1800DのHAグループ内の状態(アプリケーシ
ョンの引き継ぎの優先順位等)を格納しておくHA状態
テーブル1820が設けられる。このHA状態テーブル
1820に格納される各計算機1800A〜1800D
のHAグループ内の状態には、HAグループ内でアプリ
ケーションの実行中であることを示す“実行中”、(実
行中の計算機が障害を起こした場合における)HAグル
ープ内でのアプリケーションの引き継ぎの優先度(優先
順位)を表す“優先度1”〜“優先度4”(数値が小さ
いほど高優先度)、障害が検出されていることを示す
“障害検出”、HAグループから切り離されていること
を示す“切り離し”等がある。
【0153】また、HAシナリオのシステム記述並びに
サービス記述内で使用可能なHA状態テーブル参照記
述、HAシナリオのシステム記述並びにサービス記述内
にあるHA状態テーブル更新記述、HAスクリプトから
使用可能なHA状態テーブル参照コマンド並びに更新コ
マンドが用意される。
【0154】また、HAスクリプト実行機構1810に
は、計算機の組み込み時に、組み込まれる計算機に対し
てHA状態テーブル1820の内容を配布する機能(H
A状態テーブル配布機能)と、新HAグループの作成時
に、HA状態テーブル1820の内容を初期化する機能
(HA状態テーブル初期化機能)が付加されている。
【0155】さて、(前記第1の実施形態におけるHA
シナリオ110に相当する)HAシナリオ(内のシステ
ム記述及びサービス記述)には、HA状態テーブル18
20の更新のため、図19に示すようなHA状態テーブ
ル更新記述1900が含まれている。このHA状態テー
ブル更新記述1900は、HAグループ内でのHA状態
テーブル(1820)の更新が全て同一のため、計算機
によらずに共通に記述される。
【0156】HA状態テーブル更新記述1900中の"g
et s=state(outcpu)" は、HA状態テーブルを参照し
て、障害が検出された計算機(outcpu)のHAグループ内
の状態を変数sとして取得することを指示するHA状態
テーブル参照コマンド1901である。
【0157】また、"get t=state(host)" は、HA状態
テーブルを参照して、 host=cpu1〜cpu4で示される各計
算機1800A〜1800Dのそれぞれについて、その
計算機(host)のHAグループ内の状態を変数tとして取
得することを指示するHA状態テーブル参照コマンド1
902である。
【0158】HA状態テーブル更新記述1900中に
は、上記参照コマンド1901〜1902に従って取得
した、障害が検出された計算機(outcpu)のHAグループ
内の状態sが、“実行中”、“優先度1”、“優先度
2”、“優先度3”、または“優先度4”のいずれであ
るかにより、hostで示される計算機のHA状態テーブル
1820の状態をどのように更新するかを指示するHA
状態テーブル更新コマンド群1911〜1915が含ま
れている(図では一部省略されている)。
【0159】HA状態テーブル更新コマンド群1911
〜1915は、hostで示される計算機のHA状態テーブ
ル1820の状態を、上記参照コマンド1901,19
02に従って取得した当該計算機(host)のHAグループ
内の状態tに応じて決定するためのHA状態テーブル更
新コマンドの集合である。例えば、HA状態テーブル更
新コマンド群1911では、障害が検出された計算機(o
utcpu)が“実行中”の場合に、hostで示される計算機の
状態を、当該hostで示される計算機の現在の状態が“実
行中”ならば“障害検出”とし、“優先度1”ならば
(アプリケーション引き継ぎのために)“実行中”と
し、“優先度2”ならば“優先度1”とし、“優先度
3”ならば“優先度2”とし、“優先度4”ならば“優
先度3”とすることが指示される。他のHA状態テーブ
ル更新コマンド群1912〜1915も同様であり、障
害が検出された計算機(outcpu)の状態とhostで示される
計算機の状態が一致しているならば、当該hostで示され
る計算機の状態を“障害検出”とし、それ以外の場合に
は、hostで示される計算機の状態を、当該計算機の現在
の状態より1つ上の状態とすることが指示される。
【0160】また、HAシナリオには、(前記第1の実
施形態におけるサービス記述113に相当する)図20
に示すようなサービス記述2000が含まれている。こ
のサービス記述2000には、障害検出時の処理が記述
されている。
【0161】図20中の"syncaction ( cpu1|cpu2|cp
u3|cpu4 , TakeOver1| TakeOver2| TakeOver3| Tak
eOver4 )" は、処理をする計算機と、その計算機がどの
引き継ぎ要求(テイクオーバ)のイベントに対して処理
をするかを、cpu1〜cpu4の4計算機と、 TakeOver1〜Ta
keOver4 の4イベントの合計4×4=16通りの組み合
わせについて共通化して記述したものである。
【0162】また、"set outcpu=event.cpu"は、障害が
検出された計算機(event.cpu) を変数outcpuとして設定
するための記述部分である。
【0163】また、"get s=state(event.cpu)"は、障害
が検出された計算機(event.cpu) のHA状態テーブル内
の状態を取得して変数sとして設定することを指示する
HA状態テーブル参照コマンド2001である。
【0164】また、"if(s=="実行中")から始まる記述2
002は、変数sで示されるHA状態テーブルの状態、
即ち障害が検出された計算機(event.cpu) のHA状態テ
ーブルの状態が実行中である場合に、cpu1〜cpu4のうち
の自系(localcpu)の状態に応じてどのような処理をする
のかを記述したものである。この記述2002は、自系
のHA状態テーブル内の状態を変数tとして取得するこ
とを指示するHA状態テーブル参照コマンド2003を
含む。
【0165】さて、図18の複合系計算機システムにお
いて、同図(a)に示すように、計算機1800A〜1
800Dのうち計算機1800DだけがHAグループか
ら外れているものとする。
【0166】このような状態では、HAグループ内の計
算機1800A〜1800Cに設けられている(システ
ム内の各計算機1800A〜1800Dの引き継ぎの優
先順位等を格納している)HA状態テーブル1820の
内容は、図18(a)に示すように全て同一となるよう
に制御される。具体的には、HAグループへの計算機の
組み込み時には、その組み込まれる計算機のHA状態テ
ーブル1820の内容を、HAグループ内の各計算機の
HA状態テーブル1820と同一に保つために、その組
み込まれる計算機にHAグループ内の各計算機からHA
状態テーブル1820の内容が配布される。これは、計
算機の組み込み要求HAイベントに伴う組み込み処理の
一部として行われる。
【0167】ここでは、各計算機1800A〜1800
C上のHA状態テーブル1820の内容から明らかなよ
うに、計算機1800Bがアプリケーション1830の
実行中であり、アプリケーションの引き継ぎの優先度が
計算機1800Aは優先度1に、計算機1800Cは優
先度2に設定されているものとする。このHA状態テー
ブル1820の内容は、HAスクリプトの実行に伴って
適宜参照、更新される。
【0168】ここで、図18(a)に示すように、計算
機1800A,1800C,1800Dで(アプリケー
ション1830を実行中の)計算機1800Bの障害検
出イベント1840が発生したものとする。
【0169】すると計算機1800A,1800C,1
800Dのうち、HAグループに入っている計算機18
00A,1800C内のHAスクリプト実行機構181
0は、図18(b)に示すように、計算機1800Bの
障害検出イベント1840に対するHAスクリプト18
50を実行する。
【0170】この例では、アプリケーションの引き継ぎ
の優先度が、計算機1800Aは優先度1に、計算機1
800Cは優先度2に設定されていることから、計算機
1800Bで実行されていたアプリケーション1830
は、図18(c)に示すように計算機1800Aに引き
継がれ、当該計算機1800Aが実行中となるように、
計算機1800A,1800C上のHA状態テーブル1
820の内容が更新される。また、計算機1800Cの
優先度は優先度2から優先度1に更新される。また、障
害が検出された計算機1800BはHAグループから切
り離され、計算機1800A,1800C上のHA状態
テーブル1820における計算機1800Bの状態は、
“実行中”から“障害検出”に更新される。
【0171】このように本実施形態においては、障害検
出イベント発生時におけるアプリケーションの引き継ぎ
先(即ちHAイベント発生時の動作内容)をHA状態テ
ーブル1820の示すHAグループ(内の各計算機)の
状態によって決定する(変化させる)ことができる。
【0172】以上はシステム内にHAグループが最大1
つだけ存在する場合について説明したが、互いに交わら
ない複数のHAグループ(即ち、共通の計算機を構成要
素としない複数のHAグループ)を設定することも可能
である。
【0173】図21は、図18のシステムにおいて、計
算機1800Aと計算機1800Cで1つのHAグルー
プ2101を構成し、計算機1800Bと計算機180
0Dで別のHAグループ2102を構成している例を示
す。
【0174】図21のようなHAグループ構成では、そ
れぞれのHAグループ2101,2102で、独立にH
A状態テーブル1820の内容を更新することが可能と
なり、HAイベント発生時の動作内容を、HAグループ
毎に異なったHAグループの状態によって決定すること
が可能となる。
【0175】[第6の実施形態]次に、本発明の第6の
実施形態につき図面を参照して説明する。
【0176】図22は、複合系計算機システムにおい
て、HAイベント発生時の処理のエラーリカバリを可能
とした形態を説明するための図である。
【0177】図22において、各計算機2200A〜2
200Dには、前記第4の実施形態で述べた図11と同
様の構成のHAスクリプト実行機構2210が設けられ
ており、このHAスクリプト実行機構2210には、H
Aイベントに対するHAスクリプト(例えば、障害検出
HAイベント2240に対するHAスクリプト222
0)が終了した後、HAグループ内でその終了状態を通
知し、必要な他系の終了状態を全て受信したならば、エ
ラーリカバリ用のHAスクリプト2230を実行する機
能が付加されている。ここで、HAスクリプトの終了状
態には、HAスクリプトが正常終了したことを示す状態
(正常終了)、異常終了したことを示す状態(異常終
了)、計算機に障害が発生したことを示す状態(障害検
出)、及びその計算機がHAグループに入っていないこ
とを示す状態(HAグループ切り離し)の4種がある。
【0178】また、本実施形態で適用されるHAシナリ
オのシステム記述及びサービス記述には、エラーリカバ
リ処理記述部が用意されている。このエラーリカバリ処
理記述部では、HAイベントに対するHAスクリプトの
上記終了状態(各計算機で正常終了したか、異常終了し
たか、計算機に障害が発生したか、その計算機がHAグ
ループに入っていないか)を取得するためのコマンドが
記述できるようになっている。
【0179】次に、図22のシステムにおける各計算機
の基本的な動作について、図23のフローチャートを参
照して説明する。
【0180】図22のシステムでは、何らかのHAイベ
ントが発生すると、各計算機、例えば計算機2200A
〜2200D(障害検出HAイベントの場合には、障害
が検出された計算機を除く)内のHAスクリプト実行機
構2210で対応するHAスクリプトが実行される(ス
テップS61)。
【0181】HAスクリプト実行機構2210は、HA
スクリプトを実行すると、自系のHAスクリプトの終了
状態を他系に通知する(ステップS62)。
【0182】HAスクリプト実行機構2210は、HA
グループに入っていないか、障害が検出された計算機以
外の全てのHAスクリプト終了状態の通知を待ち合わせ
る(ステップS63)。
【0183】HAスクリプト実行機構2210は、HA
グループに入っていないか、障害が検出された計算機以
外の全てのHAスクリプトを受信すると、その受信した
終了状態(正常終了、異常終了、障害検出、HAグルー
プ切り離し)と計算機の組を引数として、エラーリカバ
リ用のHAスクリプト2230を実行する(ステップS
64)。このステップS64では、エラーリカバリ用の
HAスクリプト2230に従い、適切なエラー処理が選
択され、実行される。なお、発生したHAイベントに基
づいて実行されたHAスクリプトがHAグループ内で全
て正常終了した場合には、エラーリカバリ用のHAスク
リプト2230自体は実行されるものの、実質的には何
も行われない設定となっている。
【0184】次に、エラーリカバリの具体例につき、計
算機2200Aに障害が発生した場合を例に説明する。
【0185】まず、計算機2200A〜2200DがH
Aグループに入っているものとする。この状態で、計算
機2200Aに障害が発生し、その結果、HAグループ
内の他の計算機2200B〜2200Dで、図22
(a)に示すように計算機2200Aの障害検出HAイ
ベント2240が発生したものとする。
【0186】すると、各計算機2200B〜2200D
内のHAスクリプト実行機構2210は、図22(b)
に示すように、障害検出HAイベント2240に対する
HAスクリプト2220を実行する。
【0187】本実施形態では、計算機2200Aで動作
していたアプリケーションを計算機2200Bに引き継
ぐようにHAシナリオが記述されているものとする。こ
の場合、計算機2200BはHAスクリプト2220の
実行により、本来ならば計算機2200Aで動作してい
たアプリケーションを引き継ぐことになる。ところが本
実施形態では、計算機2200BでのHAスクリプト2
220の実行が図22(b)に示すように異常終了し、
当該計算機2200Bへの引き継ぎ2241に失敗した
ものとする。
【0188】計算機2200Bへの引き継ぎ2241に
失敗した場合、当該計算機2200Bから他系に対し、
図22(b)に示すようにHAスクリプト(2220)
の異常終了通知2242がなされる。一方、計算機22
00C,2200DではHAスクリプト2220の実行
が正常終了したものとすると、計算機2200C,22
00Dから他系に対し、図22(b)に示すようにHA
スクリプト(2220)の正常終了通知2243がなさ
れる。
【0189】各計算機2200B〜2200D(内のH
Aスクリプト実行機構2210)は、障害が検出された
計算機2200A以外の各計算機のHAスクリプト終了
状態を全て取得すると、その取得した終了状態と計算機
の組を引数として、図22(c)に示すようにエラーリ
カバリ用のHAスクリプト2230を実行する。
【0190】ここでHAシナリオには、計算機2200
Bへの引き継ぎに失敗した場合に、計算機200Cに引
き継ぐようにエラーリカバリするように記述されている
ものとする。このような場合、計算機2200C(内の
HAスクリプト実行機構2210)は、エラーリカバリ
用のHAスクリプト2230の実行により、計算機22
00BでのHAスクリプトが異常終了したことを得て、
図22(c)に示すように、障害が検出された計算機2
200Aで動作していたアプリケーションの引き継ぎ2
244を実行する。
【0191】[第7の実施形態]次に、本発明の第7の
実施形態につき図面を参照して説明する。
【0192】図24は、複合系計算機システムにおい
て、HAスクリプトの処理の一部として、疑似的にHA
イベントを発生させることで、1つのHAイベントに起
因して複数のHAスクリプトを実行可能とした形態を説
明するための図である。
【0193】本システムを構成する各計算機には、前記
第4の実施形態で述べた図11と同様の構成のHAスク
リプト実行機構(図示せず)が設けられており、当該H
Aスクリプト実行機構には、発生した疑似的なHAイベ
ント(疑似HAイベント)を、通常のHAイベントに先
立って受け付ける機能が付加されている。
【0194】また本システムでは、HAシナリオのシス
テム記述並びにサービス記述内で使用可能な疑似HAイ
ベント発生記述、(この疑似HAイベント発生記述に対
応する)HAスクリプトから使用可能な疑似HAイベン
ト発生コマンドが用意される。
【0195】このようなシステムでは、HAイベントが
発生し、そのHAイベントに対するHAスクリプトが各
計算機で実行されると、疑似HAイベント発生コマンド
に従って疑似HAイベントが発生される。この結果、H
Aスクリプトの実行が終了すると、当該HAスクリプト
の実行過程で発生した疑似HAイベントに対するHAイ
ベントが実行されることになる。
【0196】以下、疑似HAイベントの発生の具体列に
つき、図24を参照して説明する。
【0197】まず本実施形態で適用されるHAシナリオ
では、それぞれのサービス記述毎に、アプリケーション
の開始要求を別々のHAイベントとして定義し、個別に
アプリケーションの開始が指定できるものとする。そこ
で、全てのアプリケーションの開始要求のHAイベント
を、それらのHAイベントが疑似HAイベントとして発
生するように記述する。ここでは、全てのアプリケーシ
ョン(AP1,AP2)の開始要求のHAイベント24
00に対するHAスクリプト2401内に、アプリケー
ションAP1,AP2の開始要求の疑似HAイベント2
411,2412を発生するコマンドが用意されている
ものとする。また、疑似HAイベント2411,241
2に対するHAスクリプト2421,2422が用意さ
れているものとする。
【0198】このため、本システムにおいて、全てのア
プリケーションの開始要求のHAイベント2400が発
生すると、そのHAイベント2400に対するHAスク
リプト2401が実行されて、当該HAスクリプト24
10内で、アプリケーションAP1,AP2の開始要求
の疑似HAイベント2411,2412が発生する。
【0199】そして、全てのアプリケーションの開始要
求のHAイベント2400に対するHAスクリプト24
01の実行が終了すると、当該HAスクリプト2401
内で最初に疑似HAイベント2411として発生したア
プリケーションAP1の開始要求に対するHAスクリプ
ト2421が実行される。
【0200】次に、このアプリケーションAP1の開始
要求に対するHAスクリプト2421が終了すると、今
度は疑似HAイベント2412として発生したアプリケ
ーションAP2の開始要求に対するHAスクリプト24
22が実行される。その後、このアプリケーションAP
2の開始要求に対するHAスクリプト2422が終了す
る。
【0201】以上は、HAスクリプトの処理の一部とし
て、疑似的にHAイベントを発生させる例として、アプ
リケーションの開始要求の疑似HAイベントを発生させ
る場合について説明したが、これに限るものではなく、
例えばアプリケーションの通常引き継ぎ要求(スイッチ
オーバ)を、アプリケーションの停止要求と、開始要求
の各々の疑似HAイベントとして発生させることも可能
である。これは、HAシナリオ内で、そのように記述す
ることで実現できる。
【0202】[第8の実施形態]そこで、アプリケーシ
ョンの通常引き継ぎ要求(スイッチオーバ)を、アプリ
ケーションの停止要求と、開始要求の各々の疑似HAイ
ベントとして発生させる第8の実施形態につき、図25
を参照して説明する。
【0203】図25は、計算機2500Aから計算機2
500Bへのアプリケーションのスイッチオーバの例を
示すもので、まず計算機2500A,2500Bで、そ
れぞれスイッチオーバのHAイベント2510が発生
し、そのHAイベント2510に対するHAスクリプト
2511が実行されたものとする。このHAスクリプト
2511内では、アプリケーションの計算機2500A
での停止要求の疑似HAイベント2521と、アプリケ
ーションの計算機2500Bでの開始要求の疑似HAイ
ベント2522とが順に発生される。
【0204】そして、スイッチオーバのHAスクリプト
2511の実行が終了すると、当該HAスクリプト25
11内で最初に疑似HAイベント2521として発生し
たアプリケーションの計算機2500Aでの停止要求に
対するHAスクリプト2531が実行される。
【0205】次に、このアプリケーションの計算機25
00Aでの停止要求のHAスクリプト2531が終了す
ると、今度は疑似HAイベント2522として発生した
アプリケーションの計算機2500Bでの開始要求に対
するHAスクリプト2532が実行される。その後、こ
のアプリケーションの計算機2500Bでの開始要求に
対するHAスクリプト2532が終了する。
【0206】このように本実施形態においては、スイッ
チオーバの処理と、開始要求、停止要求の処理とを共通
化することで、HAシナリオの作成を容易にすることが
できる。
【0207】また、スイッチオーバの処理を2つのHA
イベント(2521,2522)に対する処理として分
けることにより、停止処理が終了してから開始処理が開
始されることが保証される。
【0208】以上、HAスクリプトの処理の一部とし
て、疑似HAイベントを発生させる第7及び第8の実施
形態につき説明した。このHAスクリプトから疑似HA
イベントを発生させる技術を前記第6の実施形態に適用
し、エラーリカバリ用のHAスクリプトからも疑似HA
イベントを発生させることで、エラーリカバリに失敗し
た場合のエラーリカバリを実現することができる。
【0209】[第9の実施形態]そこで、エラーリカバ
リ用のHAスクリプトからも疑似HAイベントを発生さ
せることで、エラーリカバリに失敗した場合のエラーリ
カバリを可能とする第9の実施形態につき、図26及び
図27を参照して説明する。
【0210】本実施形態が、前記第6の実施形態と異な
る点は、エラーリカバリ用のHAスクリプトから、アプ
リケーションの引き継ぎ要求(テイクオーバ)が疑似H
Aイベントとして発生するように構成されていることで
あり、処理の基本は、前記第6及び第7の実施形態で適
用された処理の流れを合わせた形となる。
【0211】図26及び図27の例では、(前記第6の
実施形態における計算機2200A〜2200Dに相当
する)計算機2600A〜2600DがHAグループに
入っており、そのうちの計算機2600Aに障害260
1が発生した結果、HAグループ内の他の計算機260
0B〜2600Dで、計算機2600Aの障害検出HA
イベント2610が発生した場合を想定している。
【0212】さて、計算機2600B〜2600Dで計
算機2600Aの障害検出HAイベント2610が発生
すると、図26に示すように、その障害検出HAイベン
ト2610に対するHAスクリプト2611が、当該計
算機2600B〜2600Dで実行される。このHAス
クリプト2611では、計算機2600A(名前がAの
計算機)で動作していたアプリケーションを計算機26
00B(名前がBの計算機)に引き継ぐようになってい
るが、当該計算機2600BでのHAスクリプト261
1の実行が異常終了して、図26の例のように当該計算
機2600Bへの引き継ぎ2612が失敗したものとす
る。
【0213】エラーリカバリ用のHAスクリプト261
3内では、計算機2600C(名前がCの計算機)への
テイクオーバ(障害時引き継ぎ要求)の疑似HAイベン
ト2614が発生するものとする。この場合、エラーリ
カバリ用のHAスクリプト2613の実行が終了する
と、各計算機2600B〜2600Dでは、当該HAス
クリプト2613内で疑似HAイベント2614として
発生した計算機2600Cへのテイクオーバに対するH
Aスクリプト2615が実行される。
【0214】HAスクリプト2615では、計算機26
00Aで動作していたアプリケーションを計算機260
0Cに引き継ぐようになっているが、当該計算機260
0CでのHAスクリプト2615の実行が異常終了し
て、図26に示すように当該計算機2600Cへの引き
継ぎ2616が失敗したものとする。
【0215】計算機2600Cへの引き継ぎ2616に
失敗した場合、当該計算機2600Cから他系に対し、
HAスクリプト(2615)の異常終了通知がなされ
る。一方、計算機2600B,2600DではHAスク
リプト2615の実行が正常終了したものとすると、計
算機2600B,2600Dから他系に対し、HAスク
リプト(2615)の正常終了通知がなされる。
【0216】各計算機2600B〜2600Dは、障害
が検出された計算機2600A以外の各計算機のHAス
クリプト終了状態を全て取得すると、その取得した終了
状態と計算機の組を引数として、図27に示すように、
計算機2600Cへのテイクオーバに対するエラーリカ
バリ用のHAスクリプト2617を実行する。
【0217】エラーリカバリ用のHAスクリプト261
7内では、計算機2600D(名前がDの計算機)への
テイクオーバの疑似HAイベント2618が発生するも
のとする。この場合、エラーリカバリ用のHAスクリプ
ト2617の実行が終了すると、各計算機2600B〜
2600Dでは、当該HAスクリプト2617内で疑似
HAイベント2618として発生した計算機2600D
へのテイクオーバに対するHAスクリプト2619が実
行される。
【0218】HAスクリプト2619では、計算機26
00Aで動作していたアプリケーションを計算機260
0Dに引き継ぐようになっており、当該計算機2600
DでのHAスクリプト2619の実行が正常終了した結
果、図27に示すように当該計算機2600Dへの引き
継ぎ2620が成功したものとする。この場合、各計算
機2600B〜2600Dでは、計算機2600Dへの
テイクオーバに対するエラーリカバリ用のHAスクリプ
ト2621が実行されるが、計算機2600Dへの引き
継ぎ2620に成功していることから、実質的には何も
行われない。
【0219】以上、HAスクリプト内で疑似的にHAイ
ベントを発生させる第7乃至第9の実施形態について説
明した。ここでは、疑似HAイベントは、HAイベント
の発生に同期して発生することから、1つのHAイベン
トが発生すると、一連のHAスクリプトが次々に実行さ
れることになる。したがって、もし疑似HAイベントの
無限ループがあると、一連のHAスクリプトの実行は永
久に停止しないという問題が発生する。
【0220】このような問題は、そもそもHAシナリオ
の書き方に起因して発生するわけであるが、従来のコン
パイラ技術(例えば、構文解析など)では、この不具合
を検出することはできない。しかも、該当するHAイベ
ントが発生するまでは現象が現われないため、運用開始
後も障害が発生するまでは発見されない場合が多い。
【0221】[第10の実施形態]そこで、(前記第1
の実施形態におけるHAシナリオコンパイラ140に相
当する)HAシナリオコンパイラにHAイベントの無限
ループを検出する機能を持たせた実施形態について図2
8を参照して説明する。
【0222】図28に示すHAシナリオコンパイラは、
(前記第1の実施形態におけるHAシナリオ110に相
当する)HAシナリオの構文解析を行う構文解析部28
01、構文解析の結果を受けて内部構造(内部形式の中
間コード)に展開する展開部2802、HAイベントを
非同期に発生するものと、疑似HAイベントとして発生
するものとに区別(分類)するHAイベント分類部28
03、疑似HAイベントの呼び出し関係のグラフを作成
するHAイベント呼び出し関係グラフ作成部2804、
疑似HAイベントの呼び出し関係のグラフからループの
存在を判定するループ判定部2805、及びループ判定
部2805の判定結果をもとにエラーメッセージを出力
するエラー出力部2806を備えている。なお図28で
は、展開された内部構造を最適化して目的のHAスクリ
プト集合をなすコード列を生成する最適化部等は省略さ
れている。
【0223】次に、図28の構成のHAシナリオコンパ
イラの動作を、図29のフローチャートを参照して説明
する。
【0224】まずHAシナリオコンパイラ内の構文解析
部2801は、HAシナリオを読み込み構文解析を行う
(ステップS71)。展開部2802は、構文解析部2
801により構文解析された結果を受けて内部構造に展
開する(ステップS72)。これにより、例えば複数の
HAイベントに共通化された記述が、複数のスクリプト
に対応する記述に展開される。
【0225】HAイベント分類部2803は、展開部2
801により展開された内部構造から、HAイベント
を、障害やオペレータ入力に起因して非同期に発生する
ものと、疑似HAイベントとして発生するものとに区別
する(ステップS73)。
【0226】HAイベント呼び出し関係グラフ作成部2
804は、HAイベント分類部2803の分類結果をも
とに、疑似HAイベント発生記述を探索し、HAイベン
トの呼び出し関係のグラフを作成する(ステップS7
4)。
【0227】ループ判定部2805は、HAイベントの
呼び出し関係のグラフを対象に深さ優先の探索を行うこ
とで、非同期に発生するHAイベントを判定し、そこか
ら始まるループ(疑似HAイベントの無限ループ)の存
在を判定する(ステップS75)。
【0228】エラー出力部2806は、ループ判定部2
805によりループの存在が判定された場合、エラーメ
ッセージを出力し、HAシナリオコンパイラでの動作を
停止する(ステップS76)。
【0229】このように本実施形態においては、HAシ
ナリオの記述内容の意味の確認をHAイベントの呼び出
し関係について行って、疑似HAイベントの無限ループ
の存在を検出することで、当該無限ループの存在のため
に、一連のHAスクリプトの実行が永久に停止しないと
いう不具合の発生を防止できる。
【0230】ところで、HAシナリオにおけるデバイス
名の書き間違い、オプションの書き間違いなど(HAシ
ナリオの記述内容の誤り)は、これらがOS(オペレー
ティングシステム)やアプリケーションに依存するた
め、通常のコンパイラ技術では検出できない。
【0231】[第11の実施形態]そこで、HAシナリ
オにおけるデバイス名の書き間違い、オプションの書き
間違いなどを検出可能とした実施形態について、図30
を参照して説明する。
【0232】図30に示すHAシナリオコンパイラは、
HAシナリオの構文解析を行う構文解析部3001、構
文解析の結果を受けて内部構造(内部形式の中間コー
ド)に展開する展開部3002、各計算機の処理での操
作を抽出する操作抽出部3003、各計算機の処理での
操作(HA状態テーブルの操作、ディスク操作、ネット
ワーク操作、アプリケーション操作など)で使用される
引数に期待される値を計算機毎に格納してある基準引数
値データベース3004、抽出された操作で使用される
引数の正当性を判定する引数判定部3005、及び引数
判定部3005の判定結果をもとにエラーメッセージを
出力するエラー出力部3006を備えている。なお図3
0では、展開された内部構造を最適化して目的のHAス
クリプト集合をなすコード列を生成する最適化部等は省
略されている。
【0233】次に、図30の構成のHAシナリオコンパ
イラの動作を、図31のフローチャートを参照して説明
する。
【0234】まずHAシナリオコンパイラ内の構文解析
部3001は、HAシナリオを読み込み構文解析を行う
(ステップS81)。展開部3002は、構文解析部3
0001により構文解析された結果を受けて内部構造に
展開する(ステップS82)。これにより、例えば複数
の計算機に共通化された記述が、複数のスクリプトに対
応する記述に展開される。
【0235】操作抽出部3003は、展開部2801に
より展開された内部構造から、各計算機の処理に関し
て、該当する操作(HA状態テーブルの操作、ディスク
操作、ネットワーク操作、アプリケーション操作など)
を探索し、抽出する(ステップS83)。
【0236】引数判定部3005は、操作抽出部300
3により抽出された、各計算機の処理に関する各操作に
ついて、その引数が正当なものであるか否かを、基準引
数値データベース3004を参照することで判定する
(ステップS84)。
【0237】エラー出力部3006は、引数判定部30
05により、HA状態テーブルの操作、ディスク操作、
ネットワーク操作、アプリケーション操作などで正当で
ない引数の使用が判定された場合、エラーメッセージを
出力し、HAシナリオコンパイラでの動作を停止する
(ステップS85)。
【0238】このように本実施形態においては、HAシ
ナリオの記述内容の正しさの確認を、HA状態テーブル
の操作、ディスク操作、ネットワーク操作、アプリケー
ション操作などで使用される引数について行うことで、
HAシナリオにおけるデバイス名の書き間違い、オプシ
ョンの書き間違いなどの不具合が、実際のシステムを構
築しなくても、HAシナリオのコンパイルの段階で検出
できる。
【0239】[第12の実施形態]次に、HAシナリオ
の正当性を、HA状態テーブルを利用して検査するよう
にした実施形態について、図32を参照して説明する。
【0240】まず、HAスクリプトが実行時に処理を変
化させる要因はHA状態テーブルの内容のみである。そ
のため、HAシナリオからHA状態テーブルの操作に関
係する部分のみを抽出して、当該HAシナリオの制御の
戦略の正当性を、HA状態テーブルの観点から検査する
ことが可能である。
【0241】そこで本実施形態におけるHAシナリオコ
ンパイラ内には、図32に示すように、(図30中の構
文解析部3001及び展開部3002に相当する)構文
解析部3201及び展開部3202に加えて、HA状態
テーブルの操作に関係する処理のみを抽出する抽出部
(HA状態テーブル操作関連処理抽出部)3203、抽
出されたHA状態テーブルの操作が各計算機で同一であ
るか否かを判定する同一操作判定部3204、抽出され
たHA状態テーブルの操作が指定された条件(インタロ
ック)を保つか否かを判定するインタロック判定部32
05、及び判定部3204,3205の判定結果をもと
にエラーメッセージを出力するエラー出力部3206が
設けられている。ここでインタロックの条件(HA状態
テーブルが満たすべき条件)はHAシナリオに記述され
ており、例えば同時に複数の計算機で同一のアプリケー
ションが稼働状態にならないとか、優先度が同じ計算機
は存在してはならないなどである。
【0242】次に、図32の構成のHAシナリオコンパ
イラの動作を、図33及び図34のフローチャートを参
照して説明する。
【0243】まずHAシナリオコンパイラ内の構文解析
部3201は、HAシナリオを読み込み構文解析を行う
(ステップS91)。展開部3202は、構文解析部3
2001により構文解析された結果を受けて内部構造に
展開する(ステップS92)。これにより、例えば複数
の計算機に共通化された記述が、複数のスクリプトに対
応する記述に展開される。
【0244】HA状態テーブル操作関連処理抽出部32
03は、展開部2801により展開された内部構造か
ら、各計算機におけるHA状態テーブルの操作に関係す
る処理を全て抽出する(ステップS93)。
【0245】同一操作判定部3204は、抽出されたH
A状態テーブル操作(の内容)が各計算機で同一である
か否かを判定する(ステップS94)。
【0246】もし、抽出された操作が各計算機で同一で
あるならば、インタロック判定部3205に制御が渡さ
れる。
【0247】インタロック判定部3205は、上記抽出
されたHA状態テーブル操作が行われたものとした場合
に、各計算機でインタロックを保つか否かを判定する
(ステップS95)。このインタロック判定部3205
でのインタロック判定の詳細を図34のフローチャート
に従って説明する。
【0248】まずインタロック判定部3205は、HA
状態テーブルのとり得る内容を各計算機について全て求
め、その組み合わせのリストを作成する(ステップS1
01)。これにより、例えば4台の計算機からなる複合
系計算機システムで、各計算機について、実行中、優先
度1、優先度2、優先度3、優先度4、切り離し、障害
検出の7つの状態がある場合であれば、合計7×7×7
×7=2401通りの状態の組み合わせからなるリスト
が作成される。
【0249】次にインタロック判定部3205は、作成
した状態の組み合わせのリストの中から、インタロック
に符合していない組み合わせ(複数の計算機で優先度が
同一の組み合わせなど)を削除する(ステップS10
2)。
【0250】次にインタロック判定部3205は、上記
リスト中の残されている組み合わせの(各計算機での)
各状態に対して、(上記ステップS93で)HA状態テ
ーブル操作関連処理抽出部3203により抽出されたH
A状態テーブルの操作を施し、その結果を保存する(ス
テップS103)。
【0251】そしてインタロック判定部3205は、H
A状態テーブルの操作を施した後の各状態の組み合わせ
が、上記リスト中の残されている全組み合わせの部分と
なっているか否かを調べ、部分となっている場合だけ、
各計算機でのHA状態テーブルの操作がインタロックを
保つものと判定する(ステップS104)。
【0252】さて、インタロック判定部3205にて、
各計算機でのHA状態テーブルの操作がインタロックを
保たないと判定された場合、或いは同一操作判定部32
04にて、各計算機でのHA状態テーブルの操作が同一
でないと判定された場合には、HAシナリオが正当性に
欠けているものとして、エラー出力部3206からエラ
ーメッセージが出力されて、HAシナリオコンパイラで
の動作が停止される(ステップS96)。
【0253】このように本実施形態においては、HAシ
ナリオの記述内容の意味の確認として、全ての計算機で
同じHAイベントに対しては同じHA状態テーブルの操
作をすることの確認を行うことで、HA状態テーブルが
HAグループ内の計算機で同一であることを保証するこ
とができる。なお、インタロックは制御の分野で従来か
らよく使用されているが、本実施形態では実行時にこれ
を適用するのではなく、コンパイル時に適用し、HAシ
ナリオの正当性を高度に保証するようにしたことに特徴
がある。
【0254】ところで、共有装置に対する操作がHAシ
ナリオに含まれている場合、複数の計算機から行われる
操作の整合性を検査することは重要である。しかし、従
来のコンパイラ技術では対処できない。
【0255】[第13の実施形態]そこで、共有装置に
対する操作の不整合性を検出するようにした実施形態に
ついて、図35を参照して説明する。
【0256】本実施形態におけるHAシナリオコンパイ
ラ内には、図35に示すように、(図30中の構文解析
部3001及び展開部3002に相当する)構文解析部
3501及び展開部3502に加えて、共有装置の操作
記述を抽出する共有装置操作記述抽出部3503、抽出
された共有装置装置記述の組に対して操作の整合性を判
定する共有装置操作整合性判定部3504、及び判定部
3504の判定結果をもとにエラーメッセージを出力す
るエラー出力部3505が設けられている。
【0257】図35の構成において、共有装置操作記述
抽出部3503は、構文解析部3501、展開部350
2を通してHAシナリオから得られた内部構造を探索し
て共有装置(例えば共有ディスク)の操作記述を全て抽
出する。この共有装置の操作記述は、HA状態テーブル
の内容によって条件付けられて記述されることが多い。
したがって、単にその記述があるか否かだけから判断す
ることはできず、異なる計算機の処理に対して、同時に
条件が成立するか否かを判定する必要がある。
【0258】そこで共有装置操作整合性判定部3504
は、HA状態テーブルの内容が各計算機上で全て同一で
あることを利用して、異なる計算機間の条件を比較す
る。特に、HAシナリオ内に前記第12の実施形態で述
べたようなインタロック(HA状態テーブルが満たすべ
き条件)が記述されているならば、これも条件の比較に
利用する。即ち共有装置操作整合性判定部3504は、
共有装置操作記述抽出部3503により抽出された共有
装置操作記述の中から、同時に成立する可能性のある条
件が付けられた共有装置操作記述の組、つまり1つのH
Aイベントに対する各計算機における処理で、同時に実
行される可能性のある共有装置操作記述の組を全て洗い
出し、その組に対して操作の整合性を判定する。
【0259】もし、共有装置操作整合性判定部3504
で、同一のアドレスを複数の計算機がネットワークに設
定すること(ネットワークアドレスの不整合性)や、共
有ディスクを複数の計算機が同時に確保するといったこ
とが検出された結果、整合性なし(不整合)が判定され
た場合には、エラー出力部3505からエラーメッセー
ジが出力されて、HAシナリオコンパイラでの動作が停
止される。
【0260】このように本実施形態においては、HAシ
ナリオの記述内容の意味の確認を共有装置の操作につい
て行うことで、当該操作の不整合性の発生を防止するこ
とができる。
【0261】図36に共有装置操作記述の例を示す。
【0262】図36において、"get s=state(event.cp
u)"の記述3601は、障害が検出された計算機(event.
cpu) について、自系のHA状態テーブル内の状態を変
数sとして取得することを指示するHA状態テーブル参
照コマンドである。
【0263】また、"if(s=="実行中")" から始まる記述
3602は、変数sで示されるHA状態テーブルの状
態、即ち障害が検出された計算機(event.cpu) のHA状
態テーブルの状態が“実行中”である場合に、各計算機
(localcpu)が行うべき処理を記述したものである。
【0264】ここで、HA状態テーブルの内容は全ての
計算機で同一であることから、上記"if(s=="実行中")"
で示される条件は、全ての計算機について同時に成立し
なければならず、これを整合性判定に利用する。
【0265】また、上記記述3602は、自系のHA状
態テーブル内の状態を変数(var) tとすると、そのtが
“優先度1”であるならば、"mktkdisk"という関数を呼
び出して、障害が検出された計算機(event.cpu) につな
がれていた(vg1 で識別される)共有ディスク(共有装
置)を自系(“優先度1”の計算機)に強制的("-f")
につなぐという引き継ぎを指示する記述3603を含
む。
【0266】ここで、“優先度1”の計算機は1つしか
ないというインタロックがあるので、変数tが“優先度
1”という条件は、2つ以上の計算機について同時に成
立してはならず、これを整合性判定に利用する。
【0267】以上、HAシナリオコンパイラにHAシナ
リオの正当性を保証するための各種判定機能を持たせた
第10乃至第13の実施形態につき説明したが、これら
の実施形態では、変数で記述されたHAイベントや引
数、代入文、条件文などに対しては解析が不能になる可
能性がある。
【0268】[第14の実施形態]そこで、変数で記述
されたHAイベントや引数、代入文、条件文などに対し
ても、前記第10乃至第13の実施形態で適用した判定
機構を有効に機能させるための実施形態について、図3
7を参照して説明する。
【0269】まず本実施形態では、前記第10乃至第1
3の実施形態におけるHAシナリオコンパイラの展開部
(2802,3002,3202,3502)に、図3
7に示すように第1変数−定数置換部3701、第2変
数−定数置換部3702及び定数伝播部3703を追加
している。
【0270】第1変数−定数置換部3701は、計算機
に関して共通化された記述を内部的に展開した際に、自
系を指す特別な変数を定数に置き換えるものである。こ
の第1変数−定数置換部3701の処理を、例えば前記
第1の実施形態において切り離しHAイベントに対する
処理を共通化して記述したHAシナリオ中のサービス記
述113(図6参照)に対して適用するならば、"local
cpu"という自系を指す特別な変数は全てcpu1〜cpu4のい
ずれかに置き換え可能であり、更にそれらの変数は全て
“A”〜“D”の実際の計算機の名前(定数)に置き換
え可能である。
【0271】第2変数−定数置換部3702は、HAイ
ベントに関して共通化された記述を内部的に展開した際
に、HAイベントの部分を指す特別な変数を定数に置き
換えるものである。この第2変数−定数置換部3702
の処理を、上記の変数−定数置換部3701と同様に、
図6に示した切り離しHAイベントに対する処理を共通
化して記述したHAシナリオ中のサービス記述113に
対して適用するならば、"event.cpu" というHAイベン
トの部分を指す特別な変数は全てcpu1〜cpu4のいずれか
に置き換え可能であり、更にそれらの変数は全て“A”
〜“D”の実際の計算機の名前(定数)に置き換え可能
である。
【0272】定数伝播部3703は、サービス記述及び
システム記述内で、変数に代入された定数を定数伝播す
るものである。この定数伝播部3703の処理を、例え
ば前記第2の実施形態においてサービス毎の記述を共通
化して記述した図8に示したようなHAシナリオに対し
て適用し、内部的に定数伝播を行うならば、各サービス
記述801〜803の部分804-1〜804-3(図8中
の(1),(2),(3)の部分)で参照されるmaster
及びslave という変数は全てcpu1〜cpu4のいずれかに置
き換え可能であり、更にそれらの変数は全て“A”〜
“D”の実際の計算機の名前(定数)に置き換え可能で
ある。
【0273】以上のように、計算機に関して共通化され
た記述、及びHAイベントに関して共通化された記述を
内部的に展開し、変数を定数に置き換え、またサービス
記述及びシステム記述内で代入された変数に定数伝播す
ることで、変数を用いた記述に対しても、前記第10乃
至第13の実施形態で適用したHAシナリオ記述の正当
性に対する判定機構を有効に機能させることができる。
【0274】なお、定数伝播は従来のコンパイラで適用
されていた手法であるが、もっぱら高速化のために最適
化の1つとして用いられているものである。これに対
し、本実施形態ではHAシナリオコンパイラにおけるエ
ラー解析(HAシナリオの正当性の判定)の精度を向上
させる目的で用いており、従来の定数伝播手法とは適用
の仕方及び効果が異なる。
【0275】この他、HAシナリオコンパイラにおける
エラー解析の精度向上のために、ループ文で書かれた記
述を内部的に展開し、ループ変数を定数に置き換えるた
めのループ変数−定数置換部(図示せず)をHAシナリ
オコンパイラに追加することも可能である。
【0276】ここで、ループ文で書かれた記述の一例を
図38に示す。この記述は、前記第7の実施形態のよう
に、全てのアプリケーションの開始要求を疑似HAイベ
ントとして発生させる場合のHAシナリオ記述であり、
sは全てのサービス(アプリケーション)の各々を表す
ループ変数であり、"event.cpu" は組み込まれる計算機
である。この図38のような記述は、サービスが追加さ
れたとしても変わらないので便利であるが、このままで
は、HAシナリオ記述の正当性を判定することは難し
い。
【0277】そこで、上記したループ変数−定数置換部
を、例えば前記第10の実施形態で適用したHAシナリ
オコンパイラ内(の展開部2802)に設け、ループ文
で書かれた記述を内部的に展開し、ループ変数をそれぞ
れの定数(ここではサービス名)に置き換えるようにす
るならば、(HAシナリオのエラー解析精度としての)
HAイベントの無限ループの検出精度を向上することが
できる。
【0278】また、HAシナリオコンパイラに、HAシ
ナリオの記述内容に従って各種障害発生時の動作を試行
する動作シミュレーション機構を設け、HAシナリオを
コンパイルして得られる各HAスクリプト(イベント処
理スクリプト)を配布する前に、当該動作シミュレーシ
ョン機構が、HAシナリオに記述された内容を解釈し
て、シミュレーションし、その際に現れた状態(HA状
態テーブルの内容)もしくは処理に矛盾がないかチェッ
クする構成とすることも可能である。
【0279】ここでは、まず初期状態から始めて、非同
期に発生する可能性のあるイベント(障害、ユーザオペ
レーション)を任意に組み合わせて、各HAスクリプト
を解釈する。このとき、例えば(HAグループ内の)各
計算機でのHA状態テーブルの内容が同一に保たれてい
るか、共有装置を2つ以上の計算機から同時に使用する
ようになっていないか、同一のサービス(アプリケーシ
ョン)を2つ以上の計算機で同時に実行していないか、
といった矛盾がないかをチェックする。
【0280】以上のシミュレーションは実際のシステム
が構築されていなくても、HAシナリオコンパイラ上で
実行できる。
【0281】なお、上記した動作シミュレーション機構
の他に、前記第11実施形態で適用したHAシナリオの
正当性の判定機構(HAシナリオの記述内容の正しさの
確認機構)、及び前記第10、第12及び第13実施形
態でそれぞれ適用したHAシナリオの正当性の判定機構
(HAシナリオの記述内容の意味の確認機構)を全てH
Aシナリオコンパイラに持たせることも可能である。
【0282】なお、前記第1の実施形態では、HAシナ
リオコンパイラでの成果物がHAイベント処理用のHA
スクリプト(の集合)である場合について説明したが、
これに限るものではない。
【0283】[第15の実施形態]そこで、HAイベン
ト処理用だけでなく、それ以外の目的で用いられる各種
スクリプト、更にはスクリプト以外の成果物がHAシナ
リオコンパイラにより生成される実施形態につき、図3
9を参照して説明する。
【0284】図39において、計算機3900は、プロ
グラム開発環境を提供するものである。この計算機39
00は、前記第1の実施形態における図1中の計算機1
00Aとは異なって、実システムを構成するものではな
いものとする。
【0285】計算機3900中のHAシナリオコンパイ
ラ3901はHAシナリオ3902を読み込んでコンパ
イルすることで、対象となる複合系計算機システム(こ
こでは、3台の計算機3910A〜3910Cから構成
される複合系計算機システム)のシステム構成を定義し
た設定ファイル3903、HAイベント処理用のHAス
クリプト3904(の集合)、これら設定ファイル39
03、HAスクリプト3904(の集合)及び次に述べ
るチェックスクリプト3906を、HAシナリオ390
2に記述された計算機名(サーバ名)で示される(複合
系計算機システムを構成する)各計算機(3910A〜
3910C)に配布するための配布スクリプト(プログ
ラム)3905、オンラインでの新シナリオの適用の可
否を決定するためのチェックスクリプト3906、及び
チェックシート3907の各成果物を生成する。チェッ
クシート3907は、実際にHAシナリオコンパイラに
記述された通りにシステムが構成されているか否かを、
人がチェックするためのチェック項目の一覧であり、計
算機3900からプリント出力(或いは表示出力)され
る。なお、設定ファイル3903及びHAスクリプト3
904は、複合系計算機システムを構成する各計算機別
に生成される。
【0286】計算機3900上のHAシナリオコンパイ
ラ3901により生成された上記成果物中の設定ファイ
ル3903、HAスクリプト3904、配布スクリプト
3905及びチェックスクリプト3906は、例えば磁
気テープ等の大容量記憶媒体に格納された後、図39に
おいて符号aで示すように、複合系計算機システム(実
システム)を構成する例えば3台の計算機3910A〜
3910Cの1つ(ここでは計算機3910B)に移動
され、その計算機(3910B)が持つ同種の大容量記
憶装置(ここでは磁気テープ装置)に装着される。な
お、各計算機3910A〜3910CはLAN3920
に接続されていることから、計算機3900も当該LA
N3920に接続されているならば、上記各成果物をL
AN3920を介して計算機3910B(計算機391
0A〜3910Cのいずれか)の大容量記憶装置に転送
するようにしても構わない。また、計算機3900が計
算機3910B(計算機3910A〜3910Cのいず
れか)の場合には、以上の成果物の移動は不要となる。
【0287】計算機3910Bは、HAシナリオコンパ
イラ3901により生成された上記各成果物のうちの配
布スクリプト3905を実行し、残りの成果物である設
定ファイル3903、HAスクリプト3904(の集
合)及びチェックスクリプト3906を、図39におい
て符号bで示すように、(HAシナリオ3902に記述
されている複合系計算機システムを構成するサーバ名
の)各計算機3910A〜3910Cの、一種のバッフ
ァとしての登録ディレクトリ3911に配送・コピーす
る。ここで、配布スクリプト3905自体も、HAシナ
リオ3902をコンパイルした結果の成果物であること
から、他の成果物である設定ファイル3903、HAス
クリプト3904(の集合)及びチェックスクリプト3
906の配布先が正しく設定でき、誤った配布先に配布
されるのを防止できる。なお、各計算機3910A〜3
910Cには、当該計算機3910A〜3910C用の
設定ファイル3903及びHAスクリプト3904(の
集合)だけが配送される。また、計算機3910Bから
計算機3910A,3910Cへの成果物配送は、LA
N3920を介して行われる。
【0288】計算機3910A〜3910Cは、自系の
登録ディレクトリ3911に配送された上記成果物のう
ち、設定ファイル3903及びHAスクリプト3904
を実使用のために自系の実使用ディレクトリ(実行用の
ディレクトリ)3912にコピーする。
【0289】次に計算機3910A〜3910Cは、自
系の登録ディレクトリ3911にあるチェックスクリプ
ト(3906)を実行し、当該登録ディレクトリ391
1にある設定ファイル(3903)及びHAスクリプト
(3904)と、自系の実使用ディレクトリ3912に
ある(登録ディレクトリ3911からコピーされた)設
定ファイル(3903)及びHAスクリプト(390
4)とを、図39において符号cで示すように比較す
る。
【0290】そして計算機3910A〜3910Cは、
自系の(実使用ディレクトリ3912内の)設定ファイ
ル(3903)が(登録ディレクトリ3911内のもの
とは)異なっているときは、(システムを一旦停止して
から)複合系計算機システムを構成するソフトウェアを
再起動する必要がある旨のメッセージを出力(例えば表
示出力)する。
【0291】また、自系の(実使用ディレクトリ391
2内の)HAスクリプト(3904)が(登録ディレク
トリ3911内のものとは)異なっているときは、計算
機3910A〜3910CはHAスクリプト更新イベン
トを発行して、該当するHAスクリプトを更新する必要
がある旨のメッセージを出力(例えば表示出力)する。
一方、設定ファイル(3903)及びHAスクリプト
(3904)の各々が異なっていないときは、(新HA
シナリオ3902に対応する)実使用ディレクトリ39
12内の設定ファイル(3903)及びHAスクリプト
(3904)のオンラインでの使用可が判定される。
【0292】
【発明の効果】以上詳述したように本発明によれば、複
合系計算機システムの構成及び制御内容を抽象的且つ統
合的に記述したプログラム(シナリオ)が適用できるこ
とから、従来のように実行可能なスクリプトとして各計
算機毎に記述する必要があった複合系計算機システムと
異なって、システム構成及び制御内容の定義が容易に記
述できる。また、各計算機が実行すべき処理スクリプト
(コマンド列)を上記シナリオ(HAシナリオ)から自
動的に生成することで、人がそのコマンド列を記述する
場合の各計算機間での不整合等の誤りの発生を防止でき
る。
【0293】また本発明によれば、上記シナリオの記述
内容の正誤確認機能を、当該シナリオの記述内容からそ
の記述内容と同等の作用を与える処理スクリプトを生成
するシナリオコンパイル手段に持たせることで、当該シ
ナリオの記述誤りを容易に見つけることができる。
【0294】また本発明によれば、上記シナリオの記述
内容の意味の確認機能、或いはデバイス故障など起こり
得る各種障害時を想定したシミュレーション機能を上記
シナリオコンパイル手段に持たせることで、当該シナリ
オの意味的に不整合性のある箇所を容易に見つけること
ができ、実行するまで分かり難い制御アルゴリズムの問
題点を実行前に認識することができる。
【0295】また、本発明によれば、シナリオコンパイ
ル手段により生成される処理スクリプト等の成果物を、
上記シナリオで定義された複合系計算機システムを構成
する各計算機に配布するためのプログラム(配布スクリ
プト)を、当該シナリオコンパイル手段により自動生成
する機能を持たせることで、この種のプログラムを人が
各計算機毎に記述する場合と異なって記述誤りをなくす
ことができ、これにより配布操作の誤りと、計算機間の
不整合を防止できる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る複合系計算機シ
ステムのブロック構成図。
【図2】図1のシステムにおける主要な構成とデータ変
換の流れを示す図。
【図3】図1中のHAシナリオ110の概略構成を示す
図。
【図4】図1中のHAシナリオコンパイラ140により
生成される(HAシナリオ110の内容と同等の作用を
与える)HAスクリプト集合120の一例を示す図。
【図5】HAシナリオ110の抽象性を説明するための
図。
【図6】HAシナリオ110の統合性(共通化)を説明
するための図。
【図7】本発明の第2の実施形態に係る複合系計算機シ
ステムにおける稼働系と待機系の例を示す図。
【図8】図7のシステムにおけるHAシナリオ内のサー
ビス記述の共通化を説明するための図。
【図9】本発明の第3の実施形態に係る複合系計算機シ
ステムにおける計算機組み込み/切り離しを説明するた
めの状態遷移図。
【図10】本発明の第4の実施形態に係る複合系計算機
システムにおいて、従来方式のアプリケーション引き継
ぎを適用した場合の問題を説明するための図。
【図11】同実施形態で適用されるHAスクリプト実行
機構のブロック構成図。
【図12】同実施形態において、HAグループ内の計算
機で新HAグループの作成と計算機の組み込み/切り離
し以外のHAイベントが入力された場合の動作を説明す
るためのフローチャートの一部を示す図。
【図13】同実施形態において、HAグループ内の計算
機で新HAグループの作成と計算機の組み込み/切り離
し以外のHAイベントが入力された場合の動作を説明す
るためのフローチャートの残りを示す図。
【図14】同実施形態において、HAグループ内の計算
機で新HAグループの作成要求のHAイベントが入力さ
れた場合の動作を説明するためのフローチャート。
【図15】同実施形態において、HAグループ内の計算
機の組み込み要求のHAイベントが入力された場合の動
作を説明するためのフローチャート。
【図16】同実施形態において、HAグループ内の計算
機の切り離し要求のHAイベントが入力された場合の動
作を説明するためのフローチャート。
【図17】同実施形態における確定状態決定を説明する
ための図。
【図18】本発明の第5の実施形態に係る複合系計算機
システムにおいて、アプリケーションの引き継ぎ先を、
動的に変更可能な優先順位に従って決定する形態を説明
するための図。
【図19】同実施形態で適用されるHA状態テーブル更
新記述の一例を示す図。
【図20】同実施形態で適用されるサービス記述の一例
を示す図。
【図21】同実施形態における複数のHAグループ設定
を説明するための図。
【図22】本発明の第6の実施形態に係る複合系計算機
システムにおいて、HAイベント発生時の処理のエラー
リカバリを可能とした形態を説明するための図。
【図23】同実施形態における各計算機の基本的な動作
を説明するためのフローチャート。
【図24】本発明の第7の実施形態に係る複合系計算機
システムにおいて、HAスクリプトの処理の一部とし
て、疑似的にHAイベントを発生させることで、1つの
HAイベントに起因して複数のHAスクリプトを実行可
能とした形態を説明するための図。
【図25】本発明の第8の実施形態に係る複合系計算機
システムにおいて、アプリケーションの通常引き継ぎ要
求(スイッチオーバ)を、アプリケーションの停止要求
と、開始要求の各々の疑似HAイベントとして発生させ
る場合の形態を説明するための図。
【図26】本発明の第9の実施形態に係る複合系計算機
システムにおいて、エラーリカバリ用のHAスクリプト
からも疑似HAイベントを発生させることで、エラーリ
カバリに失敗した場合のエラーリカバリを可能とする形
態を説明するための状態遷移図の一部を示す図。
【図27】本発明の第9の実施形態に係る複合系計算機
システムにおいて、エラーリカバリ用のHAスクリプト
からも疑似HAイベントを発生させることで、エラーリ
カバリに失敗した場合のエラーリカバリを可能とする形
態を説明するための状態遷移図の残りを示す図。
【図28】本発明の第10の実施形態に係る複合系計算
機システムで適用される、HAイベントの無限ループを
検出する機能を持つHAシナリオコンパイラのブロック
構成図。
【図29】図28の構成のHAシナリオコンパイラの主
要な動作を説明するためのフローチャート。
【図30】本発明の第11の実施形態に係る複合系計算
機システムで適用される、HAシナリオの記述内容の誤
りを検出する機能を持つHAシナリオコンパイラのブロ
ック構成図。
【図31】図30の構成のHAシナリオコンパイラの主
要な動作を説明するためのフローチャート。
【図32】本発明の第12の実施形態に係る複合系計算
機システムで適用される、HAシナリオの正当性をHA
状態テーブルを利用して検査する機能を持つHAシナリ
オコンパイラのブロック構成図。
【図33】図32の構成のHAシナリオコンパイラの主
要な動作を説明するためのフローチャート。
【図34】図33中のステップS95の処理の詳細な手
順を示すフローチャート。
【図35】本発明の第13の実施形態に係る複合系計算
機システムで適用される、共有装置に対する操作の不整
合性を検出する機能を持つHAシナリオコンパイラのブ
ロック構成図。
【図36】同実施形態における共有装置操作記述の一例
を示す図。
【図37】本発明の第14の実施形態に係る複合系計算
機システムで適用される、HAシナリオコンパイラ内の
展開部に追加された複数の要素を示す図。
【図38】ループ文で書かれた記述の一例を示す図。
【図39】本発明の第15の実施形態に係る複合系計算
機システムのブロック構成図。
【符号の説明】
100A,100B,700A〜700D,900A〜
900C,1000A〜1000D,1800A〜18
00D,2200A〜2200D,2500A,250
0B,2600A〜2600D,3900,3910A
〜3910C…計算機、 101,3920…LAN、 110,3902…HAシナリオ、 120,130A,130B…HAスクリプト集合(処
理スクリプト集合)、 140,3901…HAシナリオコンパイラ、 150…HAスクリプト配布機構、 160A,160B,960〜960C,1810,2
210…HAスクリプト実行機構、 902,2001,2002…HAグループ、 1820…HA状態テーブル(状態記憶手段)、 2801,3001,3201,3501…構文解析
部、 2802,3002,3202,3502…展開部、 2805…ループ判定部(無限ループ検出手段、意味確
認手段)、 3005…引数判定部(記述値不適合検出手段、正誤検
出手段)、 3204…同一操作判定部(状態記憶手段内容不一致検
出手段、意味確認手段)、 3205…インタロック判定部(インタロック検出手
段、意味確認手段)、 3504…共有装置操作整合性判定部(共有装置操作不
整合性検出手段、意味確認手段)、 3701…第1変数−定数置換部、 3702…第2変数−定数置換部、 3703…定数伝播部、 3903…設定ファイル、 3904…HAスクリプト(処理スクリプト)、 3905…配布スクリプト、 3906…チェックスクリプト、 3907…チェックシート、 3911…登録ディレクトリ、 3912…実使用ディレクトリ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 森 良哉 東京都府中市東芝町1番地 株式会社東芝 府中工場内 (72)発明者 山田 晃智 東京都府中市東芝町1番地 株式会社東芝 府中工場内

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】 複数の計算機で構成される複合系計算機
    システムにおいて、 前記複合系計算機システムの構成及び制御内容を抽象的
    且つ統合的に記述したプログラムであるシナリオを、前
    記各計算機毎の別々の処理に分解し、前記シナリオから
    前記各計算機で直接実行可能な形式のコマンド列である
    処理スクリプトを生成するシナリオコンパイル手段と、 前記各計算機に設けられ、前記シナリオコンパイル手段
    により生成されている各計算機別の前記各処理スクリプ
    トのうち、計算機状態に対応し且つ該当する計算機用の
    処理スクリプトを実行するスクリプト実行手段とを具備
    することを特徴とする複合系計算機システム。
  2. 【請求項2】 複数の計算機で構成される複合系計算機
    システムにおいて、 前記複合系計算機システムの構成及び制御内容を抽象的
    且つ統合的に記述したプログラムであるシナリオを、前
    記各計算機毎の別々の処理に分解し、前記シナリオから
    前記各計算機で直接実行可能な形式のコマンド列である
    処理スクリプトを生成するシナリオコンパイル手段と、 前記シナリオコンパイル手段により生成された各計算機
    別の前記各処理スクリプトを対応する前記各計算機の記
    憶領域に配布するスクリプト配布手段と、 前記各計算機に設けられ、その計算機に配布されている
    前記各処理スクリプトのうち、計算機状態に対応する処
    理スクリプトを実行するスクリプト実行手段とを具備す
    ることを特徴とする複合系計算機システム。
  3. 【請求項3】 複数の計算機で構成される複合系計算機
    システムにおいて、 前記複合系計算機システムの構成及び前記計算機で発生
    する各種イベントに対するシステムの動作を抽象的且つ
    統合的に記述したプログラムであるシナリオを、前記各
    計算機毎の別々の処理に分解し、前記シナリオから前記
    各計算機で直接実行可能な形式のコマンド列である処理
    スクリプトを生成するシナリオコンパイル手段と、 前記各計算機に設けられ、1つのイベントが発生したと
    きに、前記シナリオコンパイル手段により生成されてい
    る各計算機別の前記各処理スクリプトのうち、当該イベ
    ントに対応し且つ該当する計算機用の処理スクリプトを
    実行するスクリプト実行手段とを具備することを特徴と
    する複合系計算機システム。
  4. 【請求項4】 複数の計算機で構成される複合系計算機
    システムにおいて、 前記複合系計算機システムの構成及び前記計算機で発生
    する各種イベントに対するシステムの動作を抽象的且つ
    統合的に記述したプログラムであるシナリオを、前記各
    計算機毎の別々の処理に分解し、前記シナリオから前記
    各計算機で直接実行可能な形式のコマンド列である処理
    スクリプトに生成するシナリオコンパイル手段と、 前記シナリオコンパイル手段により生成された各計算機
    別の前記各処理スクリプトを対応する前記各計算機の記
    憶領域に配布するスクリプト配布手段と、 前記各計算機に設けられ、1つのイベントが発生したと
    きに、その計算機に配布されている前記各処理スクリプ
    トのうち、当該イベントに対応する処理スクリプトを実
    行するスクリプト実行手段とを具備することを特徴とす
    る複合系計算機システム。
  5. 【請求項5】 前記シナリオコンパイル手段は、 前記シナリオの記述内容の正誤を検出するための正誤検
    出手段及び前記シナリオの記述内容の意味を確認してそ
    の整合性を判定する意味確認手段の少なくとも1つと、 前記正誤検出手段による記述誤り検出時または前記意味
    確認手段による不整合検出時に、その旨のエラーメッセ
    ージを出力するエラー出力手段とを備えていることを特
    徴とする請求項1乃至請求項4のいずれかに記載の複合
    系計算機システム。
  6. 【請求項6】 前記処理スクリプト内で用いられる名前
    である定数と、前記シナリオ内で用いられ名前である変
    数とが区別されており、前記シナリオ内で用いられる変
    数と前記処理スクリプト内で用いられる定数の関係が前
    記シナリオ内に定義されていることを特徴とする請求項
    1乃至請求項4のいずれかに記載の複合系計算機システ
    ム。
  7. 【請求項7】 前記処理スクリプト内で用いられる定数
    と関係付けられた前記シナリオ内で用いられる変数と、
    前記シナリオ内の特定の単位内で用いられる変数とが区
    別されており、これらの関係が前記シナリオ内の特定の
    単位内に記述されていることを特徴とする請求項6記載
    の複合系計算機システム。
  8. 【請求項8】 前記スクリプト実行手段は、前記処理ス
    クリプトの実行の許可または禁止について、前記各計算
    機毎に別々に、初期状態での設定及びイベント発生時で
    の再設定が可能なように構成されており、前記シナリオ
    の動作する計算機群である特定グループをイベント発生
    時に自動的に変化せることを特徴とする請求項3または
    請求項4記載の複合系計算機システム。
  9. 【請求項9】 前記スクリプト実行手段は、複数の前記
    イベントに対する処理スクリプトの実行順序が前記特定
    グループ内で全て同一となり、1つの前記イベントに対
    する処理スクリプトの実行が前記特定グループ内で全て
    終了するまで次の処理スクリプトの実行の開始を待つこ
    とを保証するように構成されていることを特徴とする請
    求項8記載の複合系計算機システム。
  10. 【請求項10】 前記各計算機上に設けられた、前記特
    定グループの前記各計算機の状態を記憶するための状態
    記憶手段を備え、 前記特定グループ内の前記各計算機上のスクリプト実行
    手段は、イベント発生に伴う処理スクリプトの実行時に
    自系の前記状態記憶手段を参照してイベント発生時の動
    作内容を決定すると共に、当該状態記憶手段の内容に対
    して同一の更新処理を行うことを特徴とする請求項9記
    載の複合系計算機システム。
  11. 【請求項11】 互いに交わらない複数の特定グループ
    を構成し、イベント発生時の動作内容を、前記各特定グ
    ループ毎に異なった前記状態記憶手段の内容によって変
    化させるこを特徴とする請求項10記載の複合系計算機
    システム。
  12. 【請求項12】 前記スクリプト実行手段は、前記特定
    グループ内でイベント発生に伴う処理スクリプトの実行
    が終了した後に、当該グループ内の全ての計算機に関す
    る前記処理スクリプトの終了状態を取得し、その終了状
    態に従ってエラーリカバリ用の処理スクリプトを実行す
    ることを特徴とする請求項9記載の複合系計算機システ
    ム。
  13. 【請求項13】 前記処理スクリプトには、その処理の
    一部として少なくとも1つのイベントを疑似的に発生さ
    せるコマンドが含まれており、 前記スクリプト実行手段は前記処理スクリプトを実行す
    ることで少なくとも1つのイベントを疑似的に発生し、
    当該処理スクリプトの実行後には、この疑似的に発生し
    たイベントに対応する処理スクリプトを実行することを
    特徴とする請求項3または請求項4記載の複合系計算機
    システム。
  14. 【請求項14】 前記エラーリカバリ用の処理スクリプ
    トには、その処理の一部として少なくとも1つのイベン
    トを疑似的に発生させるコマンドが含まれており、 前記スクリプト実行手段は前記エラーリカバリ用の処理
    スクリプトを実行することで少なくとも1つのイベント
    を疑似的に発生し、当該エラーリカバリ用の処理スクリ
    プトの実行後には、この疑似的に発生したイベントに対
    応する別のエラーリカバリ用の処理スクリプトを実行す
    ることを特徴とする請求項12記載の複合系計算機シス
    テム。
  15. 【請求項15】 前記シナリオコンパイル手段は、前記
    シナリオのコンパイル時に、イベントの発生が無限ルー
    プを構成していることを検出する無限ループ検出手段を
    備えていることを特徴とする請求項3または請求項4記
    載の複合系計算機システム。
  16. 【請求項16】 前記シナリオコンパイル手段は、前記
    シナリオのコンパイル時に、コマンドの引数に代表され
    る記述値が不適合であることを検出する記述値不適合検
    出手段を備えていることを特徴とする請求項3または請
    求項4記載の複合系計算機システム。
  17. 【請求項17】 前記シナリオコンパイル手段は、前記
    シナリオのコンパイル時に、前記状態記憶手段に対する
    更新操作内容が前記特定グループ内で同一とならないこ
    とを検出する状態記憶手段内容不一致検出手段を備えて
    いることを特徴とする請求項10記載の複合系計算機シ
    ステム。
  18. 【請求項18】 前記シナリオコンパイル手段は、前記
    シナリオのコンパイル時に、前記状態記憶手段に対する
    更新操作内容が、予め定められている当該状態記憶手段
    の内容が満たすべき条件に合致していないことを検出す
    るインタロック検出手段を備えていることを特徴とする
    請求項10記載の複合系計算機システム。
  19. 【請求項19】 前記条件が、前記シナリオに予め記述
    されていることを特徴とする請求項18記載の複合系計
    算機システム。
  20. 【請求項20】 前記シナリオコンパイル手段は、前記
    シナリオのコンパイル時に、1つのイベントに対する前
    記各計算機での共有装置に対する操作内容が不整合であ
    ることを検出する共有装置操作不整合性検出手段を備え
    ていることを特徴とする請求項3または請求項4記載の
    複合系計算機システム。
  21. 【請求項21】 前記処理スクリプト内で用いられる名
    前である定数と、前記シナリオ内で用いられ名前である
    変数とが区別され、前記シナリオ内で用いられる変数と
    前記処理スクリプト内で用いられる定数の関係が前記シ
    ナリオ内に定義されており、 前記シナリオコンパイル手段は、前記シナリオ内で用い
    られる変数を定数に置き換える置換手段と、前記置換手
    段により置き換えられた定数を前記シナリオ内で伝播さ
    せる定数伝播手段とを備えたことを特徴とする請求項1
    5、請求項16、請求項17、請求項18、または請求
    項20に記載の複合系計算機システム。
  22. 【請求項22】 前記シナリオコンパイル手段は、前記
    シナリオ内のループ文での記述を内部的に展開するルー
    プ展開手段を備えたことを特徴とする請求項15、請求
    項16、請求項17、請求項18、または請求項20に
    記載の複合系計算機システム。
  23. 【請求項23】 前記シナリオコンパイル手段は、前記
    シナリオのコンパイル時に、記述された内容を解釈し、
    非同期に発生する可能性のある各種イベントを任意に組
    み合わせてシミュレーションする動作シミュレーション
    手段を備えたことを特徴とする請求項15、請求項1
    6、請求項17、請求項18、または請求項20に記載
    の複合系計算機システム。
  24. 【請求項24】 前記シナリオコンパイル手段は、前記
    各計算機別の各処理スクリプトの他に、当該各処理スク
    リプトを該当する計算機に配布するためのコマンド列で
    ある配布スクリプトを生成するように構成されており、 前記スクリプト配布手段は、前記シナリオコンパイル手
    段により生成された配布スクリプトを実行することで、
    前記シナリオコンパイル手段により生成された各計算機
    別の各処理スクリプトを対応する前記各計算機の記憶領
    域に配布することを特徴とする請求項2または請求項4
    記載の複合系計算機システム。
  25. 【請求項25】 複合系計算機システムを構成する複数
    の計算機の各々で実行される処理スクリプトを生成する
    ための処理スクリプト生成装置であって、 前記複合系計算機システムの構成及び制御内容を抽象的
    且つ統合的に記述したプログラムであるシナリオを、前
    記各計算機毎の別々の処理に分解し、前記シナリオから
    前記各計算機で直接実行可能な形式のコマンド列である
    処理スクリプトを生成するシナリオコンパイル手段を具
    備することを特徴とする処理スクリプト生成装置。
  26. 【請求項26】 複合系計算機システムを構成する複数
    の計算機の各々で実行される処理スクリプトを生成し、
    それぞれ対応する計算機に配布するための処理スクリプ
    ト生成・配布装置であって、 前記複合系計算機システムの構成及び制御内容を抽象的
    且つ統合的に記述したプログラムであるシナリオを、前
    記各計算機毎の別々の処理に分解し、前記シナリオから
    前記各計算機で直接実行可能な形式のコマンド列である
    処理スクリプトを生成するシナリオコンパイル手段と、 前記シナリオコンパイル手段により生成された各計算機
    別の各処理スクリプトを対応する前記各計算機の記憶領
    域に配布するスクリプト配布手段とを具備することを特
    徴とする処理スクリプト生成装置。
  27. 【請求項27】 前記スクリプト実行手段は、 イベントの入力時には、そのイベントを自系の候補イベ
    ントとして取得すると共に当該候補イベントを前記特定
    グループ内の他の計算機に通知し、 前記特定グループ内の他の計算機からの前記候補イベン
    トの通知時には、自系の候補イベントが存在しないなら
    ば、その通知された候補イベントを通知元計算機及び自
    系の候補イベントとしてそれぞれ取得すると共に、その
    自系の候補イベントを前記特定グループ内の他の計算機
    に通知し、自系の候補イベントが存在するならば、その
    通知された候補イベントを通知元計算機の候補イベント
    として取得し、 前記特定グループ内の全ての計算機の候補イベントを取
    得した際に、当該候補イベントが全て同一であるなら
    ば、自系における候補イベントの確定状態を確定成功と
    して対応する処理スクリプトを実行し、その実行の後に
    次のイベントの入力を要求し、そうでないならば、自系
    における候補イベントの確定状態を確定失敗として、自
    系の候補イベントを破棄して対応する処理スクリプトの
    実行を抑止し、次のイベントの入力を要求することを特
    徴とする請求項9記載の複合系計算機システム。
  28. 【請求項28】 前記スクリプト実行手段は、 前記特定グループの計算機の障害が検出された場合に
    は、前記特定グループ内の当該障害が検出された計算機
    以外の全ての計算機の候補イベントを取得した際に、当
    該候補イベントが全て同一であるならば、自系における
    候補イベントの確定状態を確定保留として、その確定状
    態を前記特定グループ内の他の計算機に通知すると共
    に、前記特定グループ内の他の計算機から通知される前
    記確定状態を取得し、 前記特定グループ内の当該障害が検出された計算機以外
    の全ての計算機の前記確定状態を取得した際に、当該確
    定状態が全て確定保留または確定成功であるならば、自
    系における候補イベントの確定状態を確定成功として対
    応する処理スクリプトを実行し、その実行の後に次のイ
    ベントの入力を要求し、そうでないならば、自系におけ
    る候補イベントの確定状態を確定失敗として、自系の候
    補イベントを破棄して対応する処理スクリプトの実行を
    抑止し、次のイベントの入力を要求することを特徴とす
    る請求項27記載の複合系計算機システム。
  29. 【請求項29】 前記スクリプト実行手段は、 前記特定グループの計算機構成を記憶する特定グループ
    構成記憶手段を備えており、 前記候補イベントが計算機の組み込み要求のイベントで
    ある場合、前記自系における候補イベントの確定状態を
    確定成功とした際に、前記組み込み要求イベントで要求
    された計算機が前記特定グループに組み込まれるように
    前記特定グループ構成記憶手段の内容を変更し、その内
    容を前記要求された計算機に通知することを特徴とする
    請求項28記載の複合系計算機システム。
  30. 【請求項30】 前記スクリプト実行手段は、 前記特定グループの計算機構成を記憶する特定グループ
    構成記憶手段を備えており、 前記候補イベントが計算機の切り離し要求のイベントで
    ある場合、前記自系における候補イベントの確定状態を
    確定成功とした際に、前記組み込み要求イベントで要求
    された計算機が前記特定グループから切り離されるよう
    に前記特定グループ構成記憶手段の内容を変更すること
    を特徴とする請求項28記載の複合系計算機システム。
JP26449596A 1996-10-04 1996-10-04 複合系計算機システム Expired - Fee Related JP3788832B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP26449596A JP3788832B2 (ja) 1996-10-04 1996-10-04 複合系計算機システム
KR1019970048432A KR100326100B1 (ko) 1996-10-04 1997-09-24 복합계계산기시스템
US08/943,764 US6073126A (en) 1996-10-04 1997-10-03 Multi-computer system capable of abstractly and integrally describing system configuration and control contents

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26449596A JP3788832B2 (ja) 1996-10-04 1996-10-04 複合系計算機システム

Publications (2)

Publication Number Publication Date
JPH10111859A true JPH10111859A (ja) 1998-04-28
JP3788832B2 JP3788832B2 (ja) 2006-06-21

Family

ID=17404040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26449596A Expired - Fee Related JP3788832B2 (ja) 1996-10-04 1996-10-04 複合系計算機システム

Country Status (3)

Country Link
US (1) US6073126A (ja)
JP (1) JP3788832B2 (ja)
KR (1) KR100326100B1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6799222B1 (en) 1999-08-13 2004-09-28 Kabushiki Kaisha Toshiba Method for synchronizing program applied to distributed computer system
JP2010198404A (ja) * 2009-02-26 2010-09-09 Nec Corp 情報処理システム、ディザスタリカバリ方法及びディザスタリカバリプログラム
JP2012008819A (ja) * 2010-06-25 2012-01-12 Hitachi Ltd 計算機システム及び計算機の管理方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144954A (en) * 1998-01-27 2000-11-07 Li; Chou H. Automatic development of computer software
JP2000305796A (ja) * 1999-04-22 2000-11-02 Hitachi Ltd 電子計算機間のジョブ転送方法およびジョブ転送システム
US20020198996A1 (en) * 2000-03-16 2002-12-26 Padmanabhan Sreenivasan Flexible failover policies in high availability computing systems
US7827136B1 (en) * 2001-09-20 2010-11-02 Emc Corporation Management for replication of data stored in a data storage environment including a system and method for failover protection of software agents operating in the environment
US7159036B2 (en) * 2001-12-10 2007-01-02 Mcafee, Inc. Updating data from a source computer to groups of destination computers
US7979460B2 (en) 2006-02-15 2011-07-12 Sony Computer Entainment America Inc. Systems and methods for server management
US9489418B2 (en) 2007-04-27 2016-11-08 International Business Machines Corporation Processing database queries embedded in application source code from within integrated development environment tool
US9047337B2 (en) * 2007-04-27 2015-06-02 International Business Machines Corporation Database connectivity and database model integration within integrated development environment tool
JP6481515B2 (ja) * 2015-05-29 2019-03-13 富士通株式会社 情報処理装置、コンパイル方法、及びコンパイラプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131311A (ja) * 1992-10-21 1994-05-13 Nec Corp 疎結合マルチコンピュータシステムにおけるホスト間共通システム定義情報の一元変更方法
JPH08249201A (ja) * 1995-03-15 1996-09-27 Mitsubishi Electric Corp データ処理装置
JPH11143701A (ja) * 1997-11-10 1999-05-28 Toshiba Corp 高可用性システムの設計支援機能を有する計算機システム
JPH11238044A (ja) * 1998-02-23 1999-08-31 Toshiba Corp 計算機
JP2000353087A (ja) * 1999-06-10 2000-12-19 Toshiba Corp 高可用性システムの動作シナリオ開発環境を有する計算機システム
JP2002373156A (ja) * 2001-06-14 2002-12-26 Toshiba Corp クラスタ制御システム及びクラスタ制御システムにおけるシナリオ実行方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4837735A (en) * 1987-06-09 1989-06-06 Martin Marietta Energy Systems, Inc. Parallel machine architecture for production rule systems
JPS647232A (en) * 1987-06-30 1989-01-11 Toshiba Corp Inference processor
US5339392A (en) * 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
US5283856A (en) * 1991-10-04 1994-02-01 Beyond, Inc. Event-driven rule-based messaging system
US5428525A (en) * 1992-07-01 1995-06-27 Cappelaere; Patrice G. Computer system and method for signal control prioritizing and scheduling
US5500802A (en) * 1994-05-31 1996-03-19 Morris; James M. System and method for creating configurators using templates
US5812850A (en) * 1995-11-13 1998-09-22 Object Technology Licensing Corp. Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131311A (ja) * 1992-10-21 1994-05-13 Nec Corp 疎結合マルチコンピュータシステムにおけるホスト間共通システム定義情報の一元変更方法
JPH08249201A (ja) * 1995-03-15 1996-09-27 Mitsubishi Electric Corp データ処理装置
JPH11143701A (ja) * 1997-11-10 1999-05-28 Toshiba Corp 高可用性システムの設計支援機能を有する計算機システム
JPH11238044A (ja) * 1998-02-23 1999-08-31 Toshiba Corp 計算機
JP2000353087A (ja) * 1999-06-10 2000-12-19 Toshiba Corp 高可用性システムの動作シナリオ開発環境を有する計算機システム
JP2002373156A (ja) * 2001-06-14 2002-12-26 Toshiba Corp クラスタ制御システム及びクラスタ制御システムにおけるシナリオ実行方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6799222B1 (en) 1999-08-13 2004-09-28 Kabushiki Kaisha Toshiba Method for synchronizing program applied to distributed computer system
JP2010198404A (ja) * 2009-02-26 2010-09-09 Nec Corp 情報処理システム、ディザスタリカバリ方法及びディザスタリカバリプログラム
JP2012008819A (ja) * 2010-06-25 2012-01-12 Hitachi Ltd 計算機システム及び計算機の管理方法

Also Published As

Publication number Publication date
JP3788832B2 (ja) 2006-06-21
KR19980032397A (ko) 1998-07-25
US6073126A (en) 2000-06-06
KR100326100B1 (ko) 2002-06-26

Similar Documents

Publication Publication Date Title
US5968185A (en) Transparent fault tolerant computer system
JP3329841B2 (ja) ネットワークシステム及びそのソフトウエア管理方法
US5790397A (en) Fault resilient/fault tolerant computing
US7770053B1 (en) Systems and methods for maintaining data integrity during a migration
US7516361B2 (en) Method for automatic checkpoint of system and application software
US5956474A (en) Fault resilient/fault tolerant computing
US6907547B2 (en) Test tool and methods for testing a computer function employing a multi-system testcase
US7958210B2 (en) Update management method and update management unit
US9229707B2 (en) Zero downtime mechanism for software upgrade of a distributed computer system
US8413133B2 (en) Software update management apparatus and software update management method
US7574627B2 (en) Memory dump method, memory dump program and computer system
US8589889B2 (en) Apparatus and method of detecting errors in embedded software
WO1997022930A9 (en) Transparent fault tolerant computer system
TW200414042A (en) Firmware architecture supporting safe updates and multiple processor types
JP3788832B2 (ja) 複合系計算機システム
CN112434008A (zh) 分布式数据库升级方法、设备及介质
KR100291098B1 (ko) 교환기의 쉘 명령어 자동 실행 방법
JPH0926940A (ja) 分散システム構築方式
CN116881225A (zh) 节点部署方法、装置、电子设备及计算机可读取存储介质
CN117762683A (zh) 一种linux操作系统故障的快速恢复方法
AU7167300A (en) Fault handling/fault tolerant computing
Jayathirtha Oracle Database System Administration Guide, 10g Release 2 (10.2. 0.5) for IBM z/OS on System z B25398-04

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051107

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060324

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

Free format text: PAYMENT UNTIL: 20090407

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100407

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100407

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110407

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees