(57)【特許請求の範囲】
【請求項１】
トランザクション処理プロセスで使用する関数をそれぞれ含む複数のライブラリを格納する呼出ライブラリ格納領域から前記ライブラリを呼び出してクライアント装置からの要求を処理する第一の制御部と、
前記ライブラリのうち複数の置換対象のライブラリについて置換すべきライブラリを順次ロードするロード処理を行う第二の制御部とを有し、
前記第二の制御部が、前記置換対象のライブラリのうち優先度の高いライブラリから順にロードし、
前記置換対象のライブラリのうちの一部のライブラリについてロードが完了したときに、前記第二の制御部が、全てのライブラリについてのロード処理を完了する前にロードが完了した前記一部のライブラリを呼び出し可能な状態にし、
前記第二の制御部は、前記置換対象のライブラリのロード処理を開始してからの経過時間の測定する測定手段を備え、
前記経過時間が予め定めた時間を超えたときに、ロードが完了した前記一部のライブラリを呼び出し可能な状態にするトランザクション処理装置。
【請求項２】
前記ライブラリの優先度を管理する優先度管理手段を有し、
前記優先度管理手段は、呼出頻度の高い関数を含むライブラリを前記優先度の高いライブラリとする請求項１に記載のトランザクション処理装置。
【請求項３】
前記第一の制御部により呼び出されるライブラリの世代情報を示す呼出世代情報と、
前記第二の制御部による前記ロード処理が完了した時点での前記置換すべきライブラリの世代情報を示すロード世代情報と、
前記置換対象のライブラリについて前記置換すべきライブラリのロードが完了したか否かを示すライブラリロード状況情報とを備えた管理テーブルを有し、
前記置換対象となっているあるライブラリについての、前記呼出世代情報と前記ロード世代情報とが異なり、かつ、前記ライブラリロード状況情報がロードが完了したことを示している場合に、前記第二の制御部が、前記あるライブラリを呼び出し可能な状態にする請求項１または２に記載のトランザクション処理装置。
【請求項４】
ロードが完了した前記一部のライブラリを呼び出し可能な状態にした後に、前記置換対象のライブラリのうちロードが未完了なライブラリについて前記第一の制御部からロード依頼要求のあった場合、前記第二の制御部が、前記第一の制御部からロード依頼のあったライブラリのロードをするようにする請求項１乃至３のいずれか一に記載のトランザクション処理装置。
【請求項５】
ロードが完了した前記一部のライブラリを呼び出し可能な状態にした後に、前記置換対象のライブラリのうちロードが未完了なライブラリについて前記第一の制御部からのロード依頼要求がない場合、前記第二の制御部が、前記未完了であるライブラリのうちで最も優先度の高いライブラリのロードをするようにする請求項１乃至４のいずれか一に記載のトランザクション処理装置。
【請求項６】
複数のライブラリを呼び出して処理するトランザクション処理方法であって、
前記複数のライブラリのうち予め定められた優先度の高いライブラリから順にロードする第一のステップと、
前記複数のライブラリのうちの一部のライブラリについてロードが完了したときに、前記一部のライブラリを呼び出し可能な状態にする第二のステップとを有し、
前記第二のステップにおいて、前記複数のライブラリのロード処理を開始してからの経過時間の測定を測定し、前記経過時間が予め定めた時間を超えたときに、ロードが完了した前記一部のライブラリを呼び出し可能な状態にするトランザクション処理方法。
【請求項７】
呼出頻度の高い関数を含むライブラリを前記優先度の高いライブラリとする請求項６に記載のトランザクション処理方法。
【請求項８】
複数のライブラリを呼び出して処理するトランザクション処理を行う制御プログラムであって、
前記複数のライブラリのうち予め定められた優先度の高いライブラリから順にロードする第一の制御と、
前記複数のライブラリのうちの一部のライブラリについてロードが完了したときに、前記一部のライブラリを呼び出し可能な状態にする第二の制御とをコンピュータに実行させ、
前記第二の制御において、前記複数のライブラリのロード処理を開始してからの経過時間の測定を測定し、前記経過時間が予め定めた時間を超えたときに、ロードが完了した前記一部のライブラリを呼び出し可能な状態にする制御プログラム。
【請求項９】
呼出頻度の高い関数を含むライブラリを前記優先度の高いライブラリとするようにコンピュータに実行させる請求項８に記載の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、長時間の稼働が求められるトランザクション処理装置、トランザクション処理方法及び制御プログラムに関する。
【背景技術】
【０００２】
例えば、２４時間稼働することが求められるトランザクション処理装置では、アプリケーションプログラム（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ：ＡＰ）が呼び出すライブラリの置換処理の際に、クライアント装置からの処理要求の受付停止時間をできるだけ短くする必要がある。特に、サーバ装置などの大規模なトランザクション処理装置では、アプリケーションプログラムの数が多く置換が必要となるライブラリの数も多いので、ライブラリの置換処理においてクライアント装置からの処理要求の受付停止時間をできるだけ短縮することが望まれる。
【０００３】
特許文献１には、関連技術として係るトランザクション処理装置の一例であるサーバ装置について開示されている。そのサーバー装置は、ロードが完了したライブラリを格納する呼出ライブラリ格納領域からライブラリを呼び出してクライアント装置からの要求を処理する第一の制御部と、呼出ライブラリ格納領域とは異なる格納領域に新たなライブラリをロードする第二の制御部とを有している。そして、第二の制御部が置換対象のライブラリについて置換すべきライブラリのロードを全て完了した後に、第一の制御部が、新たな呼出ライブラリ格納領域を元の呼出ライブラリ格納領域から置換すべきライブラリが格納された上記異なる格納領域へと切り替えするようにしている。これにより、クライアントからの処理要求を止めることなくライブラリの置換処理が可能になるとしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１１８５２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載のトランザクション処理装置では、上述した切り替えを、置換対象のライブラリについて置換すべきライブラリのロードを全て完了した後で行う。このため、置換対象のライブラリのうち呼出頻度の高い関数を含むライブラリについても、置換対象のライブラリの全てについてロードが完了するまでは切り替えができない。これにより、置換対象のライブラリのうち呼出頻度の高い関数を含むライブラリの切り替えに要する時間が長くなるという問題がある。
【０００６】
本発明は係る問題点に鑑みてなされたものであり、置換対象のライブラリのうち呼出頻度の高い関数を含むライブラリの切り替えに要する時間を短縮することが可能なトランザクション処理装置、トランザクション処理方法及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
かかる課題を解決するために本発明は、トランザクション処理装置であって、トランザクション処理プロセスで使用する関数をそれぞれ含む複数のライブラリを格納する呼出ライブラリ格納領域から前記ライブラリを呼び出してクライアント装置からの要求を処理する第一の制御部と、前記ライブラリのうち複数の置換対象のライブラリについて置換すべきライブラリを順次ロードするロード処理を行う第二の制御部とを有し、前記第二の制御部が、前記置換対象のライブラリのうち優先度の高いライブラリから順にロードし、前記置換対象のライブラリのうちの一部のライブラリについてロードが完了したときに、前記第二の制御部が、全てのライブラリについてのロード処理を完了する前にロードが完了した前記一部のライブラリを呼び出し可能な状態にする。
また、複数のライブラリを呼び出して処理するトランザクション処理方法であって、前記複数のライブラリのうち予め定められた優先度の高いライブラリから順にロードする第一のステップと、前記複数のライブラリのうちの一部のライブラリについてロードが完了したときに、前記一部のライブラリを呼び出し可能な状態にする第二のステップとを有する。
さらに、複数のライブラリを呼び出して処理するトランザクション処理を行う制御プログラムであって、前記複数のライブラリのうち予め定められた優先度の高いライブラリから順にロードする第一の制御と、前記複数のライブラリのうちの一部のライブラリについてロードが完了したときに、前記一部のライブラリを呼び出し可能な状態にする第二の制御とをコンピュータに実行させる。
【発明の効果】
【０００８】
本発明によれば、置換対象のライブラリのうち呼出頻度の高い関数を含むライブラリの切り替えに要する時間を短縮することが可能なトランザクション処理装置、トランザクション処理方法及びその制御プログラムを提供できる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係るトランザクション処理装置の概略構成を例示する図である。
【図２】実施の形態２に係るトランザクション処理装置のハードウェア構成を例示する図である。
【図３】実施の形態２に係るトランザクション処理装置の機能的構成を例示する図である。
【図４Ａ】実施の形態２に係るトランザクション処理装置における、置換対象のライブラリのロード処理についてのフローを示すフローチャートの前半部分である。
【図４Ｂ】実施の形態２に係るトランザクション処理装置における、置換対象のライブラリのロード処理についてのフローを示すフローチャートの後半部分である。
【図５】実施の形態２に係るトランザクション処理装置における、トランザクション処理プロセスで使用する関数が含まれるライブラリの、切り替え処理のフローを示すフローチャートである。
【図６】実施の形態２に係るトランザクション処理装置における、ライブラリ置換コマンド発行手段からライブラリ置換イベントが発信された際のアプリケーションスレッドおよびライブラリ置換スレッドの具体的な動作の一例を示す図である。
【図７Ａ】実施の形態２に係るトランザクション処理装置における、図６の時点ｔ１でのライブラリ置換が発生した際の呼出関数情報、ライブラリ置換管理テーブルの推移について示す図である。
【図７Ｂ】実施の形態２に係るトランザクション処理装置における、図６の時点ｔ２でのライブラリ置換が発生した際の呼出関数情報、ライブラリ置換管理テーブルの推移について示す図である。
【図７Ｃ】実施の形態２に係るトランザクション処理装置における、図６の時点ｔ３でのライブラリ置換が発生した際の呼出関数情報、ライブラリ置換管理テーブルの推移について示す図である。
【図７Ｄ】実施の形態２に係るトランザクション処理装置における、図６の時点ｔ４でのライブラリ置換が発生した際の呼出関数情報、ライブラリ置換管理テーブルの推移について示す図である。
【図７Ｅ】実施の形態２に係るトランザクション処理装置における、図６の時点ｔ５でのライブラリ置換が発生した際の呼出関数情報、ライブラリ置換管理テーブルの推移について示す図である。
【図７Ｆ】実施の形態２に係るトランザクション処理装置における、図６の時点ｔ６でのライブラリ置換が発生した際の呼出関数情報、ライブラリ置換管理テーブルの推移について示す図である。
【図７Ｇ】実施の形態２に係るトランザクション処理装置における、図６の時点ｔ７でのライブラリ置換が発生した際の呼出関数情報、ライブラリ置換管理テーブルの推移について示す図である。
【図７Ｈ】実施の形態２に係るトランザクション処理装置における、図６の時点ｔ８でのライブラリ置換が発生した際の呼出関数情報、ライブラリ置換管理テーブルの推移について示す図である。
【図８】実施の形態２に係るトランザクション処理装置における、ライブラリ内関数一覧の一例を示す図である。
【発明を実施するための形態】
【００１０】
[実施の形態１]
以下、図面を参照して本発明の実施の形態１について説明する。
図１は、実施の形態１に係るトランザクション処理装置５００の概略構成を例示する図である。
トランザクション処理装置５００は、第一の制御部５１０と、第二の制御部５２０と、を有する。第一の制御部５１０は、トランザクション処理プロセスで使用する関数をそれぞれ含む複数のライブラリを格納する呼出ライブラリ格納領域５３０から前記ライブラリを呼び出してクライアント装置５４０からの要求を処理する。第二の制御部５２０は、前記ライブラリのうち複数の置換対象のライブラリについて置換すべきライブラリを順次ロードするロード処理を行う。なお、ライブラリの優先度は、ライブラリに含まれる関数の呼び出し頻度に基づいて決めるようにしても、予めライブラリに与えておくようにしてもよい。
【００１１】
次に、実施の形態１に係るトランザクション処理装置１００の、ライブラリのロード処理について以下で説明する。
第二の制御部５２０が、ライブラリデータベース５５０に格納された置換対象のライブラリのうち優先度の高いライブラリから順にロードする。置換対象のライブラリのうちの一部のライブラリについてロードが完了したときに、第二の制御部５２０が、全てのライブラリについてのロード処理を完了する前にロードが完了した一部のライブラリを呼び出し可能な状態にする。
【００１２】
特許文献１に開示された例では、置換対象のライブラリの全てのロードが完了した後で、ロードしたライブラリを呼び出し可能な状態にするようにしていた。このため、優先度の高いライブラリについても、ロード処理を開始してから、呼び出し可能な状態になるまでに長時間を要していた。
【００１３】
これに対し、本発明の実施の形態１では、置換対象のライブラリのうちの優先度の比較的高い一部のライブラリについてロードが完了したときに、優先度の比較的低いライブラリについてはロードがされていない。このため、優先度の比較的低いライブラリのロードに要する時間分だけ、ロード処理を開始してから、優先度の比較的高いライブラリが呼び出し可能な状態になるまでに要する時間を短縮することが可能になる。
【００１４】
[実施の形態２]
以下、図面を参照して本発明の実施の形態２について説明する。
図２は、実施の形態２に係るトランザクション処理装置１００のハードウェア構成を例示する図である。
トランザクション処理装置１００は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２、ＣＰＵ２にバス結合されたＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４、入力部６、表示部７、および入出力インタフェース８など、通常のコンピュータ装置と同様のハードウェアを備えている。トランザクション処理装置１００は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）といった外部記憶装置としての記憶部５との接続が可能になっている。
【００１５】
図３は、実施の形態２に係るトランザクション処理装置１００の機能的構成を例示する図である。
アプリケーションが実行されるトランザクション処理装置１００は、アプリケーションを実行する第一の制御部としてのアプリケーションスレッド１１０、ライブラリを置換する第二の制御部としてのライブラリ置換スレッド１２０、ライブラリを格納するライブラリ格納領域１１５を備えている。また、トランザクション処理装置１００は、ライブラリ置換状況を管理するための管理テーブルとしてのライブラリ置換管理テーブル１３０なども備えている。ライブラリ置換管理テーブル１３０は、「関数名」、その関数を含むライブラリの「ライブラリ名」、その関数を含むライブラリの置換ファイルの世代情報を示す「ロード世代番号」、その関数を含むライブラリの置換ファイルがロード済みであるか否かを示す「ロード可否」などから構成されている。ライブラリ置換管理テーブル１３０は、例えばＲＡＭ４（図２参照）などに格納されている。ロード世代情報としてのロード世代番号は、ライブラリの置換ファイルがロード処理が完了した時点でライブラリ置換スレッド１２０の起動から何回目のロード処理で取得されたものであるかを示すものである。なお、ロード世代情報は、置換ファイルのバージョン情報などであってもよい。
【００１６】
アプリケーションスレッド１１０は、アプリケーション実行手段１１１、優先度管理手段としての呼出関数情報更新手段１１２、ライブラリロード依頼手段１１３などを備えている。アプリケーション実行手段１１１は、アプリケーションの実行を行うものである。呼出関数情報更新手段１１２は、アプリケーション実行手段１１１に呼び出しされる関数の呼出頻度に関する情報（呼出関数情報１１４）の管理および更新をするものである。ライブラリロード依頼手段１１３は、必要なライブラリのロードをライブラリロード手段１２１に依頼するものである。呼出関数情報１１４は、クライアント装置１１６から呼び出しされる関数の「関数名」、その関数が呼び出しされた回数を示す「呼出回数」、その関数を含むライブラリの「ライブラリ名」、その関数の呼び出し先になっているライブラリファイルの世代情報を示す「呼出世代番号」などから構成される。呼出関数情報１１４は、例えばＲＡＭ４（図２参照）などに格納されている。呼出世代情報としての呼出世代番号は、クライアント装置１１６から呼び出しされる関数の呼び出し先になっているライブラリファイルがライブラリ置換スレッド１２０の起動から何回目のロード処理で取得されたものであるかを示すものである。なお、呼出世代情報は、呼び出し先に相当するライブラリファイルのバージョン情報などであってもよい。
【００１７】
ライブラリ置換スレッド１２０は、ライブラリロード手段１２１、ロード対象ライブラリ決定手段１２２、ライブラリ置換テーブル更新手段１２３などを備えている。ライブラリロード手段１２１は、ライブラリ置換コマンド発行手段３１０からライブラリを置換する命令（コマンド）の信号（ライブラリ置換イベント）を受けてライブラリデータベース２１０内にあるライブラリのロード処理を開始する。なお、ライブラリデータベース２１０は、例えば、記憶部５に構成される。ライブラリ置換コマンド発行手段３１０は、置換対象のライブラリ内にある関数の一覧（ライブラリ内関数一覧４００）を作成し、ライブラリ内関数一覧格納部４０１に格納する。また、ライブラリロード手段１２１は、あるライブラリについて、ライブラリロード依頼手段１１３からロード依頼を受けた場合に、そのライブラリについてロードを行うようにする。
【００１８】
ロード対象ライブラリ決定手段１２２は、ライブラリ置換管理テーブル１３０を参照し、ロードするライブラリを決定するものである。ライブラリ置換テーブル更新手段１２３は、ライブラリ置換管理テーブル１３０の情報を更新するものである。
【００１９】
ライブラリ置換スレッド１１０が置換対象のライブラリのロード処理を行っている間は、ライブラリ置換スレッド１１０がロードしたライブラリの置換ファイルを格納する領域をアプリケーションスレッド１１０の呼出ライブラリ格納領域に切り替えできないようにロックする。ライブラリ置換スレッド１１０がロードしたライブラリの置換ファイルを格納する領域をアプリケーションスレッド１１０の呼出ライブラリ格納領域に切り替えできるようにするためには、ライブラリ置換スレッド１１によるロード処理を中断してロックを解除する必要がある。
【００２０】
なお、アプリケーションプログラムとは、特定の目的のために設計され、特定の処理を行うためのプログラムをいう。ライブラリとは、汎用性の高い複数のプログラム（関数）を、アプリケーションプログラムなどの他のプログラムから利用できるような形でひとまとまりにしたものである。ライブラリ自体は、単独で呼び出すことはできず、例えば、アプリケーションプログラムに呼び出されることによりその一部として動作する。また、ロードとは、外部記憶装置に記憶されているデータ、プログラム、ライブラリなどをＲＡＭ４などのメインメモリに読み込むことをいう。
【００２１】
ライブラリ格納領域１１５は、トランザクション処理装置１００内におけるライブラリの格納領域で、ＲＡＭ４（図２参照）などに形成される。ライブラリ格納領域１１５は、第一ライブラリ格納領域１１５ａと第二ライブラリ格納領域１１５ｂとを有している。例えば、呼出ライブラリ格納領域に相当する領域が第一ライブラリ格納領域１１５ａの場合、ライブラリは第二ライブラリ格納領域１１５ｂにロードされる。これとは逆に、呼出ライブラリ格納領域に相当する領域が第二ライブラリ格納領域１１５ｂの場合、ライブラリは第一ライブラリ格納領域１１５ａにロードされる。
【００２２】
次に、ライブラリの置換処理の動作について説明する。
まず、置換対象のライブラリのロード処理について説明する。
図４Ａ、図４Ｂは、置換対象のライブラリのロード処理についてのフローを示すフローチャートである。
まず、ライブラリロード手段１２１がライブラリ置換コマンド発行手段３１０からライブラリ置換イベントおよび置換時間Ｔ［ｓ］を受信したときに置換対象のライブラリのロード処理を開始し（ステップＳ１）、ロード対象ライブラリ決定手段１２２が、呼出関数情報１１４を参照し呼び出し頻度（呼出回数）の最も多い関数を含むライブラリを特定する（ステップＳ２）。そして、ライブラリロード手段１２１がステップＳ２で特定したライブラリをロードするとともに、ステップＳ２で特定したライブラリのロードを開始してからの経過時間の測定を開始する（ステップＳ３）。
【００２３】
ステップＳ３に続いて、測定された経過時間が置換時間Ｔ［ｓ］以内か否かを判断する（ステップＳ４）。ステップＳ４で経過時間が置換時間Ｔ［ｓ］以内であるときは、ロード対象ライブラリ決定手段１２２が、呼出関数情報１１４およびライブラリ置換管理テーブル１３０を参照し、ロード済みのライブラリ以外で呼び出し頻度（呼出回数）が最も多い関数を含むライブラリを特定する（ステップＳ５）。続いて、ライブラリロード手段１２１がステップＳ５で特定したライブラリをロードする（ステップＳ６）。そして、ステップＳ６でロードが終了したところで処理をステップＳ４に戻す。
【００２４】
ステップＳ４で経過時間が置換時間Ｔ［ｓ］を超えているときは、ライブラリ置換管理テーブル１３０におけるすべてのライブラリのロード世代番号を更新するとともに、ロード済みのライブラリについてはロード可否を「可」、ロード済みでないライブラリについてはロード可否を「否」にする（ステップＳ７）。
【００２５】
ステップＳ７に続いて、ロード対象ライブラリ決定手段１２２が、ライブラリ置換管理テーブル１３０におけるライブラリのうちロード可否が「否」になっているものについてライブラリロード依頼手段１１３からライブラリロード手段１２１に対しライブラリのロード依頼があったか否かを判断する（ステップＳ８）。ステップＳ８でロード依頼があった場合は、ライブラリロード手段１２１が、ロード依頼があったライブラリをロードする（ステップＳ９）。そして、ステップＳ１１へと進む。
【００２６】
ステップＳ８でロード依頼がない場合は、ロード対象ライブラリ決定手段１２２が、ライブラリ置換管理テーブル１３０でロード可否が「否」になっているライブラリのうち、ライブラリロード手段１２１による呼び出し頻度（呼出回数）の最も多い関数が含まれるライブラリをロードする（ステップＳ１０）。そして、ステップＳ１１へと進む。
【００２７】
ステップＳ１１では、ライブラリ置換管理テーブル１３０において、ステップＳ９またはステップＳ１０でロードしたライブラリのロード可否を「可」に変更する（ステップＳ１１）。そして、ライブラリ置換管理テーブル１３０におけるライブラリのロード可否に「否」が無くなったか否かを判断する（ステップＳ１２）。ステップＳ１２でロード可否に「否」が無くなったと判断された場合は、ロード処理を終了する（ステップＳ１３）。ステップＳ１２でロード可否に「否」が無くなったと判断されなかった場合は、処理をステップＳ８に戻す。
【００２８】
次に、トランザクション処理プロセスで使用する関数が含まれるライブラリの、呼出ライブラリ格納領域の切り替え処理について説明する。
図５は、トランザクション処理プロセスで使用する関数が含まれるライブラリの、呼出ライブラリ格納領域の切り替え処理のフローを示すフローチャートである。
トランザクションを開始してから、まず呼び出し対象である関数を含むライブラリについて、呼出世代情報とロード世代情報とが異なっているか否かを判断する（ステップＳ１０１）。ステップＳ１０１で、呼出世代情報とロード世代情報とが異なっていない（同一である）場合は、呼び出し対象である関数の呼び出し先である呼出ライブラリ格納領域の切り替えは行わず、ライブラリの元のファイルの格納領域から呼び出し対象である関数を呼び出す（ステップＳ１０８）。そして、呼出回数を加算し（ステップＳ１０４）、トランザクション処理プロセスで使用する関数が含まれるライブラリの、切り替え処理を終了する。
【００２９】
ステップＳ１０１で、呼出世代情報とロード世代情報とが異なっている場合は、呼び出し対象の関数を含むライブラリについて、ライブラリ置換管理テーブル１３０におけるロード可否が「可」になっているか否かを判断する（ステップＳ１０２）。ステップＳ１０２でロード可否が「可」になっている場合、呼び出し対象である関数の呼び出し先である呼出ライブラリ格納領域の切り替えを行い、ロードしたライブラリの置換ファイルが格納されている格納領域から関数を呼び出す（ステップＳ１０３）。そして、呼出回数を加算し（ステップＳ１０４）、トランザクション処理プロセスで使用する関数が含まれるライブラリの、切り替え処理を終了する。
【００３０】
ステップＳ１０２でロード可否が「可」になっていない（「否」になっている）場合、ライブラリロード依頼手段１１３がライブラリロード手段１２１に対し、呼び出し対象である関数を含むライブラリのロード依頼をし、呼び出し対象の関数の呼び出しを待ち合わせる（ステップＳ１０５）。続いて、呼び出し対象である関数を含むライブラリの置換ファイルのロードが完了したか否かを判断する（ステップＳ１０６）。ステップＳ１０６で、呼び出し対象である関数を含むライブラリの置換ファイルのロードが完了していれば、呼び出し対象である関数の呼び出しを実施し（ステップＳ１０７）する。そして、呼出回数を加算し（ステップＳ１０４）、トランザクション処理プロセスで使用する関数が含まれるライブラリの、切り替え処理を終了する。
【００３１】
次に、ライブラリ置換コマンド発行手段３１０からライブラリ置換イベントが発信された際のアプリケーションスレッド１１０およびライブラリ置換スレッド１２０の具体的な動作の一例について以下で説明する。
図６は、ライブラリ置換コマンド発行手段３１０からライブラリ置換イベントが発信された際のアプリケーションスレッド１１０およびライブラリ置換スレッド１２０の具体的な動作の一例を示す図である。
また、図７は、図６のライブラリ置換が発生した際の呼出関数情報１１４、ライブラリ置換管理テーブル１３０の推移について示す図である。
【００３２】
図６に示す時点ｔ１において、ライブラリ置換コマンド発行手段３１０が、置換対象のライブラリ（ライブラリＡ、ライブラリＢ、ライブラリＣ、ライブラリＤ、ライブラリＥ）とそれらに格納されている関数名を示す図８に示すライブラリ内関数一覧４００を作成する。そして、ライブラリ置換コマンド発行手段３１０は、ライブラリ置換イベント、置換時間Ｔ［ｓ］をライブラリロード手段１２１に通知する。利用者が、ライブラリを置換し、新しいライブラリで動作するまでの許容時間としての置換時間Ｔ［ｓ］を設定するようにしてもよい。
【００３３】
図６に示す時点ｔ１での呼出関数情報１１４、ライブラリ置換管理テーブル１３０を図７Ａに示す。ライブラリ置換管理テーブル１３０において呼出回数が最も多い関数は関数ａなので、図６に示す時点ｔ１から時点ｔ２の間において、ライブラリロード手段１２１が、まず関数ａを含むライブラリＡの置換ファイルのロードを開始する。ライブラリＡの置換ファイルのロードが完了したとき、ライブラリＡの置換ファイルのロードを開始してからの経過時間は置換時間Ｔ［ｓ］以内であるので、ライブラリロード手段１２１が、ライブラリ置換管理テーブル１３０において呼出回数が関数ａに次いで多い関数ｂを含むライブラリＢの置換ファイルをロードする。ライブラリＢの置換ファイルのロードが完了したとき（時点ｔ２）において、ライブラリＡの置換ファイルのロードを開始してからの経過時間は置換時間Ｔ［ｓ］を超えているので、ライブラリＣ、ライブラリＤ、ライブラリＥについては置換ファイルのロードをせずロード処理を中断する。
【００３４】
ライブラリＢの置換ファイルのロードが完了した時点ｔ２において、ライブラリ置換テーブル更新手段１２３が、ライブラリ置換管理テーブル１３０の情報を更新する。全てのライブラリについてロード世代番号が「１」から「２」に更新されている。また、置換ファイルのロードが完了しているライブラリＡおよびライブラリＢのロード可否は「可」に、置換ファイルのロードが完了していないライブラリＣ、ライブラリＤおよびライブラリＥのロード可否は「否」となる。
【００３５】
図６に示す時点ｔ１から時点ｔ２の間において、ライブラリ置換スレッド１２０がライブラリＡの置換ファイルをロード中に、アプリケーション実行手段１１１がトランザクションを実行し、関数ａの呼び出しを行うとする。関数ａを呼び出す際に、関数ａを含むライブラリＡについて、ライブラリ置換管理テーブル１３０におけるロード世代番号と呼出関数情報１１４における呼出世代番号とを比較する。ロード世代番号と呼出世代番号とはいずれも同じ「１」なので、アプリケーション実行手段１１１は、関数ａの呼び出し先であるライブラリＡの格納領域の切り替えを行わず、ライブラリＡの元のファイルの格納領域から関数ａを呼び出す。関数ａの呼び出しが完了した後、呼出関数情報更新手段１１２が呼出関数情報１１４の呼出回数を加算する。
【００３６】
また、図６に示す時点ｔ１から時点ｔ２の間において、ライブラリ置換スレッド１２０がライブラリＢの置換ファイルをロード中に、アプリケーション実行手段１１１がトランザクションを実行し、関数ｂの呼び出しを行うとする。関数ｂの呼び出しの場合も、上述した関数ａの呼び出しの場合と同様である。
【００３７】
図６に示す時点ｔ２では、ライブラリＡの呼び出し先を元のファイルの格納領域からロードした置換ファイルの格納領域に切り替えができる状態になる。図６に示す時点ｔ２の後、アプリケーション実行手段１１１がトランザクションを実行し、関数ａの呼び出しを行うとする。関数ａを呼び出す際に、関数ａを含むライブラリＡについて、ライブラリ置換管理テーブル１３０におけるロード世代番号と呼出関数情報１１４における呼出世代番号とを比較する。呼出世代番号が「１」なのに対してロード世代番号は「２」で、両者は異なっている。また、関数ａを含むライブラリＡについて、ライブラリ置換管理テーブル１３０のロード可否は「可」になっている。このため、アプリケーション実行手段１１１は、関数ａの呼び出し先であるライブラリＡの格納領域の切り替えを行い、ロードしたライブラリＡの置換ファイルが格納されている格納領域から関数ａを呼び出す。関数ａの呼び出しが完了した後、呼出関数情報更新手段１１２が呼出関数情報１１４の呼出回数を加算する。
【００３８】
また、時点ｔ２の後、アプリケーション実行手段１１１がトランザクションを実行し、関数ｂの呼び出しを行うとする。関数ｂの呼び出しの場合も、上述した時点ｔ２の後における関数ａの呼び出しの場合と同様である。
【００３９】
図６に示す時点ｔ２での呼出関数情報１１４、ライブラリ置換管理テーブル１３０を図７Ｂに示す。図６に示す時点ｔ２の後、ライブラリロード手段１２１が、ライブラリ置換管理テーブル１３０においてロード可否が「否」となっているライブラリの置換ファイルをロードすべく、ロード処理を再開する。ロードを再開するにあたり、まずライブラリロード手段１２１が、ライブラリロード依頼手段１１３からライブラリロード依頼があるか否かを確認する。ここでは、ライブラリロード依頼は無いとする。ロード対象ライブラリ決定手段１２２が、ライブラリ置換管理テーブル１３０のロード可否「否」となっているライブラリのうち、呼出関数情報１１４の呼出回数が最も多い関数ｄを含むライブラリＤを次のロード対象と判断する。そして、ライブラリロード手段１２１が、ライブラリＤの置換ファイルのロードを開始する。
【００４０】
図６に示す、ライブラリＤの置換ファイルのロード中である時点ｔ３において、アプリケーション実行手段１１１がトランザクションを実行し関数ｃを呼び出そうとする。時点ｔ３における呼出関数情報１１４、ライブラリ置換管理テーブル１３０を図７Ｃに示す。関数ｃを呼び出そうとしたとき、関数ｃを含むライブラリＣについて、ライブラリ置換管理テーブル１３０におけるロード世代番号と呼出関数情報１１４における呼出世代番号とを比較する。呼出世代番号が「１」なのに対してロード世代番号は「２」で、両者は異なっている。しかし、関数ｃを含むライブラリＣについて、ライブラリ置換管理テーブル１３０のロード可否は「否」になっている。このため、アプリケーション実行手段１１１がトランザクションの実行を中断し、ライブラリロード依頼手段１１３がライブラリロード手段１２１に対してライブラリＣの置換ファイルのロード依頼を発信する。アプリケーション実行手段１１１は、ライブラリＣの置換ファイルのロードが完了するまでトランザクションの実行を待ち合わせる（関数ｃの呼び出し待ち）。
【００４１】
ライブラリＤの置換ファイルのロードが完了した（図６の時点ｔ４）後、ロード処理を中断し、ライブラリ置換テーブル更新手段１２３が、ライブラリ置換管理テーブル１３０の情報を更新する。時点ｔ４における呼出関数情報１１４、ライブラリ置換管理テーブル１３０を図７Ｄに示す。ライブラリ置換テーブル更新手段１２３におけるライブラリＤのロード可否が「可」に更新されている。
【００４２】
時点ｔ４の後、ロード処理を再開する。ロードを再開するにあたり、まずライブラリロード手段１２１が、ライブラリロード依頼手段１１３からライブラリロード依頼があるか否かを確認する。ここでは、ライブラリＣについてライブラリロード依頼を受けているので、ロード対象ライブラリ決定手段１２２が、ライブラリＣを次のロード対象と判断する。そして、ライブラリロード手段１２１が、ライブラリＣの置換ファイルのロードを開始する。
【００４３】
ライブラリＣの置換ファイルのロードが完了した（図６の時点ｔ５）後、ロード処理を中断し、ライブラリ置換テーブル更新手段１２３が、ライブラリ置換管理テーブル１３０の情報を更新する。時点ｔ５における呼出関数情報１１４、ライブラリ置換管理テーブル１３０を図７Ｅに示す。ライブラリ置換テーブル更新手段１２３におけるライブラリＣのロード可否が「可」に更新されている。
【００４４】
時点ｔ５の後、アプリケーション実行手段１１１がトランザクションの実行を再開し、関数ｃの呼び出しを行う。関数ｃを呼び出す際に、関数ｃを含むライブラリＣについて、ライブラリ置換管理テーブル１３０におけるロード世代番号と呼出関数情報１１４における呼出世代番号とを比較する。関数ｃを呼び出す際の、呼出関数情報１１４、ライブラリ置換管理テーブル１３０を図７Ｅに示す。呼出世代番号が「１」なのに対してロード世代番号は「２」で、両者は異なっている。また、関数ｃを含むライブラリＣについて、ライブラリ置換管理テーブル１３０のロード可否は「可」になっている。このため、アプリケーション実行手段１１１は、関数ｃの呼び出し先であるライブラリＣの格納領域の切り替えを行い、ロードしたライブラリＣの置換ファイルが格納されている格納領域から関数ｃを呼び出す。関数ｃの呼び出しが完了した後、呼出関数情報更新手段１１２が呼出関数情報１１４の呼出回数を加算する。
【００４５】
また、時点ｔ５の後、ロード処理を再開する。ロードを再開するにあたり、まずライブラリロード手段１２１が、ライブラリロード依頼手段１１３からライブラリロード依頼があるか否かを確認する。ここでは、ライブラリロード依頼は無いとする。時点ｔ５のライブラリ置換管理テーブル１３０（図７Ｅ参照）において、ライブラリ置換管理テーブル１３０のロード可否「否」となっているライブラリはライブラリＥのみである。このため、ロード対象ライブラリ決定手段１２２が、ライブラリＥが次のロード対象であると判断する。そして、ライブラリロード手段１２１が、ライブラリＥの置換ファイルのロードを開始する。
【００４６】
ライブラリＥのロード中に、アプリケーション実行手段１１１がトランザクションを実行し関数ｄを呼び出すとする。関数ｄを呼び出すとき（図６の時点ｔ６）の、呼出関数情報１１４、ライブラリ置換管理テーブル１３０を図７Ｆに示す。関数ｄを含むライブラリＤについて、ライブラリ置換管理テーブル１３０におけるロード世代番号と呼出関数情報１１４における呼出世代番号とを比較する。呼出世代番号が「１」なのに対してロード世代番号は「２」で、両者は異なっている。また、関数ｄを含むライブラリＤについて、ライブラリ置換管理テーブル１３０のロード可否は「可」になっている。このため、アプリケーション実行手段１１１は、関数ｄの呼び出し先であるライブラリＤの格納領域の切り替えを行い、ロードしたライブラリＤの置換ファイルが格納されている格納領域から関数ａを呼び出す。関数ｄの呼び出しが完了した後、呼出関数情報更新手段１１２が呼出関数情報１１４の呼出回数を加算する。ライブラリＤの呼び出し完了時（図６の時点ｔ７）の、呼出関数情報１１４、ライブラリ置換管理テーブル１３０を図７Ｇに示す。
【００４７】
ライブラリＥのロードが完了したとき（図６の時点ｔ８）の、呼出関数情報１１４、ライブラリ置換管理テーブル１３０を図７Ｈに示す。ライブラリ置換管理テーブル１３０において、ロード可否が「否」になっているライブラリはないので、ロード処理を完了する。
【００４８】
ライブラリ置換スレッド１２０がロード処理を中断した後に、アプリケーションスレッド１１０が、呼出ライブラリ格納領域に相当する領域を置換すべきライブラリが格納された上記異なる格納領域に切り替えができる状態にしている。これにより、置換対象のライブラリについて置換すべきライブラリのロードを全て完了した後で呼出ライブラリ格納領域に相当する領域を置換すべきライブラリが格納された上記異なる格納領域に切り替えができる状態にするのに対し、上記置換対象のライブラリのうち呼出頻度の高い関数を含むライブラリについての切り替えに要する時間が短縮することが可能になる。
【００４９】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、トランザクション処理装置１００は、物理的に専用化したシステム、あるいは汎用の情報処理装置において規定の処理を行うアプリケーションプログラムを呼び出すようにしたシステム、のいずれであってもよい。
【００５０】
ライブラリの優先度は、必ずしも、そのライブラリに含まれている関数の呼出頻度に基づいて決めるようにしなくてもよい。例えば、ライブラリに優先度を予め与えるようにしてもよい。
【００５１】
ロードが完了した一部のライブラリを呼び出し可能な状態にするタイミングは、必ずしも経過時間が予め定めた時間を超えたときに限るものではない。例えば、あらかじめ定めた数のライブラリのロードが完了したときに、ロードが完了した一部のライブラリを呼び出し可能な状態にするようにしてもよい。
【００５２】
（付記１）
トランザクション処理プロセスで使用する関数をそれぞれ含む複数のライブラリを格納する呼出ライブラリ格納領域から前記ライブラリを呼び出してクライアント装置からの要求を処理する第一の制御部と、
前記ライブラリのうち複数の置換対象のライブラリについて置換すべきライブラリを順次ロードするロード処理を行う第二の制御部とを有し、
前記第二の制御部が、前記置換対象のライブラリのうち優先度の高いライブラリから順にロードし、
前記置換対象のライブラリのうちの一部のライブラリについてロードが完了したときに、前記第二の制御部が、全てのライブラリについてのロード処理を完了する前にロードが完了した前記一部のライブラリを呼び出し可能な状態にするトランザクション処理装置。
（付記２）
前記ライブラリの優先度を管理する優先度管理手段を有し、
前記優先度管理手段は、呼出頻度の高い関数を含むライブラリを前記優先度の高いライブラリとする付記１に記載のトランザクション処理装置。
（付記３）
前記第二の制御部は、前記置換対象のライブラリのロード処理を開始してからの経過時間の測定する測定手段を備え、
前記経過時間が予め定めた時間を超えたときに、ロードが完了した前記一部のライブラリを呼び出し可能な状態にする付記１または２のいずれかに記載のトランザクション処理装置。
（付記４）
前記第一の制御部により呼び出されるライブラリの世代情報を示す呼出世代情報と、
前記第二の制御部による前記ロード処理が完了した時点での前記置換すべきライブラリの世代情報を示すロード世代情報と、
前記置換対象のライブラリについて前記置換すべきライブラリのロードが完了したか否かを示すライブラリロード状況情報とを備えた管理テーブルを有し、
前記置換対象となっているあるライブラリの、前記呼出世代情報と前記ロード世代情報とが異なり、かつ、前記ライブラリロード状況情報がロードが完了したことを示している場合に、前記第二の制御部が、前記あるライブラリを呼び出し可能な状態にする付記１乃至３のいずれか一に記載のトランザクション処理装置。
（付記５）
ロードが完了した前記一部のライブラリを呼び出し可能な状態にした後に、前記置換対象のライブラリのうちロードが未完了なライブラリについて前記第一の制御部からロード依頼要求のあった場合、前記第二の制御部が、前記第一の制御部からロード依頼のあったライブラリのロードをするようにする付記１乃至４のいずれか一に記載のトランザクション処理装置。
（付記６）
ロードが完了した前記一部のライブラリを呼び出し可能な状態にした後に、前記置換対象のライブラリのうちロードが未完了なライブラリについて前記第一の制御部からのロード依頼要求がない場合、前記第二の制御部が、前記未完了であるライブラリのうちで最も優先度の高いライブラリのロードをするようにする付記１乃至５のいずれか一に記載のトランザクション処理装置。
（付記７）
複数のライブラリを呼び出して処理するトランザクション処理方法であって、
前記複数のライブラリのうち予め定められた優先度の高いライブラリから順にロードする第一のステップと、
前記複数のライブラリのうちの一部のライブラリについてロードが完了したときに、前記一部のライブラリを呼び出し可能な状態にする第二のステップとを有するトランザクション処理方法。
（付記８）
呼出頻度の高い関数を含むライブラリを前記優先度の高いライブラリとする付記７に記載のトランザクション処理方法。
（付記９）
前記複数のライブラリのロード処理を開始してからの経過時間が予め定めた時間を超えたときに、前記一部のライブラリを呼び出し可能な状態にする付記７または８のいずれかに記載のトランザクション処理方法。
（付記１０）
呼び出されるライブラリの世代情報を示す呼出世代情報と、前記ロード処理が完了した時点での置換すべきライブラリの世代情報を示すロード世代情報と、前記置換すべきライブラリのロードが完了したか否かを示すライブラリロード状況情報とを備えた管理テーブルを参照し、前記複数のライブラリのあるライブラリについての、前記呼出世代情報と前記ロード世代情報とが異なり、かつ、前記ライブラリロード状況情報がロードが完了したことを示している場合に、前記あるライブラリを呼び出し可能な状態にする付記７乃至９のいずれか一に記載のトランザクション処理方法。
（付記１１）
ロードが完了した前記一部のライブラリを呼び出し可能な状態にした後に、前記複数のライブラリのうちロードが未完了なライブラリについてロード依頼要求のあった場合、ロード依頼のあったライブラリのロードをするようにする付記７乃至１０のいずれか一に記載のトランザクション処理方法。
（付記１２）
ロードが完了した前記一部のライブラリを呼び出し可能な状態にした後に、前記複数のライブラリのうちロードが未完了なライブラリについてロード依頼要求がない場合、前記未完了であるライブラリのうちで最も優先度の高いライブラリのロードをするようにする付記７乃至１１のいずれか一に記載のトランザクション処理方法。
（付記１３）
複数のライブラリを呼び出して処理するトランザクション処理を行う制御プログラムであって、
前記複数のライブラリのうち予め定められた優先度の高いライブラリから順にロードする第一の制御と、
前記複数のライブラリのうちの一部のライブラリについてロードが完了したときに、前記一部のライブラリを呼び出し可能な状態にする第二の制御とをコンピュータに実行させる制御プログラム。
（付記１４）
呼出頻度の高い関数を含むライブラリを前記優先度の高いライブラリとするようにコンピュータに実行させる付記１３に記載の制御プログラム。
（付記１５）
前記複数のライブラリのロード処理を開始してからの経過時間が予め定めた時間を超えたときに、前記一部のライブラリを呼び出し可能な状態にするようにコンピュータに実行させる付記１３または１４のいずれかに記載の制御プログラム。
（付記１６）
呼び出されるライブラリの世代情報を示す呼出世代情報と、前記ロード処理が完了した時点での置換すべきライブラリの世代情報を示すロード世代情報と、前記置換すべきライブラリのロードが完了したか否かを示すライブラリロード状況情報とを備えた管理テーブルを参照し、前記複数のライブラリのあるライブラリについての、前記呼出世代情報と前記ロード世代情報とが異なり、かつ、前記ライブラリロード状況情報がロードが完了したことを示している場合に、前記あるライブラリを呼び出し可能な状態にするようにコンピュータに実行させる付記１３乃至１５のいずれか一に記載の制御プログラム。
（付記１７）
ロードが完了した前記一部のライブラリを呼び出し可能な状態にした後に、前記複数のライブラリのうちロードが未完了なライブラリについてロード依頼要求のあった場合、ロード依頼のあったライブラリのロードをするようにコンピュータに実行させる付記１３乃至１６のいずれか一に記載の制御プログラム。
（付記１８）
ロードが完了した前記一部のライブラリを呼び出し可能な状態にした後に、前記複数のライブラリのうちロードが未完了なライブラリについてロード依頼要求がない場合、前記未完了であるライブラリのうちで最も優先度の高いライブラリのロードをするようにコンピュータに実行させる付記１３乃至１７のいずれか一に記載の制御プログラム。
【符号の説明】
【００５３】
１００  トランザクション処理装置
１１０  アプリケーションスレッド
１１１  アプリケーション実行手段
１１２  呼出関数情報更新手段
１１３  ライブラリロード依頼手段
１１４  呼出関数情報
１１５  ライブラリ格納領域
１１５ａ  第一ライブラリ格納領域
１１５ｂ  第二ライブラリ格納領域
１１６  クライアント装置
１２０  ライブラリ置換スレッド
１２１  ライブラリロード手段
１２２  ロード対象ライブラリ決定手段
１２３  ライブラリ置換テーブル更新手段
２１０  ライブラリデータベース
３１０  ライブラリ置換コマンド発行手段
４００  ライブラリ内関数一覧
４０１  ライブラリ内関数一覧格納部
５００  トランザクション処理装置
５１０  第一の制御部
５２０  第二の制御部
５３０  呼出ライブラリ格納領域
５４０  クライアント装置
【図１】
0006481437.tif 000002
【図２】
0006481437.tif 000003
【図３】
0006481437.tif 000004
【図４Ａ】
0006481437.tif 000005
【図４Ｂ】
0006481437.tif 000006
【図５】
0006481437.tif 000007
【図６】
0006481437.tif 000008
【図７Ａ】
0006481437.tif 000009
【図７Ｂ】
0006481437.tif 000010
【図７Ｃ】
0006481437.tif 000011
【図７Ｄ】
0006481437.tif 000012
【図７Ｅ】
0006481437.tif 000013
【図７Ｆ】
0006481437.tif 000014
【図７Ｇ】
0006481437.tif 000015
【図７Ｈ】
0006481437.tif 000016
【図８】
0006481437.tif 000017