(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-01
(45)【発行日】2024-10-09
(54)【発明の名称】情報処理システム、ログ送信プログラム、情報処理装置及びログ送信方法
(51)【国際特許分類】
G06F 16/27 20190101AFI20241002BHJP
【FI】
G06F16/27
(21)【出願番号】P 2020206497
(22)【出願日】2020-12-14
【審査請求日】2023-08-04
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100094525
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】飯塚 勇太
(72)【発明者】
【氏名】山開 真二
【審査官】齊藤 貴孝
(56)【参考文献】
【文献】特表2010-527087(JP,A)
【文献】特表2003-507791(JP,A)
【文献】特開2004-342041(JP,A)
【文献】特開2009-282790(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
データベースに対するトランザクションについてのコミットログを送信する第1情報処理装置と、前記コミットログを前記第1情報処理装置から受信する第2情報処理装置及び第3情報処理装置と、前記コミットログを前記第1情報処理装置から受信する送信先装置とを有する情報処理システムであって、
前記第1情報処理装置は、前記トランザクションがコミットしたら、前記送信先装置における前記コミットログの受信確認を行う情報処理装置を、前記第2情報処理装置及び前記第3情報処理装置のうちのいずれかの情報処理装置に決定し、
前記第1情報処理装置は、決定した前記いずれかの情報処理装置の識別情報を付加した前記コミットログを前記送信先装置と前記いずれかの情報処理装置とにそれぞれ送信し、
前記いずれかの情報処理装置は、前記コミットログを前記第1情報処理装置から受信したら、受信した前記コミットログに含まれる前記識別情報が自装置を示しているか否かを判定し、
前記いずれかの情報処理装置は、前記コミットログに含まれる前記識別情報が自装置を示していると判定した場合、前記コミットログを記憶部に記憶するとともに、前記送信先装置に対して前記コミットログの受信確認の指示を送信し、
前記送信先装置は、前記コミットログを前記第1情報処理装置から受信し、かつ、前記コミットログの前記受信確認の指示を前記いずれかの情報処理装置から受信したら、前記送信先装置における前記コミットログの受信が正常に完了したことを示す受信確認結果を前記いずれかの情報処理装置に送信し、
前記いずれかの情報処理装置は、前記受信確認結果を前記送信先装置から受信したら、前記コミットログを前記記憶部から削除する、
ことを特徴とする情報処理システム。
【請求項2】
請求項1において、
前記第1情報処理装置は、
前記コミットログに含まれる特定の項目に対応する情報と前記識別情報とを対応付ける対応情報を記憶部に記憶し、
前記データベースに対する新たなトランザクションがコミットしたら、前記記憶部を参照し、前記新たなトランザクションについての新たなコミットログに含まれる前記特定の項目に対応する情報を含む前記対応情報が前記記憶部に記憶されているか否かを判定し、
前記対応情報が前記記憶部に記憶されていると判定した場合、前記記憶部を参照し、前記新たなコミットログに含まれる前記特定の項目に対応する情報と対応付けられた前記識別情報を特定し、
特定した前記識別情報が示す情報処理装置を、前記送信先装置における前記新たなコミットログの受信確認を行う情報処理装置として決定する、
ことを特徴とする情報処理システム。
【請求項3】
請求項2において、
前記第1情報処理装置は、前記対応情報が前記記憶部に記憶されていないと判定した場合、前記記憶部を参照し、前記対応情報に含まれる前記識別情報の割合が最も少ない情報処理装置を、前記送信先装置における前記新たなコミットログの受信確認を行う情報処理装置として特定する、
ことを特徴とする情報処理システム。
【請求項4】
請求項2において、
前記第1情報処理装置は、前記コミットログを前記記憶部から削除したことを示す通知を前記いずれかの情報処理装置から受信したら、前記対応情報を前記記憶部から削除する、
ことを特徴とする情報処理システム。
【請求項5】
請求項1において、
前記いずれかの情報処理装置は、
新たなコミットログを前記第1情報処理装置から受信したら、受信した前記新たなコミットログに含まれる前記識別情報が自装置を示しているか否かを判定し、
前記新たなコミットログに含まれる前記識別情報が自装置を示していると判定した場合、前記新たなコミットログを前記記憶部に記憶するとともに、前記コミットログが前記記憶部に記憶されている時は、前記送信先装置に対して前記新たなコミットログの受信確認の指示及び前記コミットログを送信し、
前記送信先装置における前記新たなコミットログの受信が正常に完了したことを示す受信確認結果を前記送信先装置から受信したら、前記コミットログと前記新たなコミットログとを前記記憶部から削除する、
ことを特徴とする情報処理システム。
【請求項6】
データベースに対するトランザクションについてのコミットログを送信先装置に送信する処理をコンピュータに実行させるログ送信プログラムであって、
前記コミットログを他の情報処理装置から受信したら、受信した前記コミットログに含まれる識別情報が自装置を示しているか否かを判定し、
前記コミットログに含まれる前記識別情報が自装置を示していると判定した場合、前記コミットログを記憶部に記憶するとともに、前記送信先装置に対して前記コミットログの受信確認の指示を送信し、
前記送信先装置における前記コミットログの受信が正常に完了したことを示す受信確認結果を前記送信先装置から受信したら、前記コミットログを前記記憶部から削除する、
ことを特徴とするログ送信プログラム。
【請求項7】
データベースに対するトランザクションについてのコミットログを送信先装置に送信する情報処理装置であって、
前記コミットログを他の情報処理装置から受信したら、受信した前記コミットログに含まれる識別情報が自装置を示しているか否かを判定する情報判定部と、
前記コミットログに含まれる前記識別情報が自装置を示していると判定した場合、前記コミットログを記憶部に記憶するとともに、前記送信先装置に対して前記コミットログの受信確認の指示を送信する情報送信部と、
前記送信先装置における前記コミットログの受信が正常に完了したことを示す受信確認結果を前記送信先装置から受信したら、前記コミットログを前記記憶部から削除する再送制御部と、を有する、
ことを特徴とする情報処理装置。
【請求項8】
データベースに対するトランザクションについてのコミットログを送信する第1情報処理装置と、前記コミットログを前記第1情報処理装置から受信する第2情報処理装置及び第3情報処理装置と、前記コミットログを前記第1情報処理装置から受信する送信先装置とを有する情報処理システムにおけるログ送信方法であって、
前記第1情報処理装置は、前記トランザクションがコミットしたら、前記送信先装置における前記コミットログの受信確認を行う情報処理装置を、前記第2情報処理装置及び前記第3情報処理装置のうちのいずれかの情報処理装置に決定し、
前記第1情報処理装置は、決定した前記いずれかの情報処理装置の識別情報を付加した前記コミットログを前記送信先装置と前記いずれかの情報処理装置とにそれぞれ送信し、
前記いずれかの情報処理装置は、前記コミットログを前記第1情報処理装置から受信したら、受信した前記コミットログに含まれる前記識別情報が自装置を示しているか否かを判定し、
前記いずれかの情報処理装置は、前記コミットログに含まれる前記識別情報が自装置を示していると判定した場合、前記コミットログを記憶部に記憶するとともに、前記送信先装置に対して前記コミットログの受信確認の指示を送信し、
前記送信先装置は、前記コミットログを前記第1情報処理装置から受信し、かつ、前記コミットログの前記受信確認の指示を前記いずれかの情報処理装置から受信したら、前記送信先装置における前記コミットログの受信が正常に完了したことを示す受信確認結果を前記いずれかの情報処理装置に送信し、
前記いずれかの情報処理装置は、前記受信確認結果を前記送信先装置から受信したら、前記コミットログを前記記憶部から削除する、
ことを特徴とするログ送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、ログ送信プログラム、情報処理装置及びログ送信方法に関する。
【背景技術】
【0002】
例えば、金融商品等を扱う証券取引システム(以下、単に取引システムとも呼ぶ)では、取引参加者からの株の売買注文を受信した場合や株の売買が成立した場合、その株の売買状況についての情報(以下、取引情報とも呼ぶ)をデータベースに反映する。そして、取引システムは、例えば、証券会社や取引参加者等が有する外部の情報処理システム(以下、外部システムとも呼ぶ)に対して、各取引情報をデータベースに反映した際のコミットログを送信する。
【0003】
具体的に、上記のような取引システムは、例えば、株の売買に伴う処理を行う情報処理装置(以下、アクティブ装置とも呼ぶ)と、アクティブ装置において異常等が発生した場合に処理を引き継いで行う情報処理装置(以下、スタンバイ装置とも呼ぶ)と、外部システムに対してコミットログの送信を行う情報処理装置(以下、連携装置とも呼ぶ)とから構成される。そして、アクティブ装置は、例えば、スタンバイ装置及び連携装置のそれぞれに対してコミットログの送信を行う。これにより、アクティブ装置は、外部システムに対するコミットログの送信を行うとともに、アクティブ装置のデータベースとスタンバイ装置のデータベースとの間における同期を行うことが可能になる(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、上記のようなスタンバイ装置や連携装置は、アクティブ装置からコミットログを受信した場合、コミットログの受信が正常に行われたことを示す通知(以下、応答通知)をアクティブ装置に送信する。これにより、アクティブ装置は、各コミットログの送信が正常に完了したか否かについて判断を行うことが可能になる。
【0006】
しかしながら、アクティブ装置は、この場合、スタンバイ装置から送信される応答通知だけでなく、連携装置から送信される応答通知についても待ち合わせる必要がある。そのため、アクティブ装置では、例えば、連携装置から送信される応答通知の待ち合わせに時間を要する場合、処理性能が低下する可能性がある。
【0007】
そこで、一つの側面では、本発明は、応答通知の待ち合わせに伴う処理性能の低下を防止することを可能とする情報処理システム、ログ送信プログラム、情報処理装置及びログ送信方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
実施の形態の一態様では、データベースに対するトランザクションについてのコミットログを送信する第1情報処理装置と、前記コミットログを前記第1情報処理装置から受信する第2情報処理装置及び第3情報処理装置と、前記コミットログを前記第1情報処理装置から受信する送信先装置とを有する情報処理システムであって、前記第1情報処理装置は、前記トランザクションがコミットしたら、前記送信先装置における前記コミットログの受信確認を行う情報処理装置を、前記第2情報処理装置及び前記第3情報処理装置のうちのいずれかの情報処理装置を決定し、前記第1情報処理装置は、決定した前記いずれかの情報処理装置の識別情報を付加した前記コミットログを前記送信先装置と前記いずれかの情報処理装置とにそれぞれ送信し、前記いずれかの情報処理装置は、前記コミットログを前記第1情報処理装置から受信したら、受信した前記コミットログに含まれる前記識別情報が自装置を示しているか否かを判定し、前記いずれかの情報処理装置は、前記コミットログに含まれる前記識別情報が自装置を示していると判定した場合、前記コミットログを記憶部に記憶するとともに、前記送信先装置に対して前記コミットログの受信確認の指示を送信し、前記送信先装置は、前記コミットログを前記第1情報処理装置から受信し、かつ、前記コミットログの前記受信確認の指示を前記いずれかの情報処理装置から受信したら、前記送信先装置における前記コミットログの受信が正常に完了したことを示す受信確認結果を前記いずれかの情報処理装置に送信し、前記いずれかの情報処理装置は、前記受信確認結果を前記送信先装置から受信したら、前記コミットログを前記記憶部から削除する。
【発明の効果】
【0009】
一つの側面によれば、応答通知の待ち合わせに伴う処理性能の低下を防止することを可能とする。
【図面の簡単な説明】
【0010】
【
図1】
図1は、取引システム10の構成について説明する図である。
【
図2】
図2は、アクティブ装置1のハードウエア構成を説明する図である。
【
図3】
図3は、スタンバイ装置2のハードウエア構成を説明する図である。
【
図4】
図4は、連携装置4のハードウエア構成を説明する図である。
【
図5】
図5は、アクティブ装置1の機能のブロック図である。
【
図6】
図6は、スタンバイ装置2の機能のブロック図である。
【
図7】
図7は、連携装置4の機能のブロック図である。
【
図8】
図8は、第1の実施の形態におけるログ送信処理の概略を説明するフローチャート図である。
【
図9】
図9は、第1の実施の形態におけるログ送信処理の概略を説明するフローチャート図である。
【
図10】
図10は、第1の実施の形態におけるログ送信処理の概略を説明するフローチャート図である。
【
図11】
図11は、第1の実施の形態におけるログ送信処理の詳細を説明するフローチャート図である。
【
図12】
図12は、第1の実施の形態におけるログ送信処理の詳細を説明するフローチャート図である。
【
図13】
図13は、第1の実施の形態におけるログ送信処理の詳細を説明するフローチャート図である。
【
図14】
図14は、第1の実施の形態におけるログ送信処理の詳細を説明するフローチャート図である。
【
図15】
図15は、第1の実施の形態におけるログ送信処理の詳細を説明するフローチャート図である。
【
図16】
図16は、第1の実施の形態におけるログ送信処理の詳細を説明するフローチャート図である。
【
図17】
図17は、第1の実施の形態におけるログ送信処理の詳細を説明するフローチャート図である。
【
図18】
図18は、コミットログCLの具体例を説明する図である。
【
図19】
図19は、対応情報131の具体例を説明する図である。
【
図20】
図20は、コミットログCLの具体例を説明する図である。
【
図21】
図21は、対応情報131の具体例を説明する図である。
【
図22】
図22は、第1応答通知RS1の具体例を説明する図である。
【
図23】
図23は、第1応答通知RS1の具体例を説明する図である。
【
図24】
図24は、第3応答通知RS3の具体例を説明する図である。
【
図25】
図25は、連携装置4に対するコミットログの再送が発生しない場合におけるログ送信処理の具体例について説明するシーケンスチャート図である。
【
図26】
図26は、連携装置4に対するコミットログの再送が発生する場合におけるログ送信処理の具体例について説明するシーケンスチャート図である。
【発明を実施するための形態】
【0011】
[情報処理システムの構成]
初めに、取引システム10の構成について説明を行う。
図1は、取引システム10の構成について説明する図である。
【0012】
図1に示す取引システム10(以下、情報処理システム10とも呼ぶ)は、例えば、アクティブ装置1と、スタンバイ装置2と、スタンバイ装置3と、連携装置4と、受付装置5とを有する。
【0013】
受付装置5は、例えば、証券会社が有する情報処理システム(図示せず)から送信された株の売買注文を受け付ける。そして、受付装置5は、例えば、受け付けた売買注文を成立させるための処理の実行を依頼する処理依頼(以下、単に処理依頼とも呼ぶ)をアクティブ装置1に送信する。
【0014】
アクティブ装置1の処理部1aは、例えば、受付装置5から受信した処理依頼に対応する売買注文(受付装置5が受信した売買注文)を取り纏めて株の売買を成立させる。そして、処理部1aは、例えば、成立させた売買の内容をデータベース1b(以下、DB1bとも表記する)に反映する。さらに、処理部1aは、データベース1bにおける売買の反映結果を示すコミットログを生成する。その後、処理部1aは、スタンバイ装置2、スタンバイ装置3及び連携装置4のそれぞれに対して、生成したコミットログを送信する。
【0015】
スタンバイ装置2の処理部2aは、アクティブ装置1から送信されたコミットログの内容をデータベース2b(以下、DB2bとも表記する)に反映することによって、データベース1bとデータベース2bとの間の同期処理を行う。同様に、スタンバイ装置3の処理部3aは、アクティブ装置1から送信されたコミットログの内容をデータベース3b(以下、DB3bとも表記する)に反映することによって、データベース1bとデータベース3bとの間の同期処理を行う。そして、例えば、アクティブ装置1において所定の異常が発生した場合、スタンバイ装置2またはスタンバイ装置3は、アクティブ装置1が実行していた処理を引き継いで実行する。
【0016】
なお、以下、取引システム10が2台のスタンバイ装置(スタンバイ装置2及びスタンバイ装置3)を有する場合について説明を行うが、取引システム10は、2台以外の台数のスタンバイ装置を有するものであってもよい。
【0017】
連携装置4は、アクティブ装置1から送信されたコミットログを外部システム20に送信する。具体的に、連携装置4は、アクティブ装置1から送信されたコミットログを、外部システム20がアクセス可能なメッセージキュー(図示せず)に順次格納する。
【0018】
ここで、スタンバイ装置2、スタンバイ装置3及び連携装置4のそれぞれは、アクティブ装置1からコミットログを受信した場合、コミットログの受信が正常に行われたことを示す応答通知をアクティブ装置1に送信する。これにより、アクティブ装置1は、各コミットログの送信が正常に完了したか否かについて判断を行うことが可能になる。
【0019】
しかしながら、アクティブ装置1は、この場合、スタンバイ装置2及びスタンバイ装置3から送信される応答通知だけでなく、連携装置4から送信される応答通知についても待ち合わせる必要がある。そのため、アクティブ装置1では、例えば、連携装置4から送信される応答通知の待ち合わせ時間が長時間に及ぶ場合、株の売買に伴う処理等の性能低下が発生する。
【0020】
そこで、本実施の形態におけるアクティブ装置1は、データベース1bに対するトランザクションがコミットした場合、スタンバイ装置2及びスタンバイ装置3のうちのいずれかのスタンバイ装置を、連携装置4におけるコミットログの受信確認を行うスタンバイ装置(以下、特定のスタンバイ装置とも呼ぶ)として決定する。そして、アクティブ装置1は、決定した特定のスタンバイ装置の識別情報を付加したコミットログを連携装置4と特定のスタンバイ装置とにそれぞれ送信する。
【0021】
その後、特定のスタンバイ装置は、コミットログをアクティブ装置1から受信した場合、受信したコミットログに含まれる識別情報が自装置を示しているか否かを判定する。その結果、受信したコミットログに含まれる識別情報が自装置を示していると判定した場合、特定のスタンバイ装置は、受信したコミットログを記憶部に記憶するとともに、連携装置4に対してコミットログの受信確認の指示を送信する。
【0022】
そして、連携装置4は、コミットログをアクティブ装置1から受信し、かつ、コミットログの受信確認の指示を特定のスタンバイ装置から受信した場合、コミットログの受信が正常に完了したことを示す応答通知を特定のスタンバイ装置に送信する。
【0023】
さらに、特定のスタンバイ装置は、コミットログの受信が正常に完了したことを示す応答通知を連携装置4から受信した場合、アクティブ装置1から受信したコミットログを記憶部から削除する。
【0024】
すなわち、本実施の形態における取引システム10では、連携装置4におけるコミットログの受信確認を特定のスタンバイ装置が行う。
【0025】
これにより、本実施の形態における取引システム10は、例えば、連携装置4から送信される応答通知の待ち合わせに時間を要する場合であっても、アクティブ装置1における処理性能の低下を防止することが可能になる。
【0026】
[取引システムのハードウエア構成]
次に、取引システム10のハードウエア構成について説明する。
図2は、アクティブ装置1のハードウエア構成を説明する図である。また、
図3は、スタンバイ装置2のハードウエア構成を説明する図である。さらに、
図4は、連携装置4のハードウエア構成を説明する図である。なお、スタンバイ装置3のハードウエア構成については、スタンバイ装置2のハードウエア構成と同じであるため説明を省略する。
【0027】
初めに、アクティブ装置1のハードウエア構成について説明を行う。
【0028】
アクティブ装置1は、
図2に示すように、プロセッサであるCPU101と、メモリ102と、通信装置103と、記憶媒体104とを有する。各部は、バス105を介して互いに接続される。
【0029】
記憶媒体104は、例えば、連携装置4に対してコミットログを送信する処理(以下、ログ送信処理とも呼ぶ)を行うためのプログラム110を記憶するプログラム格納領域(図示せず)を有する。また、記憶媒体104は、例えば、ログ送信処理を行う際に用いられる情報を記憶する情報格納領域130を有する。なお、記憶媒体104は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)であってよい。
【0030】
CPU101は、記憶媒体104からメモリ102にロードされたプログラム110を実行してログ送信処理を行う。
【0031】
また、通信装置103は、例えば、ネットワークNWを介してスタンバイ装置2等との通信を行う。
【0032】
次に、スタンバイ装置2のハードウエア構成について説明を行う。
【0033】
スタンバイ装置2は、
図3に示すように、プロセッサであるCPU201と、メモリ202と、通信装置203と、記憶媒体204とを有する。各部は、バス205を介して互いに接続される。
【0034】
記憶媒体204は、例えば、ログ送信処理を行うためのプログラム210を記憶するプログラム格納領域(図示せず)を有する。また、記憶媒体204は、例えば、ログ送信処理を行う際に用いられる情報を記憶する情報格納領域230を有する。なお、記憶媒体204は、例えば、HDDやSSDであってよい。
【0035】
CPU201は、記憶媒体204からメモリ202にロードされたプログラム210を実行してログ送信処理を行う。
【0036】
また、通信装置203は、例えば、ネットワークNWを介してアクティブ装置1等との通信を行う。
【0037】
次に、連携装置4のハードウエア構成について説明を行う。
【0038】
連携装置4は、
図4に示すように、プロセッサであるCPU401と、メモリ402と、通信装置403と、記憶媒体404とを有する。各部は、バス405を介して互いに接続される。
【0039】
記憶媒体404は、例えば、ログ送信処理を行うためのプログラム410を記憶するプログラム格納領域(図示せず)を有する。また、記憶媒体404は、例えば、ログ送信処理を行う際に用いられる情報を記憶する情報格納領域430を有する。なお、記憶媒体404は、例えば、HDDやSSDであってよい。
【0040】
CPU401は、記憶媒体404からメモリ402にロードされたプログラム410を実行してログ送信処理を行う。
【0041】
また、通信装置403は、例えば、ネットワークNWを介してアクティブ装置1等との通信を行う。
【0042】
[取引システムの機能]
次に、取引システム10の機能について説明を行う。
図5は、アクティブ装置1の機能のブロック図である。また、
図6は、スタンバイ装置2の機能のブロック図である。さらに、
図7は、連携装置4の機能のブロック図である。なお、スタンバイ装置3の機能については、スタンバイ装置2の機能と同じであるため説明を省略する。
【0043】
初めに、アクティブ装置1の機能について説明を行う。
【0044】
アクティブ装置1は、
図5に示すように、CPU101やメモリ102等のハードウエアとプログラム110とが有機的に協働することにより、例えば、情報受信部111と、取引処理部112と、情報管理部113と、情報生成部114と、装置決定部115と、情報送信部116とを含む各種機能を実現する。なお、
図1で説明した処理部1aは、例えば、情報受信部111、取引処理部112、情報管理部113、情報生成部114、装置決定部115及び情報送信部116に対応する。
【0045】
また、アクティブ装置1は、
図5に示すように、例えば、対応情報131を情報格納領域130に記憶する。
【0046】
情報受信部111は、受付装置5が送信した処理依頼を受信する。具体的に、情報受信部111は、例えば、受付装置5が受け付けた売買注文を成立させるための処理依頼を受信する。
【0047】
取引処理部112は、例えば、情報受信部111が受信した処理依頼に対応する売買注文を取り纏めて株の売買を成立させる。そして、情報管理部113は、例えば、取引処理部112が株の売買を成立させた場合、取引処理部112が成立させた売買注文(情報受信部111が受信した処理依頼に対応する売買注文)の内容をデータベース1bに書き込む。また、情報管理部113は、例えば、取引処理部112が株の売買を成立させなかった場合、取引処理部112が成立させなかった売買注文(情報受信部111が受信した処理依頼に対応する売買注文)の内容をデータベース1bに書き込む。
【0048】
情報生成部114は、データベース1bに対するトランザクション(情報受信部111が受信した処理依頼に対応するトランザクション)がコミットした場合、そのトランザクションについてのコミットログを生成する。
【0049】
装置決定部115は、情報生成部114が生成したコミットログの連携装置4における受信確認を行う特定のスタンバイ装置を決定する。そして、情報生成部114は、装置決定部115が決定した特定のスタンバイ装置の識別情報をコミットログに付加する。
【0050】
情報送信部116は、特定のスタンバイ装置の識別情報を付加したコミットログを、連携装置4と特定のスタンバイ装置とにそれぞれ送信する。対応情報131についての説明は後述する。
【0051】
次に、スタンバイ装置2の機能について説明を行う。
【0052】
スタンバイ装置2は、
図6に示すように、CPU201やメモリ202等のハードウエアとプログラム210とが有機的に協働することにより、例えば、情報受信部211と、情報管理部212と、情報判定部213と、再送制御部214と、情報送信部215とを含む各種機能を実現する。なお、
図1で説明した処理部2aは、例えば、情報受信部211、情報管理部212、情報判定部213、再送制御部214及び情報送信部215に対応する。
【0053】
情報受信部211は、アクティブ装置1が送信したコミットログを受信する。そして、情報管理部212は、情報受信部211が受信したコミットログの内容をデータベース2bに書き込む。
【0054】
情報判定部213は、情報受信部211が受信したコミットログに含まれる識別情報が自装置を示しているか否かを判定する。
【0055】
再送制御部214は、情報受信部211が受信したコミットログに含まれる識別情報が自装置を示していると判定した場合、情報受信部211が受信したコミットログを情報格納領域130に記憶する。
【0056】
情報送信部215は、情報受信部211が受信したコミットログに含まれる識別情報が自装置を示していると判定した場合、情報受信部211が受信したコミットログの受信確認の指示を連携装置4に対して送信する。
【0057】
また、情報受信部211は、情報受信部211が受信したコミットログの受信が正常に完了したことを示す応答通知を連携装置4から受信する。そして、再送制御部214は、情報受信部211が連携装置4から送信された応答通知を受信した場合、情報受信部211が受信したコミットログを情報格納領域130から削除する。
【0058】
なお、以下、連携装置4に対するコミットログの再送を行う処理(再送制御部214が行う処理)を再送処理とも呼ぶ。
【0059】
次に、連携装置4の機能について説明を行う。
【0060】
連携装置4は、
図7に示すように、CPU401やメモリ402等のハードウエアとプログラム410とが有機的に協働することにより、例えば、情報受信部411と、受信判定部412と、情報送信部413とを含む各種機能を実現する。
【0061】
情報受信部411は、アクティブ装置1が送信したコミットログを受信する。また、情報受信部411は、特定のスタンバイ装置が送信した受信確認の指示を受信する。
【0062】
受信判定部412は、情報受信部411がコミットログと受信確認の指示とを受信しているか否かを判定する。具体的に、受信判定部412は、情報受信部411が受信確認の指示を受信した場合、その受信確認の指示に対応するコミットログを既に受信しているか否かを判定する。
【0063】
情報送信部413は、情報受信部411がコミットログと受信確認の指示とを受信していると受信判定部412が判定した場合、情報受信部411が受信したコミットログの受信が正常に完了したことを示す応答通知を特定のスタンバイ装置に送信する。
【0064】
また、情報送信部413は、情報受信部411が受信したコミットログを外部システム20に送信する。
【0065】
[第1の実施の形態の概略]
次に、第1の実施の形態の概略について説明する。
図8から
図10は、第1の実施の形態におけるログ送信処理の概略を説明するフローチャート図である。具体的に、
図8は、アクティブ装置1におけるログ送信処理の概略を説明するフローチャート図である。また、
図9は、スタンバイ装置2におけるログ送信処理の概略を説明するフローチャート図である。さらに、
図10は、連携装置4におけるログ送信処理の概略を説明するフローチャート図である。なお、スタンバイ装置3における処理については、スタンバイ装置2における処理と同じであるため説明を省略する。
【0066】
初めに、アクティブ装置1におけるログ送信処理の概略について説明を行う。
【0067】
アクティブ装置1は、
図8に示すように、データベース1bに対するトランザクションがコミットするまで待機する(S1のNO)。
【0068】
そして、データベース1bに対するトランザクションがコミットした場合(S1のYES)、アクティブ装置1は、コミットしたトランザクションについてのコミットログの連携装置4における受信確認を行う特定のスタンバイ装置を決定する(S2)。
【0069】
具体的に、アクティブ装置1は、例えば、スタンバイ装置2及びスタンバイ装置3のいずれかを特定のスタンバイ装置として決定する。
【0070】
その後、アクティブ装置1は、S2の処理において決定した特定のスタンバイ装置の識別情報を付加したコミットログを、S2の処理において決定した特定のスタンバイ装置と連携装置4とにそれぞれ送信する(S3)。
【0071】
次に、スタンバイ装置2におけるログ送信処理の概略について説明を行う。
【0072】
スタンバイ装置2は、
図9に示すように、アクティブ装置1から送信されたコミットログを受信するまで待機する(S11のNO)。
【0073】
そして、アクティブ装置1から送信されたコミットログを受信した場合(S11のYES)、スタンバイ装置2は、S11の処理において受信したコミットログに含まれる識別情報が自装置を示しているか否かを判定する(S12)。
【0074】
その結果、S11の処理において受信したコミットログに含まれる識別情報が自装置を示していると判定した場合(S13のYES)、スタンバイ装置2は、S11の処理において受信したコミットログを情報格納領域230に記憶するとともに、S11の処理において受信したコミットログの受信確認の指示を連携装置4に対して行う(S14)。
【0075】
その後、コミットログの受信が正常に完了したことを示す応答通知を連携装置4から受信した場合(S15のYES)、スタンバイ装置2は、S11の処理において受信したコミットログ(S14の処理において記憶したコミットログ)を情報格納領域230から削除する(S16)。
【0076】
一方、コミットログの受信が正常に完了したことを示す応答通知を連携装置4から受信しなかった場合(S15のNO)、スタンバイ装置2は、S16の処理を行わない。
【0077】
また、S11の処理において受信したコミットログに含まれる識別情報が自装置を示していないと判定した場合(S13のNO)、スタンバイ装置2は、S14以降の処理を行わない。
【0078】
次に、連携装置4におけるログ送信処理の概略について説明を行う。
【0079】
連携装置4は、
図10に示すように、アクティブ装置1からコミットログを受信し、かつ、特定のスタンバイ装置から受信確認の指示を受信するまで待機する(S21のNO)。
【0080】
そして、コミットログ及び受信確認の指示を受信した場合(S21のYES)、連携装置4は、受信した受信確認の指示に対する応答通知(コミットログの受信が正常に完了したことを示す応答通知)を特定のスタンバイ装置に送信する(S22)。
【0081】
すなわち、本実施の形態における取引システム10では、連携装置4におけるコミットログの受信確認を特定のスタンバイ装置が行う。
【0082】
これにより、本実施の形態における取引システム10は、例えば、連携装置4から送信される応答通知の待ち合わせに時間を要する場合であっても、アクティブ装置1における処理性能の低下を防止することが可能になる。
【0083】
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。
図11から
図17は、第1の実施の形態におけるログ送信処理の詳細を説明するフローチャート図である。また、
図18から
図26は、第1の実施の形態におけるログ送信処理の詳細を説明する図である。なお、スタンバイ装置3における処理については、スタンバイ装置2における処理と同じであるため説明を省略する。
【0084】
[アクティブ装置におけるログ送信処理の詳細]
初めに、アクティブ装置1におけるログ送信処理の詳細について説明を行う。
図11から
図13は、アクティブ装置1におけるログ送信処理の詳細について説明するフローチャート図である。
【0085】
情報受信部111は、
図11に示すように、例えば、受付装置5が送信した処理依頼を受信するまで待機する(S31のNO)。
【0086】
そして、受付装置5が送信した処理依頼を受信した場合(S31のYES)、情報管理部113は、受信した処理依頼に対応する内容をデータベース1bに反映する(S32)。
【0087】
具体的に、情報管理部113は、例えば、取引処理部112が株の売買を成立させた場合、取引処理部112が成立させた売買注文(S31の処理において受信した処理依頼に対応する売買注文)の内容をデータベース1bに書き込む。また、情報管理部113は、例えば、取引処理部112が株の売買を成立させなかった場合、取引処理部112が成立させなかった売買注文(S31の処理において受信した処理依頼に対応する売買注文)の内容をデータベース1bに書き込む。
【0088】
続いて、情報生成部114は、S31の処理において受信した処理依頼に対応するトランザクションについてのコミットログを生成する(S33)。以下、S33の処理において生成されたコミットログの具体例について説明を行う。
【0089】
[コミットログの具体例]
図18及び
図20は、コミットログCLの具体例を説明する図である。
【0090】
図18等に示すコミットログCLは、コミットログCLを示す電文種別が設定される「電文種別」と、各コミットログCLに対応するトランザクションの識別番号であるシーケンス番号が設定される「シーケンス番号」と、各コミットログCLの再送制御を行うスタンバイ装置の識別情報が設定される「識別情報」とを項目として有する。また、
図18等に示すコミットログCLは、各コミットログCLに対応するレコードの格納位置(データベース1bにおける格納位置)が設定される「レコード番号」と、各コミットログCLに対応するレコードの内容が設定される「レコード情報」とを項目として有する。
【0091】
具体的に、
図18に示すコミットログCLは、「電文種別」として「コミットログ」が設定され、「シーケンス番号」として「0013」が設定され、「識別情報」として情報が設定されていないことを示す「-」が設定され、「レコード番号」として「0003」が設定されている。なお、以下、レコード番号を特定の項目とも呼ぶ。
【0092】
図11に戻り、装置決定部115は、S33の処理において生成したコミットログの連携装置4における受信確認を行う特定のスタンバイ装置を決定する(S34)。以下、S34の処理の詳細について説明を行う。
【0093】
[S34の処理の詳細]
図13は、S34の処理の詳細について説明するフローチャート図である。
【0094】
装置決定部115は、S33の処理において生成したコミットログに含まれるレコード番号を含む対応情報131が情報格納領域130に記憶されているか否かを判定する(S51)。以下、対応情報131の具体例について説明を行う。
【0095】
[対応情報の具体例]
図19及び
図21は、対応情報131の具体例を説明する図である。
【0096】
図19等に示す対応情報131は、各スタンバイ装置の識別情報が設定される「識別情報」と、各スタンバイ装置が再送制御を行うコミットログに対応するレコードの格納位置が設定される「レコード番号」とを項目として有する。「識別情報」には、例えば、スタンバイ装置2を示す「Standby1」、または、スタンバイ装置3を示す「Standby2」が設定される。
【0097】
具体的に、
図19に示す対応情報131において、例えば、1行目の情報には、「識別情報」として「Standby2」が設定され、「レコード番号」として「0001」が設定されている。
【0098】
また、
図19に示す対応情報131において、例えば、2行目の情報には、「識別情報」として「Standby1」が設定され、「レコード番号」として「0002」が設定されている。
図19に含まれる他の情報についての説明は省略する。
【0099】
図13に戻り、S33の処理において生成したコミットログに含まれるレコード番号を含む対応情報131が情報格納領域130に記憶されていると判定した場合(S52のYES)、装置決定部115は、情報格納領域130に記憶した対応情報131を参照し、S33の処理において生成したコミットログに含まれるレコード番号に対応するスタンバイ装置を、S33の処理において生成したコミットログの受信確認を行う特定のスタンバイ装置として決定する(S53)。
【0100】
具体的に、
図19で説明した対応情報131において、「レコード番号」に「0003」が設定された情報(3行目の情報)の「識別情報」には、「Standby1」が設定されている。そのため、例えば、S33の処理において生成したコミットログに含まれるレコード番号が「0003」である場合、装置決定部115は、スタンバイ装置2を特定のスタンバイ装置として決定する。
【0101】
すなわち、対応情報131には、各レコード番号に対応するコミットログの送信(再送)を行っているスタンバイ装置の情報が含まれている。そのため、装置決定部115は、特定のスタンバイ装置を対応情報131に従って決定することによって、同一のレコード番号を有するコミットログの送信を同一のスタンバイ装置に行わせることが可能になる。
【0102】
これにより、アクティブ装置1は、同一のレコード番号を有するコミットログの送信が複数のスタンバイ装置において行われることを防止することが可能になる。そのため、アクティブ装置1は、例えば、ネットワークの状況等に起因して各スタンバイ装置から送信されたコミットログの順序が入れ替わる可能性がある場合であっても、同一レコード番号を有するコミットログの送信順序が入れ替わることを防止することが可能になる。
【0103】
一方、S33の処理において生成したコミットログに含まれるレコード番号を含む対応情報131が情報格納領域130に記憶されていないと判定した場合(S52のNO)、装置決定部115は、例えば、情報格納領域130に記憶した対応情報131に含まれる数(割合)が最小である識別情報に対応するスタンバイ装置を、S33の処理において生成したコミットログの受信確認を行う特定のスタンバイ装置として決定する(S54)。
【0104】
具体的に、
図19で説明した対応情報131において、例えば、「識別情報」に「Standby1」が設定された情報(行)の数が、「識別情報」に「Standby2」が設定された情報の数よりも少ない場合、装置決定部115は、スタンバイ装置2を特定のスタンバイ装置として決定する。
【0105】
これにより、アクティブ装置1は、各スタンバイ装置における処理負荷を均等化することが可能になる。
【0106】
その後、装置決定部115は、S33の処理において生成したコミットログに含まれるレコード番号と、S54の処理において決定したスタンバイ装置の識別情報とを対応付けた情報を対応情報131の少なくとも一部として情報格納領域130に記憶する(S55)。
【0107】
図11に戻り、情報生成部114は、S34の処理において決定した特定のスタンバイ装置の識別情報を、S33の処理において生成したコミットログに付加する(S35)。
【0108】
具体的に、S34の処理において決定した特定のスタンバイ装置がスタンバイ装置2である場合、情報生成部114は、
図20に示すように、例えば、
図18で説明したコミットログの「識別情報」に「Standby1」を設定する。
【0109】
そして、情報送信部116は、S35の処理において識別情報を付加したコミットログを、全てのスタンバイ装置(スタンバイ装置2及びスタンバイ装置3)と連携装置4とにそれぞれ送信する(S36)。
【0110】
その後、情報受信部111は、
図12に示すように、各スタンバイ装置におけるコミットログの受信が正常に行われたことを示す応答通知(以下、第1応答通知)を全てのスタンバイ装置から受信するまで待機する(S41のNO)。第1応答通知の具体例については後述する。
【0111】
そして、第1応答通知を全てのスタンバイ装置から受信した場合(S41のYES)、情報生成部114は、S41の処理において受信した第1応答通知の内容に従って、情報格納領域130に記憶した対応情報131を更新する(S42)。
【0112】
具体的に、例えば、「レコード番号」が「0002」であるコミットログの連携装置4に対する送信が正常に行われたことを示す第1応答通知を特定のスタンバイ装置から受信した場合、情報生成部114は、
図21に示すように、
図19で説明した対応情報131のうち、「レコード番号」が「0002」である情報(2行目の情報)を削除する。
【0113】
すなわち、情報生成部114は、各スタンバイ装置において記憶されているコミットログに対応するレコード番号のみが含まれるように、対応情報131の更新を行う。
【0114】
これにより、アクティブ装置1は、情報格納領域130に記憶した対応情報131を参照することで、各スタンバイ装置において記憶されているコミットログに対応するレコード番号を特定することが可能になる。
【0115】
なお、情報生成部114は、例えば、第1応答通知を特定のスタンバイ装置から受信したことに応じて、S42の処理を行うものであってもよい。
【0116】
その後、情報送信部116は、S31の処理において受信した処理依頼に対応するトランザクションがデータベース1bにおいてコミットしたことを示す応答通知(以下、第2応答通知とも呼ぶ)を受付装置5に送信する(S43)。
【0117】
[スタンバイ装置におけるログ送信処理の詳細]
次に、スタンバイ装置2におけるログ送信処理の詳細について説明を行う。
図14から
図16は、スタンバイ装置2におけるログ送信処理の詳細について説明するフローチャート図である。
【0118】
情報受信部211は、
図14に示すように、アクティブ装置1が送信したコミットログを受信するまで待機する(S61のNO)。
【0119】
そして、コミットログが受信した場合(S61のYES)、情報判定部213は、S61で受信したコミットログに含まれる識別情報が自装置を示しているか否かを判定する(S62)。
【0120】
その結果、S61で受信したコミットログに含まれる識別情報が自装置を示していないと判定した場合(S63のNO)、再送制御部214は、直前に行ったS84の処理において削除したコミットログのレコード番号を付加した第1応答通知を生成する(S64)。以下、S64の処理において生成された第1応答通知の具体例について説明を行う。
【0121】
[第1応答通知の具体例(1)]
図22及び
図23は、第1応答通知RS1の具体例を説明する図である。具体的に、
図22は、S64の処理において生成された第1応答通知RS1の具体例を説明する図である。
【0122】
図22等に示す第1応答通知RS1は、第1応答通知RS1を示す電文種別が設定される「電文種別」と、各コミットログに対応するトランザクションの識別番号であるシーケンス番号が設定される「シーケンス番号」とを項目として有する。また、
図22等に示す第1応答通知RS1は、各コミットログに対応するレコードの格納位置(データベース1bにおける格納位置)が設定される「レコード番号」と、各コミットログに対応する操作種別が設定される「操作種別」と、各コミットログのそのものが設定される「再送コミットログ」とを項目として有する。
【0123】
具体的に、
図22に示す第1応答通知RS1には、「電文種別」として「応答通知1」が設定され、「シーケンス番号」として「0013」が設定され、「レコード番号(1)」として「0002」が設定され、「操作種別(1)」として「削除」が設定され、「再送コミットログ」として情報(コミットログ)が設定されていないことを示す「-」が設定されている。
【0124】
すなわち、
図22に示す第1応答通知RS1は、直前に行ったS84の処理において削除したコミットログのレコード番号が「0002」であった場合に送信される応答通知である。
【0125】
図14に戻り、情報送信部215は、S64の処理において生成した第1応答通知をアクティブ装置1に送信する(S65)。
【0126】
一方、S63の処理において、S61で受信したコミットログに含まれる識別情報が自装置を示していると判定した場合(S63のYES)、再送制御部214は、
図15に示すように、S61の処理において受信したコミットログを情報格納領域230に記憶する(S71)。
【0127】
続いて、再送制御部214は、S61の処理において受信したコミットログのレコード番号と、直前に行ったS84で削除したコミットログのレコード番号とを付加した第1応答通知を生成する(S72)。
【0128】
[第1応答通知の具体例(2)]
図23は、S72の処理において生成された第1応答通知RS1の具体例を説明する図である。
【0129】
具体的に、
図23に示す第1応答通知RS1には、「電文種別」として「応答通知1」が設定され、「シーケンス番号」として「0013」が設定され、「レコード番号(1)」として「0002」が設定され、「操作種別(1)」として「削除」が設定されている。また、
図23に示す第1応答通知RS1には、「電文種別」として「応答通知1」が設定され、「レコード番号(2)」として「0003」が設定され、「操作種別(2)」として「追加」が設定され、「再送コミットログ」として「-」が設定されている。
【0130】
すなわち、
図23に示す第1応答通知RS1は、直前に行ったS84の処理において削除したコミットログのレコード番号が「0002」であり、かつ、S61の処理において受信したコミットログのレコード番号が「0003」であった場合に送信される応答通知である。
【0131】
図15に戻り、再送制御部214は、S61の処理において受信したコミットログ以外のコミットログが情報格納領域230に記憶されているか否かを判定する(S73)。
【0132】
その結果、S61の処理において受信したコミットログ以外のコミットログが情報格納領域230に記憶されていないと判定した場合(S74のNO)、情報送信部215は、S72の処理において生成した第1応答通知をアクティブ装置1と連携装置4とにそれぞれ送信する(S75)。
【0133】
一方、S61の処理において受信したコミットログ以外のコミットログが情報格納領域230に記憶されていると判定した場合(S74のYES)、再送制御部214は、
図16に示すように、S61の処理において受信したコミットログ以外のコミットログを、S72の処理において生成した第1応答通知に付加する(S81)。
【0134】
具体的に、再送制御部214は、例えば、
図23で説明した第1応答通知における「再送コミットログ」に、情報格納領域230に記憶したコミットログのうち、S61の処理において受信したコミットログ以外のコミットログの内容を設定する。
【0135】
そして、情報送信部215は、S81の処理においてコミットログを付加した第1応答通知をアクティブ装置1と連携装置4とにそれぞれ送信する(S82)。
【0136】
さらに、S75の処理またはS82の処理の後、所定時間が経過するまでの間に、S36の処理においてアクティブ装置1が送信したコミットログを正常に受信したことを示す応答通知(以下、第3応答通知とも呼ぶ)を連携装置4から受信した場合(S83のYES)、再送制御部214は、S83の処理において受信した第3応答通知の内容に従って、情報格納領域230からコミットログを削除する(S84)。
【0137】
一方、S75の処理またはS82の処理の後、所定時間が経過するまでの間に、第3応答通知を連携装置4から受信しなかった場合(S83のNO)、再送制御部214は、S84の処理を実行しない。以下、第3応答通知の具体例について説明を行う。
【0138】
[第3応答通知の具体例]
図24は、第3応答通知RS3の具体例を説明する図である。
【0139】
図24に示す第3応答通知RS3は、第3応答通知RS3を示す電文種別が設定される「電文種別」と、各コミットログに対応するトランザクションの識別番号であるシーケンス番号が設定される「シーケンス番号」とを項目として有する。
【0140】
具体的に、
図24に示す第3応答通知RS3には、「電文種別」として「応答通知3」が設定され、「シーケンス番号」として「0013」が設定されている。
【0141】
すなわち、再送制御部214は、アクティブ装置1から連携装置4に対して送信されたコミットログのうち、連携装置4から受信が正常に完了したことを示す第3応答通知を受信していないコミットログが情報格納領域230に記憶されるように制御を行う。
【0142】
これにより、スタンバイ装置2は、情報格納領域230に記憶されているコミットログを参照することで、連携装置4に対して再送を行う必要があるコミットログを容易に特定することが可能になる。
【0143】
[連携装置におけるログ送信処理の詳細]
次に、連携装置4におけるログ送信処理の詳細について説明を行う。
図17は、連携装置4におけるログ送信処理の詳細について説明するフローチャート図である。
【0144】
情報受信部411は、
図17に示すように、アクティブ装置1からコミットログを受信し、かつ、特定のスタンバイ装置から第1応答通知を受信するまで待機する(S91のNO)。
【0145】
そして、アクティブ装置1からコミットログを受信し、かつ、特定のスタンバイ装置から第1応答通知を受信した場合(S91のYES)、情報送信部413は、受信したコミットログを外部システム20に送信する(S92)。
【0146】
続いて、受信判定部412は、S91の処理において受信した第1応答通知にコミットログが含まれているか否かを判定する(S93)。
【0147】
その結果、S91の処理において受信した第1応答通知にコミットログが含まれていると判定した場合(S94のYES)、情報送信部413は、S91の処理において受信した第1応答通知に含まれているコミットログを外部システム20に送信する(S95)。
【0148】
一方、S91の処理において受信した第1応答通知にコミットログが含まれていないと判定した場合(S94のNO)、情報送信部413は、S95の処理を実行しない。
【0149】
その後、情報送信部413は、S91の処理において受信したコミットログに含まれる識別情報が示す特定のスタンバイ装置に対して第3応答通知を送信する(S96)。
【0150】
これにより、連携装置4は、受信に成功したコミットログに対応する第3応答通知を特定のスタンバイ装置に対して送信することが可能になる。
【0151】
このように、本実施の形態におけるアクティブ装置1は、データベース1bに対するトランザクションがコミットした場合、連携装置4におけるコミットログの受信確認を行う特定のスタンバイ装置を決定する。そして、アクティブ装置1は、決定した特定のスタンバイ装置の識別情報を付加したコミットログを連携装置4と特定のスタンバイ装置とにそれぞれ送信する。
【0152】
その後、特定のスタンバイ装置は、コミットログをアクティブ装置1から受信した場合、受信したコミットログに含まれる識別情報が自装置(特定のスタンバイ装置)を示しているか否かを判定する。その結果、受信したコミットログに含まれる識別情報が自装置を示していると判定した場合、特定のスタンバイ装置は、コミットログを記憶部に記憶するとともに、連携装置4に対してコミットログの受信確認の指示を送信する。
【0153】
そして、連携装置4は、コミットログをアクティブ装置1から受信し、かつ、コミットログの受信確認の指示を特定のスタンバイ装置から受信した場合、コミットログの受信確認が正常に完了したことを示す応答通知を特定のスタンバイ装置に送信する。
【0154】
さらに、特定のスタンバイ装置は、コミットログの受信確認が正常に完了したことを示す応答通知を連携装置4から受信した場合、アクティブ装置1から受信したコミットログを記憶部から削除する。
【0155】
すなわち、本実施の形態における取引システム10では、連携装置4におけるコミットログの受信確認を特定のスタンバイ装置が行う。
【0156】
これにより、本実施の形態における取引システム10は、例えば、連携装置4から送信される応答通知の待ち合わせに時間を要する場合であっても、アクティブ装置1における処理性能の低下を防止することが可能になる。
【0157】
[ログ送信処理の具体例(1)]
次に、連携装置4に対するコミットログの再送が発生しない場合におけるログ送信処理の具体例について説明を行う。
図25は、連携装置4に対するコミットログの再送が発生しない場合におけるログ送信処理の具体例について説明するシーケンスチャート図である。なお、以下、スタンバイ装置3が特定のスタンバイ装置である場合について説明を行う。
【0158】
具体的に、受付装置5は、例えば、証券会社の情報処理システム(図示せず)から送信された処理依頼(1)をアクティブ装置1に送信する。
【0159】
そして、アクティブ装置1は、受付装置5から送信された処理依頼(1)を受信した場合、スタンバイ装置2、スタンバイ装置3及び連携装置4のそれぞれに対して、処理依頼(1)に対応するトランザクションについてのコミットログ(1)を送信する。
【0160】
その後、スタンバイ装置2は、アクティブ装置1が送信したコミットログ(1)を受信したことに応じて、第1応答通知(1)をアクティブ装置1に送信する。
【0161】
また、スタンバイ装置3は、アクティブ装置1が送信したコミットログ(1)を受信したことに応じて、受信したコミットログ(1)を情報格納領域130に記憶し、第1応答通知(2)をアクティブ装置1に送信し、さらに、第1応答通知(3)を連携装置4に送信する。
【0162】
そして、アクティブ装置1は、スタンバイ装置3が送信した第1応答通知(2)を受信したことに応じて、第2応答通知(1)を受付装置5に送信する。なお、アクティブ装置1は、この場合、コミットログ(1)とスタンバイ装置3の識別情報とを対応付けた対応情報131を生成して情報格納領域130に記憶する。
【0163】
また、連携装置4は、スタンバイ装置3が送信した第1応答通知(3)を受信したことに応じて、アクティブ装置1が送信したコミットログ(1)を外部システム20に送信し、さらに、第3応答通知(1)をスタンバイ装置3に送信する。その後、スタンバイ装置3は、連携装置4が送信した第3応答通知(1)を受信したことに応じて、情報格納領域330に記憶したコミットログ(1)を削除する。
【0164】
続いて、受付装置5は、例えば、アクティブ装置1が送信した第2応答通知(1)を受信した後、処理依頼(2)をアクティブ装置1に送信する。
【0165】
そして、アクティブ装置1は、受付装置5から送信された処理依頼(2)を受信した場合、スタンバイ装置2、スタンバイ装置3及び連携装置4のそれぞれに対して、処理依頼(2)に対応するトランザクションについてのコミットログ(2)を送信する。
【0166】
その後、スタンバイ装置2は、アクティブ装置1が送信したコミットログ(2)を受信したことに応じて、第1応答通知(4)をアクティブ装置1に送信する。
【0167】
また、スタンバイ装置3は、アクティブ装置1が送信したコミットログ(2)を受信したことに応じて、受信したコミットログ(2)を情報格納領域330に記憶し、第1応答通知(5)をアクティブ装置1に送信し、さらに、第1応答通知(6)を連携装置4に送信する。
【0168】
そして、アクティブ装置1は、スタンバイ装置3が送信した第1応答通知(5)を受信したことに応じて、第2応答通知(2)を受付装置5に送信する。なお、アクティブ装置1は、この場合、コミットログ(1)とスタンバイ装置3の識別情報とを対応付けた対応情報131を情報格納領域130から削除するとともに、コミットログ(2)とスタンバイ装置3の識別情報とを対応付けた対応情報131を生成して情報格納領域130に記憶する。
【0169】
また、連携装置4は、スタンバイ装置3が送信した第1応答通知(6)を受信したことに応じて、アクティブ装置1が送信したコミットログ(2)を外部システム20に送信し、さらに、第3応答通知(2)をスタンバイ装置3に送信する。その後、スタンバイ装置3は、連携装置4が送信した第3応答通知(2)を受信したことに応じて、情報格納領域330に記憶したコミットログ(2)を削除する。
【0170】
[ログ送信処理の具体例(2)]
次に、連携装置4に対するコミットログの再送が発生する場合におけるログ送信処理の具体例について説明を行う。
図26は、連携装置4に対するコミットログの再送が発生する場合におけるログ送信処理の具体例について説明するシーケンスチャート図である。
【0171】
具体的に、受付装置5は、例えば、証券会社の情報処理システム(図示せず)から送信された処理依頼(1)をアクティブ装置1に送信する。
【0172】
そして、アクティブ装置1は、受付装置5から送信された処理依頼(1)を受信した場合、スタンバイ装置2、スタンバイ装置3及び連携装置4のそれぞれに対して、処理依頼(1)に対応するトランザクションについてのコミットログ(1)を送信する。
【0173】
その後、スタンバイ装置2は、アクティブ装置1が送信したコミットログ(1)を受信したことに応じて、第1応答通知(1)をアクティブ装置1に送信する。
【0174】
また、スタンバイ装置3は、アクティブ装置1が送信したコミットログ(1)を受信したことに応じて、受信したコミットログ(1)を情報格納領域130に記憶し、第1応答通知(2)をアクティブ装置1に送信し、さらに、第1応答通知(3)を連携装置4に送信する。
【0175】
そして、アクティブ装置1は、スタンバイ装置3が送信した第1応答通知(2)を受信したことに応じて、第2応答通知(1)を受付装置5に送信する。なお、アクティブ装置1は、この場合、コミットログ(1)とスタンバイ装置3の識別情報とを対応付けた対応情報131を生成して情報格納領域130に記憶する。
【0176】
ここで、アクティブ装置1から連携装置4に対するコミットログ(1)の送信が失敗した場合、連携装置4は、
図25で説明した場合と異なり、スタンバイ装置3が送信した第1応答通知(3)を受信した場合であっても、スタンバイ装置3に対して第3応答通知(1)の送信を行わない。そのため、スタンバイ装置3では、この場合、コミットログ(1)の削除が行われない。
【0177】
続いて、受付装置5は、例えば、アクティブ装置1が送信した第2応答通知(1)を受信した後、処理依頼(2)をアクティブ装置1に送信する。
【0178】
そして、アクティブ装置1は、受付装置5から送信された処理依頼(2)を受信した場合、スタンバイ装置2、スタンバイ装置3及び連携装置4のそれぞれに対して、処理依頼(2)に対応するトランザクションについてのコミットログ(2)を送信する。
【0179】
その後、スタンバイ装置2は、アクティブ装置1が送信したコミットログ(2)を受信したことに応じて、第1応答通知(4)をアクティブ装置1に送信する。
【0180】
また、スタンバイ装置3は、アクティブ装置1が送信したコミットログ(2)を受信したことに応じて、受信したコミットログ(2)を情報格納領域330に記憶し、第1応答通知(5)をアクティブ装置1に送信する。ここで、情報格納領域330には、コミットログ(1)とコミットログ(2)との両方が記憶されている。そのため、スタンバイ装置3は、
図25で説明した場合と異なり、第1応答通知(6)だけでなく、コミットログ(1)についても連携装置4に送信する。
【0181】
そして、アクティブ装置1は、スタンバイ装置3が送信した第1応答通知(5)を受信したことに応じて、第2応答通知(2)を受付装置5に送信する。なお、アクティブ装置1は、この場合、コミットログ(2)とスタンバイ装置3の識別情報とを対応付けた対応情報131を生成して情報格納領域130に記憶する。
【0182】
また、連携装置4は、スタンバイ装置3が送信した第1応答通知(6)及びコミットログ(1)を受信したことに応じて、スタンバイ装置3が送信(再送)したコミットログ(1)とアクティブ装置1が送信したコミットログ(2)とを外部システム20に送信し、さらに、第3応答通知(2)をスタンバイ装置3に送信する。その後、スタンバイ装置3は、連携装置4が送信した第3応答通知(2)を受信したことに応じて、情報格納領域330に記憶したコミットログ(1)とコミットログ(2)とを削除する。
【0183】
これにより、スタンバイ装置3(特定のスタンバイ装置)は、連携装置4に対するコミットログの再送処理をアクティブ装置1に代わって行うことが可能になる。そのため、スタンバイ装置3は、アクティブ装置1の処理負担を軽減させることが可能になる。
【0184】
以上の実施の形態をまとめると、以下の付記のとおりである。
【0185】
(付記1)
データベースに対するトランザクションについてのコミットログを送信する第1情報処理装置と、前記コミットログを前記第1情報処理装置から受信する第2情報処理装置及び第3情報処理装置と、前記コミットログを前記第1情報処理装置から受信する送信先装置とを有する情報処理システムであって、
前記第1情報処理装置は、前記トランザクションがコミットしたら、前記送信先装置における前記コミットログの受信確認を行う情報処理装置を、前記第2情報処理装置及び前記第3情報処理装置のうちのいずれかの情報処理装置に決定し、
前記第1情報処理装置は、決定した前記いずれかの情報処理装置の識別情報を付加した前記コミットログを前記送信先装置と前記いずれかの情報処理装置とにそれぞれ送信し、
前記いずれかの情報処理装置は、前記コミットログを前記第1情報処理装置から受信したら、受信した前記コミットログに含まれる前記識別情報が自装置を示しているか否かを判定し、
前記いずれかの情報処理装置は、前記コミットログに含まれる前記識別情報が自装置を示していると判定した場合、前記コミットログを記憶部に記憶するとともに、前記送信先装置に対して前記コミットログの受信確認の指示を送信し、
前記送信先装置は、前記コミットログを前記第1情報処理装置から受信し、かつ、前記コミットログの前記受信確認の指示を前記いずれかの情報処理装置から受信したら、前記送信先装置における前記コミットログの受信が正常に完了したことを示す受信確認結果を前記いずれかの情報処理装置に送信し、
前記いずれかの情報処理装置は、前記受信確認結果を前記送信先装置から受信したら、前記コミットログを前記記憶部から削除する、
ことを特徴とする情報処理システム。
【0186】
(付記2)
付記1において、
前記第1情報処理装置は、
前記コミットログに含まれる特定の項目に対応する情報と前記識別情報とを対応付ける対応情報を記憶部に記憶し、
前記データベースに対する新たなトランザクションがコミットしたら、前記記憶部を参照し、前記新たなトランザクションについての新たなコミットログに含まれる前記特定の項目に対応する情報を含む前記対応情報が前記記憶部に記憶されているか否かを判定し、
前記対応情報が前記記憶部に記憶されていると判定した場合、前記記憶部を参照し、前記新たなコミットログに含まれる前記特定の項目に対応する情報と対応付けられた前記識別情報を特定し、
特定した前記識別情報が示す情報処理装置を、前記送信先装置における前記新たなコミットログの受信確認を行う情報処理装置として決定する、
ことを特徴とする情報処理システム。
【0187】
(付記3)
付記2において、
前記第1情報処理装置は、前記対応情報が前記記憶部に記憶されていないと判定した場合、前記記憶部を参照し、前記対応情報に含まれる前記識別情報の割合が最も少ない情報処理装置を、前記送信先装置における前記新たなコミットログの受信確認を行う情報処理装置として特定する、
ことを特徴とする情報処理システム。
【0188】
(付記4)
付記2において、
前記第1情報処理装置は、前記コミットログを前記記憶部から削除したことを示す通知を前記いずれかの情報処理装置から受信したら、前記対応情報を前記記憶部から削除する、
ことを特徴とする情報処理システム。
【0189】
(付記5)
付記1において、
前記いずれかの情報処理装置は、
新たなコミットログを前記第1情報処理装置から受信したら、受信した前記新たなコミットログに含まれる前記識別情報が自装置を示しているか否かを判定し、
前記新たなコミットログに含まれる前記識別情報が自装置を示していると判定した場合、前記新たなコミットログを前記記憶部に記憶するとともに、前記コミットログが前記記憶部に記憶されている時は、前記送信先装置に対して前記新たなコミットログの受信確認の指示及び前記コミットログを送信し、
前記送信先装置における前記新たなコミットログの受信が正常に完了したことを示す受信確認結果を前記送信先装置から受信したら、前記コミットログと前記新たなコミットログとを前記記憶部から削除する、
ことを特徴とする情報処理システム。
【0190】
(付記6)
データベースに対するトランザクションについてのコミットログを送信先装置に送信する処理をコンピュータに実行させるログ送信プログラムであって、
前記トランザクションがコミットしたら、前記送信先装置における前記コミットログの受信確認を行う他の情報処理装置を決定し、
決定した前記他の情報処理装置の識別情報を付加した前記コミットログを前記送信先装置と前記他の情報処理装置とにそれぞれ送信する、
ことを特徴とするログ送信プログラム。
【0191】
(付記7)
データベースに対するトランザクションについてのコミットログを送信先装置に送信する処理をコンピュータに実行させるログ送信プログラムであって、
前記コミットログを他の情報処理装置から受信したら、受信した前記コミットログに含まれる識別情報が自装置を示しているか否かを判定し、
前記コミットログに含まれる前記識別情報が自装置を示していると判定した場合、前記コミットログを記憶部に記憶するとともに、前記送信先装置に対して前記コミットログの受信確認の指示を送信し、
前記送信先装置における前記コミットログの受信が正常に完了したことを示す受信確認結果を前記送信先装置から受信したら、前記コミットログを前記記憶部から削除する、
ことを特徴とするログ送信プログラム。
【0192】
(付記8)
データベースに対するトランザクションについてのコミットログを送信先装置に送信する情報処理装置であって、
前記トランザクションがコミットしたら、前記送信先装置における前記コミットログの受信確認を行う他の情報処理装置を決定する装置決定部と、
決定した前記他の情報処理装置の識別情報を付加した前記コミットログを前記送信先装置と前記他の情報処理装置とにそれぞれ送信する情報送信部と、を有する、
ことを特徴とする情報処理装置。
【0193】
(付記9)
データベースに対するトランザクションについてのコミットログを送信先装置に送信する情報処理装置であって、
前記コミットログを他の情報処理装置から受信したら、受信した前記コミットログに含まれる識別情報が自装置を示しているか否かを判定する情報判定部と、
前記コミットログに含まれる前記識別情報が自装置を示していると判定した場合、前記コミットログを記憶部に記憶するとともに、前記送信先装置に対して前記コミットログの受信確認の指示を送信する情報送信部と、
前記送信先装置における前記コミットログの受信が正常に完了したことを示す受信確認結果を前記送信先装置から受信したら、前記コミットログを前記記憶部から削除する再送制御部と、を有する、
ことを特徴とする情報処理装置。
【0194】
(付記10)
データベースに対するトランザクションについてのコミットログを送信する第1情報処理装置と、前記コミットログを前記第1情報処理装置から受信する第2情報処理装置及び第3情報処理装置と、前記コミットログを前記第1情報処理装置から受信する送信先装置とを有する情報処理システムにおけるログ送信方法であって、
前記第1情報処理装置は、前記トランザクションがコミットしたら、前記送信先装置における前記コミットログの受信確認を行う情報処理装置を、前記第2情報処理装置及び前記第3情報処理装置のうちのいずれかの情報処理装置に決定し、
前記第1情報処理装置は、決定した前記いずれかの情報処理装置の識別情報を付加した前記コミットログを前記送信先装置と前記いずれかの情報処理装置とにそれぞれ送信し、
前記いずれかの情報処理装置は、前記コミットログを前記第1情報処理装置から受信したら、受信した前記コミットログに含まれる前記識別情報が自装置を示しているか否かを判定し、
前記いずれかの情報処理装置は、前記コミットログに含まれる前記識別情報が自装置を示していると判定した場合、前記コミットログを記憶部に記憶するとともに、前記送信先装置に対して前記コミットログの受信確認の指示を送信し、
前記送信先装置は、前記コミットログを前記第1情報処理装置から受信し、かつ、前記コミットログの前記受信確認の指示を前記いずれかの情報処理装置から受信したら、前記送信先装置における前記コミットログの受信が正常に完了したことを示す受信確認結果を前記いずれかの情報処理装置に送信し、
前記いずれかの情報処理装置は、前記受信確認結果を前記送信先装置から受信したら、前記コミットログを前記記憶部から削除する、
ことを特徴とするログ送信方法。
【符号の説明】
【0195】
1:アクティブ装置 1a:処理部
1b:データベース 2:スタンバイ装置
2a:処理部 2b:データベース
3:スタンバイ装置 3a:処理部
3b:データベース 4:連携装置
5:受付装置 10:情報処理システム
20:外部システム