(57)【要約】【課題】  ＷＥＢシステムを前提とした情報処理システム上のトランザクション処理を実行する場合において、同一セションからのトランザクションの多重走行を防止し、かつ可変量のトランザクションをセションタイムアウトを発生させることなく処理可能にすること。【解決手段】  可変量のトランザクションを受け付け、当該トランザクションを処理するアプリケーションプロセスに制御を渡す手段と、トランザクションを独自プロセスで非同期に処理し、処理結果をクライアント端末装置に通知する手段と、アプリケーションプロセスが不当に消滅した場合にコンソール装置に障害通知をする手段とを備えたことを特徴とする。【選択図】      図１
2006235845.tif 000002
【特許請求の範囲】
【請求項１】
ＷＥＢシステムにおける可変量トランザクション処理装置であって、
可変量のトランザクションを受け付け、当該トランザクションを処理するアプリケーションプロセスに制御を渡す手段と、トランザクションを独自プロセスで非同期に処理し、処理結果をクライアント端末装置に通知する手段と、アプリケーションプロセスが不当に消滅した場合にコンソール装置に障害通知をする手段とを備えたことを特徴とするＷＥＢシステムにおける可変量トランザクション処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセスで動作するＷＥＢサーバ上で可変量のトランザクションを実行ならしめるトランザクション処理装置に関するものである。
【背景技術】
【０００２】
従来、マルチプロセスで動作するクライアント・サーバシステムにおいて、トランザクションを実行する方法として、例えば、下記特許文献１に記載のものが知られている。
下記特許文献１に記載のものは、サーバ上（ＷＥＢサーバを包含する）のアプリケーションプロセスによって作成されたステートフルオブジェクトを当該アプリケーションプロセス上で常に動作させてトランザクションを実行する方法に関するものである。
これは、ステートフルオブジェクトが、セション管理なしに同一のアプリケーションプロセス上でトランザクションが実行できる方法であり、プロセスＩＤをステートフルオブジェクトのオブジェクトＩＤとして持たせ、その情報をクライアントオブジェクト中に返却しておき、クライアントはそのオブジェクトＩＤを用いてトランザクションの実行要求を出すようにすることで、サーバ側ではセション管理を行うことなくアプリケーションプロセスの識別ができるようにしたものである。
これにより、セション管理テーブルを保持する必要がなくなり、振り分けのためのディスクあるいはメモリの参照、更新等の管理機構が不要となる。また、セションが切れた場合においても、再び接続したときに同一のアプリケーションプロセスに実行要求を出す事ができる方法である。
【特許文献１】特開２００３−２０３０００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記特許文献１に記載の技術は、同一アプリケーションで取り扱うトランザクションサイズが一定であり、かつ問合せ応答型のトランザクション処理では有効であるが、アプリケーションプロセスで扱うトランザクションサイズが可変であり、かつサイズが大きかった場合においては、クライアント拠点に設置されたプロキシーサーバのセションタイムアウトによりセションが切断され易くなり、かつ再実行した場合にアプリケーションプロセスの識別は容易となるが、同一トランザクションデータが当該アプリケーションプロセスで多重走行する問題がある。
すなわち、セションが切断された際には、トランザクションはアプリケーションプロセス上で実行されたままであり、再接続後、同一トランザクションがクライアントより要求された場合、要求元が識別できないため、多重で走行してしまう問題である。また、先行で実行しているトランザクションは処理完了後に要求送受信機構に制御を戻すが、セションが切断されているため、送信先が失われた状態となる。
一方、後発で走行したトランザクションは、例えば業務データ更新の場合においては、先行トランザクションでデータ更新されたことで、エラーとなり、エラー結果をクライアントに送信することとなる。これにより、先行トランザクションでデータ更新に成功しているにも関わらず、クライアントユーザには失敗したものと認識され、不整合が生じる問題がある。
【０００４】
本発明の目的は、ＷＥＢシステムを前提とした情報処理システム上のトランザクション処理において、同一セションからのトランザクションの多重走行を防止し、かつ可変量のトランザクションをセションタイムアウトを発生させることなく処理することができるＷＥＢシステムにおける可変量トランザクション処理装置を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、可変量のトランザクションを受け付け、当該トランザクションを処理するアプリケーションプロセスに制御を渡す手段と、トランザクションを独自プロセスで非同期に処理し、処理結果をクライアント端末装置に通知する手段と、アプリケーションプロセスが不当に消滅した場合にコンソール装置に障害通知をする手段とを備えたことを特徴とする。
【発明の効果】
【０００６】
本発明によれば、次のような効果が得られる。
（１）トランザクションの要求元であるクライアント端末装置を一意にサーバ装置上で認識し、当該要求元が生成したアプリケーションプロセス内のオブジェクト状態を管理することで、何らかの要因によりセションが切断され、再度セション接続後に同一のトランザクション実行要求があっても多重に走行することを防ぐことが可能となる。
（２）アプリケーションプロセスを非同期化し、トランザクション処理中の間は、クライアント端末装置、サーバ装置間で一定間隔で電文を送受信することで、サイズの大きいトランザクションを扱うことが問合せ応答型のユーザインタフェースで可能となることである。すなわち、可変量のトランザクションを扱うことを考えた場合に、ユーザインタフェースを変えることなく処理を実現できる。トランザクションサイズが大きい場合（サーバ装置上での処理に時間を要する場合）においても、クライアント拠点に設置されたプロキシーサーバのセションタイムアウトに制限されることがない（セションが切断されない）。
（３）非同期化したアプリケーションプロセスを別プロセスにて状態監視することで、ＯＳからのプログラム割り込み等によるアプリケーションプロセス自身で検知できない異常終了があった場合でも不当なステータスとして情報が残ることなく、センター運用員に障害通知をすることが可能となる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明を実施する場合の一形態を図面を参照して具体的に説明する。なお、各図面において、構成要素が同一のものについては同一の符号を使用して説明する。
（１）第１の実施形態
図１は、本発明の実施の一形態のシステム構成図である。
図１において、１、２、３はトランザクションを発行するクライアント端末装置であり、ブラウザを装備する。
４は、クライアント端末装置１〜３からのトランザクションを受け付け、処理を実行するサーバ装置である。
サーバ装置４は、要求送受信機構２００、トランザクションを実行するアプリケーションプロセス３１０、アプリケーションプロセス３２０、アプリケーションプロセス３３０を有する。
４００は要求送受信機構２００、アプリケーションプロセス３１０、アプリケーションプロセス３２０、アプリケーションプロセス３３０間で共有する記憶装置であり、情報として、「要求元ＩＤ」、「プロセスＩＤ」、「状態（ステータス）」を有する。
アプリケーションプロセス３１０は、プロセスＩＤを有している。アプリケーションプロセス３１０は、クライアント端末装置１からのオブジェクト生成要求により、オブジェクトを生成する。オブジェクトは識別情報であるオブジェクトＩＤならびに要求元ＩＤを含む。ここで生成されたオブジェクトがクライアント１に渡され、以降のトランザクション実行要求の際に使用される。以上のことは、アプリケーションプロセス３２０、３３０についても同様である。
【０００８】
図２は、本実施形態に係るトランザクション実行方法の具体的な動作を説明するためのブロック図である。
図２のオブジェクト５１０、オブジェクト５２０、オブジェクト５３０は各々アプリケーションプロセス３１０、アプリケーションプロセス３２０、アプリケーションプロセス３３０にて生成されるものである。
また、クライアント端末装置にあるオブジェクト６１０は、サーバ装置内のオブジェクト５１０と同一のものである。
同様にオブジェクト６２０はオブジェクト５２０と、オブジェクト６３０はオブジェクト５３０と同一のものである。
クライアント端末装置１では、トランザクション実行に先立ちサーバ装置４に対してオブジェクト生成要求を要求元ＩＤとともに発行する。
サーバ装置４ではこの要求を要求送受信機構２００が受信する。
要求送受信機構２００では要求受信後、振り分けるべきアプリケーションプロセスを決定するが、この時、記憶装置４００を参照し、当該要求元ＩＤが存在するかチェックする。存在しなければアプリケーションプロセスＩＤと要求元ＩＤを記憶装置４００に設定する。
【０００９】
一方、当該要求元ＩＤが存在した場合で、かつ状態が「トランザクション実行中」であれば（これは同一クライアント端末装置から当該セションとは別セションで以前に処理要求があったことを意味する）、当該状態を「破棄」に設定し、新たにアプリケーションプロセスＩＤと要求元ＩＤを設定する。
ここではアプリケーションプロセス３１０に要求を振り分けたことを仮定する。アプリケーションプロセス３１０は、オブジェクト生成要求に応じてオブジェクト５１０を生成する。ここで、どのアプリケーションプロセスで生成されたものかを識別できるように、自身のプロセスＩＤをオブジェクトＩＤとして設定する。その後、アプリケーションプロセス３１０は、要求送受信機構２００を介し、生成要求元のクライアント端末装置１にオブジェクト６１０を送信する。
以降、クライアント端末装置１はトランザクション実行要求をオブジェクト６１０を使用して行う。
【００１０】
クライアント端末装置１はトランザクション実行要求をオブジェクト６１０と併せてサーバ装置４に送信する。
サーバ装置４内の要求送受信機構２００は要求を受信すると、オブジェクト情報内に設定されているオブジェクトＩＤよりアプリケーションプロセスを決定し（ここではアプリケーションプロセス３１０）、制御をアプリケーションプロセス３１０に渡す。
制御を受けたアプリケーションプロセス３１０では、トランザクション処理を実行するが、同期点取得処理直前（ここでいう同期点処理とはデータベースへのトランザクションデータの実更新等を指す）に記憶装置４００を参照し、当該アプリケーションプロセスＩＤの状態が「トランザクション実行中」であれば、同期点処理を行い、トランザクションを完結する。
一方、状態が「破棄」であればロールバック処理を行い、当該トランザクションを無効化する。すなわち、当該トランザクションのセションは何らかの要因で切断されており、戻り先がない状態になっており、かつ同一のクライアント端末装置１から別のセションで後続のトランザクション実行要求があったことを意味していることから、当該トランザクションを無効化する。
このような処理により、同一クライアント端末装置からのトランザクションの多重走行を防ぐことが可能となる。
【００１１】
（２）第２の実施形態
第２にクライアントより要求されたトランザクションを非同期化したアプリケーションプロセスで実行する具体的な動作について図３を参照して説明する。
図３において、５はＷＥＢサーバであり、サーバ装置４内にある。
要求送受信機能２００は、電文受信処理部２１０、トランザクション起動処理部２２０、電文応答処理部２３０−１、２３０−２、状態チェック処理部２４０を有する。
また、アプリケーションプロセス３１０は、トランザクション処理部３１１、処理状態更新処理部３１２を有する。
クライアント端末装置１から送信されたトランザクション実行要求は、トランザクションデータとともに電文受信処理部２１０が受信する。
電文受信処理部２１０では、受信した電文がトランザクション要求であった場合、制御をトランザクション起動処理部２２０に渡す。
【００１２】
トランザクション起動処理部２２０では、トランザクションデータ内のオブジェクトＩＤよりアプリケーションプロセスを決定し、当該アプリケーションプロセス３１０にプロセス間通信により制御を渡す。この時、トランザクションデータを記憶装置４００−２を介してアプリケーションプロセス３１０に引き渡す。また、起動にあたっては、記憶装置４００−１の状態を「トランザクション実行中」に更新する。ここからは、要求送受信機構２００とアプリケーションプロセス３１０は非同期で処理を進める。トランザクション起動処理部２２０では、アプリケーションプロセスに制御を渡した後、電文応答処理部２３０−１に制御を渡す。
電文応答処理部２３０−１では、「処理中」である旨をクライアント端末装置１に応答送信する。
【００１３】
クライアント端末装置１では、当該電文を受信すると、一定時間待ち状態となるが、この時、画面上において「処理中」のステータスを表示しておくことで、操作者にトランザクションが実行中であることを知らしめる。
クライアント端末装置１は、一定時間経過後、画面状態を遷移することなく、サーバ装置４に状態問合せ要求を行い、サーバ装置４内の電文受信処理部２１０がこれを受信し、制御を状態チェック処理部２４０に渡す。
状態チェック処理部２４０は記憶装置４００−１を参照し、当該トランザクションの状態をチェックし、「トランザクション実行中」の場合は電文応答処理部２３０−１が「処理中」である旨をクライアント端末装置１に応答送信する。
【００１４】
一方、トランザクション起動処理２２０より制御を受けたアプリケーションプロセス３１０内のトランザクション処理部３１１は、トランザクションデータに従い、処理を行う（一般的に、ここでは業務データの更新処理等を行う）。
トランザクション処理終了後、制御を処理状態更新部３１２に移し、当該処理部が記憶装置４００−１の状態を「終了」に更新する。
記憶装置４００−１の状態が「処理中」である間は、クライアント端末装置１と要求送受信機構２００が各々、状態問合せ要求ならびに状態応答送信を繰り返す。
状態チェック処理部２４０が記憶装置４００−１の状態が「終了」となったことを検知した場合は、電文応答処理部２３０−２がクライアント端末装置１にその旨を応答送信し、画面上にトランザクション終了を表示する。これにより、トランザクションサイズが大きい場合でも、クライアント拠点に設置されたプロキシーサーバによるセションタイムアウトの制限を受けることなく、処理を完結できる。
【００１５】
（３）第３の実施形態
トランザクションを非同期化したアプリケーションプロセスで実行する際の当該アプリケーションプロセスの監視の具体的な動作について図４を参照して説明する。
図４において、７００はサーバ装置４内にあり、アプリケーションプロセス３１０を監視する機能を有するプロセス監視機構である。
記憶装置４００−３は、アプリケーションプロセスの状態（起動中、停止中）を管理する機構を有する。
コンソール装置６はセンター運用員によって運用に係る操作が行われる入出力装置であるとともに、システムに障害が発生した場合にその旨を出力する機能を有する。
クライアント端末装置１からのトランザクション実行要求を受信した要求送受信機構２００では、当該機構が有するトランザクション起動処理部２２０によりアプリケーションプロセス３１０に制御が渡り、トランザクション処理部３１１でトランザクションを実行する。
前述の第２の実施形態で説明した通り、この時に記憶装置４００−１の状態を「トランザクション実行中」に更新する。
プロセス監視機構７００では、常時一定間隔で記憶記憶装置４００−１を参照し、状態が「トランザクション実行中」であり、かつ監視状態が「未」のプロセスＩＤを取得する（図では３１０）。プロセスＩＤを取得後、当該プロセスＩＤにてアプリケーションプロセスの生死の監視を一定間隔で行う。この時、記憶装置４００−１の監視状態を「実行中」に更新する。
【００１６】
次に図５で、アプリケーションプロセス３１０が何らかの要因により消滅（異常終了）した場合、これをプロセス監視機構７００が検知し、記憶装置４００−１の状態を「異常」に、監視状態を「未」に更新する。
また、記憶装置４００−３のアプリケーションプロセス管理情報に当該アプリケーションプロセス（ここでは３１０）が使用できない旨を更新する。その後、コンソール装置６に異常通知を行い、コンソール装置６では当該通知を受信後、画面にその旨を表示する。
これにより、運用オペレータに障害の発生を知らしめることが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第一実施の形態のシステム構成図である。
【図２】本実施形態に係るトランザクション処理装置の動作を説明するためのブロック図である。
【図３】トランザクションを非同期化したアプリケーションプロセスで実行する動作を説明するためのブロック図である。
【図４】非同期化したアプリケーションプロセスの監視の具体的な動作を説明するためのブロック図である。
【図５】非同期化したアプリケーションプロセスが消滅した場合の具体的な動作を説明するためのブロック図である。
【符号の説明】
【００１８】
１…クライアント端末装置、２…クライアント端末装置、３…クライアント端末装置、４…サーバ装置、５…ＷＥＢサーバ、６…コンソール装置、２００…要求送受信機構、２１０…電文受信処理部、２２０…トランザクション起動処理部、２３０…電文応答処理部、２４０…状態チェック処理部、３１０…アプリケーションプロセス、３２０…アプリケーションプロセス、３３０…アプリケーションプロセス、３１１…トランザクション処理部、３１２…処理状態更新処理部、４００…記憶装置、５１０…オブジェクト、５２０…オブジェクト、５３０…オブジェクト、６１０…オブジェクト、６２０…オブジェクト、６３０…オブジェクト、７００…プロセス監視機構。
【図１】
2006235845.tif 000003
【図２】
2006235845.tif 000004
【図３】
2006235845.tif 000005
【図４】
2006235845.tif 000006
【図５】
2006235845.tif 000007