(57)【特許請求の範囲】
【請求項１】
複数の処理装置間で処理依頼することが可能なネットワーク分散処理システムにおける処理打ち切り時限設定方法において、
コール元処理装置において、トランザクションの発生時に前記複数の装置が連携して実行される処理の処理打ち切り時限データを設定するステップと、該設定した処理打ち切り時限データを処理依頼データに付加してコール先処理装置に引き渡すステップと、
コール先処理装置において、該引き渡された処理依頼データから処理打ち切り時限データを取り出し、さらに上位のコール先処理装置に該処理打ち切り時限データを付加した処理依頼データを引き渡すステップと、
前記各処理装置において、現在時刻が前記処理打ち切り時限データで示される時刻になったときに処理を打ち切るステップとを有することを特徴とする処理打ち切り時限設定方法。
【請求項２】
前記コール先処理装置は、さらに上位のコール先処理装置をコールする際に、前記引き渡された処理依頼データから取り出した処理打ち切り時限データから当該コールの発行時刻を引いた時間を当該処理装置の応答監視時間として設定し、該応答監視時間を越えても上位のコール先処理装置からの応答がないときに処理を打ち切るようにしたことを特徴とする請求項１記載の処理打ち切り時限設定方法。
【請求項３】
前記処理打ち切り時限データは、コール元処理装置のコール発行時刻とコール元処理装置における応答監視時間を加えた値であることを特徴とする請求項１または２記載の処理打ち切り時限設定方法。
【請求項４】
複数の処理装置間で処理依頼することが可能なネットワーク分散処理システムにおいて、
トランザクションの発生時に前記複数の装置が連携して実行される処理の処理打ち切り時限データを設定し、設定した処理打ち切り時限データを処理依頼データに付加してコール先処理装置に引き渡し、現在時刻が前記処理打ち切り時限データで示す時刻になったとき処理を打ち切るコール元処理装置と、
引き渡された処理依頼データから処理打ち切り時限データを抽出し、さらに上位のコール先処理装置に該処理打ち切り時限データを付加した処理依頼データを引き渡し、現在時刻が前記処理打ち切り時限データで示す時刻になったとき処理を打ち切るコール先処理装置とを有することを特徴とするネットワーク分散処理システム。
【請求項５】
前記コール先処理装置は、さらに上位のコール先処理装置をコールする際には、前記引き渡された処理依頼データから取り出した処理打ち切り時限データから当該コールの発行時刻を引いた時間を当該処理装置の応答監視時間として設定し、該応答監視時間を越えても上位のコール先処理装置からの応答がないときには処理を打ち切ることを特徴とする請求項４記載のネットワーク分散処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、トランザクションをオンラインで処理する銀行オンラインシステムなどのネットワーク分散処理システムおよびその処理打ち切り時限設定方法に関し、特に、応答監視時間の設定が簡単で、無駄な他のサーバへの処理依頼や取消処理などを行う必要がないネットワーク分散処理システムおよびその処理打ち切り時限設定方法に関する。
【０００２】
【従来の技術】
従来技術を図面を用いて説明する。
図６は、従来の銀行オンラインシステムのシステム構成例である。同図において、６０１は銀行窓口端末やＡＴＭ（自動現金取引装置）などの端末、６０２は営業店プロセッサ（通常、比較的小型のコンピュータが使用される）、６０３は銀行ホストコンピュータ（通常、比較的大型のコンピュータが使用される）を示している。同図に示すように、銀行ホストコンピュータ６０３には複数の営業店プロセッサ６０２が接続され、また各営業店プロセッサ６０２には複数の端末６０１が接続される。端末６０１としては銀行窓口端末やＡＴＭ（自動現金取引装置）等がある。
【０００３】
以下、顧客が端末６０１を利用して取引を行う場合を例にとって説明する。
図７は、図６に示した銀行オンラインシステムにおいて、顧客が端末６０１を利用して取引を行う場合に、端末６０１，営業店プロセッサ６０２，銀行ホストコンピュータ６０３間で送受される基本的なメッセージ処理シーケンスである。まず、端末６０１で入力処理６１１を行うと、該端末６０１から問い合わせメッセージ６１２が営業店プロセッサ６０２に送信される。営業店プロセッサ６０２が何らかの処理を行っていた場合、処理待ち時間６２１の後、送信処理６２２を実行し、問い合わせメッセージ６２３を銀行ホストコンピュータ６０３に送信する。銀行ホストコンピュータ６０３が何らかの処理を行っていた場合、銀行ホストコンピュータ６０３は処理待ち時間６３１の後、必要な業務処理６３２を行う。その業務処理６３２の後、営業店プロセッサ６０２へ応答メッセージ６３３を送信する。営業店プロセッサ６０２ではそれを受信し（受信処理６２５）、さらに応答メッセージ６２６として端末６０１へ送信する。端末６０１では応答メッセージ６２６の内容に基づいて印字出力など必要な出力処理６１４を行う。
【０００４】
このとき、端末６０１は、問合せメッセージ６１２を営業店プロセッサ６０２に送信した後、応答メッセージ６２６を受信するまでの時間を監視する。その場合、予め応答監視時間６１３を決めておき、この応答監視時間６１３を経過しても応答メッセージ６２６がない場合は営業店プロセッサ６０２または銀行ホストコンピュータ６０３に障害が発生したものと認識してエラー表示などの障害処理を行い、営業店プロセッサ６０２からの応答待ちを打ち切るようにしている。
【０００５】
従って、この応答監視時間６１３を長く設定しすぎると、営業店プロセッサ６０２や銀行ホストコンピュータ６０３の障害時に無駄な待ち時間が長くなってしまう。逆に、応答監視時間を短く設定しすぎると営業店プロセッサ６０２や銀行ホストコンピュータ６０３が正常な場合でも応答受信前に処理を打ち切ってしまうことになり、営業店プロセッサ６０２や銀行ホストコンピュータ６０３での取消処理が必要となる。
【０００６】
営業店プロセッサ６０２も上位の銀行ホストコンピュータ６０３に対して同様の処理を行う。営業店プロセッサ６０２は、一般に複数の端末からの問合せメッセージ６１２を同時に処理することが可能であるが、営業店プロセッサのリソースの制約によりその数は一定数までに限定され、それ以上は処理待ちキュー（後述する図２の処理待ちキュー３２３参照）に保留される。
一般に、通信相手先に対する応答監視時間は「通信相手先での処理待ち時間を含む処理時間」と「通信時間」の予測時間または実測時間に安全率を乗じた時間を設定している。この従来の応答監視時間の設定技術については、特開平６−１０４９３２号公報「応答監視時間の決定方法」を参照されたい。
【０００７】
【発明が解決しようとする課題】
近年、複数の処理装置によるネットワーク分散処理システムが発達してきており、このような複数の処理装置にまたがるトランザクション処理では個々の応答監視時間を最適に設定することが難しくなってくる。
図１は、複数の処理装置（サーバ）によるネットワーク分散処理システムのシステム構成例を示す図である。同図において、ネットワークを経由して複数の処理装置（端末、各種サーバ等）が接続されている。端末１０１の業務処理１１１（Ｔ１）から営業店サーバ１０２の業務処理１１２（Ｂ１）がコールされ、業務処理１１２（Ｂ１）の中から地域センタサーバ１０３の業務処理１１３（Ｃ１）がコールされ、同様に、業務処理１１３（Ｃ１）の中から特定業務サービス１０４の業務処理１１４（Ｓ１）がコールされる場合を示している。このようなネットワークを経由した他処理装置の業務処理プログラムをコールすることをＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）と呼ぶ。
このようなネットワーク分散システムにおいて応答監視時間を設定するためには、ネストするコール先サーバでの所要時間を含む所要時間を個別に把握する必要があるため、非常に複雑になる。また、サーバごと・業務ごとに最適な値を設定する場合、設定箇所数が多くなるという点でも、より複雑になる。
【０００８】
次に、サーバが有する一般的な機能ブロックについて説明する。
図２は、サーバの機能ブロックの一例を説明するための図であり、コール元２２０からサーバ２２１がコールされた場合、および、サーバ２２１がコール先２２９をコールする場合に行うサーバ２２１が行う処理の機能ブロックを示している。同図に示すように、処理受付機能２２２は、他サーバ（コール元サーバ２２０）からの処理依頼データを処理待ちキュー２２３に登録する。処理プロセス２２４（一般的に複数の処理プロセスが並行動作する）は処理キュー待ち２２３から処理依頼データを順次取り出し、処理結果を処理結果応答機能２２５により、コール元２２０に応答する。
【０００９】
処理プロセス２２４からさらに他サーバに処理を依頼する必要がある場合は、他サーバへの処理依頼機能２２７により他サーバ（図の例ではコール先２２９）に処理を依頼する。その後、他サーバの処理結果応答待ち機能２２８によりコール先２２９からの応答を待ち、応答監視時間を過ぎたら、コール先２２９に異常が発生していると判断する。
【００１０】
現在時刻取得機能２２６は、処理打ち切りを判断するために使用するものである。サーバの時刻はサーバ間時刻合わせ機能などの別の手段（図示せず）により時刻合わせがされていて、必要精度が確保されていることを前提としている。
以上述べた各機能は、サンプリング内の記憶装置に格納されているプログラムを処理装置（ＣＰＵ）が実行することにより実現される。
【００１１】
次に、応答監視時間タイムアウト時のシーケンス例を説明する。
図３は、コール元が先に応答監視時間タイムアウトになる場合のシーケンス例を説明するための図である。
コール元３０１は、業務処理３１１からサーバ３０２の業務処理３２２をコールする（ＲＰＣ３１２）。そして、上位サーバ（サーバ３０２）からの応答がなく応答監視時間３１３を経過したら上位サーバの障害とみなし障害処理３１４を実行し、処理を終了する。
コール元３０１からコールされたサーバ３０２も同様に、業務処理３２２の実行中コール先３０３にコール（ＲＰＣ）し、サーバ３０２の応答監視時間３２３内にコール先３０３からの応答を受信したらその応答をコール元３０１に返送する（ＲＰＣリターン３２６）。
【００１２】
サーバ３０２は、自サーバの負荷増大による処理の遅れやコール先３０３やネットワーク障害により、処理が遅れる場合がある。この場合、前述したようにサーバ３０２はＲＰＣ３２６を返送しようとするがコール元３０１が既に処理を終了してしまっていて応答を返すことができないため、自サーバ３０２の取消処理３２７とコール先３０３への取消依頼３２８、コール先３０３の取消処理３３３を実行する必要がある。この場合、ＲＰＣ３２６は無駄になっただけでなく、取消処理３２７、取消依頼３２８、取消処理３３３の負荷が余分に発生している。このような状態になると、障害回復が遅れ、障害状態がさらに増幅されて行く可能性がある。
本発明の目的は、上記問題を解決し、応答監視時間の設定を簡単化するとともに、自サーバの負荷増大やコール先サーバやネットワーク障害により、多数の処理依頼が滞留した場合にも無駄な他サーバへの処理依頼や取消処理を行わないようにして障害回復を速やかに行うことが可能なネットワーク分散処理システムおよびその処理打ち切り時限設定方法を提供することにある。
【００１３】
【課題を解決するための手段】
本発明は、上記目的を達成するために、トランザクション発生時、最初のコール元からのＲＰＣの発行時に応答監視タイムアウト時刻（ＴＯ）をコール先サーバ（コール先処理装置）への処理依頼データに付加しておく。この応答監視タイムアウト時刻（ＴＯ）を各処理装置（サーバ）間で引き継いで行く。途中以降のサーバ（処理装置）ではさらに他のサーバ（処理装置）に処理を依頼するとき、コール元タイムアウト時刻（ＴＯ）と現在時刻の差分を応答監視時間として設定する。また、コール元タイムアウト時刻（ＴＯ）を過ぎた場合、および、応答監視時間を過ぎてもコール先からの応答がなかった場合に、処理を打ち切る。これにより、応答監視時間の設定は１回で済み、かつ、無駄な他サーバへのコールや無駄なコール元へのリターンを防止することができる。
【００１４】
【発明の実施の形態】
本発明の処理打ち切り時限設定方法は、前述の図１に示した如き、ネットワークを経由して複数の処理装置（端末、各種サーバ等）が接続されているネットワーク分散処理システムに適用される。このネットワーク分散処理システムにおいて、端末１０１の業務処理１１１から営業店サーバ１０２の業務処理１１２がコールし、業務処理１１２の中から地域センタサーバ１０３の業務処理１１３をコールし、コールされた各業務処理が、当該業務処理終了後コール元に応答を返すように構成されている。
【００１５】
図４は、他サーバへ送信する処理依頼データの内容と応答監視時間の設定法を説明するための図である。同図（ａ）は最初のコール時の処理依頼データのフォーマットであり、同図（ｂ）は途中サーバからのコール時の処理依頼データのフォーマットである。ここで（ａ）の「最初のコール時」とは図３の例におけるＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）３１２に相当し、同（ｂ）の「途中サーバからのコール時」とはＲＰＣ３２３に相当する。最初のコール時は、同図（ａ）に示すように、応答監視時間（ＫＯ）としては全体の処理時間（見積値または実測値）に余裕時間（見積値）が加えられて設定される。コール元タイムアウト時刻（ＴＯ）は、コール元からのコール発行時刻に応答監視時間（ＫＯ）が加えられて設定される。処理依頼データ４００は、コール先業務名４０２，処理依頼先への入力データ４０３の他に、コール元タイムアウト時刻（ＴＯ）４０１が新たに追加される。
【００１６】
途中サーバでは、当該サーバにおける応答監視時間（Ｋｎ）としてコール元タイムアウト時刻（ＴＯ）と現在時刻（コール先へのコール発行時）の差分が設定される。また、コール先への処理依頼データ４１０は、コール先業務名４１２，処理依頼先への入力データ４１３に、コール元タイムアウト時刻（ＴＯ）４１１が付加される。
【００１７】
次に、途中サーバにおける処理を説明する。
図５は、途中サーバにおける処理のフローチャートの一例であり、処理待ちキュー（図２の２２３参照）から取り出した処理依頼データ１件についての処理のフローを示している。
処理待ちキューから処理依頼データを取り出し、処理を開始する時点でコール元のタイムアウト時刻（ＴＯ）を過ぎていないか否かを判定し（ステップ５０１）、過ぎている場合は（ステップ５０１：Ｎ）、処理を打ち切る（ステップ５１０）。
処理を開始する時点でコール元のタイムアウト時刻（ＴＯ）を過ぎていない場合は（ステップ５０１：Ｙ）、依頼された業務処理１を実行する（ステップ５０２）。
【００１８】
他サーバへ処理を依頼する時、現在時刻がコール元のタイムアウト時刻（ＴＯ）を過ぎていないか否かを判定し（ステップ５０３）、過ぎている場合は処理を打ち切る（ステップ５１０）。コール元のタイムアウト時刻を過ぎていない場合は（ステップ５０３：Ｙ）、応答監視時間としてコール元のタイムアウト時刻と現在時刻（コール先へのコール発行時）の差分を設定するとともに（ステップ５０４）、他サーバへ処理を依頼し（コール先へのコール発行）、その応答（ＲＰＣリターン）を待つ（ステップ５０５）。
【００１９】
ＲＰＣリターン待機中に応答監視時間を越えた場合には（応答監視タイムアウト：ステップ５０６：Ｙ）、処理を打ち切る（ステップ５１０）。
応答監視タイムアウトでなければ業務処理を実行し（ステップ５０７）、現在時刻がコール元のタイムアウト時刻（ＴＯ）を過ぎた場合は（ステップ５０８：Ｎ）、処理を打ち切り、現在時刻がコール元のタイムアウト時刻（ＴＯ）以内であれば（ステップ５０８：Ｙ）、コール元へのＲＰＣリターン処理を行い、正常終了する。
なお、ステップ５１０で処理を打ち切る際に、自サーバでの処理について必要があれば取消処理を行った後に異常終了する。なお、処理途中にコール元のタイムアウト時刻を超過するのは通常状態ではなく、サーバやネットワークに障害が発生し、多数の処理依頼が滞留した場合を想定している。
【００２０】
また、上記実施例において、途中サーバは、コール元からの処理依頼データ中のコール元タイムアウト時刻（ＴＯ）からコール先へのコール発行時の現在時刻を差し引いて当該サーバにおける応答監視時間（Ｋｎ）を求め、この応答監視時間によりタイムアウトを監視しているが（図５のステップ５０６参照）、必ずしも応答監視時間を求める必要はなく、（図５のステップ５０１，５０３，５０８と同様に）コール元タイムアウト時刻（ＴＯ）そのものと現在時刻を比較することができれば如何なる方法を用いてもよい。
【００２１】
以上述べたように、本実施例によれば、応答監視時間を設定するのはコール元における最初のコール時だけでよく、その後はコール先となるそれぞれのサーバで自動的に設定される。従って、設定箇所が少なくて済むだけでなく設定値間の不整合が発生することはなくなる。また、自サーバの負荷増大やコール先サーバやネットワーク障害により、多数の処理依頼が滞留した場合にも、無駄な他サーバへの処理依頼や取消処理を行わないようにすることができ、障害の後始末が速やかに処理される。
【００２２】
【発明の効果】
本発明の処理打ち切り時限設定方法によれば、応答監視時間の設定が１回で済むだけでなく、無駄な他サーバへのコールや無駄なコール元へのリターンを防止でき、障害の後始末を速やかに行うことが可能になるという顕著な効果がある。
【図面の簡単な説明】
【図１】複数の処理装置（サーバ）によるネットワーク分散処理システムのシステム構成例を示す図である。
【図２】サーバの機能ブロックの一例を説明するための図である。
【図３】コール元が先に応答監視時間タイムアウトになる場合のシーケンス例を説明するための図である。
【図４】他サーバへ送信する処理依頼データの内容と応答監視時間の設定法を説明するための図である。
【図５】途中サーバにおける処理のフローチャートの一例である。
【図６】従来技術の実施例を示すシステム構成図である。
【図７】従来技術の実施例を示す処理シーケンスを示す図である。
【符号の説明】
１０１：端末
１０２：営業店プロセッサ
１０３：銀行ホストコンピュータ
１１１：入力処理
１１２：（端末→営業店プロセッサ）問合せメッセージ
１１３：営業店プロセッサに対する応答監視時間
１１４：端末出力処理
１２１：営業店プロセッサ処理待ち時間
１２２：（営業店プロセッサ→ホスト）送信処理
１２３：（営業店プロセッサ→ホスト）問合せメッセージ
１２４：銀行ホストに対する応答監視時間
１２５：受信処理応答（端末←営業店プロセッサ）処理
１２６：（端末←営業店プロセッサ）応答メッセージ
１３１：ホスト処理待ち時間
１３２：ホスト処理時間
３０１：端末
３０２：営業店サーバ
３０３：地域センタサーバ
３０４：特定業務サーバ
３１１：端末業務処理
３１２：営業店サーバ業務処理
３１３：地域センタサーバ業務処理
３１４：特定業務サーバ業務処理
４０１：コール元
４０２：処理中サーバ
４０３：コール先
４１１：コール元サーバ業務処理
４１２：ＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）
４１３：コール元サーバの応答監視時間
４１４：コール元サーバの応答監視時間タイムアウト時の障害処理
４２１：サーバ処理待ち時間
４２２：サーバ業務処理
４２３：コール先サーバへのＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）
４２４：コール先サーバに対する応答監視時間
４２５：コール先サーバ処理終了後の自サーバ業務処理
４２６：コール元サーバへのリターン（応答送信）
４２７：サーバ取消処理
４２８：コール先サーバへの取消依頼
４３３：コール先サーバの取消処理
５０１：最初のコール時のコール元タイムアウト時刻
５０２：コール先（処理依頼先）業務名
５０３：コール先（処理依頼先）への入力データ
５１１：途中サーバからのコール時のコール元タイムアウト時刻
５１２：コール先（処理依頼先）業務名
５１３：コール先（処理依頼先）への入力データ
【図１】
0003617778.tif 000002
【図２】
0003617778.tif 000003
【図３】
0003617778.tif 000004
【図４】
0003617778.tif 000005
【図５】
0003617778.tif 000006
【図６】
0003617778.tif 000007
【図７】
0003617778.tif 000008