(57)【要約】【課題】  接続された全処理サーバが一律にトランザクションを処理不可能な環境でも負荷分散が可能なトランザクション転送システムを提供する。【解決手段】  複数の処理サーバ１０が端末２０と共にネットワーク３０上に接続されて構成された負荷分散トランザクション処理システムにおいて、処理サーバ１０は、端末から入力されたトランザクションの他の処理サーバへの転送の要否を決定するトランザクション転送振り分け部１０２を備えており、更に、ＣＰＵ負荷情報取得部１０３だけでなく、トランザクションの転送の条件についてユーザが設定可能なトランザクション転送決定アプリケーション１０４を備えており、複数の処理サーバの一部が入力された一部のトランザクションの処理が不可能であるような環境下においても、最適な負荷分散を行うことを可能とした。【選択図】  図１
2006120036.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理サーバが端末と共にネットワーク上に接続されて構成された負荷分散トランザクション処理システムであって、前記複数の処理サーバの一部が入力される一部のトランザクションの処理が不可能であるものにおいて、前記処理サーバは、前記端末から入力されたトランザクションの他の処理サーバへの転送の要否を決定する手段を備えており、更に、前記トランザクションの転送の条件についてユーザが設定可能なトランザクション転送決定手段を備えていることを特徴とするトランザクション転送システム。
【請求項２】
前記請求項１に記載したトランザクション転送システムにおいて、前記ユーザが設定可能なトランザクション転送決定手段は、前記端末の名称である入力元端末名称及び／又は入力トランザクションの名称に基づいて入力されたトランザクションの転送要否を決定することを特徴とするトランザクション転送システム。
【請求項３】
前記請求項１に記載したトランザクション転送システムにおいて、前記ユーザが設定可能なトランザクション転送決定手段は、当該トランザクション転送システムを構成する前記処理サーバにおけるリソースに応じて入力されるトランザクションの転送先を設定することが可能であることを特徴とするトランザクション転送システム。
【請求項４】
前記請求項１に記載したトランザクション転送システムにおいて、前記ユーザが設定可能なトランザクション転送決定手段は、当該トランザクション転送システムを構成する前記処理サーバのＣＰＵ負荷に関する統計データに基づいて転送条件を予め設定可能な定義手段を有しており、もって、予め設定した前記定義手段による設定条件によってトランザクションの転送要否を判断して負荷分散を行うことを特徴とするトランザクション転送システム。
【請求項５】
前記請求項１に記載したトランザクション転送システムにおいて、前記他の処理サーバへの転送の要否を決定する手段は、当該トランザクション転送システムを構成する各処理サーバのＣＰＵ利用率に基づいて決定することを特徴とするトランザクション転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機を使用して負荷を分散処理するトランザクション処理を実行するためのシステムに関わり、特に、トランザクションプログラムの転送制御に関するものである。
【背景技術】
【０００２】
従来のクライアント／サーバ型のオンライントランザクション処理における分散トランザクション処理においては、複数台設けられた処理サーバのＣＰＵ利用率や、トランザクション毎の平均ＣＰＵ使用時間に基づいて、トランザクション処理メッセージを振り分けることで、負荷分散を実現している。なお、この種の技術の一例として、例えば、以下の特許文献１が挙げられる。
【特許文献１】特開２００３−２９６２８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、前記従来技術になる分散トランザクションシステムでは、トランザクションが、システムを構成する複数の処理サーバ内において、どの処理サーバに振り分けられても、同様に処理が可能であるということを前提として構築されている。換言すれば、システムを構成する各処理サーバは、それぞれ、他の処理サーバと同等の処理能力を持っていななければならず、そのため、一部の処理サーバだけがその処理能力に欠ける場合には、当該負荷分散トランザクションシステムを構築することは不可能であるという課題があった。
【０００４】
これは、例えば、トランザクションによってアクセス可能なデータベースに制限があり、そのため、処理可能な処理サーバが限定されてしまう場合には、振り分け先のサーバは当該トランザクション処理を実行できないため、トランザクション転送システムを構築できなくなってしまうことによる。
【０００５】
また、上記従来技術になる分散トランザクションシステムでは、例えば、システムを構成する各処理サーバのＣＰＵ負荷情報を収集して利用率を算出し、当該算出したＣＰＵ利用率を基にして負荷分散を行うため、システム内のサーバ間でＣＰＵ負荷情報を通知する手段が必要であり、更には、そのＣＰＵ負荷情報を通知するために、少なからずＣＰＵ負荷が上昇することともなる。
【０００６】
加えて、上記した従来技術になる分散トランザクションシステムでは、トランザクション転送システムが提供する、各サーバシステムのＣＰＵ負荷情報を判断するアルゴリズムによって、トランザクションの振り分けが行われる。そのため、ユーザは、上記トランザクション転送システムが提供する負荷分散アルゴリズムを変更することは出来ない。そのため、例えば、入力されたトランザクションによっては、その振り分け先となるべきシステム（サーバ）をユーザが選択した方が好適な場合もあるが、しかしながら、上記従来の分散トランザクションシステムでは、ユーザの判断によっては、振り分け先となるべきシステム（サーバ）を変更することができないという課題もあった。
【０００７】
そこで、本発明は、上述した従来技術における課題に鑑みて達成されたものであり、その目的は、ネットワーク上に接続された複数の処理サーバの全てが、上述したように、一律に、全てのトランザクションを処理することが出来ないような環境下においても、構築が可能な負荷分散トランザクションシステムを提供することにある。
【０００８】
また、本発明の他の目的は、負荷分散システムが判断したトランザクション転送を、適宜、ユーザが変更することの可能な負荷分散トランザクションシステムを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明によれば、まず、複数の処理サーバが端末と共にネットワーク上に接続されて構成された負荷分散トランザクション処理システムであって、前記複数の処理サーバの一部が入力される一部のトランザクションの処理が不可能であるものにおいて、前記処理サーバは、前記端末から入力されたトランザクションの他の処理サーバへの転送の要否を決定する手段を備えており、更に、前記トランザクションの転送の条件についてユーザが設定可能なトランザクション転送決定手段を備えているトランザクション転送システムが提供される。
【００１０】
また、本発明によれば、前記に記載したトランザクション転送システムにおいて前記ユーザが設定可能なトランザクション転送決定手段は、前記端末の名称である入力元端末名称及び／又は入力トランザクションの名称に基づいて入力されたトランザクションの転送要否を決定するようにする、又は、当該トランザクション転送システムを構成する前記処理サーバにおけるリソースに応じて入力されるトランザクションの転送先を設定することが可能であることが、又は、当該トランザクション転送システムを構成する前記処理サーバのＣＰＵ負荷に関する統計データに基づいて転送条件を予め設定可能な定義手段を有し、もって、予め設定した前記定義手段による設定条件によってトランザクションの転送要否を判断して負荷分散を行うものであることが好ましい。
【００１１】
更に、本発明によれば、前記に記載したトランザクション転送システムにおいて、前記他の処理サーバへの転送の要否を決定する手段は、当該トランザクション転送システムを構成する各処理サーバのＣＰＵ利用率に基づいて決定するものであることが好ましい。
【発明の効果】
【００１２】
即ち、上述した本発明になるトランザクション転送システムによれば、当該処理システムを構成する複数の処理サーバの一部において、例えば、リソースの違いなどを原因とし、入力元の端末や入力されるトランザクションによって、当該トランザクションを処理可能なシステムが限定される場合においても、特定の処理システムをトランザクションの転送対象外にしたり、処理可能な処理サーバだけをトランザクションの転送対象にしたりすることができ、もって、上述したように、一律に、全てのトランザクションを処理することが出来ないような環境下においても構築が可能な、負荷分散トランザクションシステムを提供することが可能となる。
【００１３】
なお、トランザクションの転送要否の判断要素としてＣＰＵ負荷情報を使用せずに、即ち、ＣＰＵ負荷に関する統計データによってあらかじめ設定した定義を基にしてトランザクションの転送要否を判断し負荷分散を行うことも可能であり、これによれば、特に、ＣＰＵ負荷情報情報収集のためにＣＰＵ負荷が上昇するのを抑止することができる。
【発明を実施するための最良の形態】
【００１４】
以下、添付の図面を用い、本発明の実施の形態について詳細に説明する。
図１は、本発明になる一実施の形態によるトランザクション転送システムの構成の一例を示すブロック図である。
【００１５】
図１にも示すように、本発明になるトランザクション転送システムは、並行（並列）動作する複数台の処理サーバ１０と共に、複数台の端末２０とで構成される。なお、これら複数の処理サーバ１０及び端末２０は、例えば、ネットワーク３０を介して、それぞれ接続されている。また、上記の各処理サーバ１０は、その構成要素として、少なくとも、主記憶装置１００と、演算処理部を構成するＣＰＵ(Central Processing Unit)２００と共に、その一部に、以下に詳細に説明する定義情報３００を有している。なお、ここで、例えば、リソース等を原因として、その一部のトランザクション処理が行えない場合など、上記のネットワーク３０上に接続された複数の処理サーバ１０の全てが、一律に、端末２０からの全てのトランザクションを処理することが出来るようにはなっていない。具体的には、例えば、後にも詳細に説明するが、所定のデータベース処理については、当該トランザクション転送システムを構成する複数の処理サーバ１０内の一部しか処理することが出来ない環境となっている。
【００１６】
また、上記の主記憶装置１００は、図にも明らかなように、上記ネットワーク３０を介して他の処理サーバ１０や端末２０との間で実行される通信を管理するためのプログラムを格納した通信管理部１０１と、例えば、各端末２０からら入力された負荷を分散処理するトランザクション処理を実行するためのプログラムを格納したトランザクション転送振り分け部１０２と、当該サーバ１０を含め、トランザクション転送システムを構成する他のサーバ１０を構成する上記ＣＰＵ２００の負荷情報を取得するためのプログラムを格納したＣＰＵ負荷情報取得部１０３と、更には、後にも詳細に説明するが、トランザクションの転送を決定するためのプログラムを格納したトランザクション転送決定アプリケーション１０４とを有する。なお、上記処理サーバ１０と、ネットワーク３０に接続された端末２０や他の処理サーバ１０と間の通信は、上記した通信管理部１０１を介して行われる。
【００１７】
また、定義情報３００は、やはり、記憶装置から構成されており、そして、図示のように、その内部には、後にも詳細を説明するが、他システム情報定義３０１、転送条件定義３０２、転送先システム定義３０３、そして、ＣＰＵ負荷バランス定義３０４を備えている。
【００１８】
上述した処理サーバ１０の構成において、上記トランザクション転送振り分け部１０２は、更に詳細に説明すると、上述した通信管理部１０１を介して、ネットワーク３０に接続された端末２０から入力されたトランザクションの振り分け処理を行うが、このトランザクションの振り分けは、上記定義情報３００、ＣＰＵ負荷情報取得部１０３、及び／又は、トランザクション転送決定アプリケーション１０４からの情報を基にして、例えば、上記端末２０から入力されたトランザクションを自サーバ内で処理を行うのか否か、更には、自サーバ内で処理を行なわない場合、他の処理サーバ２０のどの処理サーバ（振り分け先）に当該トランザクションを転送するのかを判断することによって行う。
【００１９】
一方、上記のＣＰＵ負荷情報取得部１０３は、ネットワーク３０上に接続された、上記トランザクション転送システムを構成する各処理サーバのＣＰＵ利用率を取得し、その取得したＣＰＵ利用率をトランザクション転送振り分け部１０２に対して、ＣＰＵ利用率の情報として提供する。
【００２０】
更に、上記のトランザクション転送決定アプリケーション１０４は、上記で説明した各処理サーバのＣＰＵ利用率情報、及び／又は、上記トランザクション転送振り分け部１０２が決定した振り分け先についての情報を基に、入力されたトランザクションの振り分け先を変更（決定）するためのインタフェースを提供する。これによれば、ユーザは、例えば、その業務内容に応じて、後にその一例を説明するが、トランザクションの振り分けて転送するためのトランザクション転送決定アプリケーション１０４を作成することが可能となる。即ち、当該トランザクション転送決定アプリケーション１０４によれば、ユーザは、例えば、その必要性や特殊性などに応じて、適宜、自在にトランザクション転送方法をチューニングすることが可能となる。
【００２１】
次に、上記定義情報３００は、上述したように、システム情報定義３０１と、転送条件定義３０２と、転送先システム定義３０３と、ＣＰＵ負荷バランス定義３０４とで構成されており、これらの各定義の一例が、添付の図２〜図５に示されている。これらの各定義について、以下に詳細に説明する。
【００２２】
初めに、システム情報定義３０１の一例を、図２により説明する。
このシステム情報定義３０１は、「自システム名称」４０１と、「他システム名称」４０２とによって構成される。具体的には、この「自システム名称４０１」には、各処理サーバ１０が、自己のシステムを識別するために使用するシステム名称を定義する。なお、この図２の例では、「自システム名称」として、「ＳＹＳＴＥＭ１」を定義している。一方、「他システム名称」４０２には、トランザクションの転送先の候補となる、他システムの名称を定義する。図２の例の場合、トランザクションの転送先システムの候補として、他の処理サーバであるシステムが、その名称「ＳＹＳＴＥＭ２」、「ＳＹＳＴＥＭ３」…として定義されることとなる。
【００２３】
次に、転送条件定義３０２の一例を、図３により説明する。なお、この図３に示す例では、トランザクションが入力される端末（「端末定義」５０１）と、転送されるべきトランザクション（「トランザクション定義」５０２）に関する定義が、その「名称」５０３と共に、「転送対象有無」５０４とによって定義されている。
【００２４】
即ち、上記転送条件定義３０２は、「端末定義」５０１と「トランザクション定義」５０２とで構成される。なお、この「端末定義」５０１には、当該処理サーバ１０に接続される複数の端末２０について、その情報を定義する。例えば、その端末の「名称」５０３には、当該端末を識別するための端末名称を定義する。この図３の例では、当該処理サーバ１０に接続される複数の端末として、「ＴＥＲＭＡ」、「ＴＥＲＭＡＢ」、そして、「ＴＥＲＭＣ」が定義されている。また、入力されるトランザクションとしては、「ＴＲＡＮＡ」、「ＴＲＡＮＢ」、そして、「ＴＲＡＮＣ」が定義されている。
【００２５】
更に、「転送対象有無」５０４では、該当する端末から入力されたトランザクションを転送対象とするのか否かを指定する。即ち、ここで転送対象としない（具体的には、「転送」を定義せず、空欄にしておく）場合には、該当する端末から入力されたトランザクションは、必ず、当該処理サーバの自システム内で処理されることを意味する。逆に、ここで転送対象とした（具体的には、「転送」を定義する）場合は、自システムだけでなく、更に、他の処理サーバのシステムをも含めてトランザクションの転送を可能とし、もって、最適なシステムでトランザクションを処理することが可能となる。なお、この図３の例の場合には、上記の「ＴＥＲＭＡ」及び「ＴＥＲＭＣ」が転送対象となる端末となる。
【００２６】
また、「トランザクション定義」５０２では、各端末２０から入力されるトランザクションに関しての情報を定義する。より具体的には、その「名称」５０３には、入力されたトランザクションを識別するための情報として、例えば、トランザクション名称を、更に、その「転送対象有無」５０４には、当該入力されたトランザクションを転送の対象とするのか否かを指定する。なお、ここでも、転送の対象としない場合（具体的には、「転送」を定義せず、空欄にしておく）には、入力されたトランザクションは、必ず、当該処理サーバの自システム内で処理されることを意味する。逆に、ここで転送対象とした場合は、当該トランザクションは、当該処理サーバの自システムだけでなく、他の処理サーバのシステムをも含めてトランザクションの転送を可能とし、もって、最適なシステムでトランザクションを処理することが可能となる。なお、この図３の例の場合には、「ＴＲＡＮＡ」と「ＴＲＡＮＣ」が、転送の対象となるトランザクションとして定義されている。
【００２７】
次に、転送先システム定義３０３の一例を、添付の図４により説明する。なお、この図４に示す例では、上述したトランザクションと、その転送先となる作業サーバ１０のシステムとの間の対応関係を定義するものとして示している。
【００２８】
まず、「トランザクション名称」６０１には、上記図３に示した「トランザクション定義」５０２において定義されたトランザクションの中から、その名称を指定して定義する。具体的には、ここでは、２つのトランザクション「ＴＲＡＮＡ」と「ＴＲＡＮＢ」とが定義されている。
【００２９】
一方、「転送先システム」６０２には、入力されたトランザクションの転送先の候補が、作業サーバ１０のシステムの名称によって定義されている。具体的には、この図４の例の場合は、その名称が「ＴＲＡＮＡ」であるトランザクションについては、２つの作業サーバ「ＳＹＳＴＥＭ２」と「ＳＹＳＴＥＭ３」とが、その転送先の候補となるが、一方、その名称が「ＴＲＡＮＢ」であるトランザクションについては、1つの作業サーバ「ＳＹＳＴＥＭ３」だけが、その転送先の候補となる。このように、入力される各トランザクションに対し、その転送先システムを定義することが可能であることによれば、例えば、「ＴＲＡＮＢ」の名称のトランザクションを処理するために必要なデータベースが、トランザクション転送システムを構成する「ＳＹＳＴＥＭ２」の名称の作業サーバには存在しないが、しかしながら、他の作業サーバである「ＳＹＳＴＥＭ３」には存在しているような場合には、このような定義が有効であり、そして、これによれば、一律に、全てのトランザクションを処理することが出来ないような環境下においても、最適なシステムでトランザクションを処理することが可能な負荷分散トランザクションシステムを構築することが可能となる。
【００３０】
次に、ＣＰＵ負荷バランス定義３０４の一例について、添付の図５を参照しながら説明する。このＣＰＵ負荷バランス定義３０４は、図からも明らかなように、例えば、「ＣＰＵ負荷情報使用有無」７０１、「ＣＰＵ負荷情報収集間隔」７０２、「負荷分散しきい値上限」７０３、そして、「負荷分散しきい値下限」７０４とによって構成されている。
【００３１】
まず、上記「ＣＰＵ負荷情報使用有無」７０１では、上述したＣＰＵ負荷情報取得部１０３からのＣＰＵ負荷情報を使用して、トランザクション転送を行うかどうかを指定する。なお、この「ＣＰＵ負荷情報使用有無」７０１において、「使用」を指定した場合は、負荷分散トランザクションシステムを構成する作業サーバ２０の各システムのＣＰＵ負荷情報を基に、トランザクション転送の要否につて判断が行われる。これとは逆に、ここで「未使用」を指定した場合には、上述したＣＰＵ負荷情報取得部１０３による負荷情報取得処理は作動せず、上記図３に示した転送条件定義３０２の指示に従って、トランザクションの転送要否を判断することとなる。
【００３２】
なお、ここで、上記ＣＰＵ負荷情報を使用した場合には、当該ＣＰＵ負荷情報を収集するための処理（即ち、負荷情報取得処理）が動作する。そのため、その処理のためのＣＰＵ２００の負荷が増加することとなる。そこで、例えば、ユーザが、このＣＰＵ負荷情報収集に必要なＣＰＵ負荷上昇を抑止したいと判断した場合には、上記の「ＣＰＵ負荷情報使用有無」７０１では「未使用」を指定してＣＰＵ負荷情報取得部１０３による負荷情報取得処理は作動せず、これに代えて、例えば、ユーザ自身が、このＣＰＵ負荷に関する統計データ等を基にして、負荷分散のシナリオを、上記図３の転送条件定義３０２で予め設定しておくことも可能である。
【００３３】
また、上記の「ＣＰＵ負荷情報使用有無」７０１において「使用」を指定した場合には、更に、「ＣＰＵ負荷情報収集間隔」７０２、「負荷分散しきい値上限」７０３、そして、「負荷分散しきい値下限」７０４についても定義を行うこととなる。なお、「ＣＰＵ負荷情報収集間隔」７０２では、上記ＣＰＵ負荷情報の収集を行う間隔時間を、例えば、秒単位で指定する。この「ＣＰＵ負荷情報収集間隔」を短くすればする程、よりリアルタイムに、各システムのＣＰＵ負荷情報を把握することが可能となり、そのためより正確な負荷分散が図れることとなるが、しかしながら、その一方、その分だけ、即ち、ＣＰＵ負荷情報収集に必要な処理だけ、上記ＣＰＵ２００の負荷上昇を招くこととなる。他方、この「ＣＰＵ負荷情報収集間隔」を長く設定することによれば、ＣＰＵ負荷の上昇を軽減することができるが、しかしながら、トランザクション転送システムにおける他の作業サーバを構成するシステムのＣＰＵ負荷情報に関し、タイムラグが発生することとなり、各システムのＣＰＵ負荷情報のリアルタイムな把握が不可能となり、正確な負荷分散が困難になる。
【００３４】
更に、「負荷分散しきい値上限」７０３には、自システムが過負荷と判断するための基準となる、上記ＣＰＵ利用率の上限値を設定する。これによれば、自システムのＣＰＵ利用率が、上記設定した「負荷分散しきい値上限」７０３を超えた時、他システムのＣＰＵ利用率を基にして、トランザクションの転送要否判断を行うこととなる。
【００３５】
また、「負荷分散しきい値下限」７０４には、上記のようにして自システムが過負荷と判断した後、ＣＰＵ利用率が減少した場合、過負荷状態を終了したこをと判断するための基準となるＣＰＵ利用率を設定する。なお、この図５の場合には、ＣＰＵ利用率が５０％を超えると過負荷状態と判断され、その後ＣＰＵ利用率が３０％を下回ると過負荷状態から解除されたと判断される。なお、過負荷状態から解除されたと判断されると、トランザクションの転送が終了する。
【００３６】
続いて、上記にその構成の詳細を説明した本発明になるトランザクション転送システムにおける、トランザクション転送要否を行うための動作について、添付の図６と図７を参照しながら詳細に説明する。なお、これら図６及び図７は、上述した処理サーバ１０により実行される、トランザクション転送要否判断を行うための処理の流れを示す、所謂、フローチャートである。
【００３７】
処理が開始すると、図６に示すように、まず初めに、端末２０から処理サーバ１０に対し、通信管理部１０１を介して、トランザクションが入力される（ステップ８０１）。すると、処理サーバ１０では、そのトランザクション転送振り分け部１０２の処理が走行する（開始する）。
【００３８】
まず、トランザクション転送振り分け部１０２では、転送条件定義３０２を基に、トランザクション処理の入力元である端末や、入力されたトランザクションが転送条件を満たしているか否かをチェックする（ステップ８０２、ステップ８０３）。なお、ここで、転送の判断に使用される転送条件定義３０２では、既に上記の図３により説明したように、転送の対象となる入力元の端末とトランザクションとが定義されている。例えば、入力元の端末名称が「ＴＥＲＭＡ」であり、かつ、そこで入力されたトランザクションの名称が「ＴＲＡＮＡ」の場合は、いずれも上記のトランザクション転送条件を満たしている（図の「Ｙ」）。そのため、処理はステップ８０４へ進む。一方、入力元である端末や入力されたトランザクションが、上記のトランザクション転送条件を満たさなかった（図の「Ｎ」）場合には、トランザクションの転送を行わず、当該トランザクション処理を入力した処理サーバ１０が、自己のシステム内で処理を行い（ステップ８０５）、その後、終了する。
【００３９】
上記のステップ８０３において、入力されたトランザクションが上述したトランザクション転送条件３０２を満たしている（「Ｙ」）と判定された場合は、次に、上述したＣＰＵ負荷バランス定義３０４（図５を参照）に定義されているＣＰＵ負荷情報をチェックし（ステップ８０４）、更に、当該ＣＰＵ負荷情報を使用すべきか否かを判断する（ステップ８０６）。これは、上記において図５を参照して説明したように、ＣＰＵ負荷バランス定義３０４においては当該ＣＰＵ負荷情報を使用することが指定されている（「ＣＰＵ負荷情報使用有無」において「使用」が設定されている）ことから、その場合には、ステップ８０７へ進む。このステップ８０７では、上記図１に示した処理サーバ１０の主記憶装置１００を構成するＣＰＵ負荷情報取得部１０３を起動して、当該処理サーバ自体のシステムにおける現在のＣＰＵ利用率を取得する（ステップ８０７）。
【００４０】
その後、ＣＰＵ負荷情報を使用することが指定されている場合には、さらに、当該処理サーバは、自システムが過負荷状態か否かをチェックする（ステップ８０８）。なお、この場合にも、上記図５で説明したＣＰＵ負荷バランス定義３０４における「負荷分散しきい値上限」７０３を使用する。即ち、自システムが過負荷状態か否かは、ＣＰＵ負荷バランス定義３０４において指定された上限値と、取得された現在のＣＰＵ利用率の推移とによって決定される。その結果、当該処理サーバ１０の自システムが過負荷状態にある（「Ｙ」）と判断された場合には、ステップ８０９に進む。他方、自システムが過負荷状態ではない（「Ｎ」）と判断された場合には、当該入力されたトランザクションの処理を自システム、即ち、当該処理サーバ１０自身に決定し（ステップ８１１）、図のノード（１）を介して、以下に図７で説明するステップ９０１へ進む。加えて、上記のステップ８０３において、上記のＣＰＵ負荷情報を使用しないことが指定されている（「ＣＰＵ負荷情報使用有無」において「使用」が設定されていない）場合には、上記のステップ８０７及び８０８の処理をスキップし、やはり、上記のステップ８０９に進む。
【００４１】
このステップ８０９では、転送可能な他システム（他の処理サーバ１０）があるか否かをチェックする。その結果、他の転送可能なシステムが存在する（「Ｙ」）と判定された場合には、当該入力されたトランザクションの転送先システムを決定する（ステップ８０９）。なお、この時、ＣＰＵ負荷情報の使用を指定している場合には、上述した転送先システム定義３０３（図４を参照）で指定した転送先システムの候補の中で、最もそのＣＰＵ利用率の低いシステム（作業サーバ）を転送先システムとして決定する。他方、ＣＰＵ負荷情報の不使用を指定している場合は、上記転送先システム定義３０３で予め指定した転送先システム（作業サーバ）を転送先システムとして決定する。
【００４２】
他方、他に転送可能なシステムが存在しない（「Ｎ」）と判定された場合には、やはり、上記ステップ８１１において、当該入力されたトランザクションの処理システムを当該処理サーバ１０自身に決定し、図のノード（１）を介して、以下に図７で説明するステップ９０１へ進む。また、上記ステップ８０８で自システムが過負荷状態ではなかった場合や、上記ステップ８０９で転送可能な他のシステムが存在しないと判定された場合においても、トランザクションを転送せずに、自システムで処理をすることを決定することは上述の通りである。
【００４３】
次に、添付の図７を参照し、即ち、システムがトランザクションの転送要否を決定した後、更に、トランザクション転送決定アプリケーション１０４があるか否かをチェック（ステップ９０１）し、その結果、存在すると判定された場合には、当該トランザクション転送決定アプリケーションを呼び出す（ステップ９０２）。
【００４４】
ここで、トランザクション転送決定アプリケーション１０４とは、例えば、添付の図８にその概略を示すように、入力元で入力されたトランザクションの名称（例えば、図３の「トランザクション定義」５０２を参照）から、トランザクションを決定する（図の例では、例えば、「ＴＲＡＮＡ」、「ＴＲＡＮＢ」、「ＴＲＡＮＣ」、等）。その後、決定されたトランザクションを入力した端末の名称（例えば、図３の「端末定義」５０１を参照）により、上記のトランザクション転送システムによって決定された転送先のシステム（作業サーバ）を変更するか否かを決定する。なお、この例では、例えば、端末Ａ、Ｂ、Ｃからのトランザクション「ＴＲＡＮＡ」、「ＴＲＡＮＢ」、「ＴＲＡＮＣ」のうち、「ＴＲＡＮＡ」を処理するためのデータベース（ＤＢ−Ａ）がシステム（作業サーバ）ＳＹＳＴＥＭＡにしか存在しない場合には、当該トランザクション「ＴＲＡＮＡ」の処理は、他のシステムの状況に拘わらず、必ず、システム「ＳＹＳＴＥＭＡ」に転送するようにする。なお、この時のトランザクション転送動作を、添付の図９に示す。
【００４５】
なお、上述したトランザクション転送決定アプリケーション１０４は、ユーザが任意に作成することが可能であり、かかるトランザクション転送決定アプリケーション１０４によれば、複数の処理サーバ１０の全てが、一律に、端末２０からの全てのトランザクションを処理することが出来るようにはなっていない環境下においても、当該トランザクション転送システムが決定したトランザクション転送要否の判定を変更し、又は、その指定した転送先システムを、適宜、変更することが可能となり、もって、当該環境に最適、かつ、適合的なトランザクションの転送処理を実現することが可能となる。
【００４６】
続いて、制御が上記のトランザクション転送決定アプリケーション１０４からシステムに戻った（即ち、アプリケーションが終了した）場合には、更に、当該トランザクションを他のシステムに転送するのか否かを、再度チェックする（ステップ９０３）。
【００４７】
なお、ここで、上記のトランザクション転送決定アプリケーション１０４が、当該トランザクションを他のシステムに転送するよう指定した（「Ｙ」）場合は、転送先のシステムを必要に応じて変更（ステップ９０４）した上で、当該他のシステムへのトランザクションの転送を実行して（ステップ９０５）、終了する。他方、上記のトランザクション転送決定アプリケーション１０４が自システムで処理するように指定した場合には、当該トランザクションは、自システムで処理し（ステップ９０６）、その後、終了する。
【００４８】
次に、上記トランザクション転送決定アプリケーション１０４の入出力インタフェースについての一例を、図１０により説明する。なお、この図１０に示す例は、上記トランザクション転送決定アプリケーション１０４の入出力インタフェース１０００を示すものである。
【００４９】
この上記トランザクション転送決定アプリケーション１０４の入出力インタフェース１０００は、図１０からも明らかなように、「入力元端末名称」１００１と、「入力トランザクション名称」１００２と、「転送要否」１００３と、「転送先システム名」１００４と、「システム情報」１００５とで構成される。
【００５０】
なお、上記の構成において、「入力元端末名称」１００１では、入力元の端末名称を、そして、「入力トランザクション名称」１００２では、入力されたトランザクションの名称を情報として表示しており、これらの情報をトランザクション転送決定アプリケーション１０４に通知する。また、「転送要否」１００３では、上記図７においてステップ９０２で示したように、制御をトランザクション転送決定アプリケーション１０４に渡す（即ち、アプリケーションを開始する）前に、上記トランザクション転送システムが決定したトランザクションの転送を実行すべきか否かの設定を行う。即ち、事前にトランザクション転送を行なう場合には「要」を、他方、自システム内で処理する場合には「否」を設定する。更に、「転送先システム名」１００４には、上記トランザクション転送システムが決定した転送先のシステム名称が設定される。なお、上記トランザクションの「転送要否」で「否」と設定した場合には、自システムのシステム名称が設定されることとなる。
【００５１】
また、上記のトランザクション転送決定アプリケーション１０４によれば、その「転送要否」１００３と「転送先システム名」１００４とを参照することによれば、入力されたトランザクションが何れのシステムに転送されようとしているのかどうかを知ることができる。
【００５２】
また、図の下方には、システム情報１１００が示されており、これにより、上記の自システムの情報を含めた、トランザクション転送システムを構成する各システムの情報が、上記トランザクション転送決定アプリケーション１０４に提供されることとなる。なお、このシステム情報１１００は、「システム名」１１０１と、「自他区分」１１０２と、「状態」１１０３と、「負荷状態」１１０４と、「ＣＰＵ利用率」１１０５とを有する。
【００５３】
まず、「システム名」１１０１では、上記図２の「他システム情報定義」３０１で定義されている各システムのシステム名称の一覧が設定される。「自他区分」１１０２では、自システムの場合には「自」が、他システムの場合は「他」が設定される。また、「状態」１１０３では、各システムが「オンライン」状態であるか、あるいは、「停止中」の状態であるのかが設定される。
【００５４】
「負荷状態」１１０４では、各システムが、上記図５に示した「ＣＰＵ負荷バランス定義３０４」で定義された情報を基に判断した結果が、即ち、「過負荷」状態なのか、あるいは、「通常」の状態なのかが設定される。更に、「ＣＰＵ利用率」１１０５には、各システムのＣＰＵ使用率が設定される。ただし、上記「ＣＰＵ負荷バランス定義」３０４で、ＣＰＵ負荷情報の収集を行わない指定（「ＣＰＵ負荷情報使用有無」７０１で「使用」を設定していない）をしている場合には、上記「負荷状態」１１０４と「ＣＰＵ利用率」１１０５には、情報が設定されない。
【００５５】
上述のように、トランザクション転送決定アプリケーション１０４によれば、トランザクション転送システムが提供する各種情報を基に、たとえ、転送システムを構成する複数の処理サーバ１０の全てが、一律に、全てのトランザクションを処理することが出来ない環境下であっても、トランザクションの転送要否と、転送先システムの妥当性とをチェックすることができる。但し、このトランザクション転送決定アプリケーション１０４を利用することによって設定できる領域は、上述したように、「転送先システム名称」１００４のみである。そこで、この転送先システムを変更する場合は、当該「転送先システム名称」１００４に、変更後のシステム名称を設定する必要がある。これに対し、トランザクション転送システムが設定したトランザクション転送先システムを変更しない場合には、このトランザクション転送決定アプリケーション１０４を、トランザクション転送先については何もせずに終了するように設定すれば良い。同様に、トランザクション転送システムがトランザクションの転送を不要と判断しており、当該システムの決定通りに自システムで処理を行う場合にも、上記と同様に、アプリケーションは何もせずに終了すれば良いこととなる。
【００５６】
それに対し、トランザクション転送システムはトランザクションの転送を不要と判断したが、しかしながら、当該トランザクションを転送するよう変更を行なう場合には、上記の「転送先システム名称」１００４に転送先のシステム名称を設定する。このように、上記トランザクション転送決定アプリケーション１０４によれば、トランザクション転送システムを構成する各システムの状態を参照しながら、上記「転送先システム名称」１００４を必要に応じて変更することによって、きめ細かなトランザクション転送のチューニングが可能となる。
【００５７】
以上に詳細に説明したように、本発明になる実施例によれば、入力されたトランザクションの全てトランザクション転送の対象とはせずに、入力元端末名称とトランザクション名称とによって、トランザクション転送の有無を指定可能としていることから、トランザクションの転送先となる転送システムを構成する一部のシステム（作業サーバ）において、例えば、リソース等の問題から一部のトランザクション処理が行えないような場合においても、入力されたトランザクション処理を、適宜、最適なシステム（作業サーバ）に転送することが可能なトランザクション転送システムを構築することが可能となる。つまり、従来の技術では、トランザクション転送システムを構築しようとする場合、システムを構築する全ての処理サーバが、一律に、転送されたトランザクションを同様に処理できることが前提条件とされていたが、これに対し、本発明によれば、一部の入力元端末やトランザクションが、一部の処理サーバによってはそのトランザクション処理ができない状況にある場合であっても、トランザクション転送システムを導入することが可能となる。加えて、やはり、従来の技術では不可能であったが、一部の入力元端末やトランザクションについては、トランザクションの転送対象とはせずに、むしろ、自システム内で処理する必要があるような場合においても、トランザクション転送システムを導入することが可能となる。
【００５８】
また、上記の本実施例によれば、ＣＰＵ負荷情報を使用することなく、トランザクション転送システムを構築することが可能である。換言すれば、上記従来の技術では、上記にも指摘したように、各処理サーバのＣＰＵ負荷情報を収集し、当該収集したＣＰＵ利用率を基に負荷分散を行うことが一般的であり、そのためには、ＣＰＵ負荷情報を収集すると共に、更には、転送システムを構築するシステム（作業サーバ）間のおいて上記ＣＰＵ負荷情報を通知するための手段が必要であり、少なからずＣＰＵ負荷が上昇していた。それに対し、本発明になる実施例では、かかるＣＰＵ負荷情報を使用せずに、ＣＰＵ負荷に関する統計データ等を利用することによって予め設定した定義（上記図５の「ＣＰＵ負荷バランス定義」３０４を参照）を基にトランザクションの転送要否を判断し、負荷分散を図ることが可能である。これによれば、上記ＣＰＵ負荷情報情報の通知に伴う負荷上昇からＣＰＵを防止することが出来る。
【００５９】
更に、上記の本発明になる実施例によれば、一旦、上記トランザクション転送システムが決定したトランザクション転送要否、更には、転送先のシステムを、ユーザが作成したアプリケーションによって、変更することができる。即ち、従来の技術では、トランザクション転送システムが提供する各システムのＣＰＵ負荷情報を判断するアルゴリズムによってトランザクションの振り分けが行われるため、ユーザは、システムが提供する負荷分散アルゴリズムを変更することは難しかったが、それに対し、本発明になるトランザクション転送システムによれば、当該転送システムがトランザクション転送有無を判断するアルゴリズムを提供するだけでなく、更には、必要に応じて、当該転送システムが決定した判断を変更することが可能なアプリケーションに制御を渡すためのインタフェースを設けることにより、その一部のトランザクション処理が行えない場合等のため、処理サーバ１０の全てが、一律に、端末２０からの全てのトランザクションを処理することが出来ない場合においても、ユーザニーズに応じたトランザクション転送システムを実現することができる。
【００６０】
即ち、本発明により提供されるトランザクション転送システムによれば、ユーザは、入力元端末や入力されるトランザクション単位で、トランザクションの転送有無や転送先の処理サーバの候補を予め定義で指定する。また、トランザクションの転送要否の判断要素としてＣＰＵ負荷情報を使用せずに、ユーザがあらかじめ設定した定義を元にトランザクション振り分けを行う機能を備えるものである。さらに、トランザクション転送システムが決定したトランザクション転送要否や転送先システムをアプリケーションによって変更可能にするインタフェースを提供すると共に、これらの方法を実現したトランザクション転送制御プログラムを提供する。
【００６１】
なお、本発明によれば、トランザクションの転送要否の判断要素としては、入力元端末名称や入力トランザクション名称に加えて、ＣＰＵ利用率に基づいてトランザクション転送要否を決定してもよく、これに代えて、ＣＰＵ負荷に関する統計データによってあらかじめ設定した定義を基に、トランザクションの転送要否を判断し負荷分散を行うことも可能である。更には、上記のトランザクション転送において、トランザクション転送システムがトランザクション転送有無を判断するアルゴリズムを提供するだけでなく、システムが決定した判断を変更可能なアプリケーションに制御を渡すインタフェースを提供する手段と、アプリケーションが変更したトランザクションの転送要否や転送先システムに従ってトランザクション振り分け先を変更する手段とを備えてもよい。
【図面の簡単な説明】
【００６２】
【図１】本発明の一実施形態によるトランザクション転送システムの構成を示すブロック図である。
【図２】上記トランザクション転送システムにおける「他システム情報定義」の一例を示す図である。
【図３】上記トランザクション転送システムにおける「転送条件定義」の一例を示す図である。
【図４】上記トランザクション転送システムにおける「転送先システム定義」の一例を示す図である。
【図５】上記トランザクション転送システムにおける「ＣＰＵ負荷バランス定義」の一例を示す図である。
【図６】上記本発明の一実施形態になるトランザクション転送システムにおいて、処理サーバトランザクション転送要否判断を行う処理の流れを示すフローチャート（１／２）である。
【図７】やはり、上記本発明の一実施形態になるトランザクション転送システムにおいて、処理サーバトランザクション転送要否判断を行う処理の流れを示すフローチャート（２／２）である。
【図８】本発明になるトランザクション転送システムにおけるトランザクション転送決定アプリケーションの一例を示す処理図である。
【図９】上記トランザクション転送決定アプリケーションによるトランザクション転送動作の一例を説明するための図である。
【図１０】本発明のトランザクション転送システムにおけるトランザクション転送決定アプリケーションの入出力インタフェースの一例を示す図である。
【符号の説明】
【００６３】
１０…処理サーバ、２０…端末、３０…ネットワーク、１００…主記憶装置、１０１…通信管理部、１０２…トランザクション転送振り分け部、１０３…ＣＰＵ負荷情報取得部、１０４…トランザクション転送決定アプリケーション、２００…ＣＰＵ、３００…定義情報、３０１…他システム情報定義、３０２…転送条件定義、３０３…転送先システム定義、３０４…ＣＰＵ負荷バランス定義、４０１…自システム名称、４０２…他システム名称、５０１…端末定義、５０２…トランザクション定義、５０３…名称、５０４…転送対象有無、６０１…トランザクション名称、６０２…転送先システム、７０１…ＣＰＵ負荷情報使用有無、７０２…ＣＰＵ負荷情報収集間隔、７０３…負荷分散しきい値上限、７０４…負荷分散しきい値下限、１０００…入出力インタフェース、１００１…入力元端末名称、１００２…入力トランザクション名称、１００３…転送要否、１００４…転送先システム名、１１００…システム情報、１１０１…システム名、１１０２…自他区分、１１０３…状態、１１０４…負荷状態、１１０５…ＣＰＵ利用率。
【図１】
2006120036.tif 000003
【図２】
2006120036.tif 000004
【図３】
2006120036.tif 000005
【図４】
2006120036.tif 000006
【図５】
2006120036.tif 000007
【図６】
2006120036.tif 000008
【図７】
2006120036.tif 000009
【図８】
2006120036.tif 000010
【図９】
2006120036.tif 000011
【図１０】
2006120036.tif 000012