IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2024-165927データ整合性維持システム及びデータ整合性維持方法
<>
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図1
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図2
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図3
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図4
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図5
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図6
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図7
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図8
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図9
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図10
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図11
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図12
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図13
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図14
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図15
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図16
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図17
  • 特開-データ整合性維持システム及びデータ整合性維持方法 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024165927
(43)【公開日】2024-11-28
(54)【発明の名称】データ整合性維持システム及びデータ整合性維持方法
(51)【国際特許分類】
   G06F 16/23 20190101AFI20241121BHJP
   G06F 9/46 20060101ALI20241121BHJP
【FI】
G06F16/23
G06F9/46 430
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023082523
(22)【出願日】2023-05-18
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】石井 陽介
(72)【発明者】
【氏名】大越 淳平
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175CA09
(57)【要約】
【課題】データ整合性を維持する際における計算リソースの消費を適切に低減することができるようにする。
【解決手段】実行中の処理におけるローカルトランザクションを分散トランザクションに昇格可能な計算機システム10において、CPU320を有し、CPU320を、処理において、既に利用されている第1リソースとは別の第2リソースへのロックを取得すること、又は、第2リソースに対して更新、挿入、又は削除の操作を実行することのいずれかが発生することを検出し、いずれかが発生することを検出した場合に、処理におけるローカルトランザクションを分散トランザクションに昇格させるように構成する。
【選択図】図2
【特許請求の範囲】
【請求項1】
実行中の処理におけるローカルトランザクションを分散トランザクションに昇格可能なデータ整合性維持システムであって、
プロセッサを有し、
前記プロセッサは、
前記処理において、既に利用されている第1リソースとは別の第2リソースへのロックを取得すること、又は、前記第2リソースに対して更新、挿入、又は削除の操作を実行することのいずれかが発生することを検出し、
いずれかが発生することを検出した場合に、前記処理における前記ローカルトランザクションを分散トランザクションに昇格させる
データ整合性維持システム。
【請求項2】
前記プロセッサは、
前記処理で実行されるメソッドの遷移を記録し、
前記処理におけるメソッドの遷移を表示し、
前記メソッドは、前記ローカルトランザクションを分散トランザクションに昇格させるための昇格メソッドを含む
請求項1に記載のデータ整合性維持システム。
【請求項3】
前記プロセッサは、
前記処理の実行において、他のプログラムを呼び出す際に、処理がローカルトランザクションであって、前記他のプログラムがリモートにある場合に、前記ローカルトランザクションに関連する情報を、前記他のプログラムに送信し、
前記ローカルトランザクションに関連する情報を用いて前記ローカルトランザクションを分散トランザクションに昇格させる
請求項1に記載のデータ整合性維持システム。
【請求項4】
処理におけるローカルトランザクションを分散トランザクションに昇格可能なデータ整合性維持システムであって、
プロセッサと、記憶部とを有し、
前記記憶部は、ローカルトランザクションを分散トランザクションに昇格させる昇格条件を複数含む昇格条件情報を記憶し、
前記プロセッサは、
前記昇格条件情報から使用する1つの昇格条件を決定し、
前記処理が決定された前記昇格条件を満たすか否かを検出し、
前記処理が前記昇格条件を満たす場合に、前記ローカルトランザクションを分散トランザクションに昇格させる
データ整合性維持システム。
【請求項5】
前記昇格条件は、既に利用されている第1リソースとは別の第2リソースに対する処理である
請求項4に記載のデータ整合性維持システム。
【請求項6】
前記昇格条件情報は、昇格条件と、前記昇格条件を適用する適用範囲とを含み、
前記プロセッサは、
前記処理の実行に関わる構成が属する範囲を前記適用範囲としている昇格条件を、使用する前記昇格条件に決定する
請求項4に記載のデータ整合性維持システム。
【請求項7】
前記昇格条件情報は、昇格条件と、前記昇格条件の適用を開始する開始日時とを含み、
前記プロセッサは、
前記複数の昇格条件の中の開始日時が現在よりも前である昇格条件を、使用する前記昇格条件に決定する
請求項4に記載のデータ整合性維持システム。
【請求項8】
前記昇格条件情報は、昇格条件についての優先度情報を更に含み、
前記プロセッサは、
適用可能な昇格条件が複数ある場合に、前記優先度情報に基づいて使用する前記昇格条件を決定する
請求項4に記載のデータ整合性維持システム。
【請求項9】
前記プロセッサは、
前記処理で実行されるメソッドの遷移を記録し、
前記処理におけるメソッドの遷移を表示し、
前記メソッドは、前記ローカルトランザクションを分散トランザクションに昇格させるための昇格メソッドを含む
請求項4に記載のデータ整合性維持システム。
【請求項10】
前記プロセッサは、
前記昇格条件情報をユーザから受け付け、受け付けた昇格条件情報を前記記憶部に格納する
請求項4に記載のデータ整合性維持システム。
【請求項11】
前記プロセッサは、
前記処理の実行において、他のプログラムを呼び出す際に、処理がローカルトランザクションであって、前記他のプログラムがリモートにある場合に、前記ローカルトランザクションに関連する情報を、前記他のプログラムに送信する
請求項4に記載のデータ整合性維持システム。
【請求項12】
実行中の処理におけるローカルトランザクションを分散トランザクションに昇格可能なデータ整合性維持システムによるデータ整合性維持方法であって、
前記処理において、既に利用している第1リソースとは別の第2リソースへのロックを取得すること、又は、前記第2リソースに対して更新、挿入、又は削除の操作を実行することのいずれかが発生することを検出し、
いずれかの発生を検出した場合に、前記処理における前記ローカルトランザクションを分散トランザクションに昇格させる
データ整合性維持方法。



