JP2000267894A - タイムアウト処理システム、処理方法及び記録媒体 - Google Patents
タイムアウト処理システム、処理方法及び記録媒体Info
- Publication number
- JP2000267894A JP2000267894A JP11071153A JP7115399A JP2000267894A JP 2000267894 A JP2000267894 A JP 2000267894A JP 11071153 A JP11071153 A JP 11071153A JP 7115399 A JP7115399 A JP 7115399A JP 2000267894 A JP2000267894 A JP 2000267894A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- request
- processing
- flag
- timeout
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【課題】 予め定められた時間内に処理が行われなかっ
た旨をサーバからクライアントに通知するタイムアウト
処理を、システムの負荷が増大せずかつ処理が複雑にな
らないように行う。 【解決手段】 親スレッドである要求スレッドをクライ
アント2から受信したときにその子スレッドをサーバ1
内で生成する。この生成した子スレッドであるタイマ処
理部13によってタイムアウト処理を行う。この場合、
タイマ処理部13を生成したときに要求スレッドは待ち
状態に移行し、この状態の解除により要求処理の終了の
旨及びタイムアウトの旨のいずれか一方を通知する。待
ち状態への移行に応答してフラグを記入し、このフラグ
の内容を参照することによって要求スレッドの状態を確
認する。このフラグは、状態記憶部14に記憶する。
た旨をサーバからクライアントに通知するタイムアウト
処理を、システムの負荷が増大せずかつ処理が複雑にな
らないように行う。 【解決手段】 親スレッドである要求スレッドをクライ
アント2から受信したときにその子スレッドをサーバ1
内で生成する。この生成した子スレッドであるタイマ処
理部13によってタイムアウト処理を行う。この場合、
タイマ処理部13を生成したときに要求スレッドは待ち
状態に移行し、この状態の解除により要求処理の終了の
旨及びタイムアウトの旨のいずれか一方を通知する。待
ち状態への移行に応答してフラグを記入し、このフラグ
の内容を参照することによって要求スレッドの状態を確
認する。このフラグは、状態記憶部14に記憶する。
Description
【0001】
【発明の属する技術分野】本発明はタイムアウト処理シ
ステム、タイムアウト処理方法及びタイムアウト処理プ
ログラムを記録した記録媒体に関し、特にサーバ・クラ
イアントシステムにおけるタイムアウト処理システム、
タイムアウト処理方法及びタイムアウト処理プログラム
を記録した記録媒体に関する。
ステム、タイムアウト処理方法及びタイムアウト処理プ
ログラムを記録した記録媒体に関し、特にサーバ・クラ
イアントシステムにおけるタイムアウト処理システム、
タイムアウト処理方法及びタイムアウト処理プログラム
を記録した記録媒体に関する。
【0002】
【従来の技術】クライアント・サーバ構成のシステムに
おいて、サーバがクライアントから要求を受信し、その
応答を返す場合、サーバの結果処理において、何らかの
理由により結果を送信できない場合がある。この場合、
クライアントでは、応答待ち状態となり、処理が停止し
たままになってしまう。
おいて、サーバがクライアントから要求を受信し、その
応答を返す場合、サーバの結果処理において、何らかの
理由により結果を送信できない場合がある。この場合、
クライアントでは、応答待ち状態となり、処理が停止し
たままになってしまう。
【0003】この状態を回避するために、サーバは要求
された処理に対するタイムアウト時間を予め定めてい
る。そして、このタイムアウト時間内に処理が行われな
かった場合には、クライアントに要求がタイムアウトし
たことを伝え、クライアントの停止状態を解除する。こ
れにより、サーバが送信できない場合でも、クライアン
トは応答待ち状態にならず、処理が停止したままになる
ことはないのである。
された処理に対するタイムアウト時間を予め定めてい
る。そして、このタイムアウト時間内に処理が行われな
かった場合には、クライアントに要求がタイムアウトし
たことを伝え、クライアントの停止状態を解除する。こ
れにより、サーバが送信できない場合でも、クライアン
トは応答待ち状態にならず、処理が停止したままになる
ことはないのである。
【0004】
【発明が解決しようとする課題】上述した従来のタイム
アウト処理方式では、タイムアウトを監視するプロセス
あるいは専用のスレッド(thread)を用意してタ
イムアウトの管理を行っていた。つまり、クライアント
からの要求をマルチスレッドで処理し、その応答をクラ
イアントに返すサーバの処理において、サーバが何らか
の異常により、応答がクライアントに返らない場合を想
定し、サーバでの処理にタイムアウト時間を定め、タイ
ムアウトした際には要求元のクライアントにその旨を応
答するのである。
アウト処理方式では、タイムアウトを監視するプロセス
あるいは専用のスレッド(thread)を用意してタ
イムアウトの管理を行っていた。つまり、クライアント
からの要求をマルチスレッドで処理し、その応答をクラ
イアントに返すサーバの処理において、サーバが何らか
の異常により、応答がクライアントに返らない場合を想
定し、サーバでの処理にタイムアウト時間を定め、タイ
ムアウトした際には要求元のクライアントにその旨を応
答するのである。
【0005】ここで、サーバにタイムアウト監視用のプ
ロセスを用意した場合、要求受信時及び処理終了時に
は、タイマプロセスと処理プロセスとの間でデータのや
り取りが行われる。この場合、サーバに複数のクライア
ントが接続しているようなシステムにおいて、要求処理
が集中した場合には、プロセス間通信によりシステムの
負荷が増大するという欠点がある。また、複数の要求を
並行して処理するため、1つのタイマプロセスで一度に
複数の管理を行う必要があり、タイマ処理が複雑になる
という欠点がある。
ロセスを用意した場合、要求受信時及び処理終了時に
は、タイマプロセスと処理プロセスとの間でデータのや
り取りが行われる。この場合、サーバに複数のクライア
ントが接続しているようなシステムにおいて、要求処理
が集中した場合には、プロセス間通信によりシステムの
負荷が増大するという欠点がある。また、複数の要求を
並行して処理するため、1つのタイマプロセスで一度に
複数の管理を行う必要があり、タイマ処理が複雑になる
という欠点がある。
【0006】一方、専用スレッドによってタイマの監視
を行う場合、1つの方法として、要求ごとに生成される
スレッドとタイムアウト時間とを管理するテーブルを共
有領域に設けてタイマの管理を行う方法がある。この方
法は、特開平8−0263325号公報に記載されてい
る。
を行う場合、1つの方法として、要求ごとに生成される
スレッドとタイムアウト時間とを管理するテーブルを共
有領域に設けてタイマの管理を行う方法がある。この方
法は、特開平8−0263325号公報に記載されてい
る。
【0007】この方法では、要求処理を行うときにスレ
ッドとタイムアウト時間とを対応付けてテーブルに登録
し、処理終了後このレコードを削除する。そして、タイ
マ処理の専用スレッドでテーブルを定期的に監視し、タ
イムアウトしているスレッドに対してタイムアウトを通
知するのである。
ッドとタイムアウト時間とを対応付けてテーブルに登録
し、処理終了後このレコードを削除する。そして、タイ
マ処理の専用スレッドでテーブルを定期的に監視し、タ
イムアウトしているスレッドに対してタイムアウトを通
知するのである。
【0008】この場合、テーブルの管理が必要となり、
サーバに要求処理が集中した場合には、テーブルのサイ
ズが大きくなりテーブルを定期的に監視する処理に負担
がかかるという欠点がある。
サーバに要求処理が集中した場合には、テーブルのサイ
ズが大きくなりテーブルを定期的に監視する処理に負担
がかかるという欠点がある。
【0009】本発明は上述した従来技術の欠点を解決す
るためになされたものであり、その目的はシステムの負
荷が増大せず、かつ、処理が複雑になることのないタイ
ムアウト処理システム、タイムアウト処理方法及びタイ
ムアウト処理プログラムを記録した記録媒体を提供する
ことである。
るためになされたものであり、その目的はシステムの負
荷が増大せず、かつ、処理が複雑になることのないタイ
ムアウト処理システム、タイムアウト処理方法及びタイ
ムアウト処理プログラムを記録した記録媒体を提供する
ことである。
【0010】
【課題を解決するための手段】本発明によるタイムアウ
ト処理システムは、予め定められた時間内に処理が行わ
れなかった旨をサーバからクライアントに通知するタイ
ムアウト処理を行うタイムアウト処理システムであっ
て、親スレッドである要求スレッドをクライアントから
受信したときにその子スレッドを生成する手段と、この
生成した子スレッドによって前記タイムアウト処理を行
う手段とを含むことを特徴とする。
ト処理システムは、予め定められた時間内に処理が行わ
れなかった旨をサーバからクライアントに通知するタイ
ムアウト処理を行うタイムアウト処理システムであっ
て、親スレッドである要求スレッドをクライアントから
受信したときにその子スレッドを生成する手段と、この
生成した子スレッドによって前記タイムアウト処理を行
う手段とを含むことを特徴とする。
【0011】本発明によるタイムアウト処理方法は、予
め定められた時間内に処理が行われなかった旨をサーバ
からクライアントに通知するタイムアウト処理を行うタ
イムアウト処理方法であって、親スレッドである要求ス
レッドをクライアントから受信したときにその子スレッ
ドを生成するステップと、この生成した子スレッドによ
って前記タイムアウト処理を行うステップとを含むこと
を特徴とする。
め定められた時間内に処理が行われなかった旨をサーバ
からクライアントに通知するタイムアウト処理を行うタ
イムアウト処理方法であって、親スレッドである要求ス
レッドをクライアントから受信したときにその子スレッ
ドを生成するステップと、この生成した子スレッドによ
って前記タイムアウト処理を行うステップとを含むこと
を特徴とする。
【0012】本発明によるタイムアウト処理プログラム
を記録した記録媒体は、予め定められた時間内に処理が
行われなかった旨をサーバからクライアントに通知する
タイムアウト処理をコンピュータに行わせるためのプロ
グラムを記録した記録媒体であって、前記プログラム
は、コンピュータに、親スレッドである要求スレッドを
クライアントから受信したときにその子スレッドを生成
するステップと、この生成した子スレッドによって前記
タイムアウト処理を行うステップとを含むことを特徴と
する。
を記録した記録媒体は、予め定められた時間内に処理が
行われなかった旨をサーバからクライアントに通知する
タイムアウト処理をコンピュータに行わせるためのプロ
グラムを記録した記録媒体であって、前記プログラム
は、コンピュータに、親スレッドである要求スレッドを
クライアントから受信したときにその子スレッドを生成
するステップと、この生成した子スレッドによって前記
タイムアウト処理を行うステップとを含むことを特徴と
する。
【0013】要するに本タイムアウト処理方法では、要
求スレッドからスレッドを生成して、その子スレッドで
タイムアウト処理を行っている。そして、要求スレッド
の待ち状態解除によって、要求処理が終了したことある
いはタイムアウトしたことを通知している。また、各処
理の共有領域として状態記憶部を設け、状態記憶部にフ
ラグを記入することと、状態記憶部を参照してフラグを
確認することで状態を識別している。さらに、状態記憶
部にフラグを記入する場合にロックをかけ、フラグを参
照した際にロックをかけることで重複を回避している。
求スレッドからスレッドを生成して、その子スレッドで
タイムアウト処理を行っている。そして、要求スレッド
の待ち状態解除によって、要求処理が終了したことある
いはタイムアウトしたことを通知している。また、各処
理の共有領域として状態記憶部を設け、状態記憶部にフ
ラグを記入することと、状態記憶部を参照してフラグを
確認することで状態を識別している。さらに、状態記憶
部にフラグを記入する場合にロックをかけ、フラグを参
照した際にロックをかけることで重複を回避している。
【0014】
【発明の実施の形態】次に、本発明の実施の一形態につ
いて図面を参照して説明する。なお、以下の説明におい
て参照する各図においては、他の図と同等部分には同一
符号が付されている。
いて図面を参照して説明する。なお、以下の説明におい
て参照する各図においては、他の図と同等部分には同一
符号が付されている。
【0015】図1は本発明によるタイムアウト処理方法
を実現するためのタイムアウト処理システムの実施の一
形態を示すブロック図である。同図において、本例のク
ライアント・サーバシステムは、クライアント2とサー
バ1とから構成されている。クライアント2の数は単数
に限定されるものではなく、複数であっても良い。
を実現するためのタイムアウト処理システムの実施の一
形態を示すブロック図である。同図において、本例のク
ライアント・サーバシステムは、クライアント2とサー
バ1とから構成されている。クライアント2の数は単数
に限定されるものではなく、複数であっても良い。
【0016】サーバ1は、クライアント2から要求3を
受取り、その要求に該当する処理を行った後、その結果
である応答4をクライアント2に返す機能を有する。こ
の機能を実現するために、サーバ1は要求受付プロセス
101と処理プロセス102とを備えている。なお、要
求受付プロセス101と処理プロセス102とは、ソケ
ット103で接続されている。
受取り、その要求に該当する処理を行った後、その結果
である応答4をクライアント2に返す機能を有する。こ
の機能を実現するために、サーバ1は要求受付プロセス
101と処理プロセス102とを備えている。なお、要
求受付プロセス101と処理プロセス102とは、ソケ
ット103で接続されている。
【0017】要求受付プロセス101は、クライアント
2からの要求3を受信し、その結果をクライアント2に
送信するプロセスである。一方、処理プロセス102
は、受信したクライアント2の要求3に対する処理を実
行するプロセスである。
2からの要求3を受信し、その結果をクライアント2に
送信するプロセスである。一方、処理プロセス102
は、受信したクライアント2の要求3に対する処理を実
行するプロセスである。
【0018】要求受付プロセス101は、クライアント
と要求/応答の送受信を行う部分であり、処理プロセス
102は、要求に該当する処理を実行する部分である。
タイムアウト処理は、要求受付プロセス101に実装さ
れる。
と要求/応答の送受信を行う部分であり、処理プロセス
102は、要求に該当する処理を実行する部分である。
タイムアウト処理は、要求受付プロセス101に実装さ
れる。
【0019】要求受付プロセス101では、クライアン
ト2からの要求3を複数のスレッドによって並列に処理
する。要求受付プロセス101の要求部11は、クライ
アントから要求を受信し、要求ごとにスレッド(以下、
要求スレッドと呼ぶ)を生成する。この要求スレッドで
は、処理プロセス102に要求を送信し、処理を依頼す
る。要求受付プロセス101の応答部12は、要求部1
1から依頼した処理の結果を処理プロセス102から受
信するとともに、その結果に基づいて、クライアントに
応答を返送する。
ト2からの要求3を複数のスレッドによって並列に処理
する。要求受付プロセス101の要求部11は、クライ
アントから要求を受信し、要求ごとにスレッド(以下、
要求スレッドと呼ぶ)を生成する。この要求スレッドで
は、処理プロセス102に要求を送信し、処理を依頼す
る。要求受付プロセス101の応答部12は、要求部1
1から依頼した処理の結果を処理プロセス102から受
信するとともに、その結果に基づいて、クライアントに
応答を返送する。
【0020】ここで、本タイムアウト処理では、要求ご
とに生成される要求スレッドからスレッドを生成し、生
成したスレッドで処理のタイムアウトを監視する。以下
の説明においては、要求スレッドを「親スレッド」、こ
の親スレッドから生成されたスレッドを「子スレッド」
と呼ぶことがある。なお、図1中のタイマ処理部13
は、この子スレッドに相当する。
とに生成される要求スレッドからスレッドを生成し、生
成したスレッドで処理のタイムアウトを監視する。以下
の説明においては、要求スレッドを「親スレッド」、こ
の親スレッドから生成されたスレッドを「子スレッド」
と呼ぶことがある。なお、図1中のタイマ処理部13
は、この子スレッドに相当する。
【0021】要求スレッドは、処理プロセス102に処
理を依頼すると、タイマ処理用の子スレッドを生成した
後、スレッド待ち状態に遷移する。応答部12は、処理
プロセス102から結果データを受取ると、要求スレッ
ドの待ち状態を解除する。
理を依頼すると、タイマ処理用の子スレッドを生成した
後、スレッド待ち状態に遷移する。応答部12は、処理
プロセス102から結果データを受取ると、要求スレッ
ドの待ち状態を解除する。
【0022】一方、要求受付プロセス101のタイマ処
理部13、すなわち子スレッドでは、スレッドが起動さ
れるとタイマを開始する。タイマが終了すると、要求ス
レッドの存在の有無を確認し、要求スレッドが存在する
場合には、スレッドの待ち状態を解除する。したがっ
て、要求スレッドは、処理が正常に行われた場合には、
応答部12によって待ち状態が解除され、処理がタイム
アウトした場合には、タイマ処理部13によって待ち状
態が解除されることになる。
理部13、すなわち子スレッドでは、スレッドが起動さ
れるとタイマを開始する。タイマが終了すると、要求ス
レッドの存在の有無を確認し、要求スレッドが存在する
場合には、スレッドの待ち状態を解除する。したがっ
て、要求スレッドは、処理が正常に行われた場合には、
応答部12によって待ち状態が解除され、処理がタイム
アウトした場合には、タイマ処理部13によって待ち状
態が解除されることになる。
【0023】応答部12、タイマ処理部13では、要求
スレッドの待ち状態解除時は、要求受付プロセス101
の状態記憶部14にそれぞれに対応するフラグを記入す
る。要求スレッドでは、待ち状態が解除されると、状態
記憶部14を参照し、フラグを確認し、処理が正常に行
われたか、タイムアウトしたかを識別する。
スレッドの待ち状態解除時は、要求受付プロセス101
の状態記憶部14にそれぞれに対応するフラグを記入す
る。要求スレッドでは、待ち状態が解除されると、状態
記憶部14を参照し、フラグを確認し、処理が正常に行
われたか、タイムアウトしたかを識別する。
【0024】以上のように、スレッドの停止・解除によ
り、処理の終了、あるいはタイムアウトを要求スレッド
に通知し、その確認を共有の領域をアクセスすることで
行うのである。
り、処理の終了、あるいはタイムアウトを要求スレッド
に通知し、その確認を共有の領域をアクセスすることで
行うのである。
【0025】以上の動作をクライアントからの要求の流
れで見ると、要求3は、要求受付プロセス101で受信
され、処理プロセス102で処理された後、その処理結
果を含む応答4が要求受付プロセス101によって返さ
れるということになる。
れで見ると、要求3は、要求受付プロセス101で受信
され、処理プロセス102で処理された後、その処理結
果を含む応答4が要求受付プロセス101によって返さ
れるということになる。
【0026】ここで、要求受付プロセス101は、クラ
イアント2からの要求を複数のスレッドによって並列に
処理するマルチスレッドプロセスである。この要求受付
プロセス101は、クライアント2の要求3を受信する
受信部11と、クライアント2に応答4を返信する応答
部12とを備えている。これら受信部11及び応答部1
2は、クライアント2との間で送受信を行う一方で、処
理プロセス102との間で要求データ31/結果データ
32の送受信を行う。
イアント2からの要求を複数のスレッドによって並列に
処理するマルチスレッドプロセスである。この要求受付
プロセス101は、クライアント2の要求3を受信する
受信部11と、クライアント2に応答4を返信する応答
部12とを備えている。これら受信部11及び応答部1
2は、クライアント2との間で送受信を行う一方で、処
理プロセス102との間で要求データ31/結果データ
32の送受信を行う。
【0027】また、要求受付プロセス101は、要求3
の処理時間を監視するタイマ処理部13をも備えてい
る。なお、状態記憶部14は、受信部11、応答部12
及びタイマ処理部13から夫々アクセス可能な共有の領
域であり、1つのフラグ領域から構成されている。
の処理時間を監視するタイマ処理部13をも備えてい
る。なお、状態記憶部14は、受信部11、応答部12
及びタイマ処理部13から夫々アクセス可能な共有の領
域であり、1つのフラグ領域から構成されている。
【0028】以上の3つの処理部(受信部11、応答部
12、タイマ処理部13)と1つの共有領域(状態記憶
部14)とで構成される要求受付プロセス101によっ
て行われるタイムアウト処理について図2、図3及び図
4を用いて説明する。図2は本実施例における受信部1
1の動作を示すフローチャート、図3は応答部12の動
作を示すフローチャート、図4はタイマ処理部13の動
作を示すフローチャートである。
12、タイマ処理部13)と1つの共有領域(状態記憶
部14)とで構成される要求受付プロセス101によっ
て行われるタイムアウト処理について図2、図3及び図
4を用いて説明する。図2は本実施例における受信部1
1の動作を示すフローチャート、図3は応答部12の動
作を示すフローチャート、図4はタイマ処理部13の動
作を示すフローチャートである。
【0029】図2において、受信部11は、要求がある
かどうかを監視し(ステップS11)、クライアント2
から要求3を受信すると(ステップS12)、要求スレ
ッドを生成する(ステップS13)。この要求スレッド
は、1つの要求に対して1つ生成される。要求スレッド
は、要求3の内容に基づいて処理プロセス102で処理
に必要な要求データ31を構築し、ソケット103を介
して送信する(ステップS14)。そして要求スレッド
は、タイマ処理部13に相当する子スレッドを生成する
(ステップS15)。その後、要求スレッドは、待ち状
態に遷移する(ステップS16)。
かどうかを監視し(ステップS11)、クライアント2
から要求3を受信すると(ステップS12)、要求スレ
ッドを生成する(ステップS13)。この要求スレッド
は、1つの要求に対して1つ生成される。要求スレッド
は、要求3の内容に基づいて処理プロセス102で処理
に必要な要求データ31を構築し、ソケット103を介
して送信する(ステップS14)。そして要求スレッド
は、タイマ処理部13に相当する子スレッドを生成する
(ステップS15)。その後、要求スレッドは、待ち状
態に遷移する(ステップS16)。
【0030】図3に移り、応答部12は、受信があるか
どうかを監視する(ステップS23)。そして、要求デ
ータ31に対する結果データ32が処理プロセス102
から送られてくると(ステップS24)、結果データ3
2を基に応答4を構築し(ステップS25)、クライア
ント2に応答4を返信する(ステップS26)。
どうかを監視する(ステップS23)。そして、要求デ
ータ31に対する結果データ32が処理プロセス102
から送られてくると(ステップS24)、結果データ3
2を基に応答4を構築し(ステップS25)、クライア
ント2に応答4を返信する(ステップS26)。
【0031】このとき、処理の重複を防ぐため状態記憶
部14にロックをかける(ステップS27)。そして、
状態記憶部14に応答処理が終了したことを示すフラグ
を記入し(ステップS28)、要求スレッドの待ち状態
を解除する(ステップS29)。なお、状態記憶部14
のロックの解除は、要求スレッドが待ち状態が解除され
た後、要求スレッドによって行われる(図2中のステッ
プS19)。
部14にロックをかける(ステップS27)。そして、
状態記憶部14に応答処理が終了したことを示すフラグ
を記入し(ステップS28)、要求スレッドの待ち状態
を解除する(ステップS29)。なお、状態記憶部14
のロックの解除は、要求スレッドが待ち状態が解除され
た後、要求スレッドによって行われる(図2中のステッ
プS19)。
【0032】図4に移り、タイマ処理部13は、要求ス
レッドから生成される子スレッドである。このスレッド
が起動されるとタイマの動作を開始する(ステップS3
0)。そして、タイムアウト時間経過すると(ステップ
S31)、要求スレッド(親スレッド)の存在の有無を
確認する(ステップS32)。
レッドから生成される子スレッドである。このスレッド
が起動されるとタイマの動作を開始する(ステップS3
0)。そして、タイムアウト時間経過すると(ステップ
S31)、要求スレッド(親スレッド)の存在の有無を
確認する(ステップS32)。
【0033】要求スレッドが存在する場合、応答部12
のときと同様に、状態記憶部14にはロックをかける
(ステップS32→S33)。そして、状態記憶部14
にタイムアウトしたことを示すフラグを記入し(ステッ
プS34)、要求スレッドの待ち状態を解除する(ステ
ップS35)。その後、自スレッドを終了する(ステッ
プS36)。要求スレッドが存在しない場合には、その
まま自スレッドを終了する(ステップS32→S3
6)。
のときと同様に、状態記憶部14にはロックをかける
(ステップS32→S33)。そして、状態記憶部14
にタイムアウトしたことを示すフラグを記入し(ステッ
プS34)、要求スレッドの待ち状態を解除する(ステ
ップS35)。その後、自スレッドを終了する(ステッ
プS36)。要求スレッドが存在しない場合には、その
まま自スレッドを終了する(ステップS32→S3
6)。
【0034】図2に戻り、要求スレッドでは、応答部1
2でクライアント2への応答処理が終わった後、あるい
は、タイマ処理部13でタイマがタイムアウトした後、
待ち状態が解除される(ステップS17)。要求スレッ
ドでは、待ち状態が解除されると、状態記憶部14のフ
ラグを確認する(ステップS18)。また、この確認
後、ロックを解除しておく(ステップS19)。
2でクライアント2への応答処理が終わった後、あるい
は、タイマ処理部13でタイマがタイムアウトした後、
待ち状態が解除される(ステップS17)。要求スレッ
ドでは、待ち状態が解除されると、状態記憶部14のフ
ラグを確認する(ステップS18)。また、この確認
後、ロックを解除しておく(ステップS19)。
【0035】状態記憶部14において記入されているフ
ラグの種類によって処理が正常に終了したか、タイムア
ウトかしたか判断する。処理がタイムアウト場合には、
クライアント2にその旨を応答する(ステップS20→
S21)。その後、スレッドを終了する(ステップS2
2)。処理が正常に終了していた場合は、そのままスレ
ッドを終了する(ステップS20→S21)。
ラグの種類によって処理が正常に終了したか、タイムア
ウトかしたか判断する。処理がタイムアウト場合には、
クライアント2にその旨を応答する(ステップS20→
S21)。その後、スレッドを終了する(ステップS2
2)。処理が正常に終了していた場合は、そのままスレ
ッドを終了する(ステップS20→S21)。
【0036】さらに、処理が正常に行われた場合及びタ
イムアウトした場合の動作の流れについて説明する。図
5は、サーバにおいて、クライアントからの要求が正常
に処理され、結果がクライアントに応答された場合の動
作の流れを示す図である。一方図6は、処理がタイムア
ウトした場合の動作の流れを示す図である。
イムアウトした場合の動作の流れについて説明する。図
5は、サーバにおいて、クライアントからの要求が正常
に処理され、結果がクライアントに応答された場合の動
作の流れを示す図である。一方図6は、処理がタイムア
ウトした場合の動作の流れを示す図である。
【0037】まず図5を用いて、サーバでの処理が正常
に行われた場合の動作の流れを説明する。サーバ1で
は、受信部11でクライアントからの要求を受信すると
(ステップS12)、要求スレッドを生成する(ステッ
プS13)。要求スレッドでは、クライアントからの要
求を要求データとして、処理プロセス102に送信する
(ステップS14)。その後、タイムアウト処理を行う
スレッド(子スレッド)を生成し(ステップS15)、
待ち状態に遷移する(ステップS16)。
に行われた場合の動作の流れを説明する。サーバ1で
は、受信部11でクライアントからの要求を受信すると
(ステップS12)、要求スレッドを生成する(ステッ
プS13)。要求スレッドでは、クライアントからの要
求を要求データとして、処理プロセス102に送信する
(ステップS14)。その後、タイムアウト処理を行う
スレッド(子スレッド)を生成し(ステップS15)、
待ち状態に遷移する(ステップS16)。
【0038】応答部12では、処理プロセス102から
送られてくる処理結果を受信する(ステップS24)。
結果データを処理した後(ステップS25)、クライア
ントに応答を返信する(ステップS26)。そして、状
態記憶部14にロックをかけ(ステップS27)、処理
が終了したことを示すフラグを記入する(ステップS2
8)。その後、受信部11に応答処理が終わったことを
伝えるために、要求スレッドの待ち状態を解除する(ス
テップS29)。
送られてくる処理結果を受信する(ステップS24)。
結果データを処理した後(ステップS25)、クライア
ントに応答を返信する(ステップS26)。そして、状
態記憶部14にロックをかけ(ステップS27)、処理
が終了したことを示すフラグを記入する(ステップS2
8)。その後、受信部11に応答処理が終わったことを
伝えるために、要求スレッドの待ち状態を解除する(ス
テップS29)。
【0039】受信部11では、応答部12から待ち状態
の解除指示を受信すると(ステップS17)、状態記憶
部14のフラグの確認を行う(ステップS18)。処理
が終了したことを示すフラグであることを確認し、要求
スレッドを終了する(ステップS21)。状態記憶部1
4のフラグを確認した後(ステップS18)、ロックを
解除しておく(ステップS19)。
の解除指示を受信すると(ステップS17)、状態記憶
部14のフラグの確認を行う(ステップS18)。処理
が終了したことを示すフラグであることを確認し、要求
スレッドを終了する(ステップS21)。状態記憶部1
4のフラグを確認した後(ステップS18)、ロックを
解除しておく(ステップS19)。
【0040】応答部12の結果の受信処理と並行して、
タイマ処理部13、すなわち要求スレッドから生成され
た子スレッドでは、タイマの動作を開始する(ステップ
S30)。タイムアウト時間経過後(ステップS3
1)、要求スレッド(親スレッド)の有無を確認する。
応答部12の応答処理の終了によって待ち状態が解除さ
れ、スレッドが終了しているため(ステップS29)、
対象の要求スレッドはここでは存在しない。よって待ち
状態の解除処理は行わず、自スレッドを終了しタイマ処
理を終了する(ステップS36)。
タイマ処理部13、すなわち要求スレッドから生成され
た子スレッドでは、タイマの動作を開始する(ステップ
S30)。タイムアウト時間経過後(ステップS3
1)、要求スレッド(親スレッド)の有無を確認する。
応答部12の応答処理の終了によって待ち状態が解除さ
れ、スレッドが終了しているため(ステップS29)、
対象の要求スレッドはここでは存在しない。よって待ち
状態の解除処理は行わず、自スレッドを終了しタイマ処
理を終了する(ステップS36)。
【0041】次に図6を用いて、サーバでの処理がタイ
ムアウトした場合の動作の流れを説明する。この場合
は、上述した図5の動作の流れにおいて、応答部12
で、処理プロセス102からの結果データが送られてこ
ない場合である。
ムアウトした場合の動作の流れを説明する。この場合
は、上述した図5の動作の流れにおいて、応答部12
で、処理プロセス102からの結果データが送られてこ
ない場合である。
【0042】サーバ1では、受信部11でクライアント
からの要求を受信すると(ステップS12)、要求スレ
ッドを生成する(ステップS13)。要求スレッドで
は、クライアントからの要求を要求データとして、処理
プロセス102に送信する(ステップS14)。その
後、タイムアウト処理を行う子スレッドを生成し(ステ
ップS15)、待ち状態に遷移する(ステップS1
6)。
からの要求を受信すると(ステップS12)、要求スレ
ッドを生成する(ステップS13)。要求スレッドで
は、クライアントからの要求を要求データとして、処理
プロセス102に送信する(ステップS14)。その
後、タイムアウト処理を行う子スレッドを生成し(ステ
ップS15)、待ち状態に遷移する(ステップS1
6)。
【0043】処理が正常に行われた場合と同様に、要求
スレッドから生成された子スレッドでは、タイマの動作
を開始する(ステップS30)。タイムアウト時間経過
後(ステップS31)、対象の要求スレッド(親スレッ
ド)の有無を確認する。
スレッドから生成された子スレッドでは、タイマの動作
を開始する(ステップS30)。タイムアウト時間経過
後(ステップS31)、対象の要求スレッド(親スレッ
ド)の有無を確認する。
【0044】ここでは、応答部12でのスレッドの待ち
状態解除は行われていないため、要求スレッドは存在す
る。よって、状態記憶部14にロックをかけ(ステップ
S33)、処理がタイムアウトしたことを示すフラグを
記入する(ステップS34)。その後、要求スレッドの
待ち状態を解除する(ステップS35)。
状態解除は行われていないため、要求スレッドは存在す
る。よって、状態記憶部14にロックをかけ(ステップ
S33)、処理がタイムアウトしたことを示すフラグを
記入する(ステップS34)。その後、要求スレッドの
待ち状態を解除する(ステップS35)。
【0045】受信部11では、待ち状態の解除指示を受
信すると(ステップS17)、状態記憶部14のフラグ
の確認を行う(ステップS18)。この確認後(ステッ
プS18)、ロックを解除しておく(ステップS1
9)。処理がタイムアウトしたことを示すフラグである
ことを認識すると、その旨をクライアント2に応答する
(ステップS21)。その後、要求スレッドを終了する
(ステップS22)。
信すると(ステップS17)、状態記憶部14のフラグ
の確認を行う(ステップS18)。この確認後(ステッ
プS18)、ロックを解除しておく(ステップS1
9)。処理がタイムアウトしたことを示すフラグである
ことを認識すると、その旨をクライアント2に応答する
(ステップS21)。その後、要求スレッドを終了する
(ステップS22)。
【0046】以上のように本システムでは、1つの要求
に対して1つ生成される要求スレッドからタイマ処理用
の子スレッドを生成し、要求ごとにタイマ処理を独立さ
せているのである。そして、子スレッドは、クライアン
トから要求があるときに作られ、その処理が終了すると
削除される。したがって、システムにタイマ管理用のプ
ロセスを常駐させてタイマ処理を行う場合に比べ、プロ
セスを常駐させる必要がなく、プロセス間の通信もなく
なるため、システムの負荷を軽減することができるので
ある。
に対して1つ生成される要求スレッドからタイマ処理用
の子スレッドを生成し、要求ごとにタイマ処理を独立さ
せているのである。そして、子スレッドは、クライアン
トから要求があるときに作られ、その処理が終了すると
削除される。したがって、システムにタイマ管理用のプ
ロセスを常駐させてタイマ処理を行う場合に比べ、プロ
セスを常駐させる必要がなく、プロセス間の通信もなく
なるため、システムの負荷を軽減することができるので
ある。
【0047】さらに、本システムでは、停止しているス
レッドの待ち状態解除によって、処理の終了あるいはタ
イムアウトを通知し、その区別のために1つのフラグで
構成される共有領域を利用するのである。したがって、
専用スレッドによりスレッドとタイムアウト時間を対応
付けたテーブルを用いてタイマを管理する方法に比べ、
テーブル表を管理するが必要なくなり、簡単な構成でタ
イマ管理を行うことができるのである。
レッドの待ち状態解除によって、処理の終了あるいはタ
イムアウトを通知し、その区別のために1つのフラグで
構成される共有領域を利用するのである。したがって、
専用スレッドによりスレッドとタイムアウト時間を対応
付けたテーブルを用いてタイマを管理する方法に比べ、
テーブル表を管理するが必要なくなり、簡単な構成でタ
イマ管理を行うことができるのである。
【0048】なお、以上説明した図2〜図6の処理を実
現するためのプログラムを記録した記録媒体を用意し、
同記録媒体に記録されているプログラムによってコンピ
ュータを制御すれば、上述と同様にタイムアウト処理動
作を行うことができることは明白である。この記録媒体
には、半導体メモリ、磁気ディスク装置の他、種々の記
録媒体を用いることができる。
現するためのプログラムを記録した記録媒体を用意し、
同記録媒体に記録されているプログラムによってコンピ
ュータを制御すれば、上述と同様にタイムアウト処理動
作を行うことができることは明白である。この記録媒体
には、半導体メモリ、磁気ディスク装置の他、種々の記
録媒体を用いることができる。
【0049】
【発明の効果】以上説明したように本発明は、1つの要
求に対して1つ生成される要求スレッドからタイマ処理
用の子スレッドを生成し、要求ごとにタイマ処理を独立
させ、その処理が終了すると子スレッドを削除すること
により、システムにタイマ管理用のプロセスを常駐させ
てタイマ処理を行う場合に比べ、プロセスを常駐させる
必要がなく、プロセス間の通信もなくなり、システムの
負荷を軽減することができるという効果がある。また、
停止しているスレッドの待ち状態解除によって、処理の
終了、あるいはタイムアウトを通知し、その区別に1つ
のフラグで構成される共有領域を利用することにより、
専用スレッドによりスレッドとタイムアウト時間とを対
応付けるテーブルを用いてタイマを管理する方法に比
べ、テーブル表を管理するが必要なくなり、簡単な構成
でタイマ管理を行うことができるという効果がある。
求に対して1つ生成される要求スレッドからタイマ処理
用の子スレッドを生成し、要求ごとにタイマ処理を独立
させ、その処理が終了すると子スレッドを削除すること
により、システムにタイマ管理用のプロセスを常駐させ
てタイマ処理を行う場合に比べ、プロセスを常駐させる
必要がなく、プロセス間の通信もなくなり、システムの
負荷を軽減することができるという効果がある。また、
停止しているスレッドの待ち状態解除によって、処理の
終了、あるいはタイムアウトを通知し、その区別に1つ
のフラグで構成される共有領域を利用することにより、
専用スレッドによりスレッドとタイムアウト時間とを対
応付けるテーブルを用いてタイマを管理する方法に比
べ、テーブル表を管理するが必要なくなり、簡単な構成
でタイマ管理を行うことができるという効果がある。
【図1】本発明の実施の一形態によるタイムアウト処理
方法を実現するためのタイムアウト処理システムの構成
を示すブロック図である。
方法を実現するためのタイムアウト処理システムの構成
を示すブロック図である。
【図2】図1中の受信部の動作を示すフローチャートで
ある。
ある。
【図3】図1中の応答部の動作を示すフローチャートで
ある。
ある。
【図4】図1中のタイマ処理部の動作を示すフローチャ
ートである。
ートである。
【図5】図1のシステムにおける応答正常時の要求受付
プロセスの流れを示す図である。
プロセスの流れを示す図である。
【図6】図1のシステムにおけるタイムアウト時の要求
受付プロセスの流れを示す図である。
受付プロセスの流れを示す図である。
1 サーバ 2 クライアント 3 要求 4 応答 11 受信部 12 応答部 13 タイマ処理部 14 状態記憶部 101 要求受付プロセス 102 処理プロセス 103 ソケット
Claims (15)
- 【請求項1】 予め定められた時間内に処理が行われな
かった旨をサーバからクライアントに通知するタイムア
ウト処理を行うタイムアウト処理システムであって、親
スレッドである要求スレッドをクライアントから受信し
たときにその子スレッドを生成する手段と、この生成し
た子スレッドによって前記タイムアウト処理を行う手段
とを含むことを特徴とするタイムアウト処理システム。 - 【請求項2】 前記子スレッドを生成したとき前記要求
スレッドは待ち状態に移行し、この待ち状態の解除によ
り前記要求スレッドに対応する要求処理が終了した旨及
び処理がタイムアウトした旨のうちのいずれか一方を通
知することを特徴とする請求項1記載のタイムアウト処
理システム。 - 【請求項3】 前記待ち状態への移行に応答してフラグ
を記入し、このフラグの内容を参照することによって前
記要求スレッドの状態を確認するようにしたことを特徴
とする請求項2記載のタイムアウト処理システム。 - 【請求項4】 前記フラグを記憶する状態記憶手段を更
に有することを特徴とする請求項3記載のタイムアウト
処理システム。 - 【請求項5】 前記状態記憶手段に対してフラグを記憶
するときにその状態記憶部に対してフラグを重複して記
入しないようにロックをかけることを特徴とする請求項
4記載のタイムアウト処理システム。 - 【請求項6】 予め定められた時間内に処理が行われな
かった旨をサーバからクライアントに通知するタイムア
ウト処理を行うタイムアウト処理方法であって、親スレ
ッドである要求スレッドをクライアントから受信したと
きにその子スレッドを生成するステップと、この生成し
た子スレッドによって前記タイムアウト処理を行うステ
ップとを含むことを特徴とするタイムアウト処理方法。 - 【請求項7】 前記子スレッドを生成したとき前記要求
スレッドは待ち状態に移行し、この待ち状態の解除によ
り前記要求スレッドに対応する要求処理が終了した旨及
び処理がタイムアウトした旨のうちのいずれか一方を通
知することを特徴とする請求項6記載のタイムアウト処
理方法。 - 【請求項8】 前記待ち状態への移行に応答してフラグ
を記入し、このフラグの内容を参照することによって前
記要求スレッドの状態を確認するようにしたことを特徴
とする請求項7記載のタイムアウト処理方法。 - 【請求項9】 前記フラグは、状態記憶部に記憶するよ
うにしたことを特徴とする請求項8記載のタイムアウト
処理方法。 - 【請求項10】 前記状態記憶部に対してフラグを記憶
するときにその状態記憶部に対してフラグを重複して記
入しないようにロックをかけることを特徴とする請求項
9記載のタイムアウト処理方法。 - 【請求項11】 予め定められた時間内に処理が行われ
なかった旨をサーバからクライアントに通知するタイム
アウト処理をコンピュータに行わせるためのプログラム
を記録した記録媒体であって、前記プログラムは、コン
ピュータに、親スレッドである要求スレッドをクライア
ントから受信したときにその子スレッドを生成するステ
ップと、この生成した子スレッドによって前記タイムア
ウト処理を行うステップとを含むことを特徴とする記録
媒体。 - 【請求項12】 前記子スレッドを生成したとき前記要
求スレッドは待ち状態に移行し、この待ち状態の解除に
より前記要求スレッドに対応する要求処理が終了した旨
及び処理がタイムアウトした旨のうちのいずれか一方を
通知することを特徴とする請求項11記載の記録媒体。 - 【請求項13】 前記待ち状態への移行に応答してフラ
グを記入し、このフラグの内容を参照することによって
前記要求スレッドの状態を確認するようにしたことを特
徴とする請求項12記載の記録媒体。 - 【請求項14】 前記フラグは、状態記憶部に記憶する
ようにしたことを特徴とする請求項8記載の記録媒体。 - 【請求項15】 前記状態記憶部に対してフラグを記憶
するときにその状態記憶部に対してフラグを重複して記
入しないようにロックをかけることを特徴とする請求項
14記載の記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11071153A JP2000267894A (ja) | 1999-03-17 | 1999-03-17 | タイムアウト処理システム、処理方法及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11071153A JP2000267894A (ja) | 1999-03-17 | 1999-03-17 | タイムアウト処理システム、処理方法及び記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000267894A true JP2000267894A (ja) | 2000-09-29 |
Family
ID=13452396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11071153A Pending JP2000267894A (ja) | 1999-03-17 | 1999-03-17 | タイムアウト処理システム、処理方法及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000267894A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007507048A (ja) * | 2003-09-30 | 2007-03-22 | インテル・コーポレーション | マルチスレッディングのためのコンパイラが生成したヘルパースレッドの方法および装置 |
KR100736647B1 (ko) | 2005-06-30 | 2007-07-09 | 후지쯔 가부시끼가이샤 | Raid 장치, 통신 접속 감시 방법 및 프로그램 기록매체 |
WO2007116930A1 (ja) * | 2006-04-07 | 2007-10-18 | Daikin Industries, Ltd. | 制御処理の停止方法 |
US7308617B2 (en) | 2004-06-17 | 2007-12-11 | International Business Machines Corporation | Apparatus, system, and method for automatically freeing a server resource locked awaiting a failed acknowledgement from a client |
US7929519B2 (en) * | 1997-10-08 | 2011-04-19 | At&T Intellectual Property Ii, L.P. | POTS/packet bridge |
US8825804B2 (en) * | 2005-01-26 | 2014-09-02 | International Business Machines Corporation | Method and system for avoiding an unintentional time-out for communications in a client-proxy-server environment |
-
1999
- 1999-03-17 JP JP11071153A patent/JP2000267894A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7929519B2 (en) * | 1997-10-08 | 2011-04-19 | At&T Intellectual Property Ii, L.P. | POTS/packet bridge |
US9407773B2 (en) | 1997-10-08 | 2016-08-02 | At&T Intellectual Property Ii, L.P. | POTS/packet bridge |
JP2007507048A (ja) * | 2003-09-30 | 2007-03-22 | インテル・コーポレーション | マルチスレッディングのためのコンパイラが生成したヘルパースレッドの方法および装置 |
JP4701174B2 (ja) * | 2003-09-30 | 2011-06-15 | インテル・コーポレーション | マルチスレッディングのためのコンパイラが生成したヘルパースレッドの方法および装置 |
US7308617B2 (en) | 2004-06-17 | 2007-12-11 | International Business Machines Corporation | Apparatus, system, and method for automatically freeing a server resource locked awaiting a failed acknowledgement from a client |
US8825804B2 (en) * | 2005-01-26 | 2014-09-02 | International Business Machines Corporation | Method and system for avoiding an unintentional time-out for communications in a client-proxy-server environment |
KR100736647B1 (ko) | 2005-06-30 | 2007-07-09 | 후지쯔 가부시끼가이샤 | Raid 장치, 통신 접속 감시 방법 및 프로그램 기록매체 |
WO2007116930A1 (ja) * | 2006-04-07 | 2007-10-18 | Daikin Industries, Ltd. | 制御処理の停止方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20040205148A1 (en) | Method for operating a computer cluster | |
KR100987746B1 (ko) | 작업 관리 장치, 클러스터 시스템 및 작업 관리 프로그램을기록한 컴퓨터 판독 가능한 기록 매체 | |
CN102567111B (zh) | 一种异步过程调用的方法、系统和终端设备 | |
KR100423687B1 (ko) | 소결합 노드 클러스터에서의 공유 디스크 파일 시스템용데이터 관리 응용 프로그램의 연속 수행 페일오버 | |
US7127722B2 (en) | Method and apparatus for avoiding multiple processing of the same IPMI system event | |
US7673172B2 (en) | Method, system, and program for error handling in a dual adaptor system where one adaptor is a master | |
US7631066B1 (en) | System and method for preventing data corruption in computer system clusters | |
US8190946B2 (en) | Fault detecting method and information processing apparatus | |
US8495266B2 (en) | Distributed lock | |
US20050283673A1 (en) | Information processing apparatus, information processing method, and program | |
JP2007011672A (ja) | Raid装置、通信接続監視方法及びプログラム | |
JP4394298B2 (ja) | マルチプロセッサシステムとその共有メモリ制御方法、及び共有メモリ制御プログラム | |
CN112039970A (zh) | 一种分布式业务锁服务方法、服务端、系统及存储介质 | |
JP2000267894A (ja) | タイムアウト処理システム、処理方法及び記録媒体 | |
JP2012528369A (ja) | コンピュータ実装多重リソース共有ロック | |
US20080244031A1 (en) | On-Demand Memory Sharing | |
JP2008117151A (ja) | 映像蓄積配信システム及び映像蓄積配信方法 | |
JP5067075B2 (ja) | 疎結合システム、待機系排他制御装置、疎結合システムのリカバリ方法、プログラムおよび記憶媒体 | |
US6957361B2 (en) | Method, system, and program for error handling in a dual adaptor system | |
JP2010170285A (ja) | サービス提供ノード、サービス提供用プログラム、およびソフトウェア更新方法 | |
US20100306469A1 (en) | Processing method and apparatus | |
JP2001134511A (ja) | ネットワーク管理システム及びその管理方法並びにその制御プログラムを記録した記録媒体 | |
KR100278303B1 (ko) | 다중접속 클라이언트와 단일접속 서버간의 통신방법 | |
WO2023029837A1 (zh) | 请求处理方法、装置、计算设备及存储介质 | |
JP3039456B2 (ja) | タスク管理システム及びタスク管理方法ならびにタスク管理プログラムを格納した記憶媒体 |