JPH1063523A - マルチスレッド環境においてサーバの活動化を制御する方法および装置 - Google Patents

マルチスレッド環境においてサーバの活動化を制御する方法および装置

Info

Publication number
JPH1063523A
JPH1063523A JP9145229A JP14522997A JPH1063523A JP H1063523 A JPH1063523 A JP H1063523A JP 9145229 A JP9145229 A JP 9145229A JP 14522997 A JP14522997 A JP 14522997A JP H1063523 A JPH1063523 A JP H1063523A
Authority
JP
Japan
Prior art keywords
server
state
starting
computer
shutdown
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.)
Pending
Application number
JP9145229A
Other languages
English (en)
Inventor
Christian J Callsen
クリスチャン・ジェイ・コールセン
Ken M Cavanaugh
ケン・エム・カヴァナー
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH1063523A publication Critical patent/JPH1063523A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

(57)【要約】 【課題】 古いサーバのシャットダウンと新しいサーバ
の始動との間に競合状態が存在し、さらに、デーモン・
サーバなど、高速に再始動するサーバはスラッシング動
作を行う傾向がある。それを解決したサーバの活動化を
制御する方法を提案する。 【解決手段】 ORBデーモン内で実行されるサーバ有
限状態マシンに追加「シャットダウン中」状態を設ける
ことによってこの望ましくない動作を回避する。この追
加状態によって、古いサーバは、新しいサーバが始動す
る前に必要なシャットダウン手続きを完了することがで
きる。また、速度が低すぎてシャットダウンまたは始動
できないサーバを処理するサーバも設けられる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチスレッド・
オブジェクト指向コンピュータ環境の分野に関する。
【0002】
【従来の技術】従来技術のマルチスレッド・オブジェク
ト指向コンピュータ環境では、オブジェクト・サーバが
シャットダウンし、新しいオブジェクト・サーバがクラ
イアントによる呼出しに対する応答として始動されてい
るときに問題が生じる。新しいサーバを始動する責任を
負うデーモン・プロセスは、古いサーバが瞬間的にシャ
ットダウンすると仮定する。実際には、新しいオブジェ
クト・サーバが始動される際には、データベース・ロッ
クの解除などある種のクリーンナップ・プロセスが依然
として実行中である。このようなクリーンナップ・プロ
セスのために、新しいオブジェクト・サーバが始動を中
断することがある。したがって、古いオブジェクト・サ
ーバのシャットダウンと新しいオブジェクト・サーバの
始動との間には望ましくない競合状態が存在する。
【0003】ネットワーク化オブジェクト環境 ネットワーク化オブジェクト環境では、オブジェクト・
サーバは、サーバ・プロセスとも呼ばれ、マルチスレッ
ド・プロセスであり、そのドメイン内のオブジェクトで
具体化されるメソッド、データなどへのアクセス、その
インスタンス化、その削除を制御する。オブジェクトと
は、明確に定義された自己完結型ソフトウェア・モジュ
ールであり、営業慣習などの手続きおよびそのデータを
カプセル化する。オブジェクトは、慎重に定義されたイ
ンタフェースを通じて互いに通信し、標準化電子構成要
素からコンピュータを製造するのと同様に複雑な解を構
築することができる。多重再使用・標準化レベルが可能
になり、それによってエンジニアは、再使用可能性およ
び向上可能性の非常に高いモジュール、アプリケーショ
ン、システム全体を作成することができる。
【0004】ネットワーク化オブジェクト技法によっ
て、アプリケーションまたはオブジェクトがどこに存在
するかにかかわらずに、ネットワーク内の任意の場所に
あるオブジェクトおよびその共用サービスへのアプリケ
ーション・アクセスが可能になる。ネットワーク化オブ
ジェクトでは、アプリケーションまたはアプリケーショ
ンがモデル化する営業プロセスを妨害することなしに個
別のオブジェクトを更新することもでき、複雑なシステ
ムを円滑にかつ徐々に向上させることが容易である。た
とえば、新しいコンポーネントが失敗した場合、そのコ
ンポーネントの先行オペレーションを迅速にかつ透過的
に再開することができる。
【0005】ネットワーク化オブジェクト環境の例は、
ネットワークおよびそれぞれの異なるコンピューティン
グ・プラットフォームを介してオブジェクトを共用でき
るようにするSunSoftTMのCORBA準拠NE
O製品ファミリである。
【0006】オブジェクト・マネジメント・グループ
(OMG)は、600社以上のソフトウェア・ベンダ、
ディベロッパ、エンド・ユーザ団体からなり、異種分散
オブジェクト指向アプリケーションをサポートする共通
アーキテクチャの標準をすでに開発し、さらに引き続き
開発を進めている。OMG共通オブジェクト要求ブロー
カ・アーキテクチャ(CORBA)は、複数のベンダの
それぞれの異なるオブジェクト・システムがネットワー
ク上で互いに対話できるようにするように設計されてい
る。CORBA仕様は、下記の4つのコンポーネントを
備える。
【0007】i)ネットワーク化環境でオブジェクトを
管理するためのオブジェクト要求ブローカ(ORB) ii)ORB−ORB間通信のための相互運用性 iii)共通オブジェクト・サービス(CORBAサービ
ス) iv)共通に使用されるプログラミング言語に関するマッ
ピング
【0008】ネットワーク・オブジェクト要求ブローカ
(ORB)は、CORBA準拠ネットワーク・ベース・
ソフトウェア・システムであり、標準インタフェース・
プロトコルを通じてオブジェクトを見つけて実行し、オ
ブジェクトおよびプログラムがネットワークを介して互
いに対話できるようにする。NEO ORBは、1つま
たは複数のマルチスレッドUNIXプロセスとして実施
され、必要に応じてスケーリング可能な性能および使用
可能性を与える。
【0009】OMGは、異種オブジェクト相互運用性を
推進するために、CORBA2.0インターネットOR
B間プロトコルの移植可能なソース・コード基準処理系
を提供し、ソフトウェア・ベンダがOMG準拠製品を試
験し配布するのを助けている。インターネットORB間
プロトコル(インターネットIOP)は、それぞれの異
なるCORBA2.0準拠ベンダのORBを接続し、そ
れらのORBが互いに通信できるようにする標準化方法
を与える。現行のインターネットIOPはTCP/IP
プロトコルに基づくものである。
【0010】OMG CORBAサービス定義は、ネー
ミング・サービス、イベント・サービス、プロパティ・
サービス、ライフサイクル・サービス、リレーションシ
ップ・サービスなど、オブジェクトを用いて分散システ
ムを構築するのに必要な基本動作を説明するものであ
る。
【0011】いくつかの異なるオブジェクト・システム
が対話できるようにするには、言語独立性が重要であ
る。インタフェース定義言語(IDL)によって、イン
タフェースと処理系を分離し、オブジェクトのプラグ・
アンド・プレイ特性を損なわずにオブジェクト処理系の
詳細を変更することができる。OMG IDLは、オブ
ジェクトの動作の中立的なインタフェース定義であり、
オブジェクトの動作をIDLで定義できるようにする
が、インタフェースのC言語、C++言語、オブジェク
ティブC言語、またはSmalltalk言語への自動
変換を可能にする。
【0012】UNIXから与えられるようなマルチスレ
ッド環境は通常、ネットワーク化オブジェクトをサポー
トするために使用される。スレッドとは、たとえば印刷
プロセスを実行することや、データベース・オブジェク
トに作用することなど、ある種の機能を実行する大規模
なプロセスから生成されるサブプロセスである。複数の
スレッドをサポートすることによって、システムは多数
のクライアントおよびプロセスに対して同時にサービス
を提供することができる。これによって、ネットワーク
上でオブジェクトおよびサービスを共用することができ
る。
【0013】CORBA環境では、オブジェクト要求ブ
ローカ・デーモン・プロセス(ORBD)が、それに登
録されているクライアント・プロセスから、メソッド呼
出しとも呼ばれるオブジェクト要求を受け取る。ORB
デーモンは次いで、ネットワーク上でオブジェクトを見
つけ、このクライアント・プロセスとこのネットワーク
化オブジェクトとの間のインタフェースとして働く。N
EO環境では、ORBデーモンは、NEOオブジェクト
を活動化させ、そのオブジェクト、すなわち標準NEO
オブジェクト、または場合によってはNEOオブジェク
トとして実行させるためにNEOシェルにカプセル化さ
れたレガシー・プロセスの別のインタフェースとして働
く。NEOオブジェクト・サーバは、必要に応じてオブ
ジェクトをインスタンス化し、ORBデーモンから転送
された要求に応答するように働く。
【0014】システム・ブロック図 図1は、CORBA準拠ネットワーク化オブジェクト・
システムのブロック図である。複数のスレッドが要素1
00ないし103で表されており、スレッド100ない
し101は第1のクライアント・プロセス、すなわちク
ライアント・プロセス1から生成されるスレッドであ
り、スレッド102ないし103は第2のクライアント
・プロセス、すなわちクライアント・プロセスNから生
成されるスレッドである。図1に示したように、単一の
クライアント・プロセスは任意の数のスレッドを生成す
ることができる。各スレッド100ないし103は、オ
ブジェクト要求ブローカ・デーモン(ORBD)プロセ
ス104にリンクされる。ORBDプロセス104は、
オブジェクト・サーバ105およびオブジェクト・サー
バ107で表される複数のオブジェクト・サーバにリン
クされる。第2のORBDプロセス、すなわちORBD
プロセス110はさらにORBDプロセス104にリン
クされる。ORBDプロセス110は、他のオブジェク
ト・サーバまたはクライアント・プロセス(図示せ
ず)、あるいはその両方に結合することもできる。オブ
ジェクト・サーバ105はオブジェクト106にリンク
される。オブジェクト・サーバ107はオブジェクト1
08および109にリンクされる。
【0015】ORBDプロセス104は、クライアント
・プロセス・スレッド100ないし103からメソッド
呼出しなどのオブジェクト要求をロケート要求の形で受
け取り、どのオブジェクト・サーバが適当なオブジェク
トをサポートしているかを判定する。必要なサーバが現
在動作していない場合、そのサーバが活動化されオブジ
ェクトがインスタンス化される。ロケート要求に応答し
てオブジェクトの位置に関する情報が返され、この位置
情報によってスレッドとオブジェクトとの間で他の要求
が送られる。ロケート要求によって他のスレッドから同
じオブジェクトを同様に呼び出し、このオブジェクトと
すべての適用可能なスレッドとの間に並行して対話を確
立することができる。
【0016】ORBデーモン110は、インターネット
など大規模なネットワークを介してネットワーク化オブ
ジェクト環境用のゲートウェイを形成することも、ある
いはそれ自体のドメイン内のクライアントおよびオブジ
ェクト・サーバとのプラットフォーム依存インタフェー
スを形成し、同時にORBD104との標準化インタフ
ェースを形成することによってクロス・プラットフォー
ム対話を行うこともできる。
【0017】オブジェクト・サーバ105および107
は、オブジェクト106や108ないし109で示した
ようなオブジェクトまたはオブジェクト・ライブラリに
アクセスする。レガシー・オブジェクト、すなわち独立
型アプリケーションと、基本的にネットワーク化オブジ
ェクト環境向けには設計されていない他のオブジェクト
とを備えるオブジェクトは、オブジェクト・サーバがレ
ガシー・オブジェクトの機能にアクセスできるようにす
るインタフェースを形成するIDLシェルを備える。O
RBデーモンと共に動作するパシスタント・ストア・マ
ネージャ・プロセスはロックを追跡し、オブジェクト・
サーバがサーバ専用アクセスを維持するにはオン・オブ
ジェクト、たとえばデータベース・オブジェクトを有す
ることができる。
【0018】ネットワークはハードウェア境界からほぼ
独立しているので、オブジェクトおよびオブジェクト・
サーバは、クライアント・プロセスおよびORBデーモ
ンと同じコンピュータ上に存在することも、あるいはネ
ットワーク内の別々のコンピュータ上に存在することも
できる。同様に、ネットワーク化オブジェクト環境は、
ネットワークのベース・レベル処理系からほぼ独立して
いる。
【0019】シャットダウン・プロトコル オブジェクト・サーバに関するシャットダウン・プロト
コルの従来技術の処理系を下記に示す。オブジェクト・
サーバは、たとえばアイドル時間のために、あるいは場
合によってはクライアントの呼出しに応答してシャット
ダウンすることを決定する。オブジェクト・サーバは次
いで、すべてのアクティブ・オブジェクトのシャットダ
ウンを開始し、すべてのメソッド呼出しが終了するのを
待つ。オブジェクト・サーバに結合されたすべてのオブ
ジェクトがシャットダウンすると、オブジェクト・サー
バはそのサーバ状態を「シャットダウン中」にセット
し、シャットダウン中であることをORBデーモンに知
らせる。ORBデーモンが首尾良く、オブジェクト・サ
ーバがシャットダウン中であることを知ると、サーバは
そのサーバ状態を「終了」にセットし、ORBデーモン
との接続を終了する。最後に、オブジェクト・サーバ
は、シャットダウンが完了したことをメイン・スレッド
に知らせ、メイン・スレッドは、オブジェクト・サーバ
がパーシスタント・ストア・マネージャ内に有すること
のできるロックの解放など、最後のクリーンナップを実
行する。
【0020】オブジェクト・サーバ内で動作するオブジ
ェクト・サーバ有限状態マシンを図2の状態図に示す。
サーバ状態マシンは、「非実行中」、「実行中」、「シ
ャットダウン中」、「終了」の4つの状態からなる。サ
ーバが始動すると、サーバは状態200、すなわち「非
実行中」になり、矢印204で示したように、メソッド
の呼出しは待機させられる。オブジェクト・サーバがO
RBデーモンに登録され、矢印205で示したようにオ
ブジェクト・サーバが実行表示を受け取った後、オブジ
ェクト・メソッドがイネーブルされ、サーバ状態は状態
201、すなわち「実行中」へ進む。
【0021】状態201では、矢印206で示したよう
に新しい呼出しによってアクティブ・メソッド・カウン
タが増分し、矢印207で示したようにメソッド呼出し
が終了することによってアクティブ・メソッド・カウン
タが減分する。オブジェクト・サーバが、アイドル時間
が長すぎるためにシャットダウンするとき、クライアン
ト、たとえばオブジェクト・サーバからの呼出しは、矢
印208で示したようにすべてのメソッド呼出しがクリ
アされるまで待ち、次いで、シャットダウン中であるこ
とをORBデーモンに知らせ、他のクライアントからの
新しい呼出しを待機させ、サーバ状態を状態202、す
なわち「シャットダウン中」にセットする。
【0022】矢印209で示したように、状態202中
の他の呼出しは待機させられる。ORBデーモンが首尾
良く、サーバがシャットダウン中であることを知った
後、矢印210で示したように、オブジェクト・サーバ
はすべての待機中のクライアントにエラーを返し、クラ
イアントにリバインドさせ、すなわち新しいオブジェク
ト・サーバを見つけさせる。次いで、サーバ状態は状態
203、すなわち「終了」へ進み、ロックの除去など最
後のクリーンナップ動作が実行される。
【0023】第2のサーバ有限状態マシンは、ORBデ
ーモン内で動作し、ORBデーモンによってサーバ上で
行われる活動化/非活動化制御を判定する。この第2の
有限状態マシンは、「始動」、「始動中」、「実行中」
の3つの状態を有する。この3状態有限状態マシンの状
態図を図3に示す。矢印303で示したように「始動」
状態300のサーバ宛のロケート要求がORBデーモン
に到着すると、サーバは、新しいプロセスとして分岐
し、要求側メソッド呼出しがブロックされ、サーバ状態
が「始動」状態301を開始する。
【0024】状態301では、矢印305で示したよう
に、すべてのロケート要求がブロックされ、サーバの登
録を待たされる。矢印304で表したようにサーバPI
D(プロセスID)が終了した場合、待機中のメソッド
呼出しがブロック解除され、サーバが「始動」状態30
0に戻り、待機中のあるメソッド呼出しがサーバの始動
を再試行する。「始動中」状態301の間に、矢印30
6で示したようにサーバがORBデーモンに登録した場
合、すべての待機中のメソッド呼出しがブロック解除さ
れ、サーバ状態が「実行中」状態302を開始する。
【0025】矢印307で示したように、「実行中」状
態302の間に受け取るすべてのその後のロケート要求
は、サーバがその登録の一部として与えたアドレス情報
を返す。矢印308で示したように、サーバがシャット
ダウン・プロトコルの一部として、シャットダウン中で
あることを知らせると、ORBデーモンがクリーンナッ
プし、サーバ状態が「始動」状態300に戻る。
【0026】図2および3のサーバ活動化/非活動化プ
ロトコルに関する主要な問題は、サーバをシャットダウ
ンしている間に競合状態が起こることである。ロックの
除去などのシャットダウン手続きは、サーバがシャット
ダウンしたことをORBデーモンに知らせた後にサーバ
において行われる。しかし、ORBデーモンは、サーバ
からシャットダウン信号を受け取ると、サーバが完全に
シャットダウンした場合と同様に動作する。これは、O
RBデーモンには、新しいサーバがロケート要求の結果
としてただちに始動できることを意味する。
【0027】新しいサーバが、古いサーバに依然として
ロックされている資源にアクセスしようとすると、競合
が起こる。古いサーバがまだロックを除去していない場
合、新しいサーバは、ロックされている資源へのアクセ
スを拒否され、新しいサーバは始動を中止する。したが
って、古いサーバが保持している資源に対するすべての
ロック解除と新しいサーバによる同じ資源のアクセスと
の間に競合状態が存在する。まずロックが解除された場
合、他の問題を除いて、新しいサーバは首尾良く始動を
完了する。先に新しいサーバが資源にアクセスしようと
すると、新しいサーバは中止される。新しいサーバ・プ
ロセスを分岐させ、単に始動の途中で中止させること
は、CPU処理時間の無駄であり、CPU処理時間は古
いサーバのシャットダウンなど他のプロセスに費やした
方が良い。
【0028】
【発明が解決しようとする課題】問題は、ORBデーモ
ン内のサーバ有限状態マシン(すなわち、図3)にあ
る。この状態マシンは、シャットダウン・プロセス(す
なわち、サーバが「実行中」状態307から「始動」状
態300へ移る時間)を考慮していない。「シャットダ
ウン中の」サーバが完全にシャットダウンしていなくて
も新しいサーバをただちに始動することができる。この
場合、古いサーバのシャットダウンと新しいサーバの始
動との間に競合状態が起こる。
【0029】既存のプロトコルは、登録なしに開始し、
あるいは登録に時間がかかりすぎるサーバ、およびシャ
ットダウンの速度が低すぎるサーバも取り扱わない。た
とえば、サーバがハングしているためにサーバの速度が
低すぎてORBデーモンに登録できない場合、処置を施
すべきである。同様に、サーバがハングしているために
サーバの速度が低すぎてシャットダウンできない場合、
新しいサーバが始動できるようにする処置を施すべきで
ある。現在の所、これらの問題を処理する機構は存在し
ない。
【0030】さらに、現在の所、スラッシング状態を処
理する機構はない。スラッシング状態は、サーバが始動
および再始動を連続的に中断されたときに起こる。これ
は、サーバが過度に高い速度で再始動しようとするとき
に起こる。たとえば、終了時にORBデーモンによって
自動的に再始動されるデーモン・サーバは、スラッシン
グ動作の影響を強く受ける。スラッシングは、サーバの
始動プロセスの回復できないエラーを示すこともある。
スラッシング状態を処理する機構がない場合、この問題
が将来再発するのを防止することはできない。
【0031】最後に、ORBは現在の所、状態マシン内
の「自己始動サーバ」(「ユーザ・サーバ」とも呼ばれ
る)を処理することはできない。自己始動サーバとは、
ORBデーモンとの間で登録および登録解除を行うが、
呼出しの結果としてORBデーモンによって生成される
ことのないサーバである。
【0032】
【課題を解決するための手段】サーバの活動化を制御す
る方法および装置を提供する。サーバ状態マシン内のサ
ーバ状態はサーバ・プロセスに関連付けられる。このサ
ーバ状態は、サーバ・プロセスからシャットダウン表示
が返されたときに実行中状態からシャットダウン中状態
に変更される。シャットダウン中状態では、サーバ・プ
ロセス宛のメソッド呼出しがブロックされ、そのため、
この状態中の新しいサーバ・プロセスの活動化が妨げら
れる。サーバ状態は、サーバ・プロセスのシャットダウ
ンが完了したことを示す表示を受け取ったときにシャッ
トダウン中から始動状態に変更される。
【0033】ハングしているサーバ・プロセスを処理す
るために、サーバ状態が始動状態から始動中状態へ、あ
るいは実行中状態からシャットダウン中状態へ変化した
ときにタイマが始動される。タイマがサーバの登録また
は終了前に満了した場合、サーバ・プロセスが終了さ
れ、エラーが記録される。サーバ・プロセスが終了する
と、サーバ状態が始動状態に戻る。
【0034】一実施態様では、自己始動サーバ・プロセ
スに適応するためにサーバ状態マシンに自己始動実行中
状態が含まれる。自己始動サーバ・プロセスに関連付け
られたサーバ状態は、自己始動サーバ・プロセスが登録
されると始動状態から自己始動実行中状態へ変更され
る。自己始動サーバ・プロセスが登録解除されると、サ
ーバ状態は始動状態に戻る。自己始動サーバ・プロセス
宛のロケート要求には、自己始動実行中状態時にサーバ
・アドレス情報が返される。
【0035】他の実施態様では、スラッシュしているサ
ーバ・プロセスを処理するために独立のホールドダウン
状態マシンが設けられる。ホールドダウン状態はサーバ
・プロセスに関連付けられ、サーバ宛のロケート要求
は、ホールドダウン状態マシンに対して応答に関する問
い合わせを行う。ロケート要求は、ホールドダウン状態
マシンに問い合わせた後、サーバ状態マシンに問い合わ
せる。
【0036】
【発明の実施の形態】サーバ活動化を制御する方法につ
いて説明する。下記の説明では、本発明をより完全に説
明するために多数の特定の詳細について詳しく述べてい
る。しかし、当業者には、これらの特定の詳細なしで本
発明を実施できることが明らかになろう。他の例では、
本発明を不必要に曖昧にしないように周知の特徴は詳し
く記載されていない。
【0037】本発明の実施形態は、サーバ活動化を制御
する方法および装置を提供する。従来技術では、古いサ
ーバのシャットダウンと新しいサーバの始動との間に競
合状態が存在する。しかし、本発明のこの実施形態は、
ORBデーモン内で動作するサーバ有限状態マシンに追
加「シャットダウン中」状態を与えることによって望ま
しくないこの状態を回避する。この追加状態によって、
古いサーバは、新しいサーバが始動する前に必要なシャ
ットダウン手続きを完了することができる。速度が低す
ぎてシャットダウンすることも、あるいは始動すること
もできないサーバを処理するプロセスも設けられ、自己
始動サーバを処理するためにサーバ有限状態マシンに第
2の追加状態が設けられる。スラッシュしているサーバ
は、独立のホールドダウン状態マシンによって処理され
る。
【0038】本発明の一実施形態では、ORBデーモン
内で動作するサーバ状態マシンは、「始動」状態、「始
動中」状態、「実行中」状態、「シャットダウン中」状
態、「自己始動実行中」状態の5つの状態を備える。始
動時に、新しいサーバは、「始動」状態から「始動中」
状態へ進み、ORBデーモンに登録されるまでそのまま
であり、登録された時点で「実行中」状態を開始する。
始動するまでに時間がかかりすぎるサーバは、「始動
中」状態でタイムアウトし、「始動」状態に戻り、この
状態で、待機中のクライアントがこのサーバを再始動し
ようとする。古いサーバは、シャットダウンすると、
「実行中」状態から「シャットダウン中」状態に入り、
必要なクリーンナップ動作を実行する。サーバは、終了
すると、「始動」状態に戻り、新しいサーバが始動する
ことができる。終了するまでに時間がかかりすぎるサー
バ・プロセスは、ORBデーモンによって「終了」さ
れ、「始動」状態に戻る。サーバが「シャットダウン
中」状態の間に受け取った呼出しはブロックされる。
【0039】「自己始動実行中」状態は、単にORBデ
ーモンとの間で登録および登録解除を行う自己始動サー
バまたはユーザ・サーバを処理するために実施される。
自己始動サーバがORBデーモンに登録されると、サー
バの状態が「始動」状態から「自己始動実行中」状態へ
移る。サーバが「自己始動実行中」状態の間に受け取っ
た呼出しは、サーバのアドレス情報を返す。自己始動サ
ーバがORBデーモンから登録解除されると、サーバ状
態は「始動」状態に戻り、ORBデーモンは、サーバが
シャットダウンしたと仮定する。
【0040】本発明の他の実施形態では、サーバがスラ
ッシュしているインスタンスでサーバのホールドダウン
を制御するために独立の状態マシンが実施される。した
がって、サーバ始動プロセスの回復できないエラーが処
理される。
【0041】本発明の実施形態は、図4に示したような
汎用コンピュータ上で実行されるコンピュータ読取り可
能なプログラム・コードの形のコンピュータ・ソフトウ
ェアとして実施することができる。キーボード410お
よびマウス411は二方向システム・バス418に結合
される。キーボードおよびマウスは、コンピュータ・シ
ステムにユーザ入力を導入しそのユーザ入力を中央演算
処理装置(CPU)413に伝達するためのものであ
る。図4のコンピュータ・システムは、ビデオ・メモリ
414と、メイン・メモリ415と、大容量記憶域41
2とを含み、これらはすべて、キーボード410、マウ
ス411、CPU413と共に二方向システム・バス4
18に結合される。大容量記憶域412は、磁気記憶シ
ステムや、光学記憶システムや、磁気光学記憶システム
や、その他の使用可能な大容量記憶技術など、固定媒体
と取り外し可能な媒体の両方を含むことができる。バス
418は、たとえばビデオ・メモリ414またはメイン
・メモリ415にアドレスする32本のアドレス線を含
むことができる。システム・バス418はたとえば、C
PU413、メイン・メモリ415、ビデオ・メモリ4
14、大容量記憶域412などの構成要素間でデータを
転送する32ビット・データ・バスを含むこともでき
る。別法として、別々のデータ線およびアドレス線では
なく多重化データ/アドレス線を使用することができ
る。
【0042】本発明の一実施形態では、CPU413
は、680X0プロセッサなど、Motorola社に
よって製造されている32ビット・マイクロプロセッ
サ、または80X86やPentiumプロセッサな
ど、Intel社によって製造されているマイクロプロ
セッサである。しかし、他の適当なマイクロプロセッサ
またはマイクロコンピュータを使用することができる。
メイン・メモリ415は、ダイナミック・ランダム・ア
クセス・メモリ(DRAM)で構成される。ビデオ・メ
モリ414は、二重ポート・ビデオ・ランダム・アクセ
ス・メモリである。ビデオ・メモリ414の1つのポー
トはビデオ増幅器416に結合される。ビデオ増幅器4
16は、陰極管(CRT)ラスタ・モニタ417を駆動
するために使用される。ビデオ増幅器416は、良く知
られており、任意の適当な装置によって実施することが
できる。この回路は、ビデオ・メモリ414に記憶され
ている画素データを、モニタ417で使用するのに適し
たラスタ信号に変換する。モニタ417は、グラフィッ
ク画像を表示するのに適したある種のモニタである。
【0043】ネットワーク環境では、図4の装置は、当
技術分野で知られているように適当な通信ハードウェア
およびソフトウェアを使用する他の同様な装置に結合さ
れる。ネットワークの共用サービスにアクセスするフロ
ント・エンド・システムは、WindowsTMを実行
するPCシステム、またはJavaTMアプリケーショ
ン・インタフェースをサポートするウェブ・ブラウザ、
またはSolarisTMを実行するワークステーショ
ン、またはそれらの組合せを含め他の適当なシステムを
備えることができる。
【0044】前述のコンピュータ・システムは、例示の
みのためのものである。本発明の実施形態は、任意のタ
イプのコンピュータ・システム、あるいはプログラミン
グ環境または処理環境で実施することができる。前述の
NEO環境以外のマルチスレッド環境のクライアント・
サーバ・システムも、ORBデーモンと同様なサーバ制
御プロセスを使用してサーバ有限状態マシンの実施形態
を実施することによって本発明の方法および装置を実施
することができる。
【0045】従来技術では、マルチスレッド環境の新し
いサーバの活動化または始動が、シャットダウン中の古
いサーバの動作の影響を受けることがある。データベー
ス・ロックおよびその他のサーバ特有の機能は依然とし
て古いサーバに対してアクティブであり、そのため新し
いサーバの活動化が異常終了または中断することがあ
る。
【0046】本発明の実施形態は、古いサーバがシャッ
トダウン・プロセスを完了する前に新しいサーバが始動
するのを妨げることによって従来技術の問題を回避す
る。これは、ORBデーモンに追加「シャットダウン
中」状態を与え、古いサーバがシャットダウンの途中で
あることを示すことによって行われる。古いサーバがシ
ャットダウンを終了し、サーバ状態が「シャットダウン
中」状態を終了した後、新しいサーバを活動化すること
ができる。したがって、競合状態が回避される。
【0047】従来技術のマルチスレッド環境では、サー
バが「ハング」し、すなわちサーバ・プロセスの問題の
ためにサーバがシャットダウンまたは始動するまでの時
間がかかりすぎる傾向がある。本発明の実施形態は、始
動プロセスおよびシャットダウン・プロセス用のタイマ
を確立することによってこの問題を回避する。サーバが
タイムアウトを有し、すなわちタイマが事前に設定され
た限界を超えた場合、サーバは「始動」状態に戻り、エ
ラーが記録される。
【0048】従来技術のシステムでは、ある種のサーバ
・プロセスは再始動の速度が高すぎ、サーバが始動を完
了する前に終了し、スラッシングと呼ばれるサイクルで
再始動する。これは、サーバの始動プロセスの回復でき
ないエラーによって起こる。本発明の一実施形態では、
スラッシング動作は、サーバ・ホールドダウン状態マシ
ンを追加することによって処理される。
【0049】最後に、従来技術では、自己始動サーバ
は、ORBデーモン内の状態マシンからは予期されな
い。本発明の実施形態は、自己始動サーバ用の追加実行
中状態を含む。自己始動サーバは、ORBデーモンに登
録されたときに「自己始動実行中」状態になり、次いで
登録解除されたときに「始動」状態になる。自己始動サ
ーバは、「始動」状態を開始したときにORBデーモン
からシャットダウンしたとみなされる。
【0050】本発明の実施形態の有限状態マシンは、サ
ーバの現在の状態の表現を含む状態変数を含むORBデ
ーモン内のソフトウェア・プロセスを用いて実施するこ
とができる。状態マシン・プロセスは、指定された入力
に応答する際、状態変数から現在の状態を判定し、その
状態に対する適当な処置を判定する。状態変数の内容
は、「始動」には「000」、「始動中」には「00
1」、「実行中」には「010」、「シャットダウン
中」には「011」、「自己始動実行中」には「10
0」など現在の状態の簡単なバイナリ値表現でも、ある
いはその他の適当な状態表現でもよい。各サーバごとの
状態変数を含む状態テーブルを使用してORBデーモン
によって複数のサーバを処理することができる。状態マ
シンは、各状態ごとに別々のモジュールを有する分岐ソ
フトウェア・コード・モジュールを用いて実施すること
もできる。そのような実施態様では、サーバの状態を明
示的に表す必要はない。当技術分野で知られている標準
タイマ関数を使用して「タイムアウト」手続きを実施す
ることができる。
【0051】通常のサーバ・ライフサイクルは下記のと
おりである。サーバに対する第1のロケート要求は、サ
ーバを始動し、サーバがORBデーモンに登録されるの
を待ち、次いでサーバの位置またはアドレス情報をクラ
イアントに返す。サーバは、シャットダウンすることを
決定すると、サーバのオブジェクトを非活動化し、次い
で、シャットダウンすることをORBデーモンに知らせ
る。この点で、ORBデーモンは、サーバへのすべての
ロケート要求をブロックし、サーバがシャットダウンの
途中であるとみなす。サーバは、シャットダウン・プロ
セスを完了し、オブジェクト・データベースおよびパシ
スタント・ストア・マネージャに対するすべてのロック
を解除する。サーバ・プロセスが終了すると、ORBデ
ーモンが通知を受ける。ORBデーモンは、終了を通知
された後、サーバが完全にシャットダウンしたものとみ
なし、新しいサーバが再始動できるようにする。
【0052】図5は本発明の一実施形態の状態図を示
す。図5に表した有限状態マシンは、ORBデーモン又
はその他の同様なサーバ監視・制御プロセスで実施され
る。
【0053】図5で、「始動」状態500に未活動化サ
ーバが存在する。矢印505で示したように、未活動化
サーバがロケート要求または呼出しを受け取ると、サー
バ・プロセスが分岐し、クライアントからのメソッド呼
出しが待機させられ、始動タイマがトリガされる。サー
バは次いで、「始動中」状態501を開始する。矢印5
07で示したように、「始動中」状態501で受け取っ
たすべてのメソッド呼出しがブロックされる(すなわ
ち、待機させられる)。
【0054】サーバ・プロセスが終了し、あるいは始動
タイマが、「始動中」状態501でタイムアウト条件を
示した場合、矢印506で示したように、始動タイマが
取り消され、待機中のメソッド呼出しがブロック解除さ
れ、ログ・ファイルにおいて適当なエラー・メッセージ
が報告され、サーバが「始動」状態500に戻る。ブロ
ック解除されたメソッド呼出しは次いで、サーバを再始
動しようとする。サーバが「始動中」状態501から首
尾良くORBデーモンに登録された場合、矢印508で
示したように、始動タイマが取り消され、待機中のメソ
ッド呼出しがブロック解除され、サーバが「実行中」状
態502を開始する。
【0055】矢印517で示したように、サーバが「実
行中」状態502の間に突然終了すると、サーバ状態が
「始動」状態500に戻りエラーが記録される。「実行
中」状態500で受け取ったロケート要求は、矢印50
9で示したように、サーバのアドレス情報を返す。サー
バが、アイドル・タイマの満了や、クライアント要求な
どのために、矢印510で示したように、シャットダウ
ンすることを決定すると、サーバ状態が「シャットダウ
ン中」状態503を開始し、シャットダウン・タイマが
トリガされる。
【0056】「シャットダウン中」状態503の間に受
け取ったすべてのメソッド呼出しは、矢印511で示し
たようにブロックされる。サーバが終了し、すなわちシ
ャットダウン手続きを終了すると、シャットダウン・タ
イマが取り消され、待機中のメソッド呼出しがブロック
解除され、矢印512で示したようにサーバ状態が「始
動」状態500に戻る。矢印513は、シャットダウン
・タイマが満了したシャットダウン・タイムアウト状態
を示す。シャットダウン・タイマが満了した場合、OR
Bデーモンは、サーバ・プロセスがハングしていると仮
定し、サーバを終了させ、サーバ状態を「始動」状態5
00に戻す。待機中のメソッド呼出しはブロック解除さ
れエラーが記録される。サーバが「始動」状態500に
戻ると、ブロック解除されたメソッド呼出しはサーバを
再始動しようとする。
【0057】矢印514で示したように自己始動サーバ
またはユーザ・サーバがORBデーモンに登録される
と、サーバの状態が「自己始動実行中」状態504にな
り、ORBデーモンとサーバがセットアップ情報を交換
する。「自己始動実行中」状態504では、呼出しは、
矢印516で示したように、サーバのアドレス情報を返
す。自己始動サーバは、矢印515で示したようにOR
Bデーモンから登録解除することができ、その時点でO
RBデーモンは、サーバがシャットダウンしたと仮定
し、クリーンナップ動作が実行される。登録解除時に、
自己始動サーバは「始動」状態500に戻る。自己始動
サーバへシャットダウン要求が送られると、サーバが登
録解除される。
【0058】本発明の一実施形態では、ホールドダウン
条件を制御するために独立の状態マシンが実施される。
時には、たとえばささいな矛盾を解決できるように一時
的に、あるいは補正を必要とする回復不能なエラーを管
理者に知らせるためにより長い持続期間にわたって、サ
ーバ・プロセスを停止させる必要がある。短いホールド
ダウン時には、サーバは短時間中のみ使用不能になると
予想され、したがってサーバ宛のロケート要求は、この
短いホールドダウンが終了するまでブロックされるに過
ぎない。しかし、長いホールドダウン時には、サーバは
長時間にわたって使用不能になると予想される。したが
って、長いホールドダウン中のロケート要求は、サーバ
が使用不能であることを反映するためにエラーを返す。
【0059】再始動の速度が高すぎ、すなわち再始動回
数が、刻時カウンタ関数によって決定される単位時間当
たりの構成可能な回数よりも多いサーバを「スラッシン
グ」サーバと呼ぶ。スラッシング状態が検出されると、
サーバは長いホールドダウン状態になる。
【0060】ホールドダウン条件は、「非ホールドダウ
ン」状態と、「短いホールドダウン」状態と、「長いホ
ールドダウン」状態とを有する3状態状態マシンで制御
される。ロケート要求はまず、ホールドダウン状態に基
づいて適当な処置を実行するホールドダウン状態マシン
で処理され、次いでサーバ状態マシンによって処理され
る。
【0061】ホールドダウン状態マシンの実施形態を図
6に示す。図6で、「非ホールドダウン」状態600
は、サーバが現在停止されていないことを示す。矢印6
03で示したように、「非ホールドダウン」状態600
で受け取ったロケート要求によってホールドダウン状態
マシンから動作が生成されることはない。さらに、矢印
609で示したように、「長いホールドダウン」状態6
02で受け取ったロケート要求はエラーを返す。
【0062】ホールドダウン状態間の遷移に関しては、
それぞれ、矢印604、611、610、608で表し
た、「非ホールドダウン」状態600から「短いホール
ドダウン」状態601への遷移、「非ホールドダウン」
状態600から「長いホールドダウン」状態602への
遷移、「長いホールドダウン」状態602から「非ホー
ルドダウン」状態600への遷移、「長いホールドダウ
ン」状態602から「短いホールドダウン」状態601
への遷移によって動作が実行されることはない。それぞ
れ、矢印605および607で表した、「短いホールド
ダウン」状態601から「非ホールドダウン」状態60
0への遷移および「短いホールドダウン」状態601か
ら「長いホールドダウン」状態602への遷移では、待
機中のメソッド呼出しがブロック解除される。状態間の
遷移は、ORBデーモンによって制御される。
【0063】図7は、前述の状態マシンを使用してロケ
ート要求に応答するプロセスの一実施形態を示す。ステ
ップ700で、状態マシン・プロセスが、クライアント
・スレッドからロケート要求の形のメソッド呼出しを受
け取る。ステップ701で、ホールドダウン状態マシン
が問い合わせを受け、ホールドダウン条件がロケート要
求に対する応答に影響を及ぼすかどうかが判定される。
ホールドダウン状態に応じてステップ702で分岐が行
われる。ホールドダウン状態が「短いホールドダウン」
である場合、ステップ703で、ロケート要求で表され
た呼出しがブロックされる。ホールドダウン状態が「長
いホールドダウン」である場合、ステップ704で、プ
ロセスは、サーバが使用不能であることを反映するエラ
ーをクライアントに返す。ホールドダウン状態が「非ホ
ールドダウン」である場合、ステップ705で、サーバ
状態マシンが問い合わせを受け、現サーバ状態が判定さ
れる。
【0064】ステップ706で、現サーバ状態に応じて
分岐が行われる。現サーバ状態が「始動中」または「シ
ャットダウン中」である場合、ステップ707で呼出し
がブロックされる。現サーバ状態が「実行中」または
「自己始動実行中」である場合、ステップ708で、ク
ライアントにサーバ・アドレス情報が返される。現サー
バ状態が「始動」である場合、ステップ709で、サー
バ・プロセスが分岐し、始動タイマが始動され、クライ
アントからのメソッド呼出しが待機させられる。ステッ
プ710で、サーバ状態が「始動中」に変更される。
【0065】図8は、前述のサーバ状態マシンを使用し
てサーバ・プロセス終了通知に応答するプロセスの一実
施形態を示す。ステップ711で、プロセスが、サーバ
・プロセスが終了したことを示す表示を受け取る。ステ
ップ712で、サーバ状態マシンが問い合わせを受け、
現サーバ状態情報が判定される。現サーバ状態に応じて
ステップ713で分岐が行われる。現サーバ状態が「始
動中」である場合、ステップ714で、始動タイマが取
り消され、待機中のメソッド呼出しがブロック解除さ
れ、エラーが記録される。現サーバ状態が「実行中」で
ある場合、ステップ715で、エラーが記録される。現
サーバ状態が「シャットダウン中」である場合、ステッ
プ716で、シャットダウン・タイマが取り消され、待
機中のメソッド呼出しがブロック解除される。ステップ
714、715、716はすべてステップ717へ進
み、サーバ状態が「始動」にセットされる。
【0066】図9は、タイムアウトに応答するプロセス
の一実施形態を示す。ステップ718で、プロセスがタ
イムアウト表示を受け取る。ステップ719で、サーバ
・プロセスが終了し、待機中のメソッド呼出しがブロッ
ク解除され、エラーが記録される。ステップ720で、
サーバ状態が「始動」にセットされる。
【0067】図10は、前述のサーバ状態マシンを使用
してサーバの登録に応答するプロセスの一実施形態を示
す。ステップ721で、プロセスがサーバから登録要求
を受け取る。ステップ722で、サーバ状態マシンが問
い合わせを受け、サーバ状態情報が得られる。ステップ
723で、現サーバ状態に応じて分岐が行われる。現サ
ーバ状態が「始動中」である場合、ステップ724で、
始動タイマが取り消され、待機中のメソッド呼出しがブ
ロック解除される。ステップ725で、現サーバ状態が
「実行中」にセットされる。現サーバ状態が「始動」で
ある場合、ステップ726で、サーバとORBデーモン
との間でセットアップ情報が交換される。ステップ72
7で、サーバ状態が「自己始動実行中」に変更される。
【0068】図7Eは、前述のサーバ状態マシンを使用
してサーバ・シャットダウン表示に応答するプロセスの
一実施形態を示す。ステップ728で、プロセスがシャ
ットダウン表示を受け取る。ステップ729で、サーバ
状態マシンがサーバ状態情報に関する問い合わせを受け
る。現サーバ状態に応じてステップ730で分岐が行わ
れる。現サーバ状態が「実行中」である場合、ステップ
731で、シャットダウン・タイマが始動される。ステ
ップ732で、現サーバ状態が「シャットダウン中」に
セットされる。現サーバ状態が「自己始動実行中」であ
る場合、ステップ733で、ORBデーモンがサーバ・
データ構造のクリーンナップを実行する。ステップ73
4で、サーバ状態が「始動」にセットされる。
【0069】上記実施形態は、コンピュータのハードウ
エアによって実施される。そのハードウエアシステムで
用いられるプログラムは当然のことながら記録媒体に記
録された状態で提供される。このプログラムを記憶させ
た媒体としては、例えばフレキシブルディスク、CD−
ROM、メモリカードその他あらゆる媒体を使用でき
る。媒体に記録されたプログラムは、ハードウエアに組
み込まれている記憶装置、例えばハードディスクなどに
インストールされることにより、プログラムが実行でき
るようになる。
【0070】したがって、サーバ活動化を制御する方法
および装置を1つまたは複数の特定の実施形態に関連し
て説明した。本発明は、特許請求の範囲およびその全範
囲の等価物によって定義される。
【図面の簡単な説明】
【図1】 ネットワーク化オブジェクト環境の例のブロ
ック図である。
【図2】 オブジェクト・サーバ内で実行されるサーバ
有限状態マシン・プロセスの状態図である。
【図3】 ORBデーモン内で実行されるサーバ有限状
態マシン・プロセスの状態図である。
【図4】 ネットワーク化オブジェクト環境をサポート
するのに適したコンピュータ・システムのブロック図で
ある。
【図5】 本発明の実施形態によるORBデーモン内で
動作する有限状態マシンの一実施形態の状態図である。
【図6】 本発明の一実施形態に関するホールドダウン
状態マシンの状態図である。
【図7】 ロケート要求に応答するプロセスの一実施形
態を示す図である。
【図8】 サーバ終了通知に応答するプロセスの一実施
形態を示す図である。
【図9】 タイムアウトに応答するプロセスの一実施形
態を示す図である。
【図10】 サーバ登録に応答するプロセスの一実施形
態を示す図である。
【図11】 サーバ・シャットダウン表示に応答するプ
ロセスの一実施形態を示す図である。
【符号の説明】
410 キーボード 411 マウス 412 大容量記憶域 413 中央処理演算装置(CPU) 414 ビデオ・メモリ 415 メイン・メモリ 416 ビデオ増幅器 417 陰極管ラスタ・モニタ 418 二方向システム・バス 500 始動状態 501 始動中状態 502 実行中状態 503 シャットダウン中状態 504 自己始動実行中状態 600 非ホールドダウン状態 601 短いホールドダウン状態 602 長いホールドダウン状態
フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 ケン・エム・カヴァナー アメリカ合衆国・94037・カリフォルニア 州・モンタナ・フィフス・357

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 サーバの活動化を制御する方法であっ
    て、 サーバ状態マシン内のサーバ状態を第1のサーバに関連
    付けるステップと、 前記サーバからシャットダウン表示を受け取ったときに
    前記サーバ状態を実行中状態からシャットダウン中状態
    に変更するステップと、 前記第1のサーバが前記シャットダウン中状態である
    間、第2のサーバの始動を妨げるステップと、 前記第1のサーバがシャットダウン・プロセスが完了し
    たことを示したときに前記状態を前記シャットダウン中
    状態から始動状態に変更するステップとを含むことを特
    徴とする方法。
  2. 【請求項2】 さらに、シャットダウン中状態の間サー
    バの呼出しをブロックするステップを含むことを特徴と
    する請求項1に記載の方法。
  3. 【請求項3】 さらに、自己始動サーバが登録されたと
    きに前記サーバ状態を前記始動状態から自己始動実行中
    状態に変更するステップを含むことを特徴とする請求項
    1に記載の方法。
  4. 【請求項4】 さらに、前記サーバ状態が前記始動状態
    から始動中状態に変化したときにタイマを始動するステ
    ップを含むことを特徴とする請求項1に記載の方法。
  5. 【請求項5】 さらに、前記サーバ状態が前記実行中状
    態から前記シャットダウン中状態に変化したときにタイ
    マを始動するステップを含むことを特徴とする請求項1
    に記載の方法。
  6. 【請求項6】 さらに、 ロケート要求を受け取ったときに、ホールドダウン状態
    マシンに問い合わせるステップと、 前記ホールドダウン状態マシンに問い合わせた後、前記
    サーバ状態マシンに問い合わせるステップとを含むこと
    を特徴とする請求項1に記載の方法。
  7. 【請求項7】 さらに、前記サーバ状態が前記実行中状
    態および前記自己始動実行中状態であるときにロケート
    要求に応答してサーバ・アドレス情報を返すステップを
    含むことを特徴とする請求項1に記載の方法。
  8. 【請求項8】 サーバを制御する装置であって、 中央処理演算装置(CPU)と、 前記CPUによって実行され、始動状態と、始動中状態
    と、実行中状態と、シャットダウン中状態とを有するサ
    ーバ状態マシンを備える制御プロセスとを備えることを
    特徴とする装置。
  9. 【請求項9】 コンピュータ・プログラムを記録し、サ
    ーバを制御するためにコンピュータで使用可能な媒体自
    体内で具体化されるコンピュータ読取り可能なプログラ
    ムを記録したコンピュータ使用可能媒体において、 コンピュータに、サーバ状態をサーバと関連付けるよう
    に構成されたコンピュータ読取り可能なプログラムと、 コンピュータに、前記サーバからのシャットダウン表示
    に応答して前記サーバ状態を実行中状態からシャットダ
    ウン中状態に変更させるように構成されたコンピュータ
    読取り可能なプログラムと、 コンピュータに、前記サーバからのシャットダウン完了
    表示に応答して前記サーバ状態を前記シャットダウン中
    状態から始動状態に変更させるように構成されたコンピ
    ュータ読取り可能なプログラムと、 コンピュータに、前記シャットダウン中状態中の前記サ
    ーバへの呼出しをブロックさせるように構成されたコン
    ピュータ読取り可能なプログラムと記録したことを特徴
    とする記録媒体。
  10. 【請求項10】 さらに、 コンピュータに、自己始動サーバからの登録に応答して
    前記サーバ状態を前記始動状態から自己始動実行中状態
    に変更させるコンピュータ読取り可能なプログラムと、 コンピュータに、前記サーバ状態が前記実行中状態また
    は前記自己始動実行中状態であるときにロケート要求に
    応答してサーバ・アドレス情報を返させるコンピュータ
    読取り可能なプログラムとを記録してあることを特徴と
    する請求項9に記載の記録媒体。
  11. 【請求項11】 さらに、 コンピュータに、前記サーバ状態が前記始動状態である
    ときにロケート要求に応答し、前記シャットダウン表示
    に応答して、タイマ・プロセスを開始させるコンピュー
    タ読取り可能なプログラムと、 コンピュータに、前記タイマ・プロセスが満了したとき
    に前記サーバを終了させ前記サーバ状態を前記始動状態
    に変更させるコンピュータ読取り可能なプログラムとを
    記録してあることを特徴とする請求項9に記載の記録媒
    体。
  12. 【請求項12】 さらに、 コンピュータに、前記サーバにホールドダウン状態を関
    連付けさせるコンピュータ読取り可能なプログラムと、 前記ホールドダウン状態に基づいてロケート要求に対す
    る応答を判定するコンピュータ読取り可能なプログラム
    とを記録した請求項9に記載の記録媒体。
