(57)【特許請求の範囲】
【請求項１】
アプリケーションサーバと、データベースサーバとを有するトランザクション処理システムであって、
前記アプリケーションサーバは、クライアントから要求されるトランザクションを処理するトランザクション処理部と、前記トランザクションの処理に対応して前記データベースサーバで生成されるセッションプロセスを管理するプロセス監視部とを有し、
前記データベースサーバは、データを保持するデータベースと、前記データベースを管理するデータベース管理部とを有し、
前記トランザクション処理部は、
前記トランザクションを識別するためのトランザクション識別子を前記データベース管理部へ送信して、前記トランザクションの処理に対応して前記データベースを操作するセッションプロセスの実行を要求し、
前記プロセス監視部へ前記トランザクション識別子を出力し、
前記プロセス監視部は、
前記トランザクション識別子を前記トランザクション処理部より受信し、
前記トランザクション識別子を前記データベース管理部へ出力することに応じて前記データベース管理部より返信される、前記セッションプロセスを識別するためのセッション識別子を受信し、
所定の時間経過後に前記セッションプロセスを終了する命令を前記データベース管理部へ送信し、
前記データベース管理部は、
前記トランザクション処理部より前記トランザクション識別子を受信すると、前記セッションプロセスを識別するための前記セッション識別子を作成して前記トランザクション識別子と対応づけて保持し、
前記セッションプロセスを実行し、
前記プロセス監視部より前記トランザクション識別子を受信すると、前記トランザクション識別子に対応する前記セッション識別子を返信し、
前記プロセス監視部より前記セッションプロセスを終了する命令を受信すると前記セッションプロセスを終了させる
ことを特徴とするトランザクション処理システム。
【請求項２】
前記プロセス監視部は、前記トランザクション処理部より前記トランザクション識別子を受信すると、前記所定の時間経過を検出するタイマーを起動する請求項１に記載のトランザクション処理システム。
【請求項３】
前記トランザクション処理部は、
前記トランザクションの処理が終了すると、前記トランザクションの処理終了通知を前記プロセス監視部へ出力し、
前記プロセス監視部は、
前記トランザクション処理部より前記トランザクションの処理終了通知を受信すると、前記タイマーを停止させる請求項２に記載のトランザクション処理システム。
【請求項４】
クライアントから要求されるトランザクションを処理するトランザクション処理部と、前記トランザクションの処理に対応してデータベースサーバで生成されるセッションプロセスを管理するプロセス監視部とを有し、
前記トランザクション処理部は、
前記トランザクションを識別するためのトランザクション識別子を前記データベースサーバへ送信して、前記トランザクションの処理に対応してデータベースを操作するセッションプロセスの実行を要求し、
前記プロセス監視部へ前記トランザクション識別子を出力し、
前記プロセス監視部は、
前記トランザクション識別子を前記トランザクション処理部より受信し、
前記トランザクション識別子を前記データベースサーバへ出力することに応じて該データベースサーバより返信される、前記セッションプロセスを識別するためのセッション識別子を受信し、
所定の時間経過後に前記セッションプロセスを終了する命令を前記データベースサーバへ送信することを特徴とするアプリケーションサーバ。
【請求項５】
前記プロセス監視部は、前記トランザクション処理部より前記トランザクション識別子を受信すると、前記所定の時間経過を検出するタイマーを起動する請求項４に記載のアプリケーションサーバ。
【請求項６】
前記トランザクション処理部は、
前記トランザクションの処理が終了すると、前記トランザクションの処理終了通知を前記プロセス監視部へ出力し、
前記プロセス監視部は、
前記トランザクション処理部より前記トランザクションの処理終了通知を受信すると、前記タイマーを停止させる請求項５に記載のアプリケーションサーバ。
【請求項７】
アプリケーションサーバと、データベースサーバとを有するトランザクション処理システムの動作方法であって、
前記アプリケーションサーバにおいて、
クライアントからトランザクションの要求を受信し、
トランザクションの処理プロセスを開始し、
前記トランザクションを識別するためのトランザクション識別子及び前記処理プロセスの開始の通知を保持する監視プロセスを起動し、
前記処理プロセスより前記トランザクションを識別するためのトランザクション識別子をデータベースサーバへと送信し、前記トランザクションの処理に対応して前記データベースを操作するセッションプロセスの実行を要求し、
前記データベースサーバにおいて、
前記トランザクション識別子を受信し、
前記セッションプロセスを識別するためのセッション識別子を作成して前記トランザクション識別子と対応づけて保持し、
前記監視プロセスより前記トランザクション識別子を受信すると、前記トランザクション識別子に対応するセッション識別子を前記監視プロセスへ送信し、
前記セッションプロセスを実行し、
前記アプリケーションサーバにおいて、
前記監視プロセスにおいて前記セッション識別子を受信し、
前記処理プロセスにおいて前記セッションプロセス実行結果を受信し、
前記処理プロセスにおいてセッションプロセス実行結果に基づく処理実行結果を前記クライアントへ送信して、前記処理プロセスを終了し、
前記監視プロセスにおいて所定の時間経過後に前記セッションプロセスを終了する命令を前記データベースサーバへ送信し、
前記データベースサーバにおいて前記セッションプロセスを終了する命令を受信すると、前記セッションプロセスを終了させる
ことを特徴とするトランザクション処理システムの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のシステム間におけるプロセス管理に関し、より詳細には、アプリケーションサーバ及びデータベースサーバ間におけるプロセスの連携の管理に関する。
【背景技術】
【０００２】
近年、複数のサーバを有するトランザクション処理システムが、銀行業務等の大量のトランザクションを処理する必要がある業務において、広く用いられている。このようなトランザクション処理システムは、アプリケーションサーバとデータベースサーバとを有する。アプリケーションサーバは、クライアントから要求されたトランザクションの処理を行う。また、データベースサーバは、アプリケーションサーバ上のアプリケーションより要求される操作の対象となるデータを格納するデータベースを有する。
【０００３】
典型的なトランザクション処理システムにおける動作は、以下のとおりである。すなわち、アプリケーションサーバは、例えばウェブアプリケーションサーバミドルウェアないしソフトウェアを備えており、アプリケーションを実行する。クライアントよりトランザクション要求を受信すると、アプリケーション上のトランザクション処理プロセスよりデータベースサーバへ問合せやデータ操作を行なうために、データベースサーバ上で動作するデータベース管理システムに対して、問合せなどの実行を要求する。問合せなどの実行の要求に応じてデータベース管理システムがセッションプロセスを起動し、セッションプロセスよりデータベースへと問合せなどを実施して、データベースから問合せ実施結果を得る。データベース管理システム得られた問合せなどの結果をアプリケーションサーバへ送信する。アプリケーションサーバは問合せなどの結果に基づいてトランザクションを処理し、クライアントへとトランザクションの結果を返す。
【０００４】
データベース管理システムは問合せなどの結果をアプリケーションサーバへと送信すると、データベース管理システムは、セッションプロセスを終了させる。      
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２４９９０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、システム上で異常が発生した場合、例えばトランザクションとしてクライアントから送信された電文のフォーマットが正しくないことやデータベース管理システムの不具合などにより、データベース管理システムにおいてアプリケーションサーバに問合せ結果を返してセッションプロセスを終了させることができない場合がある。
【０００７】
このような場合に、アプリケーション上のトランザクション処理プロセスは、クライアントとのセッションの切断や、タイムアウトなどにより処理を終了する。あるいは、アプリケーション上で問題の発生したトランザクションを把握可能なため、システム管理者が当該トランザクションの処理プロセスを把握して当該プロセスを終了させることも可能である。
【０００８】
その一方、データベース管理システムのセッションプロセスは、終了することなく、実行中のステータスを有して残ることとなってしまう。そして、従来のトランザクション処理システムにおいては、問題の発生したトランザクションを処理したセッションプロセスについての把握を行うことが困難であった。すなわち、従来、データベースサーバ側のセッションプロセスは、トランザクションの処理プロセスと対応付けられて管理されていなかったため、トランザクションの処理プロセス側において、トランザクションに対応してデータベースに送信された問合せが、いずれのセッションプロセスにおいて処理されたかが明らかでなかった。そのため、問題発生時に、問題の発生したトランザクションの処理プロセスについては終了させることができる一方で、それに対応して実行中のままリソースを消費しているセッションプロセスを終了させることは困難であった。
【０００９】
そのため、不要なセッションプロセスが実行中のステータスを有して残り、そうしたプロセスが蓄積されることによって、データベースサーバのリソースが逼迫し、データベースサーバのパフォーマンスが悪化する。そして、このパフォーマンス悪化を解消しようとしても、動作異常の発生したトランザクションに係る問合せを処理したセッションプロセスの特定が困難である。このため、データベースサーバを再起動し、動作異常と無関係のセッションプロセスをも合わせて終了させざるを得ず、その結果としてオンライン処理が継続できず、問題のないトランザクションについても取引できないという事態が発生していた。
【００１０】
そこで、本発明は、アプリケーションサーバにおいて個別トランザクションと関連するデータベースサーバ上のセッションプロセスを特定可能なトランザクション処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一実施形態に係るトランザクション処理システムは、アプリケーションサーバと、データベースサーバとを有するトランザクション処理システムであって、前記アプリケーションサーバは、クライアントから要求されるトランザクションを処理するトランザクション処理部と、前記トランザクションの処理に対応して前記データベースサーバで生成されるセッションプロセスを管理するプロセス監視部とを有し、前記データベースサーバは、データを保持するデータベースと、前記データベースを管理するデータベース管理部とを有し、前記トランザクション処理部は、前記トランザクションを識別するためのトランザクション識別子を前記データベース管理部へ送信して、前記トランザクションの処理に対応して前記データベースを操作するセッションプロセスの実行を要求し、前記プロセス監視部へ前記トランザクション識別子を出力し、前記プロセス監視部は、前記トランザクション識別子を前記トランザクション処理部より受信し、前記トランザクション識別子を前記データベース管理部へ出力することに応じて前記データベース管理部より返信される、前記セッションプロセスを識別するためのセッション識別子を受信し、所定の時間経過後に前記セッションプロセスを終了する命令を前記データベース管理部へ送信し、前記データベース管理部は、前記トランザクション処理部より前記トランザクション識別子を受信すると、前記セッションプロセスを識別するための前記セッション識別子を作成して前記トランザクション識別子と対応づけて保持し、前記セッションプロセスを実行し、前記プロセス監視部より前記トランザクション識別子を受信すると、前記トランザクション識別子に対応する前記セッション識別子を返信し、前記プロセス監視部より前記セッションプロセスを終了する命令を受信すると前記セッションプロセスを終了させることを特徴とする。
【００１２】
また、本発明の一実施形態に係るトランザクション処理システムの動作方法は、アプリケーションサーバと、データベースサーバとを有するトランザクション処理システムの動作方法であって、前記アプリケーションサーバにおいて、クライアントからトランザクションの要求を受信し、トランザクションの処理プロセスを開始し、前記トランザクションを識別するためのトランザクション識別子及び前記処理プロセスの開始の通知を保持する監視プロセスを起動し、前記処理プロセスより前記トランザクションを識別するためのトランザクション識別子をデータベースサーバへと送信し、前記トランザクションの処理に対応して前記データベースを操作するセッションプロセスの実行を要求し、前記データベースサーバにおいて、前記トランザクション識別子を受信し、前記セッションプロセスを識別するためのセッション識別子を作成して前記トランザクション識別子と対応づけて保持し、前記監視プロセスより前記トランザクション識別子を受信すると、前記トランザクション識別子に対応するセッション識別子を前記監視プロセスへ送信し、前記セッションプロセスを実行し、前記アプリケーションサーバにおいて、前記監視プロセスにおいて前記セッション識別子を受信し、前記処理プロセスにおいて前記セッションプロセス実行結果を受信し、前記処理プロセスにおいてセッションプロセス実行結果に基づく処理実行結果を前記クライアントへ送信して、前記処理プロセスを終了し、前記監視プロセスにおいて所定の時間経過後に前記セッションプロセスを終了する命令を前記データベースサーバへ送信し、前記データベースサーバにおいて前記セッションプロセスを終了する命令を受信すると、前記セッションプロセスを終了させることを特徴とする。
【発明の効果】
【００１３】
本発明により、動作異常の生じているセッションプロセスを特定して終了させることができ、システムリソースを確保することができるとともに、動作異常と無関係なトランザクションの動作を継続させることができ、オンライン処理を継続することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係るトランザクション処理システムの概要図である。
【図２】本発明の一実施形態に係るトランザクション処理システムにおける正常処理時におけるデータのシーケンス図である。
【図３】本発明の一実施形態に係るトランザクション処理システムにおける異常発生時におけるデータのシーケンス図である。
【図４】本発明の一実施形態に係るトランザクション処理システムのトランザクション処理部における処理のフローチャートである。
【図５】本発明の一実施形態に係るトランザクション処理システムのプロセス監視部における処理のフローチャートである。
【図６】本発明の一実施形態に係るトランザクション処理システムのデータベース管理部における処理のフローチャートである。
【発明を実施するための形態】
【００１５】
図１は、本発明の一実施形態に係るトランザクション処理システムの概念図である。
【００１６】
図１を参照すると、本発明の一実施形態に係るトランザクション処理システムは、アプリケーションサーバ１００と、データベースサーバ２００とを有する。アプリケーションサーバ１００は、データベースサーバ２００及びクライアント３００とネットワークを介して接続される。
【００１７】
アプリケーションサーバは、例えばウェブアプリケーションサーバとして動作するサーバコンピュータである。例えば、サーバコンピュータをウェブアプリケーションサーバとして動作させるミドルウェア（ＷＡＳ、Ｗｅｂ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｅｒ）をサーバコンピュータが実行し、アプリケーションサーバ１００が実現される。
【００１８】
クライアント３００から、アプリケーションサーバ１００に対してトランザクション要求が送信されると、アプリケーションサーバ１００上のＷＡＳにより、トランザクション処理が開始される。なお、クライアント３００には、ウェブブラウザが動作し、クライアント３００の利用者がウェブブラウザを操作することにより、トランザクション要求が送信されるようになっていてもよい。また、ウェブブラウザにより送信された要求がウェブサーバ（図示せず）により受信され、受信された要求に対応するトランザクション要求をウェブサーバが生成してアプリケーションサーバ１００に送信してもよい。
【００１９】
アプリケーションサーバ１００は、トランザクション処理部１１０と、プロセス監視部１２０とを有する。
【００２０】
トランザクション処理部１１０は、トランザクション要求をクライアント３００より受信する。なお、トランザクション処理部１１０は、トランザクション要求を、ウェブサーバなどを介してクライアント３００より受信してもよい。トランザクション要求とは、データベースに対する操作の要求である。例えば、データベースに対する検索の要求、データのインサートやアップデートの要求である。トランザクション要求は、ＳＱＬやその等価な言語による表現を含む。ＳＱＬやその等価な言語による表現を、以下では「問合わせ」という。トランザクション処理部１１０は、各トランザクションに固有のトランザクション識別子１０を割り当てる。
【００２１】
トランザクション識別子１０は、トランザクション要求に含まれてもよく、又はトランザクション処理部１１０が内部で付与してもよく、それらの組合せでもよい。また、トランザクション識別子１０は複数の識別子を含んでもよく、例えばトランザクション要求を送信したクライアント３００を識別するクライアント識別子と、トランザクション処理部が受信したトランザクションへ順次付与するシーケンシャルな識別子との組合せでもよい。クライアント３００にて複数のブラウザが動作する場合になどには、トランザクション識別子１０は、クライアント３００内でのブラウザの識別子を含んでいてもよい。
【００２２】
トランザクション処理部１１０は、クライアント３００から受信したトランザクション要求に応じた処理を行うため、データベースサーバ２００が有するデータベース管理部２１０へ、トランザクション識別子１０及び問合せ３０を送信し、問合わせ３０を実行するためのセッションプロセスの実行を要求する。
【００２３】
また、トランザクション処理部１１０は、セッションプロセスの実行の要求をする際に、トランザクション識別子１０をプロセス監視部１２０へ出力する。例えば、セッションプロセスがデータベース管理部２１０により生成された後に、トランザクション処理部１１０は、トランザクション識別子１０をプロセス監視部１２０へ出力する。これにより、トランザクション処理部１１０は、トランザクション識別子１０に対応するセッションプロセスの実行の開始をトランザクション処理部１１０へ通知することができる。
【００２４】
トランザクション処理部１１０は、データベース管理部２１０より問合せ結果を受信し、問合せ結果を用いてトランザクションの処理を実施する。
【００２５】
トランザクションの処理が完了すると、トランザクション処理部１１０は、トランザクション処理結果に基づき、トランザクション要求の送信元のクライアント３００に対してトランザクション応答を送信する。
【００２６】
また、トランザクション処理部１１０は、トランザクション処理の完了を、プロセス監視部１２０に対して送信し、処理を終了する。
【００２７】
プロセス監視部１２０は、トランザクション処理部１１０よりトランザクション識別子１０を受信すると、データベース管理部２１０に対してトランザクション識別子１０を送信してトランザクション識別子１０に対応するセッションプロセスを識別するセッション識別子２０を送信するよう要求する。
【００２８】
データベース管理部２１０からセッション識別子２０が送信されると、プロセス監視部１２０はこれを受信して、トランザクション識別子１０と受信したセッション識別子２０とを関連付けて保管する。これにより、当該セッションプロセスの監視を開始することができる。
【００２９】
プロセス監視部１２０は、トランザクション処理部１１０より、トランザクション処理の完了の通知を受信すると、トランザクション処理の完了の通知に含まれるトランザクション識別子１０を抽出して、当該トランザクション識別子１０に対応付けられたセッション識別子２０を参照して、当該セッション識別子２０に対応するセッションプロセスの監視を終了する。また、プロセス監視部１２０は、当該トランザクションの監視を終了してもよい。
【００３０】
プロセス監視部１２０は、トランザクション識別子１０を受信し、セッションプロセスが開始したことを通知された後、所定の時間経過後までに当該トランザクション識別子１０に対応するトランザクション処理の完了の通知を受信しなかった場合、トランザクション識別子１０に対応するセッション識別子２０を参照し、データベース管理部２１０に対して、セッション識別子２０で識別されるセッションプロセスを終了する命令を送信する。
【００３１】
あるいは、プロセス監視部１２０は、所定の時間ごとに監視プロセスを起動し、その時点においてしきい値時間を超える時間動作しているセッションプロセスを終了させるよう動作してもよい。例えば、プロセス監視部１２０は、３０分ごとに監視プロセスを起動し、監視プロセスはセッションプロセスの動作開始時間を確認する。しきい値を２０分と設定している場合、動作開始時間から２０分を経過したセッションプロセスを、終了させるべきプロセスと判断し、当該セッションプロセスの終了命令をデータベース管理部２１０に送信する。
【００３２】
また、プロセス監視部１２０は、トランザクションの種類に応じて異なるしきい値時間を定めてもよい。例えば、トランザクションがデータの変動を伴わない場合やデータの変動が小さい場合にしきい値をより小さく設定し、より短い時間経過でプロセスを停止させるよう動作してもよい。具体的には、オンラインバンキングにおける残高照会のようなトランザクションに関するセッションプロセスついては、金額データの変動を伴う振込み操作のようなトランザクションに関するセッションプロセスよりも優先して停止するようしきい値を小さく設定してもよく、また、振込み操作のトランザクションに関するセッションプロセス間においても、扱われる金額の高低により、異なるしきい値を定めてもよい。
【００３３】
また、その他、プロセス監視部１２０は、トランザクションを要求するクライアント３００のユーザの属性に応じて異なるしきい値を定めたり、稼働中のセッションプロセス数に応じたしきい値を定めたりしてもよい。
【００３４】
データベースサーバ２００は、データベース２２０と、データベース管理部２１０とを有する。
【００３５】
データベース管理部２１０は、データベース管理システム（ＤＢＭＳ、ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）である。データベース管理部２１０は、特に、関係データベース管理システム（ＲＤＢＭＳ）であってもよい。データベース管理部２１０は、セッションプロセスを通じてデータベースへの操作を実行する。
【００３６】
データベース管理部２１０は、トランザクション処理部１１０よりトランザクション識別子１０及びデータベースへの問合せを、セッションプロセス実行要求として受信する。
【００３７】
データベース管理部２１０は、トランザクション識別子１０及び問合わせを含むセッションプロセス実行要求を受信すると、セッションプロセスを開始し、セッションプロセスを識別するセッション識別子２０を発行する。セッション識別子２０は、各セッションプロセスに対応づけられた固有の識別子であり、データベース管理部２１０において、セッションプロセスを管理するために用いられる。
【００３８】
データベース管理部２１０は、トランザクション識別子１０及びセッション識別子２０を関連付けて保持し、セッション管理を行う。保持は、例えばセッションテーブルなどにおいて行われてもよい。
【００３９】
また、データベース管理部２１０は、プロセス管理部１２０より送信されたセッション識別子を受信すると、当該トランザクション識別子１０に対応するセッション識別子を判別し、問合せへの応答として、当該セッション識別子をプロセス管理部１２０へと送信する。
【００４０】
データベース管理部２１０は、プロセス管理部より送信された終了命令を受信して、終了命令を実行し、セッションプロセスを終了させる。
【００４１】
図２は、図１で説明した本発明の一実施形態に係るトランザクション処理システムにおいて、正常にトランザクション処理が終了した場合のデータの流れを説明するシーケンス図である。
【００４２】
図２を参照すると、まず、クライアント３００よりトランザクション要求がトランザクション処理部１１０へと送信される（ｓ５０）。
【００４３】
トランザクション処理部１１０は、トランザクション識別子１０及び問合せを、データベース管理部２１０へと送信する（ｓ１０）。データベース管理部２１０は、セッションプロセスを開始し、データベース２２０へと問合せを行う（ｓ３０）。
【００４４】
一方、トランザクション処理部１１０は、トランザクション識別子１０を、プロセス監視部１２０へ送信する（ｓ２０）。プロセス監視部１２０はトランザクション識別子１０をデータベース管理部２１０へ送信し（ｓ４０）、データベース管理部２１０よりセッション識別子２０を受信する（ｓ４１）。
【００４５】
データベース２２０は、データベース管理部２１０からの問合せを受信すると、問合せに応じた問合せ結果をデータベース管理部２１０へと送信する（ｓ３１）。データベース管理部２１０は、問合せ結果をトランザクション識別子１０と対応付けてトランザクション処理部１１０へと送信する（ｓ１１）。
【００４６】
トランザクション処理部１１０は、問合せ結果を受信すると、問合せ結果に応じてトランザクションの処理を行い、トランザクション応答をクライアント３００へと送信する（ｓ５１）。トランザクション応答送信後、終了通知をプロセス監視部へと送信して（ｓ２１）、一連の処理が終了する。
【００４７】
図３は、図１で説明した本発明の一実施形態に係るトランザクション処理システムにおいて、セッションプロセスを強制終了する場合のデータの流れを説明するシーケンス図である。
【００４８】
図３を参照すると、まず、クライアント３００よりトランザクション要求がトランザクション処理部１１０へと送信される（ｓ５０）。
【００４９】
トランザクション処理部１１０は、トランザクション識別子１０及び問合せメッセージを、データベース管理部２１０へと送信する（ｓ１０）。データベース管理部２１０は、セッションプロセスを開始し、データベース２２０へと問合せを行う（ｓ３０）。
【００５０】
一方、トランザクション処理部１１０は、トランザクション識別子１０を、プロセス監視部１２０へ送信する（ｓ２０）。プロセス監視部１２０はトランザクション識別子１０をデータベース管理部２１０へ送信し（ｓ４０）、データベース管理部２１０よりセッション識別子２０を受信する（ｓ４１）。
【００５１】
その後、所定の時間が経過し、データベース２２０からの問合せに対するデータベース管理部２１０への応答がなく、データベース管理部よりトランザクション処理部１１０へと問合せ結果が送信されない状態において、プロセス監視部１２０はトランザクション処理部１１０へトランザクション識別子１０に対応するトランザクションの処理開始時間を確認し（ｓ６１）、トランザクション処理部１１０が処理開始時間をプロセス監視部１２０へと返す（ｓ６２）。
【００５２】
プロセス監視部１２０は、トランザクション処理部１１０への確認の結果、処理開始時間から所定時間経過している場合、終了命令指示をデータベース管理部２１０に送信する（ｓ７０）。
【００５３】
なお、プロセス監視部１２０は、トランザクション処理部１１０よりトランザクション識別子１０を受信した時間を、処理開始時間とすることもできる。この場合には、プロセス監視部１２０は、トランザクション処理部１１０へトランザクション識別子１０に対応するトランザクションの処理開始時間を確認する必要はない。
【００５４】
終了命令指示を受け取ったデータベース管理部２１０は、終了命令を実行してセッションプロセスを終了する。
【００５５】
なお、トランザクション処理部１１０において、トランザクション識別子１０に対応するトランザクションを処理するプロセスについては、強制終了する。また、クライアント３００における処理は、例えば一定時間応答がなかったことにより、タイムアウトで終了する。
【００５６】
図４は、トランザクション処理部１１０における処理の概要を示すフローチャートである。
【００５７】
図４を参照すると、まず、トランザクション処理部１１０はクライアント３００よりトランザクションの処理を要求するトランザクション要求を受信する（Ｓ１１０）。
【００５８】
トランザクション要求を受信したトランザクション処理部１１０は、トランザクション識別子１０を取得する（Ｓ１２０）。すなわち、前述のとおり、トランザクション要求に含まれるトランザクション識別子１０を抽出するか、またはトランザクション処理部１１０においてトランザクション要求ごとにトランザクション識別子１０を割り当てるかして、トランザクションに固有のトランザクション識別子１０をトランザクション処理部１１０上において取得する。
【００５９】
トランザクション要求に応じたトランザクションの処理を行うため、トランザクション処理部１１０は、データベースサーバ２００、より詳しくはデータベース管理部２１０に対して、問合せ及びトランザクション識別子１０を送信して、セッションプロセスの実行を要求する（Ｓ１３０）。
【００６０】
トランザクション処理部１１０は、プロセス監視部１２０、すなわちデータベースサーバ２００におけるセッションプロセスを監視する監視プロセスに対して、トランザクション識別子１０を出力する（Ｓ１４０）。
【００６１】
トランザクション処理部１１０は、データベースサーバ２００に対して送信した問合せに対し、問合せ結果を受信したかを確認する（Ｓ１５０）。
【００６２】
問合せ結果を受信した場合、トランザクション処理部１１０は、問合せ結果に基づきトランザクションの処理を実行し、トランザクションの処理結果に応じてクライアント３００に対してトランザクション応答を送信する（Ｓ１６０）。トランザクション応答送信後、処理完了をプロセス監視部１２０へと送信して処理を終了する。
【００６３】
問合せ結果を受信せず、かつ一定時間が経過した場合（Ｓ１７０）、当該トランザクションについては、問合せ結果の受信を待つことなく終了させる（Ｓ１８０）。例えば、当該トランザクションを処理する処理プロセスについて強制終了させる。
【００６４】
図５は、プロセス監視部１２０における処理の概要を示すフローチャートである。
【００６５】
図５を参照すると、まず、プロセス監視部１２０はトランザクション処理部１１０よりトランザクションの処理開始の通知とともに、トランザクション識別子１０を受信する（Ｓ２１０）。
【００６６】
トランザクション識別子１０を受信したプロセス監視部１２０は、セッション識別子２０をデータベースサーバ２００のデータベース管理部２１０へと問い合わせる（Ｓ２２０）。これにより、プロセス監視部１２０は、トランザクション識別子１０にかかるトランザクションと対応するセッションプロセスを判別することができる。
【００６７】
データベースサーバ２００より、Ｓ２２０の問合せに応じてセッション識別子２０が送信される。このため、プロセス監視部１２０は当該セッション識別子２０を受信する（Ｓ２３０）。セッション識別子２０を受信すると、プロセス監視部１２０は当該セッション識別子２０に対応するセッションプロセスの監視を開始する。
【００６８】
トランザクション処理部１１０は、トランザクションの処理が終了すると、プロセス監視部１２０へと処理終了通知を送信する。このため、その受信待ちをする（Ｓ２４０）。処理終了通知を受信すると、当該トランザクションに対応するセッションプロセスの監視を終了する。
【００６９】
処理終了通知が受信されず、かつ所定時間が経過した場合（Ｓ２５０）、プロセス監視部は、当該トランザクションに対応するセッションプロセスを終了させるため、セッション識別子２０とともに、セッションプロセスの終了命令をデータベース管理部２１０へと送信する（Ｓ２６０）。
【００７０】
これにより、データベース管理部２１０において、セッションプロセスが何らかのトランザクション処理における異常により終了されずに残ってしまう場合においても、所定時間の経過によりセッションプロセスが終了され、データベースサーバにおける不要な負荷を避けることができる。また、セッションプロセスとトランザクションとがセッション識別子２０及びトランザクション識別子１０により対応付けられているため、当該トランザクションに対応するセッションプロセスのみを終了させ、それ以外のセッションプロセスを終了させることなくシステムを運用できるため、より信頼性の高いシステムを提供することができる。
【００７１】
図６は、データベース管理部２１０における処理の概要を示すフローチャートである。
【００７２】
図６を参照すると、まず、データベース管理部２１０は、トランザクション処理部１１０よりセッションプロセスの実行要求を受信する（Ｓ３１０）。セッションプロセス実行要求は、トランザクション識別子１０及び問合せを含む。セッションプロセスの実行要求を受信し、データベース管理部２１０はセッションプロセスを開始する。
【００７３】
次に、データベース管理部２１０は、セッションプロセスの開始にあわせて、セッション識別子２０を作成する（Ｓ３２０）。作成したセッション識別子２０は、トランザクション識別子１０と関連付けて、データベース管理部２１０のセッションテーブルに保持される。
【００７４】
プロセス監視部１２０より、トランザクション識別子１０に対応するセッション識別子２０の問合せがされると（Ｓ３３０）、データベース管理部２１０はトランザクション識別子１０に対応するセッション識別子をプロセス監視部１２０へ送信する（Ｓ３４０）。
【００７５】
データベース管理部２１０は、トランザクション処理部１１０より送信されたセッションプロセス実行要求における問合せに応じて、データベース２２０へと問合せを実行する（Ｓ３５０）。
【００７６】
データベース管理部２１０は、データベース２２０より問合せ結果を受信すると（Ｓ３６０）、問合せ結果をトランザクション処理部１１０に対して送信して（Ｓ３７０）、セッションプロセスを終了する。
【００７７】
データベース管理部２１０が、データベース２２０より問合せ結果を受信する前に（Ｓ３６０）、プロセス監視部１２０よりセッション識別子２０とともに終了命令を受信した場合（Ｓ３８０）、当該セッション識別子２０に対応するセッションプロセスを終了させる終了命令を実行する（Ｓ３９０）。これにより、セッションプロセスが終了し、処理が終了する。
【符号の説明】
【００７８】
１００  アプリケーションサーバ、１１０  トランザクション処理部、１２０  プロセス監視部、２００  データベースサーバ、２１０  データベース管理部、２２０  データベース
【図１】
0005329589.tif 000002
【図２】
0005329589.tif 000003
【図３】
0005329589.tif 000004
【図４】
0005329589.tif 000005
【図５】
0005329589.tif 000006
【図６】
0005329589.tif 000007