JPH08263325A - サーバ処理装置、サーバ内障害検出装置及びサーバ内障害検出方法 - Google Patents

サーバ処理装置、サーバ内障害検出装置及びサーバ内障害検出方法

Info

Publication number
JPH08263325A
JPH08263325A JP7060488A JP6048895A JPH08263325A JP H08263325 A JPH08263325 A JP H08263325A JP 7060488 A JP7060488 A JP 7060488A JP 6048895 A JP6048895 A JP 6048895A JP H08263325 A JPH08263325 A JP H08263325A
Authority
JP
Japan
Prior art keywords
time
thread
timeout
processing
service
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.)
Withdrawn
Application number
JP7060488A
Other languages
English (en)
Inventor
Katsuyuki Ohashi
勝之 大橋
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP7060488A priority Critical patent/JPH08263325A/ja
Publication of JPH08263325A publication Critical patent/JPH08263325A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 本発明は、クライアント/サーバモデルのシ
ステムに関し、レスポンスを低下させることなく、複数
のクライアントからのリクエストを処理することが可能
なサーバ内の障害検出方式を提供することを目的とす
る。 【構成】 サービススレッド23aは、クライアント2
1aからのリクエスト28を受信すると、要求された処
理のタイムアウト時間と自分のスレッドIDをタイムア
ウト表25に書込む。そして、リクエスト28の処理を
終了すると、タイムアウト表25内のタイムアウト時間
及びスレッドIDを消去する。監視スレッド24は、定
期的にタイムアウト表25からタイムアウト時間を読み
出して、現在の時刻と比較することにより、設定された
タイムアウト時間までに処理を終了していないサービス
スレッドを検出する。タイムアウトしたサービススレッ
ドを発見した場合には、該サービススレッドを強制的に
終了させて、クライアント21にエラーを通知する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は計算機上のクライアント
/サーバモデルにおけるサーバ内での障害を検出する装
置および方法に係わり、特にクライアントから要求され
たサービスの処理中にサーバ内で発生した無限ウエイト
や無限ループ等の障害を検出する装置および方法に関す
る。
【0002】
【従来の技術】クライアント/サーバモデルは計算機環
境の分散化/並列化のために有効な技術であり、関連す
る技術の開発が望まれている。クライアント/サーバモ
デルでは、サーバはクライアントからの要求(リクエス
ト)を受けてサービス処理を行い、その結果をクライア
ントに返すよう構成される。
【0003】サーバは、クライアントからのリクエスト
処理中に無限ウエイトあるいは無限ループに陥る可能性
がある。この場合、サーバだけではなく、サーバからの
返答(リプライ)を待っているクライアントも無限ウエ
イトに陥ってしまい、システム全体が停止してしまう。
このような事態が発生するのを避けるため、サーバは、
リクエストに対するサービス処理開始前に、システムカ
ーネルがシステムコールとして提供するタイマルーチン
を使って該サービス処理のタイムアウト時間を設定して
いた。サーバが設定したタイムアウト時間内に前記サー
ビス処理が終了しない場合には、システムカーネルがサ
ーバの処理を終了させ、クライアントにサーバのエラー
を通知していた。このようにして、サーバの障害がクラ
イアントに伝播してシステム全体が停止する事態が引き
起こされるのを防いでいた。
【0004】図9は、上述した従来技術を説明する図で
ある。同図に示すように、サーバ(サーバプロセス)1
0は、クライアント11aまたはクライアント11bか
らのリクエスト18を受けてサービス処理を行い、返答
(リプライ)19をクライアント11aまたはクライア
ント11bに返す。リクエスト18およびリプライ19
は、メッセージによって行われる。同図において、中に
×が書かれた長方形がメッセージを示している。
【0005】図9において、クライアント11aまたは
クライアント11bからのリクエスト18は、サーバ1
0のポート12で受信され、そのポート12のキュー9
に入れられる。サービススレッド群13の各サービスス
レッド13a〜13cは、適宜、キュー9からリクエス
ト18を取り出して、サービス処理を行う。サービス処
理が終了すると、各サービススレッド13a〜13c
は、リプライ19をクライアント11aまたはクライア
ント11bに返す。
【0006】各サービススレッド13a〜13cは、前
記サービス処理を開始する前にタイムアウト処理のため
のシステムコールを実行する。該システムコールを受け
て、カーネル17はタイムアウト処理を行う。すなわ
ち、指定された時間内にサービス処理が終了していない
場合は、前記システムコール時に指定される処理ルーチ
ンによって、例えば、タイムアウトしたサービススレッ
ドを消滅させ、リクエスト処理を実行していたクライア
ントへエラーを通知する等の処理を行う。
【0007】
【発明が解決しようとする課題】しかしながら、従来の
方式では、サーバがクライアントからのリクエストの処
理を開始する毎にシステムコールであるタイマルーチン
をコールするため、複数のクライアントからの要求を複
数のサービススレッドによって並列に処理する場合に
は、リクエストの増加に伴いシステムコールの実行回数
が増加する。システムコールは、サーバ内部の関数呼出
しにくらべてオーバヘッドが大きく、システムコールの
実行回数が増加すると、サーバのレスポンスが低下して
しまう可能性がある。
【0008】本発明は、サーバ内のサービススレッド数
が増加しても、サーバのレスポンス性能の低下を防ぐこ
とができるサーバ内障害検出装置及び方法を提供するこ
とを目的とする。
【0009】
【課題を解決するための手段】図1は、本発明の原理を
説明する図(その1)である。この発明に係るサーバ処
理装置(以下、第1の発明)は、クライアントから依頼
される処理を、複数のスレッドで処理し、その処理結果
を該クライアントに返すサーバ処理装置を前提とし、以
下の各手段を備える。
【0010】タイムアウト時間情報管理手段31は、各
スレッドによって実行される処理のタイムアウト時間の
管理情報が設定される。これは、例えば、メモリ上にテ
ーブルとして作成される。
【0011】タイムアウト時間情報設定手段33は、各
スレッドが処理を開始する際に、タイムアウト時間情報
管理手段31にそのスレッドの当該タイムアウト時間管
理情報を設定する。
【0012】タイムアウト検出手段35は、上記タイム
アウト時間情報管理手段31に設定されたタイムアウト
時間管理情報を用いて、タイムアウトの発生したスレッ
ドを検出する。
【0013】上記構成において、前記タイムアウト検出
手段35は、例えば、タイムアウトの発生したスレッド
を削除するような構成にして良い。また、さらに、該ス
レッドを削除した後に、新たなスレッドを生成するよう
な構成にしても良い。
【0014】また、前記タイムアウト検出手段35は、
例えば、タイムアウトの発生したスレッドを強制的に終
了させるような構成にしても良い。図2は、本発明の原
理を説明する図(その2)である。
【0015】この発明に係るサーバ内障害検出装置(以
下、第2の発明)は、以下の各手段を備える。サービス
手段100は、クライアントからのリクエストを受信
し、該リクエストに対する処理を実行する。タイムアウ
ト時間管理手段101は、前記サービス手段100が行
う処理のタイムアウト時間を管理する。監視手段102
は、前記サービス手段100を監視する。
【0016】前記サービス手段100は、クライアント
からのリクエストに対する処理を開始する前に、該処理
のタイムアウト時間を前記タイムアウト時間管理手段1
01に設定し、該処理の終了時にタイムアウト時間管理
手段101の自分が設定したタイムアウト時間を削除す
る。前記監視手段102は、定期的にタイムアウト時間
管理手段101を参照し、タイムアウト時間内に前記処
理が終了しているか否かを検出する。
【0017】該監視手段102は、前記検出処理を開始
する前に、例えば、システムカーネルに依頼して自分自
身のタイムアウト処理を設定する。そして、該検出処理
終了後、該タイムアウト処理を解除する。
【0018】前記サービス手段100は、例えば、複数
のサービススレッドで構成され、前記監視手段102
は、例えば、1つの監視スレッドから構成される。ま
た、前記サービス手段100および前記監視手段102
をプロセスによって構成するようにしてもよい。
【0019】前記タイムアウト時間管理手段101は、
例えば、スレッドIDを格納する「スレッドID」フィ
ールドおよびタイムアウト時間を設定する「タイムアウ
ト時間」フィールドを有する表から構成される。
【0020】本発明に係るサーバ内障害検出方法は、ま
ず、クライアントからのリクエストを受信する。次に、
受信したリクエストに対する処理を実行するサービスス
レッドのスレッド番号とタイムアウト時間をタイムアウ
ト表に設定する。そして、前記リクエストに対する処理
を実行する。該処理終了後、前記タイムアウト表に設定
されたスレッド番号とタイムアウト時間を削除する。ま
た、前記タイムアウト表を定期的に参照し、タイムアウ
トしたサービススレッドが存在するか否かを判別するこ
とによってサービススレッドの監視処理を実行する。
【0021】また、本発明に係るサーバ内障害検出方法
は、前記監視処理を開始する前に、監視処理のタイムア
ウト処理を設定し、前記監視処理の終了後、該タイムア
ウト処理を解除するようにする。
【0022】更に、本発明に係るサーバ内障害検出方法
は、前記監視処理を終了後、次回の監視処理を始める前
に、該監視処理を所定の時間スリープさせる。更に、本
発明に係るサーバ内障害検出方法は、サーバが起動時
に、初期化スレッドを生成し、該初期化スレッドが、前
記タイムアウト表を初期化し、前記監視処理を行う監視
スレッドを生成し、クライアントからリクエストを受け
付けるリクエスト受付ポートを作成し、該リクエストに
対する処理を行うサービススレッド群を生成する。
【0023】
【作用】第1の発明では、タイムアウト時間情報設定手
段33が、各スレッドが処理を開始する際に、そのスレ
ッドの当該タイムアウト時間情報管理情報を、タイムア
ウト時間情報管理手段31に設定する。
【0024】タイムアウト検出手段35は、上記タイム
アウト時間情報管理手段31に設定されたタイムアウト
時間管理情報を用いて、タイムアウトの発生したスレッ
ドを検出する。
【0025】したがって、スレッドが処理を開始する毎
に、カーネルに対してタイマ処理用のシステムコールを
発行せずに、該スレッドのタイムアウトの検出すること
が可能になり、システムコール実行のためのオーバヘッ
ドが減少する。このため、クライアントに対するサーバ
のレスポンスが向上する。
【0026】第2の発明では、前記サービス手段100
は、リクエストに対する処理を開始する前に、該処理の
タイムアウト時間をタイムアウト時間管理手段101に
設定し、前記処理を終了すると、タイムアウト時間管理
手段101の自分が設定したタイムアウト時間を削除す
る。
【0027】これにより、前記監視手段102は、定期
的にタイムアウト時間管理手段101を参照し、例え
ば、設定されているタイムアウト時間と、現在の時刻を
比較することにより、前記処理が設定されたタイムアウ
ト時間内に終了しているか否かを検出することができ
る。 したがって、サービス手段100が、リクエスト
に対する処理を開始する毎に、タイムアウト処理の設定
をシステムカーネルに対するシステムコールによって行
う必要がなくなり、システムコールの実行回数を減らせ
る。
【0028】
【実施例】以下、本発明の実施例について、図面を参照
しながら詳細に説明する。図3は、本発明の一実施例の
概略を説明する図である。同図に示すように、本実施例
のサーバ(サーバプロセス)20は、クライアント21
aまたは21b(以下クライアント21)からのリクエ
スト28を受け付けるポート22と、クライアントから
のリクエスト28を処理するサービススレッド群23
と、サービススレッド群23の動作を監視する監視スレ
ッド24と、各サービススレッド23a〜23cによっ
てタイムアウト時間が記入されるタイムアウト表25
と、サーバ20の初期化を行う初期化スレッド26から
構成される。
【0029】本実施例では、複数のサービススレッド2
3a〜23cを用意することにより、複数のクライアン
トからのリクエストを並行して処理することができる。
なお、本実施例では、サービススレッド群23は、3つ
のサービススレッド23a〜23cから構成されるが、
サービススレッドの数は、サーバ20が受け付けるリク
エストの個数に応じて動的に増減させることも可能であ
り、また、システム構成等に応じて変えるようにしても
よい。
【0030】本実施例においては、オペレーティングシ
ステム(OS)に、マイクロカーネル27でOSの基本
的な機能を実現し、このマイクロカーネル27上にマイ
クロカーネル27が提供するプリミティブなインタフェ
ースを使用して、例えば、UNIXをはじめとする標準
的なOSをサブシステムサーバとして複数実装するマイ
クロカーネル方式を採用している。前記サーバ20は、
このサブシステムサーバの1つの例であり、マイクロカ
ーネル27上でサーバとして動作するプロセスである。
【0031】ここで、スレッドとプロセスについて、サ
ービススレッド23a〜23cとサーバ20を例にして
説明する。サービススレッド23a〜23cは、プロセ
ッサ割当ての最小単位であり、マイクロカーネル27が
スケジューリングの対象とする単位である。これに対し
て、サーバ20は、サービススレッド23a〜23cが
参照する仮想記憶空間やファイルなどのシステム資源を
割り当てる単位である。1個のサーバ20は1個以上の
サービススレッドをもつ。
【0032】ポート22は、クライアント21がサーバ
スレッド群23間の通信のためのチャネルであり、例え
ば、マイクロカーネル27の中に存在する、メッセージ
のキュー30として実現されている。すなわち、例え
ば、クライアント21から送られてきたリクエスト28
でまだサービススレッド23a〜23cによって処理さ
れていないポート22宛のリクエスト28は該キュー3
0に保持される。
【0033】図3において、サーバ20のポート22へ
届いたクライアント21からのリクエスト28はサービ
ススレッド群23によって処理される。サービススレッ
ド群23の各サービススレッド23a〜23cは、クラ
イアント21からのリクエスト28を受信すると、要求
された処理のタイムアウト時間と自分のスレッド番号
(スレッドID)をタイムアウト表25に書込む。各サ
ービススレッド23a〜23cは、クライアント21か
らのリクエスト28の処理を終了すると、ポート22を
介してクライアント21へリプライ29を送信する。そ
して、タイムアウト表25内の自身が設定したタイムア
ウト時間及びスレッドIDを消去する。
【0034】図4は、タイムアウト表25の一構成例を
示す図である。同図に示すように、タイムアウト表は、
「スレッドID」フィールド25aと、「タイムアウト
時間」フィールド25bから構成される。「スレッドI
D」フィールド25aには、各サービススレッド23a
〜23cを特定するための識別子であるスレッドIDが
格納される。「タイムアウト時間」フィールド25bに
は、タイムアウト時間として、例えば、タイムアウトす
る時刻を設定する。これは、サービススレッド23a〜
23cが、「タイムアウト時間」フィールド25bを設
定する際、現在の時刻(設定時の時刻)に所定の時間
(タイムアウト時間)を加えたものを設定することで行
える。現在の時刻は、例えば、不図示のリアル・タイム
・クロック等から成るシステム時計から読み出す。
【0035】また、サービススレッド23a〜23c
は、クライアント21からのリクエスト28の処理を終
了すると、「スレッドID」フィールド25aに自身が
設定したスレッドIDと、「タイムアウト時間」フィー
ルド25bに自身が設定したタイムアウト時間の2つの
情報を消去する。
【0036】図3において、監視スレッド24は、定期
的にタイムアウト表25からサービススレッド群23の
各サービススレッド23a〜23cが設定したタイムア
ウト時間を読み出して、現在の時刻と比較することによ
り、設定されたタイムアウト時間までに処理を終了して
いないスレッドを検出する。監視スレッド24がタイム
アウトしたサービススレッドを発見した場合には、該サ
ービススレッドを強制的に終了または消滅させて、クラ
イアント21にエラーを通知する。
【0037】監視スレッド24は、タイムアウトしたサ
ービススレッドの検出処理を行う前に、マイクロカーネ
ル27がシステムコールとして提供するタイマルーチン
を使って、自身のタイムアウト時間を設定する。これに
よって、監視スレッド24自身が無限ウエイトや無限ル
ープに陥ることを避ける。
【0038】次に、上記各スレッドの処理手順を図5〜
図7に示すフローチャートを参照しながら説明する。な
お、以下に示すフローチャートの説明中、S1、S2、
・・・・は処理手順(ステップ)の番号を示す。
【0039】図5は実施例における初期化スレッド26
の処理手順を説明するフローチャートである。マイクロ
カーネル27によって、サーバ20が起動されると、初
期化スレッド26が生成される。サーバ20によって生
成された初期化スレッド6は、まず、タイムアウト表2
5を初期化する(S1)。次に、監視スレッド24を生
成する(S2)。そして、ポート22を作成する(S2
2)。続いて、サービススレッド群23を生成する(S
4)。初期化スレッド26は、初期化処理が終了する
と、自分自身を消滅させる(S5)。なお、本実施例で
は、初期化処理終了後、初期化スレッド26を消滅させ
るようにしているが、初期化スレッド26が、初期化処
理終了後、監視スレッド24として動作するようにして
もよい。
【0040】図6は実施例におけるサービススレッド群
23の各サービススレッド23a〜23cの処理手順を
説明するフローチャートである。サービススレッド群2
3の各サービススレッド23a〜23cは初期化スレッ
ド26によって生成された後、クライアント21からの
リクエスト28を処理する。
【0041】サービススレッド群23の各サービススレ
ッド23a〜23cはポート22を介してクライアント
21からのリクエスト28を受信すると(S10)、リ
クエストされた処理のタイムアウト時間と自身のスレッ
ドIDをタイムアウト表25に記入する(S11)。そ
して、リクエスト28の処理を開始する(S12)。該
リクエスト28の処理が終了すると、クライアント21
にその処理結果を返す(S13)。そして、タイムアウ
ト表25から自身が記入したタイムアウト時間とスレッ
ドIDを削除して(S14)、クライアントからの次の
リクエスト28を待つ。
【0042】図7は実施例における監視スレッド24の
処理手順を説明するフローチャートである。監視スレッ
ド24は、初期化スレッド26によって生成された後、
図7に示す手順でサービススレッド群23の動作を監視
する。
【0043】監視スレッド24は、まず、マイクロカー
ネル27がシステムコールとして提供するタイマルーチ
ンを用いて自身のタイムアウト時間を設定し、マイクロ
カーネル27に対してタイムアウト処理を依頼する(S
20)。次に、タイムアウト表25からサービススレッ
ド群23の各サービススレッド23a〜23cが記入し
たタイムアウト時間を読み出す(S21)。該読み出し
たタイムアウト時間と現在の時刻を比較することによっ
て、タイムアウトしたサービススレッドが存在するか否
かを判別する(S22)。該判別によって、タイムアウ
トしたサービススレッドを検出した場合には(S22、
YES)、該タイムアウトしたサービススレッドを削除
する(S23)。そして、該削除されたサービススレッ
ドが受信したリクエスト28の送信元クライアント21
にエラーをポート22を介して通知する(S24)。監
視スレッド24は、削除した数のサービススレッドを新
規に生成して、サービススレッドを補充する(S2
5)。
【0044】該ステップS25の処理後、若しくは、上
記ステップS22にてタイムアウトしたサービススレッ
ドを検出しなかった場合、監視スレッド24は一定時間
スリープする(S26)。監視スレッド24のプライオ
リティは一般に高く設定されるため、スリープ状態にな
らないと、サービススレッド23a〜23cが動作でき
なくなったり、監視処理によって必要以上に処理時間が
消費されてしまう。また、このスリープ時間を調整する
ことによって、監視スレッド24の定周期起動の周期、
すなわち、サービススレッド23a〜23cのタイムア
ウト監視処理の周期を変えられる。
【0045】上記スリープ時間が経過後、自身が設定し
たタイムアウト処理の解除をマイクロカーネル27へ依
頼する(S27)。その後、監視スレッド24は再び、
上記処理S20〜S27を繰り返す。
【0046】図8は、本実施例のサーバ20の動作を、
クライアント21とマイクロカーネル27の動作とあわ
せて説明する図である。まず、マイクロカーネル27に
よってサーバ20が起動されると(S100)、サーバ
20は、初期化スレッド26を生成する。初期化スレッ
ド26は、生成されると、タイムアウト表25を初期化
する(S101)。次に、監視スレッド24の生成をマ
イクロカーネル27へ依頼する(S102)。該依頼を
受けたマイクロカーネル27は、監視スレッド24を生
成する(S103)。
【0047】続いて、初期化スレッド26は、リクエス
ト受付ポート22の作成をマイクロカーネル27へ依頼
する(S104)。該依頼を受けたマイクロカーネル2
7は、リクエスト受付ポート22を作成する(S10
5)。そして、初期化スレッド26は、サービススレッ
ド群23の生成をマイクロカーネル27へ依頼する(S
106)。該依頼を受けたマイクロカーネル27は、サ
ービススレッド23a〜23cから成るサービススレッ
ド群23を生成する(S107)。初期化処理が終了す
ると、初期化スレッド26は、自分自身、すなわち、初
期化スレッド26の消滅をマイクロカーネル27へ依頼
する(S108)。該依頼を受けたマイクロカーネル2
7は、初期化スレッド26を消滅させる(S109)。
【0048】クライアント21は、サーバ20に対して
サービス処理を依頼する必要が生じると、該サービス処
理を依頼するリクエストメッセージを、サーバ20のポ
ート番号を指定して送信する(S110)。該メッセー
ジを受信すると、マイクロカーネル27は、該メッセー
ジをサーバ20のポート22が有する前記受信キュー3
0につなぐ(S111)。
【0049】サービススレッド群23の各サービススレ
ッド23a〜23cは、前記ステップS107にて生成
されると、まず、サーバ20のポート22が有する前記
受信キュー30からリクエストメッセージを読み出す
(S112)。そして、自分のスレッドID及びサービ
ス処理のタイムアウト時間をタイムアウト表25に記入
する(S113)。タイムアウト表25への記入後、リ
クエストされたサービス処理を開始する(S114)。
【0050】該サービス処理が終了すると、サービスス
レッド23a〜23cは、クライアント21へのリプラ
イ29の送信をマイクロカーネル27へ依頼する。該依
頼を受けたマイクロカーネル27は、リプライメッセー
ジをクライアント21宛の前記送信キューにつなぐ処理
を行う(S116)。クライアント21は、上記送信キ
ューに格納されているリプライメッセージを受信する
(S117)。
【0051】クライアント21へのリプライ処理が終了
すると、サービススレッド23a〜23cは、タイムア
ウト表25から自分が記入したエントリを削除する(S
118)。そして、上記ステップS112〜S118を
繰り返す。
【0052】一方、監視スレッド24は、前記ステップ
S103にて生成されると、まず、自分自身のタイムア
ウト時間を設定し、タイムアウト処理をマイクロカーネ
ル27へ依頼する(S119)。該依頼を受けたマイク
ロカーネル27は、監視スレッドに対してタイムアウト
時間を設定する(S120)。そして、監視スレッド2
4は、タイムアウト表25を参照しタイムアウトしたサ
ービススレッドがあるか否かを判別することによって、
サービススレッド23a〜23cの監視処理を行う(S
121)。監視処理終了後、監視スレッド24は、所定
時間スリープを行う(S122)。そして、前記ステッ
プS119で依頼したタイムアウト処理の解除をマイク
ロカーネル27へ依頼する(S123)。該依頼を受け
たマイクロカーネル27は、タイムアウト処理の解除処
理を行う(S124)。
【0053】なお、上記実施例では、初期化スレッド2
6によって、予めサービススレッド23a〜23cを生
成しているが、リクエストが届いた段階で、メッセージ
ハンドラー等によって必要なサービススレッドを動的に
生成するようにしてもよい。
【0054】また、上記実施例においては、クライアン
トからの依頼をスレッドによって処理するようにしてい
るが、スレッドの代わりにプロセスによって処理するよ
うにすることも可能である。
【0055】また、サービススレッド23a〜23c
が、「タイムアウト時間」フィールド25bに所定の時
間(タイムアウト時間)を設定し、監視スレッド24
が、定期的に該時間から適当な時間を減算(デクリメン
ト)し、結果が零より大きいか否かによって、設定され
たタイムアウト時間までに処理を終了していないサービ
ススレッドを検出するようにしてもよい。
【0056】本発明は、上記実施例以外に、マルチプロ
セッサ環境での並列処理システムやネットワークで接続
された複数の計算機から成る分散処理システム等に実装
することも可能である。また、本発明は、マイクロカー
ネル方式のOSのみに限定されるものでもなく、それ以
外のOSを用いたクライアント/サーバモデルのデータ
ベースシステムなどの各種アプリケーションシステムな
どにも適用可能なものである。
【0057】
【発明の効果】以上、詳細に説明したように、本発明に
よれば、複数のクライアントからのリクエストを並列に
処理するために、サーバ内のサービススレッド数を増や
しても、タイムアウト設定のためのシステムコールの実
行回数は増加しないので、サーバのレスポンス性能の低
下を防ぐことができる。
【図面の簡単な説明】
【図1】本発明の原理図(その1)である。
【図2】本発明の原理図(その2)である。
【図3】本発明の一実施例の概要を説明する図である。
【図4】タイムアウト表の一構成例を示す図である。
【図5】初期化スレッドの処理手順を説明するフローチ
ャートである。
【図6】サービススレッドの処理手順を説明するフロー
チャートである。
【図7】監視スレッドの処理手順を説明するフローチャ
ートである。
【図8】サーバ20の動作を、クライアント21とマイ
クロカーネル27の動作とあわせて説明する図である。
【図9】従来の技術を説明する図である。
【符号の説明】
31 タイムアウト時間情報管理手段 33 タイムアウト時間情報設定手段 35 タイムアウト検出手段 100 サービス手段 101 タイムアウト時間管理手段 102 監視手段

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 クライアントから依頼される処理を、複
    数のスレッドで処理し、その処理結果を該クライアント
    に返すサーバ処理装置において、 各スレッドによって実行される処理のタイムアウト時間
    の管理情報が設定されるタイムアウト時間情報管理手段
    と、 該各スレッドが処理を開始する際に、該タイムアウト時
    間情報管理手段にそのスレッドの当該タイムアウト時間
    情報管理情報を設定するタイムアウト時間情報設定手段
    と、 上記タイムアウト時間情報管理手段に設定されたタイム
    アウト時間管理情報を用いて、タイムアウトの発生した
    スレッドを検出するタイムアウト検出手段と、 を備えることを特徴とするサーバ処理装置。
  2. 【請求項2】 前記タイムアウト検出手段は、タイムア
    ウトの発生したスレッドを削除すること、 を特徴とする請求項1記載のサーバ処理装置。
  3. 【請求項3】 前記タイムアウト検出手段は、スレッド
    を削除した後に、新たなスレッドを生成すること、 を特徴とする請求項2記載のサーバ処理装置。
  4. 【請求項4】 前記タイムアウト検出手段は、タイムア
    ウトの発生したスレッドを強制的に終了させること、 を特徴とする請求項1記載のサーバ処理装置。
  5. 【請求項5】 クライアントからのリクエストを受信
    し、該リクエストの処理を実行するサービス手段と、 該サービス手段が行う処理のタイムアウト時間を管理す
    るタイムアウト時間管理手段と、 前記サービス手段を監視する監視手段とから構成され、 前記サービス手段は、クライアントからリクエストされ
    た処理を開始する前に、該処理のタイムアウト時間を前
    記タイムアウト時間管理手段に設定し、該処理の終了時
    にタイムアウト時間管理手段の自分が設定した前記タイ
    ムアウト時間を削除し、 前記監視手段は、タイムアウト時間管理手段を参照し、
    タイムアウト時間内に前記処理が終了しているか否かを
    検出することを特徴とするサーバ内障害検出装置。
  6. 【請求項6】 前記監視手段は、前記検出処理を開始す
    る前にタイムアウト処理を設定し、 該検出処理終了後、該タイムアウト処理を解除すること
    を特徴とする請求項5記載のサーバ内障害検出装置。
  7. 【請求項7】 前記サービス手段が設定する前記タイム
    アウト時間は、設定時の時刻に所定の時間を加えたもの
    であり、 前記監視手段は、タイムアウト時間管理手段から読み出
    した該タイムアウト時間と、現在の時刻を比較すること
    により検出処理を行うことを特徴とする請求項5又は6
    記載のサーバ内障害検出装置。
  8. 【請求項8】 前記サービス手段が、複数のサービスス
    レッドから構成され、 前記監視手段が、1つの監視スレッドから構成されるこ
    とを特徴とする請求項5、6又は7記載のサーバ内障害
    検出装置。
  9. 【請求項9】 前記タイムアウト時間管理手段が、スレ
    ッドIDを格納する「スレッドID」フィールドおよび
    タイムアウト時間を設定する「タイムアウト時間」フィ
    ールドを有する表から構成されることを特徴とする請求
    項5、6、7又は8記載のサーバ内障害検出装置。
  10. 【請求項10】 前記サービス手段および前記監視手段
    がプロセスによって構成されることを特徴とする請求項
    5記載のサーバ内障害検出装置。
  11. 【請求項11】 クライアントからのリクエストを受信
    するポートと、 該リクエストを処理するサービススレッド群と、 スレッド番号とタイムアウト時間を対応づけて格納する
    タイムアウト表と、 サービススレッド群を監視する監視スレッドから構成さ
    れるサーバを有し、 サービススレッド群の各サービススレッドは、前記リク
    エストされた処理を開始する前に、該処理のタイムアウ
    ト時間と自分のスレッド番号をタイムアウト表に記入
    し、該処理の終了後にタイムアウト表から該タイムアウ
    ト時間と自分のスレッド番号を削除し、 監視スレッドが定期的にタイムアウト表を読み出して、
    タイムアウト時間内に処理を終了していないサービスス
    レッドを検出することを特徴とするサーバ内障害検出装
    置。
  12. 【請求項12】 クライアントからのリクエストを受信
    し、 該受信したリクエストに対する処理を実行するサービス
    スレッドのスレッド番号とタイムアウト時間をタイムア
    ウト表に設定し、 前記リクエストに対する処理を実行し、 該処理終了後、前記タイムアウト表に設定されたスレッ
    ド番号とタイムアウト時間を削除し、 前記タイムアウト表を参照することによりサービススレ
    ッドの監視処理を実行することを特徴とするサーバ内障
    害検出方法。
  13. 【請求項13】 前記監視処理を開始する前に、監視処
    理のタイムアウト処理を設定し、 前記監視処理の終了後、該タイムアウト処理を解除する
    ことを特徴とする請求項12記載のサーバ内障害検出方
    法。
  14. 【請求項14】 前記監視処理を終了後、次回の監視処
    理を始める前に、該監視処理を所定の時間スリープさせ
    ることを特徴とする請求項12又は13記載のサーバ内
    障害検出方法。
  15. 【請求項15】 サーバが起動時に、初期化スレッドを
    生成し、 該初期化スレッドが、タイムアウト表を初期化し、前記
    監視処理を行う監視スレッドを生成し、クライアントか
    らリクエストを受け付けるリクエスト受付ポートを作成
    し、該リクエストに対する処理を行うサービススレッド
    群を生成することを特徴とする請求項12、13又は1
    4記載のサーバ内障害検出方法。
