(57)【要約】【課題】複数のプロセッサのプロセスを用いて並列処理を行なう時に並列処理を行う通信先プロセッサが正常に動作している場合にのみ、このプロセッサとデータ通信を行なう通信コネクション管理方式を提供する。【解決手段】プロセス２が、複数のプロセッサ１が正常か又は異常かを示すプロセッサ状態が格納されたシステム構成テーブル５と、複数のプロセッサ１のプロセス２がそれぞれ他のプロセス２と接続済か又は未接続か又は切断かを示すコネクション状況が格納されたコネクションテーブル３と、を参照し、並列処理を行なう通信先プロセッサが正常に動作し、この通信先プロセッサに設けられた通信先プロセスとのコネクション状況が接続済の時に、通信先プロセスとデータ通信を行なう。【選択図】        図１
2004254167.tif 000002
【特許請求の範囲】
【請求項１】
通信路を介して接続された複数のプロセッサの通信コネクションを管理する通信コネクション管理方式において、
前記複数のプロセッサは、
他のプロセッサとともに並列処理を行なう並列処理部と、
前記複数のプロセッサが正常か又は異常かを示すプロセッサ状態が格納されたシステム構成テーブルと、
前記複数のプロセッサの並列処理部がそれぞれ他の並列処理部と接続済か又は未接続か又は切断かを示すコネクション状況が格納されたコネクションテーブルとを備え、
前記並列処理部は、前記システム構成テーブルと前記コネクションテーブルとを参照し、並列処理を行なう通信先プロセッサが正常で、この通信先プロセッサに設けられた通信先並列処理部とのコネクション状況が接続済の時は、前記通信先並列処理部とデータ通信を行なうことを特徴とする通信コネクション管理方式。
【請求項２】
前記複数のプロセッサのそれぞれに設けられ、前記複数のプロセッサのいずれかに異常が発生した時に、前記システム構成テーブル中の異常が発生したプロセッサのプロセッサ状態を異常とするシステム構成監視部を備えたことを特徴とする請求項１記載の通信コネクション管理方式。
【請求項３】
前記並列処理部は、前記通信先プロセッサのプロセッサ状態が異常の時には前記通信先並列処理部とデータ通信を行なわず、前記通信先並列処理部のコネクション状況が切断の時には前記通信先並列処理部とデータ通信を行なわないことを特徴とする請求項２記載の通信コネクション管理方式。
【請求項４】
前記並列処理部は、前記通信先並列処理部とのコネクション状況が未接続の時には前記通信先並列処理部と接続を行ない、接続が成功した時には前記コネクションテーブルの前記通信先並列処理部のコネクション状況を接続済に書き換え、前記通信先並列処理部とデータ通信を行なうことを特徴とする請求項２記載の通信コネクション管理方式。
【請求項５】
前記複数のプロセッサのそれぞれに設けられ、前記並列処理部から送信された異常通知に基づいて前記システム構成テーブルの前記通信先プロセッサのプロセッサ状態を異常に書き換えるシステム構成管理部を備え、
前記並列処理部は、前記通信先並列処理部と接続を行ない、接続が失敗した時には前記通信先並列処理部が異常である異常通知を前記システム構成管理部に送信し、
前記システム構成監視部は、前記システム構成管理部により書き換えられた前記通信先プロセッサのプロセッサ状態を前記複数のプロセッサに通知し、このプロセッサ状態を前記複数のプロセッサのそれぞれに設けられたシステム構成テーブルに反映させることを特徴とする請求項２記載の通信コネクション管理方式。
【請求項６】
前記複数のプロセッサのそれぞれに設けられ、前記コネクションテーブルに格納されたコネクション状況が接続済の時にはこの接続が正常であるか否か調べ、正常でなかった場合には前記コネクションテーブルのコネクション状況を切断に変更するコネクション管理部を備えたことを特徴とする請求項５記載の通信コネクション管理方式。
【請求項７】
前記コネクション管理部は、前記コネクションテーブルに格納されたコネクション状況が接続済の時には前記システム構成テーブルのプロセッサが正常であるか否か調べ、異常であった場合には前記コネクションテーブルのコネクション状況を切断に変更することを特徴とする請求項６記載の通信コネクション管理方式。
【請求項８】
前記複数のプロセッサのそれぞれに設けられ、前記コネクション管理部から送信された接続要求に基づいて接続相手のプロセッサに接続を行ない、接続が完了した場合には接続成功メッセージを、又接続に失敗した場合には接続失敗メッセージを前記コネクション管理部に送信するコネクション設立部を備え、
前記コネクション管理部は、前記接続相手のプロセッサとのコネクション状況が未接続済の場合には前記接続要求を前記コネクション設立部に送信し、前記コネクション設立部により前記接続成功メッセージ又は前記接続失敗メッセージが送信された時には前記コネクションテーブルの前記接続相手のプロセッサのコネクション状況を接続済又は切断に書き換えることを特徴とする請求項６記載の通信コネクション管理方式。
【請求項９】
前記コネクション管理部は、前記コネクションテーブルに格納されたコネクション状況が接続済の時にはこの接続が正常であるか否か調べ、正常でなかった場合にはこの正常でなかった並列処理部を備えたプロセッサが異常である異常通知を前記システム構成管理部に送信し、
前記システム構成管理部は、前記コネクション管理部から送信された異常通知に基づいて前記システム構成テーブルのプロセッサのプロセッサ状態を異常に書き換えることを特徴とする請求項６記載の通信コネクション管理方式。
【請求項１０】
前記並列処理部は、前記通信先プロセッサのプロセッサ状態が正常であり、前記通信先並列処理部との接続が切断されていた時には前記コネクションテーブルに格納された前記通信先並列処理部とのコネクション状況を未接続に変更することを特徴とする請求項６記載の通信コネクション管理方式。
【請求項１１】
前記コネクション管理部は、前記コネクションテーブルに接続済と示された並列処理部が存在し、この並列処理部を備えたプロセッサのプロセッサ情報が前記システム構成テーブルで異常であった場合には前記コネクションテーブルの接続済と示された前記並列処理部のコネクション状況を切断に変更することを特徴とする請求項６記載の通信コネクション管理方式。
【請求項１２】
前記コネクション管理部は、前記コネクションテーブルに切断と示された並列処理部が存在し、この並列処理部を備えたプロセッサのプロセッサ情報が前記システム構成テーブルで正常であった場合には前記コネクションテーブルの切断と示された前記並列処理部のコネクション状況を未接続に変更することを特徴とする請求項６記載の通信コネクション管理方式。
【請求項１３】
前記コネクション管理部は、前記コネクションテーブルに接続済でないと示された並列処理部が存在し、この並列処理部を備えたプロセッサのプロセッサ情報が前記システム構成テーブルで正常であった場合には前記コネクション設立部にこの正常なプロセッサの並列処理部との接続要求を送信することを特徴とする請求項６記載の通信コネクション管理方式。
【請求項１４】
前記コネクション管理部は、前記コネクションテーブルに接続済でないと示された並列処理部が存在した時にはこの並列処理部との接続を行い、接続に失敗した場合には予め記憶された回数だけこの並列処理部との接続を行うことを特徴とする請求項６記載の通信コネクション管理方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサのプロセスを用いて並列処理を行なう場合のプロセス間通信コネクション管理方法に関するものである。
【０００２】
【従来の技術】
従来のコネクション管理方法およびシステムでは、サーバの機能を複数のサーバマシンに分散したオンライントランザクション処理を行なうクライアント・サーバシステムにおいて、サーバプロセスが別サーバマシンとコネクションを確立したときに、システムから取得した時刻をコネクション確立時刻としてコネクションを管理するテーブルに登録することにより、別サーバマシンがダウンした後に再起動した場合でもコネクション確立時刻をチェックすることで、正常に通信できるコネクションを識別することができるプロセス間コネクション管理についての記載がされている（例えば、特許文献１参照）。
【０００３】
【特許文献１】
特開２００２−１１１６７４号公報
【０００４】
【発明が解決しようとする課題】
従来のコネクション管理方法及びシステムでは、一度異常を検出してもその情報を保持することができず、再度異常プロセスへの通信を試行するという問題点があった。また、異常が発生してから再起動が行なわれるまでに通信要求が発生した場合には、必ず失敗するにも関わらず通信を試行するため、通信を試行する分の処理の低下が発生するという問題点があった。
【０００５】
本発明では、一度コネクション異常を検出したら、テーブルに「切断」と示すことにより、異常コネクションを使用しないようにすることを目的とする。
また、本発明では、テーブルにプロセッサの状態を反映させ、プロセッサが異常であった場合には、コネクション異常が検出されていなくてもコネクション異常とすることにより、プロセッサが正常に動作している場合にのみ通信が行なえるようにすることを目的とする。
【０００６】
【課題を解決するための手段】
この発明に係る通信コネクション管理方式は、通信路を介して接続された複数のプロセッサの通信コネクションを管理する通信コネクション管理方式において、
前記複数のプロセッサは、
他のプロセッサとともに並列処理を行なう並列処理部と、
前記複数のプロセッサが正常か又は異常かを示すプロセッサ状態が格納されたシステム構成テーブルと、
前記複数のプロセッサの並列処理部がそれぞれ他の並列処理部と接続済か又は未接続か又は切断かを示すコネクション状況が格納されたコネクションテーブルとを備え、
前記並列処理部は、前記システム構成テーブルと前記コネクションテーブルとを参照し、並列処理を行なう通信先プロセッサが正常で、この通信先プロセッサに設けられた通信先並列処理部とのコネクション状況が接続済の時は、前記通信先並列処理部とデータ通信を行なうものである。
【０００７】
【発明の実施の形態】
実施の形態１．
図１は、実施の形態１の通信コネクション管理方式の構成図である。本実施の形態では、プロセッサ１が通信路４で接続された構成をとる。各プロセッサ１は、プロセス２、コネクションテーブル３、システム構成テーブル５、システム構成監視機構６を持つ。プロセス２は、他のプロセッサにそれぞれ設けられた他のプロセスと協調して並列演算などの並列処理を行なう役割を持つ並列処理部である。コネクションテーブル３は、コネクション設立済、コネクション未設立、コネクション切断などといった、プロセスと他のプロセスでのコネクション設立状況を示す役割を持つ。なお、プロセス２の個数は、プロセッサ１でいくつあっても構わないが、コネクションテーブル３は、各プロセスが一つずつ持つ。
【０００８】
本実施の形態では、プロセッサ１上にプロセス２が一つあり、そのプロセス２がコネクションテーブル３を１つ持った例を示している。本実施の形態におけるシステム構成テーブル５は、並列処理を行なう全プロセッサの状態（正常または異常）を格納したテーブルであり、各プロセッサに１つある。システム構成テーブル５は、すべてのプロセッサで同一の内容が保持されている。
【０００９】
本実施の形態におけるシステム構成監視機構６は、他のプロセッサ上にあるシステム構成監視機構間で、定期的に、互いに自プロセッサが正常に動作していることを示す情報を交換し、一定時間の間にシステム構成監視機構６からの情報が来なかった場合には、情報を送信しなかったプロセッサに異常が発生したと判定し、システム構成テーブル５上の、情報を送信しなかったプロセッサのエントリの状態欄に「異常」と示す役割を持つシステム構成監視部である。また、システム構成テーブル５の全ての状態欄１４を監視し、状態が「正常」から「異常」に変化したプロセッサがあった場合には、他の全プロセッサ上のシステム構成監視機構６に異常プロセッサを通知し、その情報を受け取ったシステム構成監視機構６は該当するプロセッサのエントリの状態欄に「異常」と示す（この場合には状態欄を「正常」から「異常」書き換える）役割を持つ。
【００１０】
図２は、本実施の形態におけるコネクションテーブル３の説明図である。コネクションテーブル３には、各エントリに、プロセス識別子欄７、プロセッサ識別子欄８、コネクション識別子欄９、接続状況欄１０の４つの欄を持つ。
プロセス識別子欄７には、並列処理を行なっている各プロセッサ上のプロセスの識別子が格納され、このプロセスの識別子としては、プロセス名、プロセスＩＤなどが考えられる。プロセッサ識別子欄８には、並列処理を行なうプロセッサの識別子が格納され、このプロセッサの識別子としては、ＩＰアドレス、プロセッサ名などが考えられる。
【００１１】
コネクション識別子欄９には、各プロセス間で設立されたコネクションの識別子が格納され、コネクション識別子９としては、ソケットディスクリプタなどが考えられる。接続状況欄１０には、コネクションテーブル３を持つプロセスと他のプロセスとの接続状況を示したものであり、この欄には未接続、接続、切断の３つの状態が示される。
【００１２】
図３は、本実施の形態におけるシステム構成テーブル５の説明図である。システム構成テーブル５は、並列処理を行なう全プロセッサの状態を示したものであり、各エントリにプロセッサ識別子欄１１、状態欄１２の二つの欄を持つ。プロセッサ識別子欄１１には、並列処理を行なっている各プロセッサの識別子が格納され、このプロセッサの識別子としては、ＩＰアドレス、プロセッサ名などが考えられる。状態欄１２には、各プロセッサ１の状態が格納され、正常または異常の値が示される。
【００１３】
図４は、本実施の形態におけるプロセス２の動作手順を示したフローチャートである。ステップＳ１で、システム構成テーブル５を参照し、通信先プロセスが動作するプロセッサ１の状態を調べる。ステップＳ２で、通信先プロセッサが正常に動作していなければ、通信試行をやめ、終了する。正常に動作していれば、ステップＳ３に進む。ステップＳ３で、コネクションテーブル３を参照し、通信先プロセスとの通信コネクションの設立状況の設立状況を調査する。即ち、通信先プロセスとの接続状況を調査する。
【００１４】
ステップＳ４にて、通信先プロセスとのコネクションが切断されていた場合には、コネクションテーブル３上、プロセス識別子欄７の通信先プロセスが示してあるエントリの接続状況欄１０に、「切断」と示されているので、その場合には通信試行を取りやめる。ステップＳ４で、接続状況欄１０に「切断」と示されていなかった場合には、ステップＳ５へ進み、通信先プロセスとの通信コネクションがすでに設立されているかどうかを調べる。設立されていた場合には、コネクションテーブル３上、プロセス識別子欄５に通信先プロセスが示してあるエントリの接続状況欄１０に「接続済」と示されているので、その場合には、ステップＳ９に進み、データ通信を行なう。
【００１５】
ステップＳ５で、通信コネクションが設立されていなかった場合には、コネクションテーブル３の、プロセス識別子欄７に通信先プロセスが示してあるエントリの接続状況欄１０に「未接続」と示されているので、その場合には、ステップＳ６にて、通信先プロセスと通信コネクション設立を試行する。ステップＳ７で、設立に成功したかどうかを調べ、成功したら、ステップＳ８で、コネクションテーブル３上のプロセス識別子欄７に通信先プロセスが示してあるエントリの接続状況欄１０を「接続済」に書き換え、ステップＳ９に進んでデータ通信を行なう。ステップＳ７で、コネクション設立に失敗した場合には、ステップＳ１０にてプロセス識別子欄７に通信先プロセスが示してあるエントリの接続状況欄１０を「切断」に書き換え、データ通信を行なわずに終了する。
【００１６】
このように、本実施の形態では、システム構成テーブル５に並列処理を行なう全プロセッサの状態（正常または異常）を保持し、コネクションテーブル３にプロセスと他のプロセスとのコネクション設立状況を保持し、通信を行なう前にシステム構成テーブル５及びコネクションテーブル３を参照し、通信先プロセッサが正常に動作し、通信先プロセスとの接続状況が接続状況にある時に、通信先プロセッサの通信先プロセスとデータ通信を行なうことができるため、プロセッサが正常に動作している場合にのみ、このプロセッサのプロセスとデータ通信を行なうことができる。
【００１７】
また、各プロセスが、コネクションテーブル３にその他全プロセス間の通信コネクション設立状況を保持し、通信を行なう前に通信先プロセスとの接続状況を調べ、すでに「切断」と示されていた場合には通信を試行せずに終了することができるため、通信先が異常である場合の通信再試行に伴う処理の遅れやデータ損失を防止することができる。
【００１８】
また、通信先プロセッサに異常がある場合や通信先プロセスとのコネクションが切断されている場合には、異常コネクションを使用しないようにすることにより、通信先が異常である場合の通信再試行に伴う処理の遅れやデータ損失を防止することができる。
【００１９】
実施の形態２．
図５は、実施の形態２の通信コネクション管理方式の構成図である。本実施の形態において、各プロセッサは、プロセス２、コネクションテーブル３、システム構成テーブル５、システム構成監視機構６、システム構成管理機構１３を持つ。本実施の形態におけるプロセス２、コネクションテーブル、システム構成テーブル５、システム構成監視機構６の役割は実施の形態１と同一である。
【００２０】
本実施の形態におけるシステム構成管理機構１３は、プロセスが異常を発見した場合に、プロセスからの異常通知を受信し、自プロセッサ上のシステム構成テーブル５の、異常プロセスが動作するプロセッサのエントリの状態欄１２に「異常」と示す役割を持つシステム構成管理部である。
【００２１】
図６は、本実施の形態におけるプロセス２の動作手順を示したフローチャートである。ステップＳ１１で、システム構成テーブル５を参照し、通信先プロセスが動作するプロセッサの状態を調べる。ステップＳ１２で、通信先プロセッサに異常が発生していた場合には、通信試行を取りやめる。ステップＳ１２で、通信先プロセッサが正常であった場合には、ステップＳ１３に進む。
【００２２】
ステップＳ１３で、コネクションテーブル３上、通信先プロセスが示されているエントリの、接続状況欄８を参照し、ステップＳ１４にて、通信先プロセスとのコネクションが切断されていた場合には、コネクションテーブル３上、プロセス識別子欄７に通信先プロセスが示してあるエントリの、接続状況欄１０に「切断」と示されるので、その場合には、通信試行を取りやめる。
【００２３】
ステップＳ１４で、接続状況欄１０に「切断」と示されていなかった場合には、ステップＳ１５へ進み、通信先との通信コネクションがすでに設立されているかどうかを調べる。設立されていた場合には、コネクションテーブル３上、プロセス識別子欄７に通信先プロセス１が示してあるエントリの、接続状況欄１０に「接続済」と示されているので、その場合には、ステップＳ１９に進み、データ通信を行なう。ステップＳ１５で、通信コネクションが設立されていなかった場合には、コネクションテーブル３の、プロセス識別子欄７に通信先プロセスが示してあるエントリの、接続状況欄８に「未接続」と示されるので、その場合には、ステップＳ１６にて、通信先プロセスと通信コネクション設立、即ち通信先プロセスとの接続の試行を行なう。
【００２４】
ステップＳ１７で接続に成功したかどうかを調べ、成功したら、ステップＳ１８で、コネクションテーブル３上、プロセス識別子欄７に通信先プロセスが示してあるエントリの、接続状況欄１０を「接続済」に書き換え、データ通信を行なう。ステップＳ１７で、接続に失敗したことがわかった場合には、ステップＳ２０に進み、システム構成管理機構１３に対して通信先プロセスが異常であることを通知し、データ通信を行なわずに終了する。
【００２５】
図７は、本実施の形態におけるシステム構成管理機構１３の動作手順を示したフローチャートである。ステップＳ２１で、プロセスから、プロセスの異常通知が届くのを待つ。本異常通知はステップＳ２０にてプロセスから送信されたものとなる。プロセスの異常通知が届くと、ステップＳ２２で、システム構成テーブル５の、そのプロセスが動作しているプロセッサのエントリの状態欄１２を「異常」に書き換える。
【００２６】
システム構成テーブル５を書き換えることにより、システム構成テーブル５を監視しているシステム構成監視機構６が、プロセッサの異常を他のプロセッサに通知し、他のプロセッサ上のシステム構成監視機構６は、プロセッサの異常を受信し、各プロセッサ上にあるシステム構成テーブルの異常プロセッサのエントリを「異常」に書き換える。それぞれのプロセスは、システム構成テーブルとコネクションテーブルを参照してから通信を開始するので、異常プロセスへの通信を防止することができる。
【００２７】
このように、本実施の形態では、システム構成テーブル５とシステム構成監視機構６とを連携することにより、異常をすべてのプロセッサ１に伝達することができる。したがって、通信を試行する前に、自プロセス上のシステム構成監視機構６で発見できなかった異常が存在した場合においても、他のプロセッサによって発見されたプロセッサ異常を知ることができ、異常プロセッサへの通信試行に伴う処理の遅れを防止することができる。
【００２８】
実施の形態３．
図８は、実施の形態３の通信コネクション管理方式の構成図である。本実施の形態において、各プロセッサは、プロセス２、コネクションテーブル３、システム構成テーブル５、システム構成監視機構６、コネクション管理機構３１を持つ。本実施の形態におけるプロセス２、コネクションテーブル３、システム構成テーブル５、システム構成監視機構６の役割は実施の形態１と同一であり、記述を省略する。
【００２９】
本実施の形態におけるコネクション管理機構３１は、コネクションテーブルで「接続済」とされているすべての通信コネクションが設立できているかどうかを調べ、接続が途切れた場合には、該当するプロセスのエントリの接続状況欄を「切断」に変更する役割を持つコネクション管理部である。
【００３０】
本実施の形態におけるプロセス２の動作手順は、実施の形態１の図４と同一である。
また、図９は、本実施の形態におけるコネクション管理機構３１の動作手順を示したフローチャートである。図９を用いてコネクション管理機構３１の動作手順について説明する。
ステップＳ３１にて、コネクションテーブル３における最初のエントリの接続状況欄を参照し、ステップＳ３２で、格納されている値を調べる。
【００３１】
値が「接続済」になっていた場合には、ステップＳ３３にて、コネクションが正常であるかどうかを調べる。調べる方法としては、例えば通信されるパケットをモニタすることや、コネクションテーブル３のコネクション識別子欄に示されている値を用い、実際にこのコネクションを用いて通信を行なうことなどが考えられる。そして、ステップＳ３４で、コネクションが正常であるかどうかを調べる。
【００３２】
コネクションが正常でなかった場合には、ステップＳ３５にて、コネクションテーブル３の該当するエントリを「切断」に変更する。ステップＳ３４で、コネクションが正常であった場合、または、ステップ３５で、コネクションテーブルのエントリを「切断」に変更したあと、ステップＳ３６で、コネクションテーブルの次の行にエントリがあるかどうかを調べる。次のエントリがあった場合には、そのエントリを参照し、ステップＳ３２に進む。次のエントリがなかった場合には、処理を終了する。なお、本処理を繰り返し行なう場合には、終了せずにステップＳ３１に戻り、Ｓ３１〜Ｓ３７の処理を繰り返し行なうことになる。
【００３３】
このように、本実施の形態では、コネクション管理機構３１があらかじめコネクションの状態を監視し、プロセスが通信時に異常を発見するよりも早くコネクション異常を発見することが可能であるため、プロセスがコネクション異常のプロセスに対して通信を試行することに伴う処理の遅れを防止することができる。
【００３４】
実施の形態４．
本実施の形態における通信コネクション管理方式の構成は実施の形態３の図８と同一である。本実施の形態におけるプロセス２、コネクションテーブル３、システム構成テーブル５、システム構成監視機構６は実施の形態３と同一であり、記述を省略する。
【００３５】
本実施の形態におけるコネクション管理機構３１は、システム構成テーブル５とコネクションテーブル３を監視し、コネクションテーブル３には「接続済」と示されているものの、システム構成テーブル５には「異常」と示されているプロセッサ１が存在した場合、コネクションテーブル３の、異常プロセッサ上で動作しているプロセス２とのコネクションを「切断」に書き換える役割を持つコネクション管理部である。
【００３６】
図１０は、本実施の形態におけるコネクション管理機構３１の動作手順を示したフローチャートである。ステップＳ４１にて、コネクションテーブル３における最初のエントリの接続状況欄を参照し、ステップＳ４２で、格納されている値を調べる。値が「接続済」になっていた場合には、ステップＳ４３にて、システム構成テーブル１１を参照し、現在参照しているコネクションテーブル３のエントリに示されるプロセッサが正常であるかどうかを調べる。そして、ステップＳ４４で、プロセッサが正常に動作しているかどうかを調べる。
【００３７】
プロセッサが異常であった場合には、ステップＳ４５にて、コネクションテーブル３の該当するエントリを「切断」に変更する。ステップＳ４４で、プロセッサが正常であった場合、または、ステップ４５で、コネクションテーブル３のエントリを「切断」に変更したあと、ステップＳ４６で、コネクションテーブル３の次の行にエントリがあるかどうかを調べる。次のエントリがあった場合には、ステップＳ４７で、そのエントリを参照し、ステップＳ４２に進む。次のエントリがなかった場合には、処理を終了する。なお、本処理を繰り返し行なう場合には、終了せずにステップＳ４１に戻り、Ｓ４１〜Ｓ４７の処理を繰り返し行なうことになる。
【００３８】
このように、本実施の形態では、システム構成テーブル５が持つ各プロセッサの状態をコネクションテーブル３に反映させることができ、異常プロセッサとのコネクションが「切断」となっていることから、通信を行なう前に異常プロセッサがわかるので、異常プロセッサとの通信を試行することに伴う処理の遅れを防止することができる。
【００３９】
実施の形態５．
図１１は、実施の形態５の通信コネクション管理方式の構成図である。本実施の形態におけるプロセッサ１は、プロセス２、コネクションテーブル３、システム構成テーブル５、システム構成監視機構６、コネクション管理機構３１、コネクション設立機構５１を持つ。本実施の形態におけるプロセス２、コネクションテーブル３、システム構成テーブル５、システム構成監視機構６は実施の形態１と同一である。
【００４０】
本実施の形態におけるコネクション管理機構３１は、コネクションテーブル３に示されたプロセス間の通信状況を定期的に監視し、未設立のコネクションがあった場合には、コネクション設立機構５１に向け、コネクションを設立するよう要求し、コネクション設立機構５１からコネクション設立完了通知を受け取ると、コネクションテーブル３の該当エントリを接続済に変更する役割を持つコネクション管理部である。
【００４１】
また、本実施の形態におけるコネクション設立機構５１は、プロセスに代わって他のプロセスとの通信コネクションを設立し、設立が終了したことをコネクション管理機構３１に通知する役割を持つコネクション設立部である。各プロセスは、コネクション設立機構５１が設立した通信コネクションを使用して通信を行なう。
【００４２】
本実施の形態におけるプロセス２の動作手順は、実施の形態１の図４と同一である。
また、図１２は、本実施の形態におけるコネクション管理機構３１の動作手順を示したフローチャートである。図１２を用いてコネクション管理機構３１の動作手順について説明する。
ステップＳ５１で、コネクションテーブル３の最初のエントリ参照し、ステップＳ５２で、接続状況を調べ、「接続済」または「切断」となっていた場合には、ステップＳ５７へ進む。
【００４３】
ステップＳ５２で、接続状況が「未接続」となっていた場合には、ステップＳ５３で、コネクション設立機構５１に対し、現在参照しているコネクションテーブル３のエントリで示されるプロセスとの通信コネクションを設立するよう要求する。そして、ステップＳ５４で、コネクション設立機構５１からの接続完了通知を待つ。ステップＳ５５で、コネクション設立機構５１からの通知を調べ、「接続成功」であった場合には、コネクションテーブル３の現在参照しているエントリの接続状況欄を「接続済」に書き換え、コネクション設立機構５１からの通知が「接続失敗」であった場合には、ステップＳ５９にて、コネクションテーブル３の、現在参照しているエントリの接続状況欄を「切断」に書き換える。
【００４４】
そして、ステップＳ５７で、コネクションテーブル３に次のエントリがあるかどうかを調べ、次のエントリがあった場合にはステップＳ５８にて次のエントリを参照し、ステップＳ５２〜Ｓ５４の操作を繰り返す。ステップＳ５７で、次のエントリがなければ処理を終了する。図１２に示す動作手順では、処理を終了しているが、この処理を定期的に行なうのであれば、ステップＳ５７で次のエントリがなければ、ステップＳ５１に戻って最初から処理を繰り返すことになる。
【００４５】
図１３は、本実施の形態におけるコネクション設立機構５１の動作手順を示したフローチャートである。ステップＳ６１で、コネクション管理機構３１から接続要求が来るのを待つ。コネクション設立要求が来たら、ステップＳ６２に進み、接続相手となるプロセッサ上にあるコネクション設立機構５１に対してコネクション設立要求を出し、ステップＳ６３で、接続相手からの接続要求を待ち、接続要求が来たらステップＳ６４で通信コネクションを設立する。
【００４６】
ステップＳ６５で接続が完了したかどうかを調べ、接続が完了したらステップＳ６６で、コネクション管理機構３１に対して「接続成功」のメッセ―ジを送信する。接続に失敗した場合は、ステップＳ６７で、コネクション管理機構３１に対して「接続失敗」のメッセージを送信し、処理を終了する。
【００４７】
このように、本実施の形態では、プロセスが実際に通信を行なう前にあらかじめ通信コネクションを設立できるため、コネクション未設立時のコネクション設立に伴う処理の遅れを防止することができる。
【００４８】
実施の形態６．
図１４は、実施の形態６の通信コネクション管理方式の構成図である。本実施の形態におけるプロセッサは、プロセス２、コネクションテーブル３、システム構成テーブル５、システム構成監視機構６、コネクション管理機構３１、システム構成管理機構１３で構成される。本実施の形態におけるプロセス２、コネクションテーブル３、システム構成テーブル５、システム構成監視機構６、システム構成管理機構１３の役割は実施の形態２と同一であり、記述を省略する。
【００４９】
本実施の形態におけるコネクション管理機構３１は、設立されている通信コネクションの状態を定期的に監視し、通信異常が発生した場合には、システム構成管理機構１３に向けて通信異常が発生したことを通知する役割を持つコネクション管理部である。
【００５０】
本実施の形態におけるプロセスの動作手順は実施の形態１の図４と同一である。
また、図１５は、本実施の形態におけるコネクション管理機構３１の動作手順を示したフローチャートである。図１５を用いてコネクション管理機構３１の動作手順について説明する。
ステップＳ７１にて、コネクションテーブル３における最初のエントリの接続状況欄を参照し、ステップＳ７２で、格納されている値を調べる。
【００５１】
値が「接続済」になっていた場合には、ステップＳ７３にて、コネクションが正常であるかどうかを調べる。調べる方法としては、例えば通信されるパケットをモニタすることや、コネクションテーブル３のコネクション識別子欄９に示されている値を用い、実際にこのコネクションを用いて通信を行なう、などが考えられる。そして、ステップＳ７４で、コネクションが正常であるかどうかを調べる。
【００５２】
コネクションが正常でなかった場合には、ステップＳ７５にて、コネクションテーブル３の該当するエントリを「切断」に変更する。そして、ステップＳ７６で、システム構成管理機構１３に、現在参照しているコネクションテーブル３のエントリのプロセスが動作するプロセッサが異常であることを通知し、ステップＳ７７に進む。システム構成管理機構１３は、コネクション管理機構３１から送信された異常通知に基づいてシステム構成テーブル５のプロセッサのプロセッサ状態を異常に書き換える。
また、ステップＳ７４で、コネクションが正常であった場合、または、ステップＳ７２で、コネクションテーブル３のエントリが「切断」であった場合はステップＳ７７に進む。
【００５３】
ステップＳ７７で、コネクションテーブル３の次の行にエントリがあるかどうかを調べる。次のエントリがあった場合には、ステップＳ７８にてそのエントリを参照し、ステップＳ７２に進む。次のエントリがなかった場合には、処理を終了する。なお、本処理を繰り返し行なう場合には、終了せずにステップＳ７１に戻り、Ｓ７１〜Ｓ７８の処理を繰り返し行なうことになる。
【００５４】
このように、本実施の形態では、コネクション管理機構３１によってコネクションの状態を監視し、異常が見つかった場合には、システム構成管理機構１３に対してシステム構成テーブル５の書き換えを指示する。これにより、すべてのプロセッサに、プロセッサの異常が発生したことを伝達が実現でき、プロセスがコネクション異常のプロセスに対して通信を試行することに伴う処理の遅れを防止することができる。
【００５５】
実施の形態７．
本実施の形態における通信コネクション管理方式の構成は、実施の形態１の図１と同一である。本実施の形態におけるプロセス２、コネクションテーブル３、システム構成テーブル５、システム構成監視機構６の役割は実施の形態１と同一であり、説明を省略する。
【００５６】
図１６は、本実施の形態におけるプロセス２の動作手順を示したフローチャートである。ステップＳ８１にてシステム構成テーブル５を参照し、通信先プロセッサが正常か異常かを調べる。ステップＳ８２にて、通信先プロセッサが異常であった場合には、通信試行をやめ終了する。通信先プロセッサが正常であった場合にはステップＳ８３へ進む。
【００５７】
ステップＳ８３にてコネクションテーブル３を参照し、ステップＳ８４にて、通信先プロセスとのコネクションが切断されていた場合には、ステップＳ８５に進み、コネクションテーブル３上の「接続状況欄」を「未接続」に変更し、ステップＳ８６に進む。
ステップＳ８４にて、接続状況欄１０に、「切断」以外の値である、「接続」または「未接続」が示されていた場合はステップＳ８６に進む。ステップＳ８６で、ステップＳ１３〜Ｓ１８を実行する。
【００５８】
このように、本実施の形態では、過去にプロセッサ間でコネクションが設立されたがプロセッサに異常が発生したなどによって、コネクションが切断され、異常プロセッサが再起動して正常に戻った場合において、再びコネクションを設立してプロセッサ間通信を実現することが可能となる。
【００５９】
実施の形態８．
本実施の形態における通信コネクション管理方式の構成は実施の形態３の図８と同一である。本実施の形態におけるプロセス２、コネクションテーブル３、システム構成テーブル５、システム構成監視機構６の役割は実施の形態３と同一であり、説明を省略する。
【００６０】
本実施の形態におけるコネクション管理機構３１は、システム構成テーブル５を定期的に参照して、コネクションテーブル３には接続済と示されているもののシステム構成テーブル５には異常と示されているプロセッサが存在した場合、コネクションテーブル３の、異常プロセスとの通信状態を切断に書き換えるとともに、コネクションテーブル３には切断と示されているものの、システム構成テーブル５には正常と示されているプロセッサがあった場合、コネクションテーブル３の、そのプロセッサの上で動作するプロセスとの接続状況を「未接続」にする役割を持つコネクション管理部である。
【００６１】
本実施の形態におけるプロセス２の動作手順は、実施の形態１の図４と同一である。
また、図１７は、本実施の形態におけるコネクション管理機構３１の動作手順を示したフローチャートである。図１７を用いてコネクション管理機構３１の動作手順について説明する。
ステップＳ９１にて、コネクションテーブル３における最初のエントリの接続状況欄を参照し、ステップＳ９２で、格納されている値を調べる。
【００６２】
値が「接続済」になっていた場合にはステップＳ９９に進み、ステップＳ４３からステップＳ４５の処理を行なう。値が「接続済」になっていなかった場合には、ステップＳ９３に進み、値が「切断」になっているかどうかを調べる。値が「切断」になっていなかった場合およびステップＳ９９の処理が終わったら、ステップＳ９７に進み、コネクションテーブル３の次のエントリがあるかどうかを調べる。次のエントリがあった場合には、ステップＳ８８にて次のエントリを参照し、ステップＳ９２に戻る。
【００６３】
ステップＳ９３で、値が「切断」になっていた場合には、ステップＳ９４に進み、コネクションが切断されているプロセスが動作するプロセッサの状態をシステム構成テーブル５にて調べる。
【００６４】
ステップＳ９５にて、プロセッサの状態が「正常」であった場合には、ステップＳ９６にてコネクションテーブル３の、現在参照しているエントリの接続状況欄を「切断」から「未接続」に変更する。ステップＳ９５にて、プロセッサの状態が「正常」でなかった場合、およびステップＳ９６の処理が終わったらステップＳ９７に進み、コネクションテーブル３に次のエントリがあるかどうかを調べる。
【００６５】
エントリがあった場合には、次のエントリを参照してステップＳ９２に戻る。次のエントリがなければ処理を終了する。なお、本処理を繰り返し行なうのであれば、次のエントリがなくなった場合には終了せずにステップＳ９１に戻り、Ｓ９１〜Ｓ９９の処理を繰り返し行なうことになる。
【００６６】
このように、本実施の形態では、コネクション管理機構３１によって定期的に再起動されたプロセッサを参照し、再起動されたプロセッサとの接続状況を「未接続」に変更することにより、実施の形態７に示すように、プロセスが通信を行なう場合に、通信相手とのコネクション状況が「切断」であった場合にコネクションテーブル３を参照し、通信相手のプロセッサの状況を確認することに伴う処理の遅れを防止することができる。
【００６７】
実施の形態９．
本実施の形態における通信コネクション管理方式の構成は基本的には実施の形態５の図１１と同一である。本実施の形態におけるプロセス２、コネクションテーブル３、システム構成テーブル５、システム構成監視機構６、コネクション設立機構５１の役割は実施の形態５と同一であり、説明を省略する。
【００６８】
本実施の形態におけるコネクション管理機構３１は、システム構成テーブル５を定期的に監視し、異常から正常に戻ったプロセッサが存在した場合には、コネクション設立機構５１に向けて、そのプロセッサとのコネクションを設立するよう要求し、コネクション設立に失敗した場合には、システム構成管理機構１３に対してシステム構成テーブル５の該当エントリを書き換える要求を出す役割を持つコネクション管理部である。
【００６９】
図１８は、本実施の形態におけるコネクション管理機構３１の動作手順を示したフローチャートである。ステップＳ１０１にて、コネクションテーブル３における最初のエントリの接続状況欄を参照し、ステップＳ１０２で、格納されている値を調べる。値が「接続済」になっていた場合にはステップＳ１１１に進み、ステップＳ４３からステップＳ４５の処理を行ない、ステップＳ１１２に進む。値が「接続済」になっていなかった場合には、ステップＳ１０３に進み、現在参照しているコネクションテーブル３の、現在参照しているエントリの「プロセッサ識別子」欄に示されているプロセッサの状態をシステム構成テーブルにて調べる。
【００７０】
ステップＳ１０４にて、プロセッサの状態が「正常」であった場合には、ステップＳ１０５にてコネクション設立機構５１に対し、そのプロセッサ上で動作するプロセスとの通信コネクションを設立するよう要求する。ステップＳ１０６で、コネクション設立機構５１からの応答を待つ。応答が届いたらステップＳ１０７に進む。ステップＳ１０７にて応答の内容を調査し、応答が「接続完了」であった場合には、ステップＳ１０８にて、コネクションテーブル３の、現在参照中のエントリの「接続状況欄」を「接続済」に変更し、ステップＳ１１２に進む。
【００７１】
ステップＳ１０７で応答の内容を調査し、応答が「接続失敗」であった場合には、ステップＳ１０９に進み、コネクションテーブル３の、現在参照中のエントリの「接続状況欄」を「切断」にする。そして、ステップＳ１１０で、システム構成テーブル５の、コネクション設立を試行したプロセスが動作しているプロセッサの状態を「異常」に書き換えるよう、システム構成管理機構１３に指示する。
【００７２】
ステップＳ１１２で、コネクションテーブル３に次のエントリがあるかどうかを調べ、エントリがあれば、ステップＳ１１３で次のエントリを調査し、ステップＳ１０２へ進む。次のエントリがなければ、処理を終了する。なお、本処理を繰り返し行なうのであれば、次のエントリがなくなった場合には終了せずにステップＳ１０１に戻り、Ｓ１０１〜Ｓ１１３の処理を繰り返し行なうことになる。
【００７３】
このように、本実施の形態では、プロセッサ再起動後の通信コネクションを、通信に先だって設立することにより、プロセスが、通信コネクション再設立に伴う処理の遅れを防止することができる。また、システム構成テーブルには「正常」と示されているプロセッサが異常であった場合、プロセスが通信コネクション再設立を試行するのを防ぐこともできる。
【００７４】
実施の形態１０．
本実施の形態における通信コネクション管理方式の構成は実施の形態３の図８と同一である。本実施の形態におけるプロセス２、コネクションテーブル３、システム構成テーブル５、システム構成監視機構６は実施の形態３と同一であり、記述を省略する。
本実施の形態におけるコネクション管理機構３１は、システム構成テーブル１１とコネクションテーブル３を監視し、システム構成テーブル１１に示されるプロセッサの状態が異常であっても一定時間通信コネクション設立試行を行なう役割を持つコネクション管理部である。
【００７５】
図１９は、本実施の形態におけるコネクション管理機構の３１動作手順を示したフローチャートである。ステップＳ１２１で、コネクションテーブル３における最初のエントリの接続状況欄を参照し、ステップＳ１２２で、格納されている値を調べる。値が「接続済」になっていた場合には、ステップＳ１２３に進み、ステップＳ４３〜Ｓ４５の処理を行ない、ステップＳ１２８に進む。
【００７６】
ステップＳ１２２で、格納されている値が「接続済」でない場合は、ステップＳ１２４で、コネクション設立を試行する。そして、コネクション設立に成功した場合には、ステップＳ１２６に進み、コネクションテーブル３における、現在参照中のエントリの接続状況欄を「接続済」に変更し、ステップＳ１２８に進む。
【００７７】
ステップＳ１２５にて、コネクション設立に失敗したことが判明したら、ステップＳ１２４、Ｓ１２５を、設定された回数繰り返す。繰り返す方法としては、メモリ内のある領域に、これまでに繰り返した回数と繰り返しを行なう回数を記憶しておいて、これまでに繰り返した回数が繰り返しを行なう回数よりも小さい場合には再度Ｓ１２４、Ｓ１２５を繰り返す、という方法もあれば、規定された時間だけ繰り返す、という方法も考えられる。
【００７８】
設定された回数繰り返したら、ステップＳ１２８に進む。そして、コネクションテーブルに次のエントリがあるかどうかを調べ、エントリがあれば、ステップＳ１２９で次のエントリを調査し、ステップＳ１２２へ進む。次のエントリがなければ、処理を終了する。なお、本処理を繰り返し行なうのであれば、次のエントリがなくなった場合には終了せずにステップＳ１２１に戻り、Ｓ１０１〜Ｓ１２９の処理を繰り返し行なうことになる。
【００７９】
このように、本実施の形態では、接続に失敗した場合には、すぐにプロセッサが異常であると判断し、異常と判断した後にはコネクション設立を行なわなかったが、本手法では、一定回数接続を試行する。これにより、プロセッサ再起動中であった場合、一定回数繰り返すうちにプロセッサが起動終了した場合にはコネクションを設立することが可能となり、並列処理に参入可能なプロセスを増やすことができ、性能を劣化させないという効果をもつ。
【００８０】
【発明の効果】
この発明は、以上説明したように、並列処理部が複数のプロセッサが正常か又は異常かを示すプロセッサ状態が格納されたシステム構成テーブルと複数のプロセッサの並列処理部がそれぞれ他の並列処理部と接続済か又は未接続か又は切断かを示すコネクション状況が格納されたコネクションテーブルとを参照し、並列処理を行なう通信先プロセッサが正常に動作し、この通信先プロセッサに設けられた通信先並列処理部とのコネクション状況が接続済の時に、通信先並列処理部とデータ通信を行なうことにより、プロセッサが正常に動作している場合にのみ、このプロセッサとデータ通信を行なうことができる。
【図面の簡単な説明】
【図１】実施の形態１の通信コネクション管理方式の構成図。
【図２】実施の形態１におけるコネクションテーブル３の説明図。
【図３】実施の形態１におけるシステム構成テーブル５の説明図。
【図４】実施の形態１におけるプロセス２の動作手順を示したフローチャート。
【図５】実施の形態２の通信コネクション管理方式の構成図。
【図６】実施の形態２におけるプロセス２の動作手順を示したフローチャート。
【図７】実施の形態２におけるシステム構成管理機構１３の動作手順を示したフローチャート。
【図８】実施の形態３の通信コネクション管理方式の構成図。
【図９】実施の形態３におけるコネクション管理機構３１の動作手順を示したフローチャート。
【図１０】実施の形態４におけるコネクション管理機構３１の動作手順を示したフローチャート。
【図１１】実施の形態５の通信コネクション管理方式の構成図。
【図１２】実施の形態５におけるコネクション管理機構３１の動作手順を示したフローチャート。
【図１３】実施の形態５におけるコネクション設立機構５１の動作手順を示したフローチャート。
【図１４】実施の形態６の通信コネクション管理方式の構成図。
【図１５】実施の形態６におけるコネクション管理機構３１の動作手順を示したフローチャート。
【図１６】実施の形態７におけるプロセス２の動作手順を示したフローチャート。
【図１７】実施の形態８におけるコネクション管理機構３１の動作手順を示したフローチャート。
【図１８】実施の形態９におけるコネクション管理機構３１の動作手順を示したフローチャート。
【図１９】実施の形態１０におけるコネクション管理機構の動作手順を示したフローチャート。
【符号の説明】
１  プロセッサ、２  プロセス、３  コネクションテーブル、４  通信路、５システム構成テーブル、６  システム構成監視機構、７  プロセス識別子欄、８  プロセッサ識別子欄、９  コネクション識別子欄、１０  接続状況欄、１１プロセッサ識別子欄、１２  状態欄、１３  システム構成管理機構、３１  コネクション管理機構、５１  コネクション設立機構。
【図１】
2004254167.tif 000003
【図２】
2004254167.tif 000004
【図３】
2004254167.tif 000005
【図４】
2004254167.tif 000006
【図５】
2004254167.tif 000007
【図６】
2004254167.tif 000008
【図７】
2004254167.tif 000009
【図８】
2004254167.tif 000010
【図９】
2004254167.tif 000011
【図１０】
2004254167.tif 000012
【図１１】
2004254167.tif 000013
【図１２】
2004254167.tif 000014
【図１３】
2004254167.tif 000015
【図１４】
2004254167.tif 000016
【図１５】
2004254167.tif 000017
【図１６】
2004254167.tif 000018
【図１７】
2004254167.tif 000019
【図１８】
2004254167.tif 000020
【図１９】
2004254167.tif 000021