JP9145229A 1996-06-03 1997-06-03 マルチスレッド環境においてサーバの活動化を制御する方法および装置 Pending JPH1063523A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US660086 1996-06-03
US08/660,086 US5884022A (en) 1996-06-03 1996-06-03 Method and apparatus for controlling server activation in a multi-threaded environment

Publications (1)

Publication Number Publication Date
JPH1063523A true JPH1063523A (ja) 1998-03-06

Family

ID=24648081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9145229A Pending JPH1063523A (ja) 1996-06-03 1997-06-03 マルチスレッド環境においてサーバの活動化を制御する方法および装置

Country Status (4)

Country Link
US (2) US5884022A (ja)
EP (1) EP0811914B1 (ja)
JP (1) JPH1063523A (ja)
DE (1) DE69725213D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984235A (zh) * 2014-05-27 2014-08-13 湖南大学 基于c/s结构的空间机械臂控制系统软件架构及构建方法

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212573B1 (en) * 1996-06-26 2001-04-03 Sun Microsystems, Inc. Mechanism for invoking and servicing multiplexed messages with low context switching overhead
JP3883647B2 (ja) * 1997-06-10 2007-02-21 インターナショナル・ビジネス・マシーンズ・コーポレーション メッセージ処理方法、メッセージ処理装置及びメッセージ処理を制御するプログラムを格納する記憶媒体
US6360279B1 (en) * 1997-10-14 2002-03-19 Bea Systems, Inc. True parallel client server system and method
US6691118B1 (en) * 1997-10-31 2004-02-10 Oracle International Corporation Context management system for modular software architecture
US6546412B1 (en) * 1997-11-07 2003-04-08 Xerox Corporation State-based object transition control and nested locking
US7581006B1 (en) * 1998-05-29 2009-08-25 Yahoo! Inc. Web service
US6615265B1 (en) * 1998-08-04 2003-09-02 International Business Machines Corporation Enabling planned outages of application servers
FR2790627B1 (fr) * 1999-03-04 2001-05-04 Cit Alcatel Procede pour avertir un objet de l'inaccessibilite d'autres objets dans un environnement d'objets distribues
US7116770B1 (en) 1999-08-25 2006-10-03 Siemens Communications, Inc. Communication network management
US6553406B1 (en) * 2000-08-03 2003-04-22 Prelude Systems, Inc. Process thread system receiving request packet from server thread, initiating process thread in response to request packet, synchronizing thread process between clients-servers.
AU2001283134A1 (en) * 2000-08-03 2002-02-18 Prelude Systems, Inc. System and method for client-server communication
US6775680B2 (en) * 2000-08-08 2004-08-10 International Business Machines Corporation High level assembler metamodel
US6836779B2 (en) * 2001-03-13 2004-12-28 Christian D. Poulin Network transaction method
US6918114B2 (en) * 2001-04-05 2005-07-12 International Business Machines Corporation Method, apparatus, and program to keep a JVM running during the shutdown process of a Java based server executing daemon threads
US6785677B1 (en) * 2001-05-02 2004-08-31 Unisys Corporation Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector
US7017077B2 (en) * 2002-01-09 2006-03-21 International Business Machines Corporation System and method of error retention for threaded software
US7216158B2 (en) * 2002-01-18 2007-05-08 Bea Systems, Inc. System, method and interface for controlling server lifecycle
US6957363B2 (en) * 2002-03-27 2005-10-18 International Business Machines Corporation Method and apparatus for controlling the termination of processes in response to a shutdown command
US20060212840A1 (en) * 2005-03-16 2006-09-21 Danny Kumamoto Method and system for efficient use of secondary threads in a multiple execution path processor
KR100824792B1 (ko) * 2006-07-11 2008-04-24 삼성전자주식회사 커맨드 처리 장치와 방법 및 이를 포함하는 시스템
US7870128B2 (en) * 2006-07-28 2011-01-11 Diskeeper Corporation Assigning data for storage based on speed with which data may be retrieved
US9052826B2 (en) * 2006-07-28 2015-06-09 Condusiv Technologies Corporation Selecting storage locations for storing data based on storage location attributes and data usage statistics
GB2456656B (en) * 2008-01-24 2012-11-07 Ibm An apparatus and a method for controlling timeouts and delays of an error recovery procedure in a digital circuit
US8495413B2 (en) * 2009-12-15 2013-07-23 Unisys Corporation System and method for providing a computer standby node
US9455879B1 (en) 2013-03-04 2016-09-27 Amazon Technologies, Inc. Validating changes to attributes for computing resources
US11954529B2 (en) 2020-04-13 2024-04-09 EMC IP Holding Company LLC Method, device and computer program product for tracking lock

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694603A (en) * 1982-09-28 1997-12-02 Reiffin; Martin G. Computer memory product with preemptive multithreading software
US4713750A (en) * 1983-03-31 1987-12-15 Fairchild Camera & Instrument Corporation Microprocessor with compact mapped programmable logic array
AU591057B2 (en) * 1984-06-01 1989-11-30 Digital Equipment Corporation Local area network for digital data processing system
JPS61137881A (ja) 1984-12-10 1986-06-25 Kaken Pharmaceut Co Ltd クロメン誘導体、その製法およびそれを有効成分とする抗アレルギ−剤
US4967347A (en) * 1986-04-03 1990-10-30 Bh-F (Triplex) Inc. Multiple-redundant fault detection system and related method for its use
US5640585A (en) * 1988-02-09 1997-06-17 Ast Research, Inc. State machine bus controller
US5315161A (en) * 1990-09-27 1994-05-24 Ncr Corporation Power failure detection and shut down timer
US5566330A (en) * 1991-08-20 1996-10-15 Powersoft Corporation Method for forming a reusable and modifiable database interface object
US5367697A (en) * 1991-10-22 1994-11-22 Bull Hn Information Systems Inc. Means for providing a graceful power shut-down capability in a multiprocessor system having certain processors not inherently having a power shut-down capability
US5461710A (en) * 1992-03-20 1995-10-24 International Business Machines Corporation Method for providing a readily distinguishable template and means of duplication thereof in a computer system graphical user interface
US5347627A (en) * 1992-04-07 1994-09-13 International Business Machines Corporation Graphical user interface including dynamic sizing and spacing
US5423034A (en) * 1992-06-10 1995-06-06 Cohen-Levy; Leon Network file management with user determined hierarchical file structures and means for intercepting application program open and save commands for inputting and displaying user inputted descriptions of the location and content of files
GB2270242A (en) * 1992-08-29 1994-03-02 Ibm A method of editing for an object oriented computer system
US5390324A (en) * 1992-10-02 1995-02-14 Compaq Computer Corporation Computer failure recovery and alert system
US5345550A (en) * 1992-12-23 1994-09-06 International Business Machines Corporation User-modifiable popup menus for object oriented behavior
US5436637A (en) * 1993-03-05 1995-07-25 Borland International, Inc. Graphical user interface system and methods for improved user feedback
JP2620576B2 (ja) * 1993-04-15 1997-06-18 インターナショナル・ビジネス・マシーンズ・コーポレイション ユーザが要求したフォントに従ってグラフィカル・ユーザ・インターフェースを調節する方法及びシステム
US5559942A (en) * 1993-05-10 1996-09-24 Apple Computer, Inc. Method and apparatus for providing a note for an application program
US5422674A (en) * 1993-12-22 1995-06-06 Digital Equipment Corporation Remote display of an image by transmitting compressed video frames representing background and overlay portions thereof
US5548702A (en) * 1993-12-23 1996-08-20 International Business Machines Corporation Scrolling a target window during a drag and drop operation
US5491784A (en) * 1993-12-30 1996-02-13 International Business Machines Corporation Method and apparatus for facilitating integration of software objects between workspaces in a data processing system graphical user interface
US5550968A (en) * 1994-04-12 1996-08-27 International Business Machines Corporation Method and system for providing access security to controls in a graphical user interface
US5630142A (en) * 1994-09-07 1997-05-13 International Business Machines Corporation Multifunction power switch and feedback led for suspend systems
US5627962A (en) * 1994-12-30 1997-05-06 Compaq Computer Corporation Circuit for reassigning the power-on processor in a multiprocessing system
US5576945A (en) * 1995-01-23 1996-11-19 Tandem Computers Incorporated Transaction monitor process with pre-arranged modules for a multiprocessor system
CA2167634A1 (en) * 1995-01-23 1996-07-24 Michael E. Fisher Method and apparatus for maintaining network connections across a voluntary process switchover
US5907675A (en) * 1995-03-22 1999-05-25 Sun Microsystems, Inc. Methods and apparatus for managing deactivation and shutdown of a server
US5570462A (en) * 1995-05-05 1996-10-29 Apple Computer, Inc. System and method for object placement and sizing in a dynamic display environment
GB2308778B (en) * 1995-12-28 1998-06-10 Nokia Telecommunications Oy Telecommunications network management system
US5892949A (en) * 1996-08-30 1999-04-06 Schlumberger Technologies, Inc. ATE test programming architecture
US6026430A (en) * 1997-03-24 2000-02-15 Butman; Ronald A. Dynamic client registry apparatus and method
US5884035A (en) * 1997-03-24 1999-03-16 Pfn, Inc. Dynamic distributed group registry apparatus and method for collaboration and selective sharing of information

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984235A (zh) * 2014-05-27 2014-08-13 湖南大学 基于c/s结构的空间机械臂控制系统软件架构及构建方法
CN103984235B (zh) * 2014-05-27 2016-05-11 湖南大学 基于c/s结构的空间机械臂控制系统软件架构及构建方法

