(57)【要約】【課題】証券取引処理を高速化することを目的としている。【解決手段】処理待ちリストに入った取引トランザクションのうち、単純な買い注文トランザクションと売り注文トランザクションを抽出する抽出部と、抽出された前記買い注文トランザクションと前記売り注文トランザクションとから、一つの取引トランザクションに生成する生成部と、を有する証券取引装置である。【選択図】図４
2020091603.tif 000002
【特許請求の範囲】
【請求項１】
処理待ちリストに入った取引トランザクションのうち、単純な買い注文トランザクションと売り注文トランザクションを抽出する抽出部と、
抽出された前記買い注文トランザクションと前記売り注文トランザクションとから、一つの取引トランザクションに生成する生成部と、を有する証券取引装置。
【請求項２】
前記生成部は、
トランザクション処理が実行される取引トランザクションと、抽出された前記買い注文トランザクションと前記売り注文トランザクションとを関連付けて、前記一つの取引トランザクションとする、請求項１記載の証券取引装置。
【請求項３】
前記生成部は、
前記実行される取引トランザクションと、前記抽出された前記買い注文トランザクションと前記売り注文トランザクションと、を合計した件数が上限値未満の場合に、前記一つの取引トランザクションに生成する、請求項２記載の証券取引装置。
【請求項４】
前記生成部は、
前記実行される取引トランザクションと、前記抽出された前記買い注文トランザクションと前記売り注文トランザクションと、を合計したデータのサイズが上限値未満の場合に、前記一つの取引トランザクションに生成する、請求項３記載の証券取引装置。
【請求項５】
前記実行される取引トランザクションのトランザクションデータに含まれる情報をヘッダ情報とし、
前記実行される取引トランザクションのトランザクションデータに含まれるデータと、前記抽出された前記買い注文トランザクションと前記売り注文トランザクションのそれぞれに含まれるデータとを前記ヘッダ情報と対応付けた通信データを生成する通信データ生成部と、
前記通信データを、他の証券取引装置と同期させるコミット処理部と、を有する請求項２乃至４の何れか一項に記載の証券取引装置。
【請求項６】
コンピュータによる証券取引方法であって、前記コンピュータが、
処理待ちリストに入った取引トランザクションのうち、単純な買い注文トランザクションと売り注文トランザクションを抽出し、
抽出された前記買い注文トランザクションと前記売り注文トランザクションとから、一つの取引トランザクションに生成する、証券取引方法。
【請求項７】
処理待ちリストに入った取引トランザクションのうち、単純な買い注文トランザクションと売り注文トランザクションを抽出する処理と、
抽出された前記買い注文トランザクションと前記売り注文トランザクションとから、一つの取引トランザクションに生成する処理と、をコンピュータに実行させる、証券取引プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、証券取引装置、証券取引方法及び証券取引プログラムに関する。
【背景技術】
【０００２】
金融商品等を扱う証券取引システムでは、クライアントとなる業務アプリケーション群が、買い注文や売り注文等の膨大な数のトランザクションを実行し、データベースを管理するサーバへ、トランザクション処理を依頼する。
【０００３】
また、このような証券取引システムでは、高可用性を担保するために、正常時にトランザクション処理を行う現行サーバと複数の待機サーバとが設けられることが知られており、トランザクション処理には、データ操作と、現行サーバと待機サーバとでデータを同期させるコミット処理とが含まれる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開第２６６７８１８号公報
【特許文献２】特開２０１４−１０６５８０号公報
【特許文献３】国際公開第２０１８／０５６２６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した証券取引システムにおいて、特定の金融商品への注文が集中した場合、サーバでは、特定のテーブルに対するトランザクション処理の依頼が集中する。サーバでは、順番にトランザクション処理が行われ、実行中のトランザクション処理が完了するまで、他のトランザクション処理は実行待ち状態になるため、実行待ち状態のトランザクション処理の数が多いほど、処理時間が長くなる。
【０００６】
１つの側面では、本発明は、証券取引処理を高速化することを目的としている。
【課題を解決するための手段】
【０００７】
一つの態様では、処理待ちリストに入った取引トランザクションのうち、単純な買い注文トランザクションと売り注文トランザクションを抽出する抽出部と、抽出された前記買い注文トランザクションと前記売り注文トランザクションとから、一つの取引トランザクションに生成する生成部と、を有する証券取引装置である。
【０００８】
上記各部は、上記各部を実現する処理、各部を実現する手順としても良く、各処理をコンピュータに実行させるプログラムを記憶したコンピュータ読み取り可能な記憶媒体とすることもできる。
【発明の効果】
【０００９】
証券取引処理を高速化できる。
【図面の簡単な説明】
【００１０】
【図１】第一の実施形態の証券取引システムのシステム構成の一例を示す図である。
【図２】証券取引装置のハードウェア構成の一例を示す図である。
【図３】第一の実施形態の証券取引システムの各装置が有する機能を説明する図である。
【図４】実行取引トランザクションと待機取引トランザクションとの連結について説明する図である。
【図５】定義ファイルの一例を示す図である。
【図６】第一の実施形態の証券取引装置の動作を説明する第一のフローチャートである。
【図７】第一の実施形態の証券取引装置の動作を説明する第二のフローチャートである。
【図８】第一の実施形態の証券取引装置の動作を説明する第三のフローチャートである。
【図９】待機取引トランザクションの一括処理を説明する第一の図である。
【図１０】待機取引トランザクションの一括処理を説明する第二の図である。
【図１１】待機取引トランザクションの一括処理を説明する第三の図である。
【図１２】通信データの生成処理を説明する図である。
【図１３】第二の実施形態のデータベースシステムのシステム構成の一例を示す図である。
【図１４】第二の実施形態のサーバ装置の機能を説明する図である。
【図１５】第二の実施形態のサーバ装置の動作を説明する第一のフローチャートである。
【図１６】第二の実施形態のサーバ装置の動作を説明する第二のフローチャートである。
【図１７】第二の実施形態のサーバ装置の動作を説明する第三のフローチャートである。
【図１８】待機トランザクションの一括処理を説明する第一の図である。
【図１９】待機トランザクションの一括処理を説明する第二の図である。
【図２０】待機トランザクションの一括処理を説明する第三の図である。
【図２１】実行トランザクションによる通信データの生成処理を説明する図である。
【発明を実施するための形態】
【００１１】
（第一の実施形態）
以下に図面を参照して、第一の実施形態について説明する。図１は、第一の実施形態の証券取引システムのシステム構成の一例を示す図である。
【００１２】
本実施形態の証券取引システム１００は、証券取引装置２００−１、２００−２、２００−３と、情報処理装置３００−１、３００−２・・・、３００−ｎとを有し、各装置は、ネットワークを介して接続される。
【００１３】
証券取引装置２００−１、２００−２、２００−３は、例えば、情報処理装置３００−１、３００−２・・・、３００−ｎで実行されたトランザクションのトランザクション処理を行うサーバであり、現行サーバと待機サーバとを含む。現行サーバとは、正常時にトランザクション処理を行うサーバであり、待機サーバとは、現行サーバに異常が発生した場合に、現行サーバとなる予備サーバである。
【００１４】
以下の説明では、例えば、証券取引装置２００−１を現行サーバとし、証券取引装置２００−２、２００−３を待機サーバとして説明する。尚、証券取引装置２００−１、２００−２、２００−３のそれぞれは、証券取引処理部２１０−１、２１０−２、２１０−３を有し、それぞれは同様の機能を有する。
【００１５】
以下の説明では、証券取引装置２００−１、２００−２、２００−３を区別しない場合には、証券取引装置２００と呼び、証券取引処理部２１０−１、２１０−２、２１０−３を区別しない場合には、証券取引処理部２１０と呼ぶ。
【００１６】
情報処理装置３００−１、３００−２・・・、３００−ｎは、例えば、金融商品の売買の取次ぎや引受け等を行う証券会社等で用いられる。情報処理装置３００−１、３００−２・・・、３００−ｎのそれぞれは、業務処理部３１０−１、・・・、３１０−ｎを有する。業務処理部３１０−１、・・・、３１０−ｎは、各情報処理装置にインストールされた業務アプリケーションによって実現される。以下の説明では、情報処理装置３００−１、３００−２・・・、３００−ｎを区別しない場合には、情報処理装置３００と呼び、業務処理部３１０−１、・・・、３１０−ｎを区別しない場合には、業務処理部３１０と呼ぶ。
【００１７】
尚、証券取引システム１００に含まれる証券取引装置２００と情報処理装置３００の台数は任意の数であって良い。また、図１では、待機サーバとなる証券取引装置２００を２台としているが、待機サーバの台数も任意の数であって良い。
【００１８】
本実施形態の証券取引システム１００において、情報処理装置３００は、業務処理部３１０においてトランザクションが実行されると、証券取引装置２００（現行サーバ）に対して、トランザクション処理を依頼する。
【００１９】
尚、業務処理部３１０において実行されるトランザクションとは、例えば、有価証券（株式や債券等）の売買を行うトランザクション、注目数を変更するトランザクション、注文の取り消すトランザクション、注文内容を参照するトランザクションを含む。
【００２０】
以下の説明では、業務処理部３１０において生成されたトランザクションを取引トランザクションと呼ぶ。また、取引トランザクションに含まれる、売買を行うトランザクションを売り注文トランザクション、買い注文トランザクションと呼び、注文数を変更するトランザクションを変更トランザクションと呼び、注文を取り消すトランザクションを取り消しトランザクションと呼び、注文内容を参照するトランザクションを参照トランザクションと呼ぶ場合がある。また、売り注文トランザクションと買い注文トランザクションとをまとめて注文トランザクションと呼ぶ場合がある。
【００２１】
本実施形態の証券取引装置２００は、情報処理装置３００からトランザクション処理の依頼を受け付けた取引トランザクションのうち、売り注文トランザクションと買い注文トランザクションとを抽出して、１つの取引トランザクションとする。
【００２２】
現行サーバである証券取引装置２００−１において行われるトランザクション処理には、待機サーバである証券取引装置２００−２、２００−３と通信を行ってデータを待機サーバへコピーし、自機と待機サーバとでデータを同期させるコミット処理が含まれる。また、証券取引装置２００−１におけるトランザクション処理にかかる時間は、このコミット処理にかかる時間が大半を占める。
【００２３】
本実施形態では、複数の注文トランザクションを１つにまとめることで、注文トランザクションが削減され、注文トランザクション毎に発生する待機サーバに対するコミット処理が減り、証券取引処理を高速化できる。
【００２４】
以下に、本実施形態の証券取引装置２００について説明する。図２は、証券取引装置のハードウェア構成の一例を示す図である。
【００２５】
本実施形態の証券取引装置２００は、それぞれバスＢで相互に接続されているプロセッサ２１、メモリ２２、ＨＤＤ（hard  disk  drive）２３、出力部２４、入力部２５、ディスクドライブ２６、通信インターフェイス２７を有する。
【００２６】
入力部２５は、例えばキーボードやポインティングデバイス等の入力デバイス３１による各種の情報の入力を行う。出力部２４は、例えばディスプレイ等の出力デバイス３２による各種の情報の出力を行う。通信インターフェイス２７は、ネットワークに接続する為に用いられる。
【００２７】
証券取引処理部２１０を実現させる証券取引プログラムは、証券取引装置２００を制御する各種プログラムの少なくとも一部である。証券取引プログラムは例えば記憶媒体２８の配布やネットワークからのダウンロード等によって提供される。証券取引プログラムを記録した記憶媒体２８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記憶媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記憶媒体を用いることができる。
【００２８】
また、証券取引プログラムは、証券取引プログラムを記録した記憶媒体２８がディスクドライブ２６にセットされると、記憶媒体２８からディスクドライブ２６を介してＨＤＤ２３にインストールされる。ネットワークからダウンロードされた証券取引プログラムは、通信インターフェイス２７を介してＨＤＤ２３にインストールされる。
【００２９】
ＨＤＤ２３は、インストールされた証券取引プログラムを格納すると共に、証券取引装置２００が取得した各種の必要なファイル、データ等を格納する。メモリ２２は、証券取引装置２００の起動時にＨＤＤ２３から証券取引プログラムを読み出して格納する。そして、プロセッサ２１はメモリ２２に格納された証券取引プログラムに従って、後述するような各種処理を実現している。
【００３０】
本実施形態のメモリ２２は、例えば、揮発性メモリであり、証券取引装置２００のインメモリデータベースとなる。
【００３１】
尚、情報処理装置３００のハードウェア構成は、プロセッサとメモリとを有する情報処理装置であり、証券取引装置２００と同様であるため、説明を省略する。
【００３２】
次に、図３を参照して、本実施形態の証券取引システム１００の有する各装置の機能について説明する。図３は、第一の実施形態の証券取引システムの各装置が有する機能を説明する図である。
【００３３】
本実施形態の証券取引装置２００は、証券取引処理部２１０を有する。証券取引処理部２１０は、通信制御部２２０、排他制御部２３０、データ格納部２４０、一括判定部２５０、一括処理部２６０、通信データ生成部２７０、コミット処理部２８０、データ管理部２９０を有する。
【００３４】
通信制御部２２０は、情報処理装置３００との通信を制御する。具体的には、通信制御部２２０は、情報処理装置３００から取引トランザクションのトランザクションデータの受信を、取引トランザクション処理の実行の依頼として受け付ける。
【００３５】
また、通信制御部２２０は、受信した取引トランザクションのトランザクションデータを、受信した順に、トランザクションに受信順を付与して、データ格納部２４０のトランザクションデータ管理域２４１に格納する。
【００３６】
尚、トランザクションとは、分けることのできない一連の情報処理の単位であり、トランザクション処理とは、処理の一貫性を保証するために、関連する一連の処理全体を一個の処理単位として管理する処理を示す。トランザクションデータとは、証券取引システム１００を動作させることで蓄積されるデータであり、金融商品の取引の内容を示すデータである。
【００３７】
排他制御部２３０は、データ格納部２４０のトランザクションデータ管理域２４１にトランザクションデータが格納された取引トランザクションのうち、先頭にトランザクションデータが格納された取引トランザクションに、トランザクション処理を実行させる。また、排他制御部２３０は、その他の取引トランザクションにより、それぞれのトランザクションデータを処理待ちリスト２４２に格納させる。
【００３８】
尚、以下の説明では、トランザクション処理を実行する取引トランザクションを実行取引トランザクションと呼び、処理待ちリスト２４２にトランザクションデータを格納した取引トランザクションを待機取引トランザクションと呼ぶ。
【００３９】
また、以下の説明では、ごく短時間に複数の取引トランザクション処理の依頼を受信することを、複数のトランザクションデータを同時に受信する、と表現する場合がある。
【００４０】
データ格納部２４０は、メモリ２２上に設けられたインメモリデータベースでの一例である。データ格納部２４０には、取引トランザクションのトランザクションデータが格納される。また、データ格納部２４０は、トランザクションデータ管理域２４１と、処理待ちリスト２４２と、を有する。
【００４１】
尚、本実施形態では、データ格納部２４０は、メモリ２２上に設けられたインメモリデータベースの一例としたが、データ格納部２４０は、ＨＤＤ２３に設けられても良い。
【００４２】
トランザクションデータ管理域２４１は、通信制御部２２０が同時に複数の取引トランザクション処理の依頼を受け付けた場合の制御方法を示す情報が格納される。
【００４３】
処理待ちリスト２４２は、待機取引トランザクションのトランザクションデータが格納される。トランザクションデータ管理域２４１と処理待ちリスト２４２の詳細は後述する。
【００４４】
一括判定部２５０は、実行取引トランザクションに、トランザクションデータ管理域２４１に格納された複数の取引トランザクションのトランザクションデータを１つの取引トランザクションのトランザクションデータにまとめる処理を行うか否かを判定させる。言い換えれば、一括判定部２５０は、複数の取引トランザクションを１つの取引トランザクションにまとめるか否かを実行取引トランザクションに判定させる。
【００４５】
以下の説明では、複数の取引トランザクションを１つの取引トランザクションにまとめることを、取引トランザクションを一括する、と表現する場合がある。
【００４６】
具体的には、一括判定部２５０は、例えば、トランザクションデータ管理域２４１における待機取引トランザクションのトランザクションデータの有無や、一括する取引トランザクションの件数やデータのサイズ等に応じて、取引トランザクションを一括するか否かを判定する。一括判定部２５０による判定の際に参照される条件は、例えば、ＨＤＤ２３内の記憶領域に格納された定義ファイルに記述されていても良い。定義ファイルの詳細は後述する。
【００４７】
本実施形態では、一括判定部２５０の判定の結果に応じて、実行取引トランザクションに、処理待ちリスト２４２に格納された待機取引トランザクションを連結させることで、複数の取引トランザクションを１つの取引トランザクションとする。
【００４８】
つまり、本実施形態の一括判定部２５０は、処理待ちリスト２４２から、一括処理部２６０により一括される取引トランザクションを抽出する抽出部の一例である。
【００４９】
本実施形態の一括処理部２６０は、一括判定部２５０の判定により抽出された待機取引トランザクションを実行取引トランザクションと関連付けて、１つの取引トランザクションとする。つまり、一括処理部２６０は、一括判定部２５０の判定により抽出された買い注文トランザクションと売り注文トランザクションとから、１つの取引トランザクションを生成する生成部の一例である。
【００５０】
本実施形態の一括判定部２５０と一括処理部２６０は、実行取引トランザクションが、一括判定部２５０と一括処理部２６０に呼び出されて実行される。一括処理部２６０による処理の詳細は後述する。
【００５１】
通信データ生成部２７０は、実行取引トランザクションに、待機サーバである証券取引装置２００−２、２００−３との間でトランザクションデータを同期させるための通信データを生成させる。
【００５２】
通信データ生成部２７０は、ヘッダ設定部２７１と、データ設定部２７２とを有する。ヘッダ設定部２７１は、実行トランザクションに、通信データのヘッダ情報を設定させる。
【００５３】
データ設定部２７２は、実行トランザクションに、通信データのデータ情報を設定させる。通信データ生成部２７０の詳細は後述する。
【００５４】
コミット処理部２８０は、通信データを証券取引装置２００−２、２００−３と同期させ、証券取引装置２００−２、２００−３で通信データを確定させるコミット処理を実行する。
【００５５】
コミット処理部２８０は、具体的には、通信データを待機サーバである証券取引装置２００へ送信し、証券取引装置２００に通信データをコピーさせ、証券取引装置２００から、通信データがコピーされて確定されたことを示す応答を受け付ける処理である。
【００５６】
データ管理部２９０は、トランザクションデータ管理域２４１や処理待ちリスト２４２に格納された情報を削除する。
【００５７】
本実施形態の情報処理装置３００は、業務処理部３１０を有する。業務処理部３１０は、表示制御部３２０、関数記述部３３０、処理制御部３４０、通信制御部３５０を有する。
【００５８】
表示制御部３２０は、業務処理部３１０によって実現される業務アプリケーションの操作画面等を情報処理装置３００に表示させる。
【００５９】
関数記述部３３０は、操作に応じて処理制御部３４０によって呼び出される関数の記述を示す。処理制御部３４０は、操作に応じて、関数記述部３３０に記述された関数を呼び出して、証券取引装置２００に送信するトランザクションデータを生成する。
【００６０】
通信制御部３５０は、処理制御部３４０によって生成されたトランザクションデータを証券取引装置２００へ送信する。
【００６１】
次に、図４を参照して、本実施形態の実行取引トランザクションと待機取引トランザクションとの連結について説明する。図４は、実行取引トランザクションと待機取引トランザクションとの連結について説明する図である。
【００６２】
図４では、２つのトランザクションデータをごく短時間に受信した場合のトランザクションデータ管理域２４１の状態を示している。
【００６３】
具体的には、図４では、買い注文トランザクションと売り注文トランザクションが同時に受信されたときのトランザクションデータ管理域２４１の状態を示している。
【００６４】
ここで、取引トランザクションのトランザクションデータと、トランザクションデータ管理域２４１に格納されるトランザクション管理情報について説明する。
【００６５】
トランザクションデータは、情報の項目として、項目「注文種別」、「データ」を有する、項目「注文種別」の値は、取引の種別を示す。項目「データ」の値は、取引内容を示す伝文である。具体的には、項目「データ」の値は、有価証券の銘柄番号と銘柄数量を含む。
【００６６】
本実施形態のトランザクションデータ管理域２４１に格納されるトランザクション管理情報は、トランザクションデータに、トランザクション番号と、一括処理連結情報と、排他待ち連結情報を含む情報である。
【００６７】
言い換えれば、トランザクション管理情報は、情報の項目として、項目「トランザクション番号」、「注文種別」、「データ」、「一括処理連結情報」、「排他待ち連結情報」を有する。
【００６８】
項目「トランザクション番号」の値は、トランザクションデータ管理域２４１に格納された取引トランザクションを受信した順番を示し、取引トランザクションを特定する情報である。
【００６９】
項目「一括処理連結情報」の値は、対応するトランザクション番号で特定される取引トランザクションに連結される取引トランザクションのトランザクション番号を示す。言い換えれば、項目「一括処理連結情報」の値は、トランザクション番号で特定される取引トランザクションを、実行トランザクションと対応づける情報である。
【００７０】
項目「排他待ち連結情報」の値は、対応するトランザクション番号で特定される取引トランザクションの直後に待機状態とされた取引トランザクションのトランザクション番号を示す。
【００７１】
図４では、買い注文トランザクションのトランザクションデータにトランザクション番号「Ｎｏ．１」が付与され、売り注文トランザクションのトランザクションデータにトランザクション番号「Ｎｏ．２」が付与されている。
【００７２】
したがって、先頭の取引トランザクションである買い注文トランザクションは、実行取引トランザクションとなる。また、売り注文トランザクションは、待機取引トランザクションとなり、トランザクションデータが処理待ちリスト２４２に格納される。
【００７３】
ここで、２つの取引トランザクションの注文種別が買い注文と売り注文である。また、取引トランザクションの件数とデータサイズの合計が上限値未満であるとする。したがって、一括判定部２５０は、この２つの取引トランザクションを一括するものと判定する。
【００７４】
この判定を受けて、一括処理部２６０は、２つの取引トランザクションを一括する。具体的には、一括処理部２６０は、実行取引トランザクションに、トランザクション番号Ｎｏ．１と対応する一括処理連結情報の値を、一括される待機取引トランザクションのトランザクション番号Ｎｏ．２とする処理を実行させる。
【００７５】
そして、本実施形態では、この処理により、トランザクション番号Ｎｏ．１の買い注文トランザクションと、トランザクション番号Ｎｏ．２の売り注文トランザクションとが連結されて、１つの仮想的な取引トランザクションとなる。
【００７６】
尚、図４の例では、トランザクション番号Ｎｏ．１の実行取引トランザクションと連結される待機トランザクションは、トランザクション番号Ｎｏ．２の売り注文トランザクションのみである。したがって、トランザクション番号Ｎｏ．２の売り注文トランザクションの一括処理連結情報の値は、「なし」となる。
【００７７】
次に、図５を参照して、一括判定部２５０によって参照される定義ファイルについて説明する。図５は、定義ファイルの一例を示す図である。
【００７８】
定義ファイル５０では、実行取引トランザクションが、トランザクションデータ管理域２４１にトランザクションデータが格納された取引トランザクションを一括するか否かを判定する際の上限値が記述５１に示されている。
【００７９】
本実施形態では、このように、各種の判定の際に参照される上限値は、ＨＤＤ２３内に定義ファイルとして記述されていても良い。
【００８０】
次に、図６乃至図８を参照して、本実施形態の証券取引装置２００の動作について説明する。図６は、第一の実施形態の証券取引装置の動作を説明する第一のフローチャートである。
【００８１】
本実施形態の証券取引装置２００の証券取引処理部２１０は、証券取引処理部２１０の通信制御部２２０により、取引トランザクションのトランザクション処理の依頼を受け付ける（ステップＳ６０１）。言い換えれば、通信制御部２２０は、取引トランザクションのトランザクションデータを受信する。
【００８２】
続いて、通信制御部２２０は、受信したトランザクションデータをトランザクションデータ管理域２４１へ、受信した順番を示す番号を付与して、受信順に格納する（ステップＳ６０２）。尚、ここでは、トランザクションデータ管理域２４１において、項目「トランザクション番号」、「注文種別」、「データ」の値が格納される。尚、ステップＳ６０２の処理は、実行取引トランザクションと、待機取引トランザクションとのそれぞれが並行して行っても良い。
【００８３】
続いて、排他制御部２３０は、トランザクション処理が依頼された取引トランザクションに、排他制御を獲得したか否かを判定させる（ステップＳ６０３）。言い換えれば、排他制御部２３０は、トランザクション処理が依頼された取引トランザクションが実行取引トランザクションとなったか否かを判定している。
【００８４】
ステップＳ６０３において、排他制御が獲得されない場合、つまり、トランザクション処理が依頼された取引トランザクションが待機取引トランザクションとなった場合、排他制御部２３０は、待機取引トランザクションのトランザクションデータを処理待ちリスト２４２に格納させ（ステップＳ６０４）、依頼されたトランザクション処理を終了する。
【００８５】
ステップＳ６０３において、排他制御が獲得された場合、つまり、トランザクション処理が依頼された取引トランザクションが実行取引トランザクションとなった場合、証券取引処理部２１０は、実行取引トランザクションに、一括判定部２５０を呼び出させ、処理待ちリスト２４２に待機取引トランザクションのトランザクションデータが格納されているか否かを判定させる（ステップＳ６０５）。
【００８６】
ステップＳ６０５において、該当するトランザクションデータが存在しない場合、証券取引処理部２１０は、後述するステップＳ６０７に進む。
【００８７】
ステップＳ６０５において、該当するトランザクションデータが存在する場合、一括処理部２６０は、実行取引トランザクションに、一括処理部２６０を呼び出させ、待機取引トランザクションの一括処理を実行させる（ステップＳ６０６）。ステップＳ６０６の処理の詳細は後述する。
【００８８】
続いて、証券取引処理部２１０は、通信データ生成部２７０により、実行取引トランザクションに、通信データの生成処理を実行させる（ステップＳ６０７）。ステップＳ６０７の詳細は後述する。
【００８９】
続いて、証券取引処理部２１０は、コミット処理部２８０により、ステップＳ６０７で生成された通信データを、待機サーバとの間で同期させるコミット処理を行う（ステップＳ６０８）。
【００９０】
続いて、証券取引処理部２１０は、データ管理部２９０により、処理待ちリスト２４２からステップＳ６０６で取得された待機取引トランザクションのトランザクションデータを削除する（ステップＳ６０９）。
【００９１】
続いて、証券取引処理部２１０は、排他制御部２３０による排他制御を解放する（ステップＳ６１０）。
【００９２】
続いて、証券取引処理部２１０は、データ管理部２９０により、トランザクションデータ管理域２４１から、ステップＳ６０６で一括された取引トランザクションのトランザクション管理情報を削除し（ステップＳ６１１）、実行取引トランザクションのトランザクション処理を終了する。
【００９３】
次に、図７を参照して、実行取引トランザクションによる待機取引トランザクションの一括処理について説明する。図７は、第一の実施形態の証券取引装置の動作を説明する第二のフローチャートである。図７では、図６のステップＳ６０６の処理の詳細を示している。また、図７に示す処理は、証券取引装置２００が、実行取引トランザクションに、一括処理部２６０の機能を実行させる処理である。
【００９４】
本実施形態の証券取引処理部２１０は、実行取引トランザクションに待機取引トランザクションの一括処理を開始させると、実行取引トランザクションは、一括処理件数を０件に設定する（ステップＳ７０１）。次に、実行取引トランザクションは、自身のトランザクション管理情報を一時データとして保持する（ステップＳ７０２）。
【００９５】
次に、実行取引トランザクションは、処理待ちリスト２４２に格納された待機取引トランザクションのトランザクションデータを先頭から末尾まで順次取得し、ステップＳ７０４以降の処理の繰り返しを開始する（ステップＳ７０３）。
【００９６】
実行取引トランザクションは、一括判定部２５０により、取得した待機取引トランザクションのトランザクションデータの注文種別が、買い注文又は売り注文であるか否かを判定する（ステップＳ７０４）。ステップＳ７０４において、注文種別が買い注文又は売り注文でない場合、実行取引トランザクションは、待機取引トランザクションの一括処理を終了する。
【００９７】
ステップＳ７０４において、注文種別が買い注文又は売り注文である場合、実行取引トランザクションは、一括判定部２５０により、一括した待機取引トランザクションと実行取引トランザクションとを合わせた件数が上限値未満であるか否かを判定する（ステップＳ７０５）。言い換えれば、一括判定部２５０は、判定に応じて注文した待機取引トランザクションの件数が上限値未満であるか否かを判定する。
【００９８】
ステップＳ７０５において、上限値以上であった場合、実行取引トランザクションは、待機取引トランザクションの一括処理を終了する。
【００９９】
ステップＳ７０５において、上限値未満であった場合、実行取引トランザクションは、一括判定部２５０により、一括した待機取引トランザクションのトランザクションデータと実行取引トランザクションのトランザクションデータの合計のデータサイズが上限値未満であるか否かを判定する（ステップＳ７０６）。ステップＳ７０６において、上限値以上であった場合、実行取引トランザクションは、待機取引トランザクションの一括処理を終了する。
【０１００】
ステップＳ７０６において、上限値未満である場合、実行取引トランザクションは、一括処理部２６０により、一時データとして保持したトランザクション管理情報の一括処理連結情報に、この待機取引トランザクションの情報を設定する（ステップＳ７０７）。
【０１０１】
具体的には、実行取引トランザクションは、自身のトランザクション管理情報の一括処理連結情報に、この待機取引トランザクションのトランザクション番号を設定する。
【０１０２】
続いて、実行取引トランザクションは、この待機取引トランザクションのトランザクション管理情報を一時データに追加して保存し（ステップＳ７０８）、一括処理件数をインクリメントさせる（ステップＳ７０９）。
【０１０３】
つまり、本実施形態の一括処理部２６０は、一括判定部２５０による判定に応じて抽出された待機取引トランザクションの件数が所定数未満の場合、且つ、抽出された待機取引トランザクションのデータサイズが所定数未満の場合に、抽出された待機取引トランザクションを実行取引トランザクションと関連付けて１つの取引トランザクションとする。
【０１０４】
実行取引トランザクションは、このステップＳ７０４からステップＳ７０９の処理を、処理待ちリスト２４２に格納された末尾の待機取引トランザクションのトランザクションデータまで繰り返し（ステップＳ７１０）、待機取引トランザクションの一括処理を終了する。
【０１０５】
本実施形態では、このように、注文トランザクションのうち、注文種別が買い注文又は売り注文の取引トランザクションのみを一括する対象とする。
【０１０６】
以下に、その理由について説明する。
【０１０７】
銘柄の買い注文トランザクションや売り注文トランザクションは、その殆どが、銘柄注文表に対する単一レコードの挿入処理である。このために、買い注文トランザクションと売り注文トランザクションをまとめ、１つの仮想的なトランザクションとしてコミット処理を行えば、買い注文トランザクション、売り注文トランザクションのそれぞれについてコミット処理を行う場合と比較して、トランザクション処理を高速に行うことができる。
【０１０８】
これに対して、例えば、注文数を変更する変更トランザクションでは、この変更トランザクションの順番を最後尾に移動させ、変更トランザクション以降の取引トランザクションの順番を繰り上げる必要があり、単一レコードの挿入処理とはならない。
【０１０９】
また、例えば、注文を取り消す取り消しトランザクションでは、取り消しトランザクション以降の取引トランザクションの順番を繰り上げる必要があり、単一レコードの挿入処理とはならない。
【０１１０】
このように、変更トランザクションや取り消しトランザクションは、複数行のレコード
更新が必要になるため、これらのトランザクションを一括しても、トランザクション処理の時間は短縮されない。
【０１１１】
本実施形態では、その点に着目し、銘柄注文表に対する単一レコードの挿入処理である買い注文トランザクションと売り注文トランザクションとを一括して仮想的なトランザクションしている。言い換えれば、本実施形態では、単純な買い注文トランザクションと売り注文トランザクションとを注文して一括している。
【０１１２】
また、本実施形態では、一括される取引トランザクションの件数やデータサイズに上限値を設けているため、多数の取引トランザクションが一括されたことよってトランザクション処理にかかる時間が長くなることを防止できる。
【０１１３】
次に、図８を参照して、実行取引トランザクションによる通信データの生成処理について説明する。図８は、第一の実施形態の証券取引装置の動作を説明する第三のフローチャートである。図８では、図６のステップＳ６０７の処理の詳細を示している。また、図８に示す処理は、証券取引装置２００が、実行取引トランザクションに、通信データ生成部２７０の機能を実行させる処理である。
【０１１４】
実行取引トランザクションは、通信データの生成を開始すると、通信データ生成部２７０のヘッダ設定部２７１により、トランザクションデータ管理域２４１を参照し、自身のトランザクション番号と、一括処理件数とをヘッダ情報に設定する（ステップＳ８０１）。
【０１１５】
次に、実行取引トランザクションは、データ設定部２７２により、実行取引トランザクションのトランザクション管理情報の項目「データ」の値を、通信データのデータ情報に設定する（ステップＳ８０２）。
【０１１６】
続いて、実行取引トランザクションは、一括されたトランザクション管理情報を一時データとして保持する（ステップＳ８０３）。一括されたトランザクション管理情報とは、実行取引トランザクションのトランザクション管理情報と、一括処理連結情報によって実行取引トランザクションと関連付けられた待機取引トランザクションのトランザクション管理情報とを含む。
【０１１７】
次に、実行取引トランザクションは、一括されたトランザクション管理情報において、一括処理連結情報の値が「なし」となるまで、ステップＳ８０５以下の処理を繰り返す（ステップＳ８０４）。
【０１１８】
実行取引トランザクションは、データ設定部２７２により、実行取引トランザクションのトランザクション管理情報の次のトランザクション管理情報の項目「データ」の値を通信データのデータ情報に設定する（ステップＳ８０５）。
【０１１９】
次に、実行取引トランザクションは、通信データのデータ情報に設定されたトランザクション管理情報の一括処理連結情報が示すトランザクション番号により特定されるトランザクション管理情報を一時データに保存する（ステップＳ８０６）。
【０１２０】
実行取引トランザクションは、このように、一括されたトランザクション管理情報において、一括処理連結情報の値が「なし」となると、ステップＳ８０５とステップＳ８０６の処理の繰り返しを終了し、通信データの生成処理を終了する。
【０１２１】
以下に、図９乃至図１２を参照して、本実施形態の実行取引トランザクションの処理について具体的に説明する。図９は、待機取引トランザクションの一括処理を説明する第一の図である。
【０１２２】
図９に示す状態１は、証券取引装置２００が受信した取引トランザクションのトランザクションデータがトランザクションデータ管理域２４１−１に格納されており、トランザクションＮｏ．１の取引トランザクションが実行取引トランザクションされた状態を示している。
【０１２３】
この場合、トランザクションデータ管理域２４１−１では、トランザクションデータがトランザクション管理情報の一部として格納されており、一括処理連結情報には、「なし」が設定されている。
【０１２４】
また、状態１では、処理待ちリスト２４２−１に、待機取引トランザクションとされたトランザクション番号Ｎｏ．２以降の取引トランザクションのトランザクションデータが格納される。
【０１２５】
状態１では、トランザクション番号Ｎｏ．１の取引トランザクションは、実行取引トランザクションであり、処理待ちリスト２４２−１に格納されていない。したがって、状態１において、トランザクション番号Ｎｏ．１の排他待ち連結情報の値は、「なし」となる。また、トランザクション番号Ｎｏ．２の取引トランザクションは、待機取引トランザクションであり、直後に処理待ちになったトランザクションのトランザクション番号が、Ｎｏ．３である。したがって、状態１において、トランザクション番号Ｎｏ．２の排他待ち連結情報の値は、「Ｎｏ．３」となる。
【０１２６】
また、トランザクション番号Ｎｏ．５の取引トランザクションは、待機トランザクションであり、トランザクション番号Ｎｏ．５の直後に処理待ちになったトランザクションが存在しない。したがって、状態１において、トランザクション番号Ｎｏ．５の排他待ち連結情報の値は、「なし」となる。
【０１２７】
また、処理待ちリスト２４２−１では、処理待ちリスト２４２−１における先頭の待機取引トランザクションのトランザクション番号がＮｏ．２であることを示す情報も格納される。
【０１２８】
図９に示す状態２は、実行取引トランザクションによる待機取引トランザクションの一括処理が行われた後の状態を示している。
【０１２９】
状態２では、トランザクションデータ管理域２４１−２では、各トランザクション管理情報について、一括処理連結情報の値が設定され、処理待ちリスト２４２−２では、待機トランザクションのトランザクションデータが削除されている。
【０１３０】
トランザクションデータ管理域２４１−１において、待機取引トランザクションの注文種別が全て買い注文又は売り注文であるため、処理待ちリスト２４２−１に保持されている待機取引トランザクションは、全て実行取引トランザクションと一括される。
【０１３１】
処理待ちリスト２４２−１の先頭に格納されているトランザクションデータは、トランザクション番号Ｎｏ．２の取引トランザクションである。したがって、実行取引トランザクションは、自身のトランザクション管理情報の項目「一括処理連結情報」の値を、Ｎｏ．２とする。
【０１３２】
トランザクションＮｏ．２の次に処理待ちリスト２４２−１に格納されているトランザクションデータは、トランザクション番号Ｎｏ．３の待機取引トランザクションのトランザクションデータである。したがって、実行取引トランザクションは、トランザクションＮｏ．２のトランザクション管理情報の項目「一括処理連結情報」の値を、「Ｎｏ．３」とする。
【０１３３】
また、処理待ちリスト２４２−１に最後にトランザクションデータが格納された待機取引トランザクションのトランザクション番号は、Ｎｏ．５である。したがって、トランザクション番号Ｎｏ．５のトランザクション管理情報の項目「一括処理連結情報」の値は、「なし」となる。
【０１３４】
このようにして、実行取引トランザクションは、トランザクションデータ管理域２４１−２において、処理待ちリスト２４２−１に格納された全ての待機取引トランザクションと関連付けられる。
【０１３５】
また、処理待ちリスト２４２−１に格納されたトランザクションデータは、全て実行取引トランザクションと関連付けられたため、処理待ちリスト２４２−２では削除されている。
【０１３６】
本実施形態では、このように実行取引トランザクションと待機取引トランザクションとを一括してまとめることで、トランザクション番号Ｎｏ．１〜Ｎｏ．５までのデータが１つのトランザクションのデータ９０となる。本実施形態では、このデータ９０を１回の通信で待機サーバに送信し、コミット処理を行うことができ、通信の回数を削減することができる。
【０１３７】
図１０は、待機取引トランザクションの一括処理を説明する第二の図である。図１０の例では、受信した取引トランザクションに、注文トランザクション以外の変更トランザクションが含まれる例を示している。
【０１３８】
図１０の状態１に示すトランザクションデータ管理域２４１−３では、トランザクション番号Ｎｏ．１〜Ｎｏ．５までのトランザクションデータが、トランザクション管理情報の一部として格納されている。また、図１０の例では、注文種別から、トランザクション番号Ｎｏ．３の取引トランザクションが、変更トランザクションであることがわかる。
【０１３９】
この場合、トランザクション番号Ｎｏ．３の取引トランザクションは、他の注文トランザクションとは一括されない。
【０１４０】
図１０の状態２に示すトランザクションデータ管理域２４１−４では、トランザクション番号Ｎｏ．１、Ｎｏ．２の注文トランザクションと、トランザクション番号Ｎｏ．４、Ｎｏ．５の注文トランザクションと、がそれぞれ関連付けられていることがわかる。
【０１４１】
図１１は、待機取引トランザクションの一括処理を説明する第三の図である。図１１の例では、受信した取引トランザクションに、待機取引トランザクションが存在しない場合を示している。
【０１４２】
図１１の例では、受信した取引トランザクションが１件であり、処理待ちリスト２４２−３には待機取引トランザクションのトランザクションデータが存在しない。
【０１４３】
したがって、図１１の例では、受信した取引トランザクションが実行取引トランザクションとなり、トランザクションデータ管理域２４１−５には、トランザクション番号Ｎｏ．１のトランザクションデータのみが格納され、項目「一括処理連結情報」の値は設定されない。
【０１４４】
次に、図１２を参照して、実行取引トランザクションによる通信データの生成処理について説明する。図１２は、通信データの生成処理を説明する図である。
【０１４５】
図１２に示すトランザクションデータ管理域２４１−６では、トランザクション番号Ｎｏ．１の実行取引トランザクションに、トランザクション番号Ｎｏ．２、Ｎｏ．３の待機トランザクションが関連付けられている。
【０１４６】
この場合、実行取引トランザクションは、手順１に示すように、自身のトランザクション番号である「Ｎｏ．１」と、一括処理件数である「３」を含む情報を、通信データ１２０のヘッダ情報１２１に設定する。
【０１４７】
次に、実行取引トランザクションは、手順３に示すように、トランザクション番号Ｎｏ．１のトランザクション管理情報の項目「データ」の値であるＤＡＴＡ１を、通信データ１２０のヘッダ情報１２１の後段に設定する。
【０１４８】
次に、実行取引トランザクションは、手順３に示すように、トランザクション番号Ｎｏ．１のトランザクション管理情報の項目「一括処理連結情報」の値に設定されたトランザクション番号Ｎｏ．２の項目「データ」の値であるＤＡＴＡ２を、通信データ１２０のＤＡＴＡ１の後段に設定する。
【０１４９】
次に、実行取引トランザクションは、手順４に示すように、トランザクション番号Ｎｏ．２のトランザクション管理情報の項目「一括処理連結情報」の値に設定されたトランザクション番号Ｎｏ．３の項目「データ」の値であるＤＡＴＡ３を、通信データ１２０のＤＡＴＡ２の後段に設定する。
【０１５０】
このように通信データを生成することで、３件分の取引トランザクションのデータを１つのデータ情報１２２とすることができる。したがって、本実施形態によれば、コミット処理を１回の通信で行うことができ、ネットワーク負荷を軽減することができる。
【０１５１】
本実施形態では、以上のように、注文トランザクションをまとめることで、注文トランザクションが削減され、トランザクション毎に発生する呼びサーバに対するコミット処理の回数を減らすことができ、証券取引処理を高速化できる。具体的には、実測で最大４０倍程度まで高速化することができた。
【０１５２】
（第二の実施形態）
以下に図面を参照して、第二の実施形態について説明する。第二の実施形態は、第一の実施形態を、データベースを管理するサーバに適用した点が相違する。よって、以下の第二の実施形態の説明では、第一の実施形態との相違点について説明し、第一の実施形態と同様の機能構成を有するものには、第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【０１５３】
図１３は、第二の実施形態のデータベースシステムのシステム構成の一例を示す図である。
【０１５４】
本実施形態のデータベースシステム１００Ａは、サーバ装置２００Ａ−１、２００Ａ−２、２００Ａ−３と、情報処理装置３００Ａ−１、３００Ａ−２・・・、３００Ａ−ｎとを有し、各装置は、ネットワークを介して接続される。
【０１５５】
サーバ装置２００Ａ−１、２００Ａ−２、２００Ａ−３は、例えば、情報処理装置３００Ａ−１、３００Ａ−２・・・、３００Ａ−ｎで実行されたトランザクションのトランザクション処理を行うサーバであり、現行サーバと待機サーバとを含む。
【０１５６】
以下の説明では、例えば、サーバ装置２００Ａ−１を現行サーバとし、サーバ装置２００Ａ−２、２００Ａ−３を待機サーバとして説明する。尚、サーバ装置２００Ａ−１、２００Ａ−２、２００Ａ−３のそれぞれは、データベース管理部２１０Ａ−１、２１０Ａ−２、２１０Ａ−３を有し、それぞれは同様の機能を有する。
【０１５７】
以下の説明では、サーバ装置２００Ａ−２、２００Ａ−３を区別しない場合には、サーバ装置２００Ａと呼び、データベース管理部２１０Ａ−１、２１０Ａ−２、２１０Ａ−３を区別しない場合には、データベース管理部２１０Ａと呼ぶ。
【０１５８】
情報処理装置３００Ａ−１、３００Ａ−２・・・、３００Ａ−ｎは、処理依頼部３１０Ａ−１、・・・、３１０Ａ−ｎを有し、自機の操作に応じたトランザクションのトランザクション処理をサーバ装置２００Ａへ送信する。以下の説明では、情報処理装置３００Ａ−１、３００Ａ−２・・・、３００Ａ−ｎを区別しない場合には、情報処理装置３００Ａと呼び、処理依頼部３１０Ａ−１、・・・、３１０Ａ−ｎを区別しない場合には、処理依頼部３１０Ａと呼ぶ。
【０１５９】
本実施形態のサーバ装置２００Ａと情報処理装置３００Ａのハードウェア構成は、証券取引装置２００と同様であるから、説明を省略する。
【０１６０】
図１４は、第二の実施形態のサーバ装置の機能を説明する図である。本実施形態のサーバ装置２００Ａは、データベース管理部２１０Ａを有する。データベース管理部２１０Ａは、通信制御部２２０Ａ、排他制御部２３０Ａ、データ格納部２４０Ａ、一括判定部２５０Ａ、一括処理部２６０Ａ、通信データ生成部２７０Ａ、コミット処理部２８０Ａ、データ管理部２９０Ａを有する。また、情報処理装置３００Ａは、処理依頼部３１０Ａを有する。
【０１６１】
本実施形態の処理依頼部３１０Ａで生成されるトランザクションは、有価証券等の売買に関する取引トランザクションに限定されず、データベースに対する各種のデータ操作を示すトランザクションを含む。
【０１６２】
本実施形態のデータベース管理部２１０Ａと、処理依頼部３１０Ａのそれぞれの機能は、取り扱うトランザクションが、取引トランザクション以外のトランザクションを含む点以外は、証券取引処理部２１０、業務処理部３１０のそれぞれと同様の機能であるから、説明を省略する。
【０１６３】
尚、本実施形態では、例えば、サーバ装置２００Ａのデータ格納部２４０Ａに対して、一行の単一レコードの挿入処理であるトランザクションや、データのアップデートを示すトランザクション等を含む。
【０１６４】
本実施形態では、トランザクションデータは、処理種別と、データとを含み、一行の単一レコードの挿入処理であるトランザクションの処理種別は、ＩＮＳＥＲＴ−ＣＯＭＭＩＴ、アップデートを示すトランザクションの処理種別は、ＵＰＤＡＴＥとなる。
【０１６５】
本実施形態では、処理種別がＩＮＳＥＲＴ−ＣＯＭＭＩＴのトランザクションのみを一括して、１つの仮想的なトランザクションとする。以下の説明では、処理種別がＩＮＳＥＲＴ−ＣＯＭＭＩＴのトランザクションをインサートトランザクションと呼ぶ。
【０１６６】
尚、以下の説明では、排他制御部２３０Ａによって排他制御が獲得されたトランザクションを実行トランザクションと呼び、その他のトランザクションを待機トランザクションと呼ぶ。
【０１６７】
以下に、第二の実施形態のサーバ装置２００Ａの動作について説明する。図１５は、第二の実施形態のサーバ装置の動作を説明する第一のフローチャートである。
【０１６８】
図１５のステップＳ１５０１からステップＳ１５１１までの処理は、取引トランザクション以外のトランザクションを含む点を除いて、図６のステップＳ６０１からステップＳ６１１までの処理と同様であるから、説明を省略する。
【０１６９】
次に、図１６を参照して、本実施形態の待機トランザクションの一括処理について説明する。図１６は、第二の実施形態のサーバ装置の動作を説明する第二のフローチャートである。図１６は、図１５のステップＳ１５０６の処理の詳細を示している。
【０１７０】
図１６のステップＳ１６０１からステップＳ１６０３までの処理は、図７のステップＳ７０１からステップＳ７０３までの処理と同様あるから、説明を省略する。
【０１７１】
実行トランザクションは、一括判定部２５０Ａにより、取得した待機トランザクションのトランザクションデータの処理種別がＩＮＳＥＲＴ−ＣＯＭＭＩＴであるか否かを判定する（ステップＳ１６０４）。言い換えれば、一括判定部２５０Ａは、待機トランザクションがインサートトランザクションであるか否かを判定している。
【０１７２】
ステップＳ１６０４において、処理種別がＩＮＳＥＲＴ−ＣＯＭＭＩＴでない場合、つまり、待機トランザクションがインサートトランザクションでない場合、実行トランザクションは、待機トランザクションの一括処理を終了する。
【０１７３】
ステップＳ１６０４において、処理種別がＩＮＳＥＲＴ−ＣＯＭＭＩＴである場合、つまり、待機トランザクションがインサートトランザクションである場合、実行トランザクションは、ステップＳ１６０５以降の処理を実行する。
【０１７４】
ステップＳ１６０５からステップＳ１６１０までの処理は、図６のステップＳ６０５からステップＳ６１０までの処理と同様であるから、説明を省略する。
【０１７５】
次に、図１７を参照して、本実施形態の通信データの生成処理について説明する。図１７は、第二の実施形態のサーバ装置の動作を説明する第三のフローチャートである。図１７は、図１５のステップＳ１５０７の処理の詳細を示している。
【０１７６】
図１７のステップＳ１７０１からステップＳ１７１１までの処理は、取引トランザクション以外のトランザクションを含む点を除いて、図８のステップＳ８０１からステップＳ８１１までの処理と同様であるから、説明を省略する。
【０１７７】
次に、図１８乃至図２１を参照して、本実施形態の実行トランザクションの処理について具体的に説明する。図１８は、待機トランザクションの一括処理を説明する第一の図である。
【０１７８】
図１８に示す状態１は、サーバ装置２００Ａが受信したトランザクションのトランザクションデータがトランザクションデータ管理域２４１Ａ−１に格納されており、トランザクションＮｏ．１のトランザクションが実行トランザクションにされた状態を示している。
【０１７９】
また、状態１では、処理待ちリスト２４Ａ−１に、待機トランザクションとされたトランザクション番号Ｎｏ．２以降のトランザクションのトランザクションデータが格納される。
【０１８０】
図１８に示す状態２は、実行トランザクションによる待機トランザクションの一括処理が行われた後の状態を示している。トランザクションデータ管理域２４１Ａ−２では、各トランザクション管理情報について、一括処理連結情報の値が設定され、処理待ちリスト２４２Ａ−２では、待機トランザクションのトランザクションデータが削除されている。
【０１８１】
トランザクションデータ管理域２４１Ａ−１において、待機トランザクションの処理種別が全てＩＮＳＥＲＴ−ＣＯＭＭＩＴである。このため、実行取引トランザクションは、自身のトランザクション管理情報の項目「一括処理連結情報」の値を、Ｎｏ．２とする。
【０１８２】
トランザクションＮｏ．２の次に処理待ちリスト２４２−１に格納されているトランザクションデータは、トランザクション番号Ｎｏ．３の待機トランザクションのトランザクションデータである。したがって、実行トランザクションは、トランザクションＮｏ．２のトランザクション管理情報の項目「一括処理連結情報」の値を、「Ｎｏ．３」とする。
【０１８３】
このようにして、実行トランザクションは、トランザクションデータ管理域２４１Ａ−２において、処理待ちリスト２４２Ａ−１に格納された全ての待機トランザクションと関連付けられる。
【０１８４】
また、処理待ちリスト２４２Ａ−１に格納されたトランザクションデータは、全て実行取引トランザクションと関連付けられたため、処理待ちリスト２４２Ａ−２では削除されている。
【０１８５】
本実施形態では、このように実行取引トランザクションと待機取引トランザクションとを一括してまとめることで、トランザクション番号Ｎｏ．１〜Ｎｏ．５までのデータが１つのトランザクションのデータ９０Ａとなる。本実施形態では、このデータ９０Ａを１回の通信で待機サーバに送信し、コミット処理を行うことができ、通信の回数を削減することができる。
【０１８６】
図１９は、待機トランザクションの一括処理を説明する第二の図である。図１９の例では、受信したトランザクションに、処理種別がＩＮＳＥＲＴ−ＣＯＭＭＩＴ以外のトランザクションが含まれる例を示している。
【０１８７】
図１９の状態１に示すトランザクションデータ管理域２４１Ａ−３では、トランザクション番号Ｎｏ．１〜Ｎｏ．６までのトランザクションデータが、トランザクション管理情報の一部として格納されている。また、図１９の例では、処理種別から、トランザクション番号Ｎｏ．４のトランザクションが、ＵＰＤＡＴＥトランザクションであることがわかる。
【０１８８】
この場合、トランザクション番号Ｎｏ．４のトランザクションは、処理種別がＩＮＳＥＲＴ−ＣＯＭＭＩＴである他の待機トランザクションとは一括されない。
【０１８９】
図１９の状態２に示すトランザクションデータ管理域２４１Ａ−４では、トランザクション番号Ｎｏ．１〜Ｎｏ．３のトランザクションと、トランザクション番号Ｎｏ．５、Ｎｏ．６のトランザクションと、がそれぞれ関連付けられていることがわかる。
【０１９０】
図２０は、待機トランザクションの一括処理を説明する第三の図である。図２０の例では、受信したトランザクションに、待機トランザクションが存在しない場合を示している。
【０１９１】
図２０の例では、受信したトランザクションが１件であり、処理待ちリスト２４２Ａ−３には待機トランザクションのトランザクションデータが存在しない。
【０１９２】
したがって、図２０の例では、受信したトランザクションが実行トランザクションとなり、トランザクションデータ管理域２４１Ａ−５には、トランザクション番号Ｎｏ．１のトランザクションデータのみが格納され、項目「一括処理連結情報」の値は設定されない。
【０１９３】
次に、図２１を参照して、実行トランザクションによる通信データの生成処理について説明する。図２１は、実行トランザクションによる通信データの生成処理を説明する図である。
【０１９４】
図２１に示すトランザクションデータ管理域２４１Ａ−６では、トランザクション番号Ｎｏ．１の実行トランザクションに、トランザクション番号Ｎｏ．２、Ｎｏ．３の待機トランザクションが関連付けられている。
【０１９５】
この場合、実行トランザクションは、自身のトランザクション番号である「Ｎｏ．１」と、一括処理件数である「３」を含む情報を、通信データ１２０Ａのヘッダ情報１２１Ａに設定する。
【０１９６】
そして、実行トランザクションは、ヘッダ情報１２１Ａの後段に、トランザクション番号Ｎｏ．１の項目「データ」の値を設定し、その後段、トランザクション番号Ｎｏ．２の項目「データ」の値を設定し、さらにその後段にトランザクション番号Ｎｏ．３の項目「データ」の値を設定する。
【０１９７】
本実施形態では、このように通信データを生成することで、３件分のトランザクションのデータを１つのデータ情報１２２Ａとすることができる。したがって、本実施形態によれば、コミット処理を１回の通信で行うことができ、ネットワーク負荷を軽減することができる。
【０１９８】
本実施形態では、以上のように、処理種別がＩＮＳＥＲＴ−ＣＯＭＭＩＴであるトランザクションをまとめることで、トランザクションが削減され、コミット処理の回数を減らすことができ、処理を高速化できる。
【０１９９】
開示の技術では、以下に記載する付記のような形態が考えられる。
（付記１）
処理待ちリストに入った取引トランザクションのうち、単純な買い注文トランザクションと売り注文トランザクションを抽出する抽出部と、
抽出された前記買い注文トランザクションと前記売り注文トランザクションとから、一つの取引トランザクションに生成する生成部と、を有する証券取引装置。
（付記２）
前記生成部は、
トランザクション処理が実行される取引トランザクションと、抽出された前記買い注文トランザクションと前記売り注文トランザクションとを関連付けて、前記一つの取引トランザクションとする、付記１記載の証券取引装置。
（付記３）
前記生成部は、
前記実行される取引トランザクションと、前記抽出された前記買い注文トランザクションと前記売り注文トランザクションと、を合計した件数が上限値未満の場合に、前記一つの取引トランザクションに生成する、付記２記載の証券取引装置。
（付記４）
前記生成部は、
前記実行される取引トランザクションと、前記抽出された前記買い注文トランザクションと前記売り注文トランザクションと、を合計したデータのサイズが上限値未満の場合に、前記一つの取引トランザクションに生成する、付記３記載の証券取引装置。
（付記５）
前記実行される取引トランザクションのトランザクションデータに含まれる情報をヘッダ情報とし、
前記実行される取引トランザクションのトランザクションデータに含まれるデータと、前記抽出された前記買い注文トランザクションと前記売り注文トランザクションのそれぞれに含まれるデータとを前記ヘッダ情報と対応付けた通信データを生成する通信データ生成部と、
前記通信データを、他の証券取引装置と同期させるコミット処理部と、を有する付記２乃至４の何れか一項に記載の証券取引装置。
（付記６）
コンピュータによる証券取引方法であって、前記コンピュータが、
処理待ちリストに入った取引トランザクションのうち、単純な買い注文トランザクションと売り注文トランザクションを抽出し、
抽出された前記買い注文トランザクションと前記売り注文トランザクションとから、一つの取引トランザクションに生成する、を有する証券取引方法。
（付記７）
処理待ちリストに入った取引トランザクションのうち、単純な買い注文トランザクションと売り注文トランザクションを抽出する処理と、
抽出された前記買い注文トランザクションと前記売り注文トランザクションとから、一つの取引トランザクションに生成する処理と、をコンピュータに実行させる、証券取引プログラム。
（付記８）
処理待ちリストに入ったトランザクションのうち、一行の単一レコードの挿入処理であるインサートトランザクションを抽出する抽出部と、
抽出された前記インサートトランザクションから、一つのトランザクションに生成する生成部と、を有するサーバ装置。
（付記９）
前記生成部は、
トランザクション処理が実行されるトランザクションと、抽出された前記インサートトランザクションとを関連付けて、前記一つのトランザクションとする、付記８記載のサーバ装置。
（付記１０）
前記生成部は、
前記実行されるトランザクションと、前記抽出されたインサートトランザクションと、を合計した件数が上限値未満の場合に、前記一つのトランザクションに生成する、付記９記載のサーバ装置。
（付記１１）
前記生成部は、
前記実行されるトランザクションと、前記抽出されたインサートトランザクションと、を合計したデータのサイズが上限値未満の場合に、前記一つのトランザクションに生成する、付記１０記載のサーバ装置。
（付記１２）
前記実行されるトランザクションのトランザクションデータに含まれる情報をヘッダ情報とし、
前記実行されるトランザクションのトランザクションデータに含まれるデータと、前記抽出されたインサートトランザクションのそれぞれに含まれるデータとを前記ヘッダ情報と対応付けた通信データを生成する通信データ生成部と、
前記通信データを、他のサーバ装置と同期させるコミット処理部と、を有する付記９乃至１１の何れか一項に記載のサーバ装置。
（付記１３）
コンピュータによるデータベース管理方法であって、前記コンピュータが、
処理待ちリストに入ったトランザクションのうち、一行の単一レコードの挿入処理であるインサートトランザクションを抽出し、
抽出された前記インサートトランザクションから、一つの取引トランザクションに生成する、を有するデータベース管理方法。
（付記１４）
処理待ちリストに入ったトランザクションのうち、一行の単一レコードの挿入処理であるインサートトランザクションを抽出する処理と、
抽出された前記インサートトランザクションから、一つの取引トランザクションに生成する処理と、をコンピュータに実行させる、データベース管理プログラム。
【符号の説明】
【０２００】
１００  証券取引システム
１００Ａ  データベースシステム
２００  証券取引装置
２００Ａ  サーバ装置
２１０  証券取引処理部
２１０Ａ  データベース管理部
２２０、２２０Ａ  通信制御部
２３０、２３０Ａ  排他制御部
２４０、２４０Ａ  データ格納部
２４１、２４１Ａ  トランザクションデータ管理域
２４２、２４２Ａ  処理待ちリスト
２５０、２５０Ａ  一括判定部
２６０、２６０Ａ  一括処理部
２７０、２７０Ａ  通信データ生成部
２８０、２８０Ａ  コミット処理部
２９０、２９０Ａ  データ管理部
３００、３００Ａ  情報処理装置
３１０  業務処理部
３１０Ａ  処理依頼部
【図１】
2020091603.tif 000003
【図２】
2020091603.tif 000004
【図３】
2020091603.tif 000005
【図４】
2020091603.tif 000006
【図５】
2020091603.tif 000007
【図６】
2020091603.tif 000008
【図７】
2020091603.tif 000009
【図８】
2020091603.tif 000010
【図９】
2020091603.tif 000011
【図１０】
2020091603.tif 000012
【図１１】
2020091603.tif 000013
【図１２】
2020091603.tif 000014
【図１３】
2020091603.tif 000015
【図１４】
2020091603.tif 000016
【図１５】
2020091603.tif 000017
【図１６】
2020091603.tif 000018
【図１７】
2020091603.tif 000019
【図１８】
2020091603.tif 000020
【図１９】
2020091603.tif 000021
【図２０】
2020091603.tif 000022
【図２１】
2020091603.tif 000023