JP7060488A 1995-03-20 1995-03-20 サーバ処理装置、サーバ内障害検出装置及びサーバ内障害検出方法 Withdrawn JPH08263325A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7060488A JPH08263325A (ja) 1995-03-20 1995-03-20 サーバ処理装置、サーバ内障害検出装置及びサーバ内障害検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7060488A JPH08263325A (ja) 1995-03-20 1995-03-20 サーバ処理装置、サーバ内障害検出装置及びサーバ内障害検出方法

Publications (1)

Publication Number Publication Date
JPH08263325A true JPH08263325A (ja) 1996-10-11

Family

ID=13143724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7060488A Withdrawn JPH08263325A (ja) 1995-03-20 1995-03-20 サーバ処理装置、サーバ内障害検出装置及びサーバ内障害検出方法

Country Status (1)

Country Link
JP (1) JPH08263325A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100427149B1 (ko) * 2000-05-31 2004-04-17 인터내셔널 비지네스 머신즈 코포레이션 클라이언트 프로세스와 서버 프로세스간의 서비스 접속을감시하는 방법 및 시스템과 프로그램 저장 장치
US6892331B2 (en) 2002-01-17 2005-05-10 International Business Machines Corporation Method and system for error detection in a managed application environment
JP2007507048A (ja) * 2003-09-30 2007-03-22 インテル・コーポレーション マルチスレッディングのためのコンパイラが生成したヘルパースレッドの方法および装置
JP2007515727A (ja) * 2003-12-22 2007-06-14 フジツウ シーメンス コンピューターズ ゲゼルシャフト ミット ベシュレンクテル ハフツング クラスタシステムのノードの監視検出器の制御並びに管理装置及び方法
JP2008003645A (ja) * 2006-06-20 2008-01-10 Hitachi Ltd タイマ連携によるリクエスト制御方法
JP2009187189A (ja) * 2008-02-05 2009-08-20 Nec Corp ストール検出装置、ストール検出方法、及びストール検出プログラム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100427149B1 (ko) * 2000-05-31 2004-04-17 인터내셔널 비지네스 머신즈 코포레이션 클라이언트 프로세스와 서버 프로세스간의 서비스 접속을감시하는 방법 및 시스템과 프로그램 저장 장치
US6769023B1 (en) 2000-05-31 2004-07-27 International Business Machines Corporation Facility for managing a service connection between a client process having a single threaded library and a server process
US6892331B2 (en) 2002-01-17 2005-05-10 International Business Machines Corporation Method and system for error detection in a managed application environment
JP2007507048A (ja) * 2003-09-30 2007-03-22 インテル・コーポレーション マルチスレッディングのためのコンパイラが生成したヘルパースレッドの方法および装置
US8612949B2 (en) 2003-09-30 2013-12-17 Intel Corporation Methods and apparatuses for compiler-creating helper threads for multi-threading
JP2007515727A (ja) * 2003-12-22 2007-06-14 フジツウ シーメンス コンピューターズ ゲゼルシャフト ミット ベシュレンクテル ハフツング クラスタシステムのノードの監視検出器の制御並びに管理装置及び方法
US8051173B2 (en) 2003-12-22 2011-11-01 Fujitsu Siemens Computers Gmbh Device and method for controlling and monitoring of monitoring detectors in a node in a cluster system
JP2008003645A (ja) * 2006-06-20 2008-01-10 Hitachi Ltd タイマ連携によるリクエスト制御方法
JP2009187189A (ja) * 2008-02-05 2009-08-20 Nec Corp ストール検出装置、ストール検出方法、及びストール検出プログラム