Also Published As

Publication number Publication date
EP0811914B1 (en) 2003-10-01
US5884022A (en) 1999-03-16
DE69725213D1 (de) 2003-11-06
EP0811914A1 (en) 1997-12-10
US6397346B1 (en) 2002-05-28

Similar Documents

Publication Publication Date Title
JPH1063523A (ja) マルチスレッド環境においてサーバの活動化を制御する方法および装置
US6868442B1 (en) Methods and apparatus for processing administrative requests of a distributed network application executing in a clustered computing environment
EP0750256B1 (en) Framework for managing cluster membership in a multiprocessor system
CA2533737C (en) Fast application notification in a clustered computing system
US5475817A (en) Object oriented distributed computing system processing request to other object model with code mapping by object managers located by manager of object managers
US20040002974A1 (en) Thread based lock manager
US8713582B2 (en) Providing policy-based operating system services in an operating system on a computing system
US6513115B2 (en) System for reconfiguring an existing server process without ending and restarting
MX2007002204A (es) Aparato, sistema y metodo para reinicio de serializacion de sistema de archivos.
JP2001522086A (ja) 宣言型パラダイムをサポートするステートレスなウェブ環境におけるトランザクションを実行するための方法および装置
US7216346B2 (en) Method and apparatus for managing thread execution in a multithread application
US7552446B1 (en) Methods and apparatus for a timer event service infrastructure
EP0807884B1 (en) Method and apparatus for disposing of objects in a multi-threaded environment
US6957427B1 (en) Remote object activation in a distributed system
US20020138665A1 (en) Binding of processes in network systems
JPH1083306A (ja) サーバ・ソフトウェアのインストールなしにクライアント・サポートを提供する方法および装置
US7331050B2 (en) System and method for communicating information between application programs
Wollrath et al. Simple activation for distributed objects
CA2374290A1 (en) Updating spin counters for spin latches
JPH06348512A (ja) 資源管理コンピュータ・システム
JP2003529847A (ja) 有向グラフを用いた役割管理用コンポーネント管理データベースの構築
US20060047686A1 (en) Apparatus, system, and method for suspending a request during file server serialization reinitialization
US7467413B2 (en) Method and apparatus for accessing session data
EP1489498A1 (en) Managing a computer system with blades
US6842900B2 (en) Information processing apparatus executing processing corresponding to new thread by reusing arrangement for previous thread