【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションを実行する際のデータ整合性を維持する技術に関する。
【背景技術】
【0002】
近年、モノリス(モノシリック)のアプリケーションを、拡張性等を向上するためにマイクロサービス化することが行われている。アプリケーションをマイクロサービス化する場合においては、例えば、トランザクション処理を、ローカルトランザクションとするか分散トランザクションとするかをユーザが設定することが行われている。
【0003】
これに対して、例えば、特許文献1には、第1のリソースへのローカルトランザクションとしての処理中における第2のリソースへの接続を契機に、分散トランザクションとしての処理に置き換えることにより、マイクロサービス化におけるユーザの設定負荷を軽減する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第7395264号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、特許文献1に開示された技術においては、第2のリソースへの接続を契機に分散トランザクションとしての処理に置き換えることが行われる。分散トランザクションとしての処理においては、ローカルトランザクションとしての処理に比べて、様々な計算リソースを消費することになるので、分散トランザクションとしての処理に置き換えられた後から、このような計算リソースが消費されることとなる。
【0006】
ここで、第2のリソースへの接続を行うことが発生したとしても、必ずしも分散トランザクションとしての処理が必要とも限らず、また、その時点から分散トランザクションとしての処理が必要であるとは限らず、無駄に計算リソースが消費されてしまう虞がある。
【0007】
本発明は、上記事情に鑑みなされたものであり、その目的は、データ整合性を維持する際における計算リソースの消費を適切に低減することのできる技術を提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するため、一観点に係るデータ整合性維持装置は、実行中の処理におけるローカルトランザクションを分散トランザクションに昇格可能なデータ整合性維持システムであって、プロセッサを有し、前記プロセッサは、前記処理において、既に利用されている第1リソースとは別の第2リソースへのロックを取得すること、又は、前記第2リソースに対して更新、挿入、又は削除の操作を実行することのいずれかが発生することを検出し、いずれかが発生することを検出した場合に、前記処理における前記ローカルトランザクションを分散トランザクションに昇格させる。
【発明の効果】
【0009】
本発明によれば、データ整合性を維持する際における計算リソースの消費を適切に低減することができる。
【図面の簡単な説明】
【0010】
図1図1は、一実施形態に係る計算機システムの全体構成図である。
図2図2は、一実施形態に係る計算機システムの詳細な構成図である。
図3図3は、一実施形態に係る昇格トリガ管理表の構成図である。
図4図4は、一実施形態に係るリソースマネージャ管理表の構成図である。
図5図5は、一実施形態に係る接続先管理表の構成図である。
図6図6は、一実施形態に係るトランザクション識別情報管理表の構成図である。
図7図7は、一実施形態に係るアプリ実行全体処理のフローチャートである。
図8図8は、一実施形態に係るトランザクション開始処理及びDBアクセス処理のフローチャートである。
図9図9は、一実施形態に係る昇格条件合致判定処理のフローチャートである。
図10図10は、一実施形態に係る接続先管理表更新処理のフローチャートである。
図11図11は、一実施形態に係るトランザクション識別情報管理表更新処理のフローチャートである。
図12図12は、一実施形態に係るリモート処理のフローチャートである。
図13図13は、一実施形態に係るDBアクセス処理のフローチャートである。
図14図14は、一実施形態に係るトランザクション終了処理のフローチャートである。
図15図15は、一実施形態に係る昇格トリガ条件登録画面の構成図である。
図16図16は、一実施形態に係るトレース検索出力画面の構成図である。
図17図17は、一実施形態に係るトレースグラフの一例を示す図である。
図18図18は、一実施形態に係るトレースグラフの他の例を示す図である。
【発明を実施するための形態】
【0011】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0012】
以下の説明では、「AAA表」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAA表」を「AAA情報」と呼ぶことができる。
【0013】
また、以下の説明では、「プログラム」を動作主体として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶部及びインターフェース部のうちの少なくとも1つを用いながら行うため、処理の主語が、プロセッサ(或いは、プロセッサを有する計算機又は計算機システム)とされてもよい。プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記録メディアであってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。また、プログラムが実行されることによって実現される処理のうちの少なくとも一部が、ハードウェア回路(例えばASIC(Application Specific Integrated Circuit)又はFPGA(Field-Programmable Gate Array))によって実現されてもよい。
【0014】
図1は、一実施形態に係る計算機システムの全体構成図である。
【0015】
計算機システム10は、データ整合性維持システムの一例であり、クライアント端末100と、分散トランザクション管理サーバ200と、複数の処理サーバ300と、複数のDB(データベース)サーバ400とを含む。クライアント端末100と、分散トランザクション管理サーバ200と、複数の処理サーバ300と、複数のDBサーバ400とは、ネットワーク20を介して接続されている。ネットワーク20は、例えば、LAN(Local Area Network)やWAN(Wide Area Network)等を含むネットワークである。分散トランザクション管理サーバ200と、処理サーバ300と、DBサーバ400とは、例えば、物理サーバであってもよく、仮想サーバであってもよく、コンテナであってもよい。
【0016】
本実施形態の計算機システム10では、複数の処理サーバと、DBサーバとにより、1以上のクラスタ30が構成されている、クラスタ30は、1以上の処理サーバ300と、1以上のDBサーバ400とを含む1以上のネームスペース40に区分されている。
【0017】
図2は、一実施形態に係る計算機システムの詳細な構成図である。
【0018】
クライアント端末100は、例えば、PC(Personal Computer)等のコンピュータにより構成されている。クライアント端末100は、例えば、業務における所定の処理を実行するためにユーザにより使用される端末である。クライアント端末100は、プロセッサの一例としてのCPU(Central Processing Unit)110と、メモリ120と、外部記憶装置130と、ネットワークI/F(インターフェース)140とを含む。
【0019】
ネットワークI/F140は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワーク20を介して他の装置(例えば、分散トランザクション管理サーバ200、処理サーバ300、DBサーバ400等)と通信する。
【0020】
CPU110は、メモリ120及び/又は外部記憶装置130に格納されているプログラムに従って各種処理を実行する。
【0021】
メモリ120は、例えば、RAM(RANDOM ACCESS MEMORY)であり、CPU110で実行されるプログラムや、必要な情報を記憶する。メモリ120は、アプリケーションクライアントプログラム121を格納する。アプリケーションクライアントプログラム121は、後述するアプリケーションサーバプログラム331と通信し、共働して、所定の処理を実行する。
【0022】
外部記憶装置130は、例えば、ハードディスクやフラッシュメモリなどであり、CPU110で実行されるプログラムや、CPU110に利用されるデータを記憶する。
【0023】
分散トランザクション管理サーバ200は、例えば、PC、汎用サーバ等のコンピュータによって構成されている。分散トランザクション管理サーバ200は、分散トランザクションを管理及び制御するサーバである。分散トランザクション管理サーバ200は、プロセッサの一例としてのCPU210と、メモリ220と、外部記憶装置230と、ネットワークI/F240とを含む。
【0024】
ネットワークI/F240は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワーク20を介して他の装置(例えば、クライアント端末100、処理サーバ300、DBサーバ400等)と通信する。
【0025】
CPU210は、メモリ220及び/又は外部記憶装置230に格納されているプログラムに従って各種処理を実行する。
【0026】
メモリ220は、例えば、RAMであり、CPU210で実行されるプログラムや、必要な情報を記憶する。メモリ220は、分散トランザクション管理プログラム221と、昇格トリガ登録プログラム222と、トレース管理プログラム223とを格納する。分散トランザクション管理プログラム221は、後述する分散トランザクション管理連携プログラム433と連携して、分散トランザクションを管理する処理を実行する。昇格トリガ登録プログラム222は、ローカルトランザクションを分散トランザクションに昇格させる昇格条件等の昇格条件情報を登録するための処理を実行する。トレース管理プログラム223は、処理の実行時におけるメソッドの履歴を収集し、メソッドの履歴に基づいてメソッドのトレース情報を表示させる処理を行う。
【0027】
外部記憶装置230は、例えば、ハードディスクやフラッシュメモリなどであり、CPU210で実行されるプログラムや、CPU210に利用されるデータを記憶する。本実施形態では、外部記憶装置230は、例えば、処理で実行されたメソッドの履歴情報を格納する。
【0028】
処理サーバ300は、例えば、PC、汎用サーバ等のコンピュータによって構成されている。処理サーバ300は、ネットワークI/F310と、プロセッサの一例としてのCPU320と、記憶部の一例としてのメモリ330と、外部記憶装置340と、を含む。
【0029】
ネットワークI/F310は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワーク20を介して他の装置(例えば、クライアント端末100、分散トランザクション管理サーバ200、DBサーバ400等)と通信する。
【0030】
CPU320は、メモリ330及び/又は外部記憶装置340に格納されているプログラムに従って各種処理を実行する。
【0031】
メモリ330は、例えば、RAMであり、CPU320で実行されるプログラムや、必要な情報を記憶する。メモリ330は、アプリケーションサーバプログラム331と、DB接続クライアントプログラム332と、プロキシプログラム333と、昇格トリガ管理表334と、リソースマネージャ管理表335と、トランザクション識別情報管理表336と、接続先管理表337と、を格納する。
【0032】
アプリケーションサーバプログラム331は、アプリケーションクライアントプログラム121と通信し、共働して、所定の処理を実行する。DB接続クライアントプログラム332は、DBサーバ400の後述するDBサーバプログラム431と通信することにより、DBサーバ400のデータベースに対する処理を実行する。プロキシプログラム333は、アプリケーションサーバプログラム331によるメソッドの呼出を取得し、トランザクションを分散トランザクションに昇格する処理に関わる処理を実行する。昇格トリガ管理表334と、リソースマネージャ管理表335と、トランザクション識別情報管理表336と、接続先管理表337との詳細については後述する。
【0033】
外部記憶装置340は、例えば、ハードディスクやフラッシュメモリなどであり、CPU320で実行されるプログラムや、CPU320に利用されるデータを記憶する。
【0034】
DBサーバ400は、例えば、PC、汎用サーバ等のコンピュータによって構成されている。DBサーバ400は、データベースを管理し、データベースに対する処理を実行するサーバである。DBサーバ400は、ネットワークI/F410と、プロセッサの一例としてのCPU420と、記憶部の一例としてのメモリ430と、外部記憶装置440と、を含む。
【0035】
ネットワークI/F410は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワーク20を介して他の装置(例えば、クライアント端末100、分散トランザクション管理サーバ200、処理サーバ300等)と通信する。
【0036】
CPU420は、メモリ430及び/又は外部記憶装置440に格納されているプログラムに従って各種処理を実行する。
【0037】
メモリ430は、例えば、RAMであり、CPU420で実行されるプログラムや、必要な情報を記憶する。メモリ430は、DBサーバプログラム431と、トランザクション管理プログラム432と、分散トランザクション管理連携プログラム433と、を格納する。DBサーバプログラム431は、DB接続クライアントプログラム332からの要求に従ってデータベースに対する処理を実行する。トランザクション管理プログラム432は、DBサーバ400におけるローカルトランザクションを管理する。分散トランザクション管理連携プログラム433は、分散トランザクション管理プログラム221と連携して、分散トランザクションを管理する処理を実行する。
【0038】
外部記憶装置440は、例えば、ハードディスクやフラッシュメモリなどであり、CPU420で実行されるプログラムや、CPU420に利用されるデータを記憶する。本実施形態では、外部記憶装置440は、データベースを構成する各種データを格納する。
【0039】
次に、昇格トリガ管理表334について説明する。
【0040】
図3は、一実施形態に係る昇格トリガ管理表の構成図である。
【0041】
昇格トリガ管理表334は、ローカルトランザクションを分散トランザクションに昇格(移行)する際のトリガを管理する表である。昇格トリガ管理表334は、1つのトリガごとのレコード(昇格条件情報の一例)を格納する。昇格トリガ管理表334のレコードは、番号(#)334aと、昇格条件334bと、適用先334cと、適用優先度334dと、適用開始日時3334eと、登録者334fと、登録日時334gと、のフィールドを含む。
【0042】
番号334aには、レコードの番号が格納される。昇格条件334bには、レコードに対応するトリガの条件、すなわち、ローカルトランザクションを分散トランザクションに昇格させる条件(昇格条件)が格納される。適用先334cには、レコードに対応する条件を適用する適用先となるシステム(複数の処理サーバ300及びDBサーバ400)における範囲(適用範囲)が格納される。適用先としては、例えば、システム全体、クラスタ30、ネームスペース40等がある。適用優先度334dは、レコードに対応するトリガが適用される優先度(優先度情報)が格納される。適用可能なトリガが複数ある場合には、この優先度により、いずれかのトリガが選択される。適用開始日時3334eには、レコードに対応するトリガの適用を開始する日時が格納される。登録者334fには、レコードに対応するトリガを登録した登録者が格納される。登録日時334gには、レコードに対応するトリガを登録した日時が格納される。
【0043】
ここで、2つ目のレコードのトリガは、既に利用しているリソース(第1リソース)とは異なり、且つローカルトランザクションではデータ整合性を維持できないリソース(他のリソース:第2リソース)へのロックを取得する場合を分散トランザクションへの昇格条件としている。例えば、単に他のリソースへの接続に起因して分散トランザクションへ昇格してしまうと、他のリソースへの処理が分散トランザクションとして実行する必要がない場合、例えば、ロックが必要ない処理であっても、分散トランザクションが実行されてしまうが、この昇格条件によると、このような場合において適切に分散トランザクションへの昇格を抑制することができ、分散トランザクションを実行するために消費されてしまう処理リソース(CPU、メモリ等)を低減できる。なお、ローカルトランザクションにおいて既に使用しているリソースとは別のリソースであるか否かは、接続先管理表337の後述する接続先リソースマネージャ識別情報リスト337cを参照することにより把握することができる。
【0044】
また、3つ目のレコードのトリガは、既に利用しているリソースとは異なり、且つローカルトランザクションではデータ整合性を維持できないリソース(他のリソース:第2リソース)への所定の処理(Update、Insert、Delete等)を実行する場合を分散トランザクションへの昇格条件としている。このトリガによると、分散トランザクションが必要ないリソースへの処理内容において、分散トランザクションが実行されることを適切に抑制することができ、分散トランザクションを実行するために消費されてしまう処理リソースを低減できる。
【0045】
次に、リソースマネージャ管理表335について説明する。
【0046】
図4は、一実施形態に係るリソースマネージャ管理表の構成図である。
【0047】
リソースマネージャ管理表335は、システムにおけるリソースマネージャを管理する表である。リソースマネージャ管理表335は、リソースマネージャに対応するレコードを格納する。本実施形態では、リソースマネージャの一例として、DBサーバプログラムにより実現されるマネージャを挙げているが、本発明はこれに限られず、例えば、キュー等を管理する別のリソースマネージャであってもよい。リソースマネージャ管理表335のレコードは、番号(#)335aと、リソースマネージャ識別情報335bと、ローカルトランザクション管理機能部接続先335cと、分散トランザクション適用可否335dと、利用可能分散トランザクションマネージャ識別情報335eと、分散トランザクション管理機能部接続先335fと、選択優先度335gと、選択条件335hと、のフィールドを含む。
【0048】
番号335aには、レコードの番号が格納される。リソースマネージャ識別情報335bには、リソースマネージャの識別情報が格納される。本実施形態では、リソースマネージャは、例えば、DBサーバプログラム431が実行されることにより構成されるデータベースマネージャである。ローカルトランザクション管理機能部接続先335cには、レコードに対応するリソースマネージャが、トランザクション管理プログラム432が実行されることにより構成されるローカルトランザクション管理機能部(トランザクションマネージャ)に接続するためのアドレス(URL)が格納される。分散トランザクション適用可否335dには、レコードに対応するリソースマネージャが分散トランザクションに適用可能であるか否かを示す情報が格納される。利用可能分散トランザクションマネージャ識別情報335eには、レコードに対応するリソースマネージャが利用可能な分散トランザクションマネージャ(分散トランザクション管理プログラム221が実行されることにより構成される分散トランザクション管理機能部)の識別情報(例えば、分散トランザクション管理プログラム221のバージョン情報)が格納される。分散トランザクション管理機能部接続先335fには、レコードに対応するリソースマネージャが、分散トランザクション管理機能部にアクセスするためのアドレス(URL)が格納される。選択優先度335gには、同一のリソースマネージャに対するレコードが複数ある場合に、いずれのレコードを選択するかについての優先度が格納される。選択条件335hには、対応するレコードが選択される条件(選択条件)が格納される。選択条件としては、例えば、全リソースマネージャ(ここでは、データベースマネージャ)がXA(eXtended Architecture)標準対応(データベースマネージャの公知の仕様)、且つ同じトランザクションマネージャ(同じ仕様のトランザクションマネージャ)に対応していること等がある。
【0049】
次に、接続先管理表337について説明する。
【0050】
図5は、一実施形態に係る接続先管理表の構成図である。
【0051】
接続先管理表337は、プロキシプログラム333を実行することにより構成されるプロキシによる接続先を管理する表である。接続先管理表337は、処理スレッド毎のレコードを格納する。接続先管理表337のレコードは、番号(#)337aと、処理要求元識別情報337bと、接続先リソースマネージャ識別情報リスト337cと、ローカルトランザクション管理機能部接続先リスト337dと、分散トランザクション管理機能部接続先337eと、のフィールドを含む。
【0052】
番号(#)337aには、レコードの番号が格納される。処理要求元識別情報337bには、処理を要求した要求元の処理スレッドの識別情報(処理スレッドID)が格納される。接続先リソースマネージャ識別情報リスト337cには、現在までに接続された1以上の接続先のリソースマネージャの識別情報のリストが格納される。ローカルトランザクション管理機能部接続先リスト337dには、レコードに対応する処理スレッドのローカルトランザクションを管理するローカルトランザクション管理機能部についての接続先のアドレス(URL)のリストが格納される。分散トランザクション管理機能部接続先337eには、レコードに対応する処理スレッドの分散トランザクションを管理する分散トランザクション管理機能部についての接続先のアドレス(URL)を格納する。
【0053】
次に、トランザクション識別情報管理表336について説明する。
【0054】
図6は、一実施形態に係るトランザクション識別情報管理表の構成図である。
【0055】
トランザクション識別情報管理表336は、処理スレッドについてのトランザクションを管理する表である。トランザクション識別情報管理表336は、処理スレッド毎のレコードを格納する。トランザクション識別情報管理表336のレコードは、番号(#)336aと、処理要求元識別情報336bと、接続先データベース/テーブル識別情報336cと、ローカルトランザクション識別情報336dと、分散トランザクション識別情報336eと、のフィールドを含む。
【0056】
番号336aには、レコードの番号が格納される。処理要求元識別情報336bには、処理を要求した要求元の処理スレッドの識別情報(処理スレッドID)が格納される。接続先データベース/テーブル識別情報336cには、接続先のデータベース及びテーブルの識別情報が格納される。ローカルトランザクション識別情報336dには、レコードに対応する処理スレッドのローカルトランザクションの識別情報(コネクションID)が格納される。分散トランザクション識別情報336eには、レコードに対応する処理スレッドの分散トランザクションの識別情報(トランザクションID)が格納される。
【0057】
次に、一実施形態に係る計算機システム10によるアプリ実行全体処理について説明する。
【0058】
図7は、一実施形態に係るアプリ実行全体処理のフローチャートである。なお、アプリ実行全体処理は、図7に示す例に限られず、種々の処理とすることができる。図7に示すアプリ実行全体処理は、アプリケーションクライアントプログラム121と、複数のアプリケーションサーバプログラム331と、複数のDBサーバプログラム431とにより、業務における所望の処理が実現される。例えば、複数のアプリケーションサーバプログラム331は、モノリスのアプリケーションプログラムをマイクロサービス化したプログラムであってもよい。
【0059】
クライアント端末100のアプリケーションクライアントプログラム121(厳密には、アプリケーションクライアントプログラムを実行するCPU110)は、処理サーバ300のアプリケーションサーバプログラム331(この例では、アプリケーションサーバプログラムA1)に対して処理要求を送信する(S11)。
【0060】
処理要求を受け付けたアプリケーションサーバプログラムA1は、トランザクション開始要求を行ってトランザクション開始処理を行わせる(S12)。
【0061】
次いで、アプリケーションサーバプログラムA1は、データベースA(例えば、DBサーバ400のDBサーバプログラム431)に対してDBアクセス要求を行い、DBアクセス処理(S13)を行わせる。
【0062】
次いで、アプリケーションサーバプログラムA1は、リモートの(別のインスタンスの)処理サーバ300のアプリケーションサーバプログラム331(この例では、アプリケーションサーバプログラムB1)に対してリモート処理要求を行い、リモート処理(S14)を行わせる。
【0063】
アプリケーションサーバプログラムB1は、データベースB(データベースAとは異なるDBサーバ400のDBサーバプログラム431)に対してDBアクセス要求を行い、DBアクセス処理(S15)を行わせる。
【0064】
DBアクセス処理が終わると、アプリケーションサーバプログラムB1は、リモート処理を終了し、アプリケーションサーバプログラムA1に応答を返す。
【0065】
アプリケーションサーバプログラムA1は、リモート処理の応答を受領すると、トランザクション終了要求を行い、トランザクション終了処理を実行させ(S16)、アプリ全体処理を終了する。
【0066】
次に、トランザクション開始処理(S12)及びDBアクセス処理(S13)について詳細に説明する。
【0067】
図8は、一実施形態に係るトランザクション開始処理及びDBアクセス処理のフローチャートである。
【0068】
アプリケーションサーバプログラムA1は、メソッドで同じ処理サーバ300のアプリケーションサーバプログラムA2を呼び出す(S21)。ここで、アプリケーションサーバプログラムA2は、トランザクションの宣言がされており、トランザクションが開始されることとなる。
【0069】
アプリケーションサーバプログラムA2は、DBサーバ400のDBサーバプログラム431に対するデータベースアクセス要求を行う(S22)。データベースアクセス要求には、例えば、要求元の処理スレッドID、クラスタ識別情報、ネームスペース識別情報、コンテナ識別情報、データベースマネージャ識別情報、処理開始日時、リード、ライト等の処理命令、処理のパラメータ等のトランザクション対象処理情報を含む。プロキシプログラム333は、データベースアクセス要求を受け取り、ローカルトランザクションを分散トランザクションに昇格させるか否かを判定する昇格条件合致判定処理(図9参照)を実行する(S23)。図8の処理例においては、昇格条件合致判定処理(図9参照)では、ローカルトランザクションとして処理を継続するように判定されているものとする。
【0070】
そこで、プロキシプログラム333は、データベースアクセス要求に従って、DB接続クライアントプログラム332を呼び出す(S24)。
【0071】
次いで、DB接続クライアントプログラム332は、データベースアクセス要求に従って対象となるDBサーバ400のDBサーバプログラム431(この例では、DBサーバプログラムAとする)を呼び出す(S25)。
【0072】
DBサーバプログラムAは、データベースアクセス要求に従ってデータベースにアクセスし(S26)、同じDBサーバ400のトランザクション管理プログラム432(この例では、トランザクション管理プログラムAとする)にトランザクション対象処理情報の登録を依頼する(S27)。
【0073】
トランザクション管理プログラムAは、トランザクション対象処理情報をメモリ430又は外部記憶装置440に登録し(S28)、応答をDBサーバプログラムAに返す(S29)。DBサーバプログラムAは、応答をDB接続クライアントプログラム332に返し(S30)、DB接続クライアントプログラム332は、応答をプロキシプログラム333に返す(S31)。
【0074】
プロキシプログラム333は、応答に基づいて接続先管理表を更新する接続先管理表更新処理(図10参照)を実行し(S32)、トランザクション識別情報管理表更新処理(図11参照)を実行し(S33)、アプリケーションサーバプログラムA2に応答を返す(S34)。
【0075】
次に、昇格条件合致判定処理(S23、S92)について説明する。
【0076】
図9は、一実施形態に係る昇格条件合致判定処理のフローチャートである。
【0077】
プロキシプログラム333は、トランザクション対象処理情報及びリソースマネージャ管理表335のデータを取得する(S41)。
【0078】
次いで、プロキシプログラム333は、要求された処理(対象処理)がトランザクション制御対象か否かを判定する(S42)。ここで、対象処理がトランザクション制御対象か否かは、要求元の処理がトランザクション宣言されているか否かにより判定できる。この結果、対象処理がトランザクション制御対象でない場合(S42:No)には、プロキシプログラム333は、対象処理を非トランザクションとして、処理を継続する(S43)。
【0079】
一方、対象処理がトランザクション制御対象である場合(S42:Yes)には、プロキシプログラム333は、対象処理がローカルトランザクションか否か判定する(S44)。ここで、対象処理がローカルトランザクションか否かについては、接続先管理表337の要求元の処理の処理スレッドIDに対応するレコードにおいて分散トランザクション管理機能部接続先が設定されているか否かにより判定することができる。この際、分散トランザクション管理部接続先が設定されていない場合には、ローカルトランザクションであると判定できる。
【0080】
この結果、対象処理がローカルトランザクションでない、すなわち、分散トランザクションである場合(S44:No)には、プロキシプログラム333は、対象処理を分散トランザクションとして、処理を継続する(S45)。
【0081】
一方、対象処理がローカルトランザクションである場合(S44:Yes)には、プロキシプログラム333は、昇格トリガ管理表334のデータを取得し、昇格トリガ管理表334における適用先が対象処理に合致するレコード群の中で適用優先度が最も高いレコードを抽出する(S46)。
【0082】
次いで、プロキシプログラム333は、対象処理が抽出したレコードの昇格条件に合致するか否かを判定する(S47)。
【0083】
この結果、対象処理が抽出したレコードの昇格条件に合致しない場合(S47:No)には、プロキシプログラム333は、対象処理をローカルトランザクションとして、処理を継続する(S48)。
【0084】
一方、対象処理が抽出したレコードの昇格条件に合致する場合(S47:Yes)には、プロキシプログラム333は、対象処理の開始時刻を取得し(S49)、対象処理の開始時刻が適用開始日時の条件を満たすか否かを判定する(S50)。
【0085】
この結果、対象処理の開始時刻が適用開始日時の条件を満たさない場合(S50:No)には、プロキシプログラム333は、処理をステップS48に進める。
【0086】
一方、対象処理の開始時刻が適用開始日時の条件を満たす場合(S50:Yes)には、プロキシプログラム333は、対象処理を分散トランザクションに昇格する処理を実行する(S51)。
【0087】
なお、対象処理が抽出したレコードの昇格条件に合致する場合(S47:Yes)以降において、プロキシプログラム333は、リソースマネージャ管理表335を参照し、対象処理を実行するために呼び出すリソースマネージャが分散トランザクションを適用できるか否かを判定し、分散トランザクションを適用できない場合には、分散トランザクションへの昇格を行わないようにしてもよく、または、プロキシプログラム333は、リソースマネージャが利用可能なバージョンの分散トランザクションマネージャを選択して、分散トランザクションへの昇格を行うようにしてもよい。
【0088】
この昇格条件合致判定処理によると、ローカルトランザクションを適切に分散トランザクションに昇格させることができ、アプリケーションサーバプログラム331において、分散トランザクションを実行する必要があるかを前もって検討し、分散トランザクションを実行するメソッドを記述しておく必要がない。これにより、例えば、モノリスのアプリケーションプログラムをマイクロサービス化する場合における手間を低減することができる。
【0089】
次に、接続先管理表更新処理(S32、S87、S105)について説明する。
【0090】
図10は、一実施形態に係る接続先管理表更新処理のフローチャートである。
【0091】
プロキシプログラム333は、接続先管理表337に、対象処理の処理要求元識別情報と処理要求元識別情報が合致するレコードが存在するか否かを判定する(S61)。
【0092】
この結果、処理要求元識別情報が合致するレコードが存在しない場合(S61:No)には、プロキシプログラム333は、接続先管理表337に新しいレコードを作成し、このレコードに対象処理の処理要求元識別情報を登録し(S62)、今回の処理で接続したリソースマネージャの識別情報を追加し、それによるローカルトランザクション管理機能部の接続先の追加又は分散トランザクション管理機能部の接続先を登録する(S63)。
【0093】
一方、処理要求元識別情報が合致するレコードが存在する場合(S61:Yes)には、プロキシプログラム333は、このレコードに、今回の処理で接続したリソースマネージャの識別情報、それによるローカルトランザクション管理機能部の接続先又は分散トランザクション管理機能部の接続先を登録する(S63)。
【0094】
この接続先管理表更新処理によると、接続先管理表337に、処理要求元の処理における接続先を適切に格納することができる。
【0095】
次に、トランザクション識別情報管理表更新処理(S33、S88、S106)について説明する。
【0096】
図11は、一実施形態に係るトランザクション識別情報管理表更新処理のフローチャートである。
【0097】
プロキシプログラム333は、トランザクション識別情報管理表336に、対象処理の処理要求元識別情報と処理要求元識別情報が合致するレコードが存在するか否かを判定する(S61)。
【0098】
この結果、処理要求元識別情報が合致するレコードが存在しない場合(S71:No)には、プロキシプログラム333は、トランザクション識別情報管理表336に新しいレコードを作成し、このレコードに対象処理の処理要求元識別情報を登録し(S72)、今回の処理で接続したリソースマネージャ及びテーブルの識別情報を追加し、そのローカルトランザクション処理で利用するローカルトランザクション識別情報又は分散トランザクション処理で利用する分散トランザクション識別情報を登録する(S73)。
【0099】
一方、処理要求元識別情報が合致するレコードが存在する場合(S71:Yes)には、プロキシプログラム333は、このレコードに、今回の処理で接続したリソースマネージャ及びテーブルの識別情報を追加し、そのローカルトランザクション処理で利用するローカルトランザクション識別情報又は分散トランザクション処理で利用する分散トランザクション識別情報を登録する(S73)。
【0100】
このトランザクション識別情報管理表更新処理によると、トランザクション識別情報管理表336に、処理要求元の処理におけるローカルトランザクション及び分散トランザクションの識別情報を適切に格納することができる。
【0101】
次に、リモート処理(S14)について説明する。
【0102】
図12は、一実施形態に係るリモート処理のフローチャートである。
【0103】
アプリケーションサーバプログラムA2は、別の処理サーバ300のアプリケーションサーバプログラム331(この例では、アプリケーションサーバプログラムB1)に対するリモート処理の要求(リモート処理要求)を送信する(S81)。
【0104】
プロキシプログラム333は、リモート処理要求を取得し、要求されたリモート処理がローカルトランザクションであり、且つ呼出先がリモート(別のインスタンス)であるか否かを判定する(S82)。
【0105】
この結果、要求されたリモート処理がローカルトランザクションであり、且つ呼出先がリモートである場合(S82:Yes)には、ローカルトランザクションを分散トランザクションに昇格する可能性があることを意味しているので、プロキシプログラム333は、ローカルトランザクションID等のこのローカルトランザクションに関する情報(トランザクション情報)を、リモート処理要求における送信先に送付する送付情報(送信先送付情報)に追加し(S83)、アプリケーションサーバプログラムB1によるリモート処理を呼び出す(S84)。
【0106】
この結果、要求されたリモート処理がローカルトランザクションであり、且つ呼出先がリモートである場合ではない場合(S82:No)には、プロキシプログラム333は、アプリケーションサーバプログラムB1によるリモート処理を呼び出す(S84)。
【0107】
アプリケーションサーバプログラムB1は、リモートでのデータベースアクセスを要求して処理を実行し(S85)、応答をプロキシプログラム333に返す(S86)。
【0108】
プロキシプログラム333は、応答に基づいて接続先管理表337を更新する接続先管理表更新処理(図10参照)を実行し(S87)、トランザクション識別情報管理表更新処理(図11参照)を実行し(S88)、アプリケーションサーバプログラムA2に応答を返す(S89)。
【0109】
次に、DBアクセス処理(S15)について説明する。
【0110】
図13は、一実施形態に係るDBアクセス処理のフローチャートである。
【0111】
アプリケーションサーバプログラムB1は、DBサーバ400のDBサーバプログラム431(この例では、DBサーバプログラムB)に対するデータベースアクセス要求を行う(S91)。
【0112】
プロキシプログラム333は、データベースアクセス要求を受け取り、ローカルトランザクションを分散トランザクションに昇格させるか否かを判定する昇格条件合致判定処理(図9参照)を実行する(S92)。
【0113】
図13の処理例においては、昇格条件合致判定処理では、ローカルトランザクションを分散トランザクションとして昇格させるように判定され、昇格処理要求を分散トランザクション管理プログラム221に送信する(S93)。
【0114】
分散トランザクション管理プログラム221は、ローカルトランザクションを分散トランザクションに昇格させるための昇格処理を実行する(S94)。昇格処理では、分散トランザクション管理プログラム221は、割り当てる分散トランザクションの識別情報を付与し、管理する処理を開始するとともに、ローカルトランザクション処理を引き継ぐための処理を実行する。
【0115】
次いで、分散トランザクション管理プログラム221は、昇格処理を終えると、昇格処理の応答をプロキシプログラム返す(S95)。
【0116】
次いで、プロキシプログラム333は、分散トランザクションの識別情報をトランザクション識別情報管理表336に登録するトランザクション識別情報管理表更新処理(図11参照)を実行する(S96)。
【0117】
次いで、プロキシプログラム333は、データベースアクセス要求に従って、DB接続クライアントプログラム332を呼び出す(S97)。
【0118】
次いで、DB接続クライアントプログラム332は、データベースアクセス要求に従って対象となるDBサーバ400のDBサーバプログラム431(この例では、DBサーバプログラムBとする)を呼び出す(S98)。
【0119】
DBサーバプログラムBは、データベースアクセス要求に従ってデータベースにアクセスし(S99)、分散トランザクション管理プログラム221にトランザクション対象処理情報の登録を依頼する(S100)。
【0120】
分散トランザクション管理プログラム221は、トランザクション対象処理情報をメモリ220又は外部記憶装置230に登録し(S101)、応答をDBサーバプログラムBに返す(S102)。DBサーバプログラムBは、応答をDB接続クライアントプログラム332に返し(S103)、DB接続クライアントプログラム332は、応答をプロキシプログラム333に返す(S104)。
【0121】
プロキシプログラム333は、応答に基づいて接続先管理表337を更新する接続先管理表更新処理(図10参照)を実行し(S105)、トランザクション識別情報管理表更新処理(図11参照)を実行し(S106)、アプリケーションサーバプログラムB1に応答を返す(S107)。
【0122】
次に、トランザクション終了処理(S16)について説明する。
【0123】
図14は、一実施形態に係るトランザクション終了処理のフローチャートである。
【0124】
アプリケーションサーバプログラムA2は、トランザクション終了要求を行う(S110)。トランザクション終了要求には、例えば、要求元の処理スレッドIDを含む。プロキシプログラム333は、トランザクション終了要求を受け取り、接続先管理表337及びトランザクション識別情報管理表336を参照し、分散トランザクション識別情報と、分散トランザクション管理機能部の接続先とを判断する(S111)。
【0125】
次いで、プロキシプログラム333は、分散トランザクション管理機能部の分散トランザクション管理プログラム221に対してトランザクション終了要求を送信する(S112)。
【0126】
分散トランザクション管理プログラム221は、トランザクション終了要求に従って、分散トランザクションで利用したDBサーバ400のDBサーバプログラム431の1つ(この例では、DBサーバプログラムA)にコミットの準備を要求するPrepare(準備)要求を送信する(S113)。
【0127】
DBサーバプログラムAは、Prepare要求に従ってデータベースをコミットする準備を行うPrepare処理を実行し(S114)、応答を分散トランザクション管理プログラム221に返す(S115)。
【0128】
次いで、分散トランザクション管理プログラム221は、分散トランザクションで利用した他のDBサーバ400のDBサーバプログラム431(この例では、DBサーバプログラムB)にコミットの準備を要求するPrepare要求を送信する(S116)。
【0129】
DBサーバプログラムBは、Prepare要求に従ってデータベースをコミットする準備を行うPrepare処理を実行し(S117)、応答を分散トランザクション管理プログラム221に返す(S118)。
【0130】
分散トランザクション管理プログラム221は、分散トランザクションで利用した全てのDBサーバ400のDBサーバプログラム431からPrepar要求の応答を得ると、分散トランザクションで利用したDBサーバ400のDBサーバプログラム431の1つ(この例では、DBサーバプログラムA)にコミットを要求するCommit要求を送信する(S119)。
【0131】
DBサーバプログラムAは、Commit要求に従ってデータベースをコミットするCommit処理を実行し(S120)、応答を分散トランザクション管理プログラム221に返す(S121)。
【0132】
次いで、分散トランザクション管理プログラム221は、分散トランザクションで利用した他のDBサーバ400のDBサーバプログラム431(この例では、DBサーバプログラムB)にコミットを要求するCommit要求を送信する(S122)。
【0133】
DBサーバプログラムBは、Commit要求に従ってデータベースをコミットするCommit処理を実行し(S123)、応答を分散トランザクション管理プログラム221に返す(S124)。
【0134】
分散トランザクション管理プログラム221は、トランザクション終了要求に対応する応答をプロキシプログラム333に返す(S125)。
【0135】
プロキシプログラム333は、トランザクション終了要求に対応する応答をアプリケーションサーバプログラムA2に返し(S126)、アプリケーションサーバプログラムA2は、応答をアプリケーションサーバプログラムA1に応答を返す(S127)。
【0136】
このトランザクション終了処理によると、分散トランザクションを適切に終了することができる。
【0137】
次に、昇格トリガ登録プログラム222により、アプリケーションの実行を管理する管理者が利用する端末(分散トランザクション管理サーバ200や図示しない管理者端末)等の表示装置に表示され、昇格トリガ管理表334に昇格トリガ条件の登録に利用する昇格トリガ条件登録画面500について説明する。
【0138】
図15は、一実施形態に係る昇格トリガ条件登録画面の構成図である。
【0139】
昇格トリガ条件登録画面500は、登録済み情報表示領域510と、更新ボタン520と、削除ボタン530と、昇格条件入力領域540と、適用先入力領域550と、適用優先度入力領域560と、運用開始日時570と、登録ボタン580と、キャンセルボタン590とを含む。
【0140】
登録済み情報表示領域510には、昇格トリガ管理表334に登録されている各トリガの情報が表示される。登録済み情報表示領域510においては、いずれかのトリガを選択することができる。
【0141】
更新ボタン520は、登録済み情報表示領域510において選択されたトリガの情報を更新する要求を受け付けるボタンである。更新ボタン520が押下されると、昇格トリガ登録プログラム222は、登録済み情報表示領域510において選択されたトリガの情報を、昇格条件入力領域540、適用先入力領域550、適用優先度入力領域560、及び運用開始日時570に入力された情報に更新する。
【0142】
削除ボタン530は、登録済み情報表示領域510において選択されたトリガの情報を昇格トリガ管理表334から削除する要求を受け付けるボタンである。削除ボタン530が押下されると、昇格トリガ登録プログラム222は、選択されたトリガの情報を昇格トリガ管理表334から削除する。
【0143】
昇格条件入力領域540は、トリガに対応する昇格条件を入力する領域である。適用先入力領域550は、トリガを適用する適用先を入力する領域である。適用優先度入力領域560は、トリガを適用する優先度を入力する領域である。運用開始日時570は、トリガの適用を開始する日時を入力する領域である。
【0144】
登録ボタン580は、昇格トリガ管理表334に新しいトリガを登録する要求を受け付けるボタンである。登録ボタン580が押下されると、昇格トリガ登録プログラム222は、昇格条件入力領域540、適用先入力領域550、適用優先度入力領域560、及び運用開始日時570に入力された情報を新しいトリガとして昇格トリガ管理表334に登録する。
【0145】
キャンセルボタン590は、昇格トリガ条件登録画面500によるトリガ条件の登録のキャンセルを受け付けるボタンである。キャンセルボタン590が押下されると、昇格トリガ登録プログラム222は、昇格トリガ条件登録画面500を閉じる。
【0146】
昇格トリガ条件登録画面500によると、昇格トリガ管理表334に登録されたトリガを確認したり、更新したり、新たなトリガを登録したりすることができる。
【0147】
次に、トレース管理プログラム223により、アプリケーションの実行を管理する管理者が利用する端末(分散トランザクション管理サーバ200や図示しない管理者端末)等の表示装置に表示され、処理のメソッドについてのトレースグラフを出力するためのトレース出力画面600について説明する。
【0148】
図16は、一実施形態に係るトレース検索出力画面の構成図である。
【0149】
トレース出力画面600は、検索条件入力領域610と、検索ボタン620と、検索結果出力領域630と、トレース出力ボタン640と、トレースグラフ表示領域650とを含む。
【0150】
検索条件入力領域610は、トレースを出力する対象となる処理を検索する検索条件を入力する領域である。検索条件としては、例えば、処理を行ったクラスタ、ネームスペース、又はコンテナや、検索対象の範囲の開始日時や終了日時等がある。検索ボタン620は、検索条件入力領域610に入力された検索条件により、対象となる処理を検索するためのボタンである。検索ボタン620が押下されると、トレース管理プログラム223は、検索条件に合致する処理を検索する。検索結果出力領域630は、検索結果の情報を表示する領域である。トレース出力ボタン640は、検索結果出力領域630における検索結果の処理の中の選択された処理におけるメソッドについてのトレースグラフを受け付けるボタンである。トレース出力ボタン640が押下されると、トレース管理プログラム223は、検索結果出力領域630における検索結果の処理の中の選択された処理におけるメソッドについてのトレースグラフを作成し、トレースグラフ表示領域650に出力する。
【0151】
次に、トレースグラフ表示領域650に表示されるトレースグラフについて説明する。
【0152】
図17は、一実施形態に係るトレースグラフの一例を示す図である。図17のトレースグラフ800は、図3に示す昇格トリガ管理表334の2つ目のレコードのトリガが適用されている場合のトレースグラフである。
【0153】
トレースグラフ700において、アプリケーションサーバプログラム(MS-1)から呼び出されたアプリケーションサーバプログラム(MS-2)においてDBサーバ2に対するロック要求(lock)を発行すると、DBサーバ2にロック要求が送信される(S730)前に、プロキシプログラム333がLock要求を受信する(S710)。ここで、DBサーバ2へのロック要求は、昇格トリガ管理表334の2つ目のレコードの昇格条件を満たすこととなるので、プロキシプログラム333は、分散トランザクション管理プログラム221にローカルトランザクションを分散トランザクションに昇格させる昇格要求(メソッド(分散トランザクション管理)、すなわち、昇格メソッド要求)を送信する(S720)。分散トランザクション管理プログラム221は、昇格処理を実行し、応答をプロキシプログラム333に返す。その後、プロキシプログラム333は、ロック要求をDBサーバ2(DBサーバプログラム431)に送信する(S730)。
【0154】
このトレースグラフ700によると、アプリケーションサーバプログラム(MS-2)がDBサーバ2に対するロック要求を発行して、昇格トリガ管理表334の2つ目のレコードの昇格条件を満たしたことにより、適切に分散トランザクションへの昇格処理が行われたことを確認することができる。
【0155】
図18は、一実施形態に係るトレースグラフの他の例を示す図である。図18のトレースグラフ800は、図3に示す昇格トリガ管理表334の1つ目のレコードのトリガが適用されている場合のトレースグラフである。
【0156】
トレースグラフ800において、アプリケーションサーバプログラム(MS-1)から呼び出されたアプリケーションサーバプログラム(MS-2)においてDBサーバ2に対する接続要求(connection)を発行すると、DBサーバ2に接続要求が送信される(S830)前に、プロキシプログラム333が接続要求を受信する(S810)。ここで、DBサーバ2への接続要求は、昇格トリガ管理表334の1つ目のレコードの昇格条件を満たすこととなるので、プロキシプログラム333は、分散トランザクション管理プログラム221にローカルトランザクションを分散トランザクションに昇格させる昇格要求を送信する(S820)。分散トランザクション管理プログラム221は、昇格処理を実行し、応答をプロキシプログラム333に返す。その後、プロキシプログラム333は、接続要求をDBサーバ2(DBサーバプログラム)に送信する(S830)。
【0157】
このトレースグラフ800によると、アプリケーションサーバプログラム(MS-2)がDBサーバ2に対する接続要求を発行して、昇格トリガ管理表334の1つ目のレコードの昇格条件を満たしたことにより、適切に分散トランザクションへの昇格処理が行われたことを確認することができる。
【0158】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【0159】
例えば、上記実施形態では、昇格トリガ管理表334に複数のトリガを格納し、複数のトリガの中から適用可能なトリガを抽出して、昇格条件に合致するか否かを判定するようにしていたが、本発明はこれに限られず、例えば、昇格トリガ管理表334を備えずに、昇格トリガ管理表334の2つ目のレコード又は3つ目のレコードに対応するトリガの昇格条件に合致するか否かにより、分散トランザクションに昇格させるか否かを判定するようにしてもよい。
【0160】
また、上記実施形態では、分散トランザクション管理サーバ200にトレース管理プログラム223を格納し、分散トランザクション管理サーバ200で実行するようにしていたが、トレース管理プログラム223を処理サーバ300、DBサーバ400等で実行するようにしてもよい。
【符号の説明】
【0161】
10…計算機システム、100…クライアント端末、200…分散トランザクション管理サーバ、300…処理サーバ、400…DBサーバ、110,210,320,420…CPU、120,220,330,430…メモリ、130,230,340,440…外部記憶装置、140,240,310,410…ネットワークI/F




図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18