Similar Documents

Publication Publication Date Title
JP3121584B2 (ja) 多重システム・クラスタ内のサーバの数を制御する方法及び装置
CN110383764B (zh) 无服务器系统中使用历史数据处理事件的系统和方法
JP3610120B2 (ja) トランザクション・システム内のサーバの数を動的に制御する方法
US10282229B2 (en) Asynchronous task management in an on-demand network code execution environment
US12474953B2 (en) Task scheduling method and system
US20070156884A1 (en) High availability for event forwarding
US20050172083A1 (en) Selection of a resource in a distributed computer system
JPH10143381A (ja) 遊休ワークステーションを共用するための装置および方法
US10425349B2 (en) Idle worker-process page-out
WO2014039312A1 (en) Quota-based resource management
JPH0477938B2 (ja)
JPH1145187A (ja) 分散ガーベッジコレクションのためのリソースの管理方法、装置、コンピュータプログラム生産物、コンピュータシステム並びにプラットフォーム間に分散したリソースの割当及び割当解除方法
CN108228330B (zh) 一种串行化的多进程任务调度方法和装置
CN111427674A (zh) 一种微服务管理方法、装置及系统
JPH08263325A (ja) サーバ処理装置、サーバ内障害検出装置及びサーバ内障害検出方法
CN113032139A (zh) 请求处理方法、装置、计算机可读存储介质及电子设备
US9792419B2 (en) Starvationless kernel-aware distributed scheduling of software licenses
USRE41705E1 (en) Device and process for handling the execution of a job in a data processing system
CN106550021B (zh) 推送消息的推送方法及装置
CN1963763A (zh) 网格环境下动态在线式任务调度系统及其调度方法
CN119127398A (zh) 设置虚拟机计算资源限额的方法及装置
Fagg et al. Taskers and general resource managers: PVM supporting DCE process management
US5511220A (en) Multi-user computer system with a clock driven batch dispatching mechanism
CN116483560A (zh) 任务处理方法及装置
Evers et al. A literature study on scheduling in distributed systems

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020604