[第一の実施形態]
本発明の第一の実施形態について説明する。
図1は本実施形態の複製データ制御装置1の構成例を示すブロック図である。本実施形態の複製データ制御装置1は、受信部11と、更新情報反映部12と、電文記憶部13と、電文処理反映部14とを含む。
受信部11は、電文を処理する電文処理装置から受信した電文を電文記憶部13に記憶させる。
電文記憶部13は、複製データ制御装置1が受信した電文を記憶する。
更新情報反映部12は、電文処理装置による電文の処理結果が反映されている更新情報と、更新情報に処理結果が反映されている電文の情報を示す更新電文情報とを受信する。また、更新情報反映部12は、更新情報を用いて、複製データ記憶部7に記憶されている複製データに、電文処理装置による電文の処理結果を反映する。
電文処理反映部14は、所定の条件が満たされた場合に、電文記憶部13に記憶されている電文のうち、処理結果が複製データに反映されていない電文を、更新電文情報に基づいて特定する。また、電文処理反映部14は、特定された電文を処理し、特定された電文の処理結果を複製データに反映する。
このように複製データ制御装置1を構成することによって、複製データ制御装置1は、電文記憶部13に記憶されている電文のうち、処理結果が複製データに反映されていない電文を、更新電文情報に基づいて特定する。また、複製データ制御装置1は、特定された電文を処理し、特定された電文の処理結果を複製データに反映する。そのため、複製データ制御装置1にかかる処理の負荷を軽減しつつ、電文処理装置による電文の処理結果が反映されたデータと複製データ制御装置1によって複製された複製データとの差異を小さくすることが可能になる。
次に、図2から図4を用いて、本実施形態の複製データ制御装置1の動作例を説明する。
図2は受信部11の、図3は更新情報反映部12の、図4は電文処理反映部14の動作例を示すフローチャートである。
まず、図2と図3を用いて、本実施形態の複製データ制御装置1の受信部11と更新情報反映部12の動作例を説明する。本実施形態の複製データ制御装置1の電文処理反映部14の動作例(図4)については、後述する。
受信部11は、電文処理装置から受信した電文を電文記憶部13に記憶させる(図2のステップS101)。
更新情報反映部12は、電文処理装置による電文の処理結果が反映されている更新情報と、更新情報に処理結果が反映されている電文の情報を示す更新電文情報とを受信する(図3のステップS201)。また、更新情報反映部12は、更新情報を用いて、複製データ記憶部7に記憶されている複製データに、電文処理装置による電文の処理結果を反映する(ステップS202)。
次に、図4を用いて、本実施形態の電文処理反映部14の動作例について説明する。
電文処理反映部14は、所定の条件が満たされた場合に、電文記憶部13に記憶されている電文のうち、処理結果が複製データに反映されていない電文を、更新電文情報に基づいて特定する。また、電文処理反映部14は、特定された電文を処理する(ステップS301)。そして、電文処理反映部14は、特定された電文の処理結果を複製データに反映する(ステップS302)。
このように動作することによって、複製データ制御装置1は、電文記憶部13に記憶されている電文のうち、処理結果が複製データに反映されていない電文を、更新電文情報に基づいて特定する。また、複製データ制御装置1は、特定された電文を処理し、特定された電文の処理結果を複製データに反映する。そのため、複製データ制御装置1にかかる処理の負荷を軽減しつつ、電文処理装置による電文の処理結果が反映されたデータと複製データ制御装置1によって複製された複製データとの差異を小さくすることが可能になる。
[第二の実施形態]
次に、本発明の第二の実施の形態における複製データ制御装置3について具体的に説明する。
まず、図5に本実施形態の複製データ制御システムの構成例を示す。本実施形態の複製データ制御システムは、複製データ制御装置3と、電文処理装置2とを含む。なお、複製データ制御装置3と電文処理装置2の数は、各々、一つまたは二以上の複数の任意である。
電文処理装置2は、入力された電文を処理し、その処理結果を反映したデータを記憶する装置である。たとえば、勘定系システムや証券取引システムなどの業務システムで使用される現用系の装置が電文処理装置2に相当する。複製データ制御装置3は、電文処理装置2が記憶するデータの予備のデータを記憶する装置である。たとえば、業務システムで使用される待機系の装置が複製データ制御装置3に相当する。複製データ制御装置3が記憶する、電文処理装置2が記憶するデータの予備のデータを複製データと呼ぶ。
次に、図5を用いて、本実施形態の電文処理装置2の構成例を説明する。
電文処理装置2は、送受信部21と、処理部22と、データ記憶部23とを含む。
送受信部21は、外部から入力を受けた電文と、当該電文を識別する情報である識別情報とを複製データ制御装置3に出力する。また、送受信部21は、入力を受けた電文と電文の識別情報とを電文処理装置2の処理部22に出力する。
本実施形態において、電文の識別情報は、電文処理装置2が当該電文を処理した順番を示す番号であるとする。また、電文の識別情報の数値は、電文処理装置2によって処理された順で大きくなる(昇順)とする。送受信部21は、入力を受けた電文に対し、電文処理装置2が電文を処理する順番に基づいて識別情報を付与してもよい。なお、入力を受けた電文に対し識別情報が予め設定されている場合は、送受信部21は識別情報を決定せず、設定されている識別情報を用いてもよい。
データ記憶部23は、データを記憶する。データは、電文処理装置2による電文の処理結果が反映されている情報である。また、データは、複製データ制御装置3によって複製される対象である。データ記憶部23は、業務データベースなどに相当する。データ記憶部23に記憶されているデータは、処理部22によって更新される。また、データは、複数のデータ記憶部23に分散配置されていてもよい。その場合、電文処理装置2は、データ記憶部23ごとに処理系列を分け、処理系列ごとに並列処理してもよい。なお、データ記憶部23は、電文処理装置2の外部の装置に含まれていてもよい。
処理部22は、送受信部21から受信した電文を処理し、データ記憶部23に記憶されているデータに電文の処理結果を反映する。また、処理部22は、データ記憶部23に記憶されているデータに電文の処理結果を反映した後に、電文の処理結果の反映が終了したことを示す終了通知を送受信部21に出力する。
また、処理部22は、更新情報を作成する。更新情報は、電文処理装置2が電文の処理結果を電文処理装置2に記憶されているデータに反映した場合の、反映前後のデータの差分を示す情報である。たとえば、更新情報は、前回更新情報を作成した時点のデータと、今回の更新情報を作成した時点のデータとの差分を示す情報であってもよい。本実施形態では、処理部22は、データ記憶部23に記憶されているデータへ電文の処理結果を反映する度に更新情報を作成する。
また、処理部22は、送受信部21による、複製データ制御装置3へ電文を出力する動作とは非同期に、電文の処理結果が反映されている更新情報と、更新電文情報とを複製データ制御装置3の更新情報反映部32に出力する。更新電文情報は、更新情報に処理結果が反映されている電文の情報を示す。本実施形態の更新電文情報は、更新情報に処理結果が反映されている電文の情報として、更新情報に処理結果が反映されている電文の識別情報を含む。
また、処理部22は、所定の数の電文の処理結果をデータに反映する度に更新情報を作成してもよい。たとえば、識別情報が95、96、97の電文が処理された後に作成された更新情報に対応する更新電文情報は、95、96、97になる。このように、更新電文情報は、複数の電文の識別情報を含んでいてもよい。更新電文情報は、更新情報に複数の電文の処理結果が反映されている場合、処理結果がデータに最後に反映された電文の識別情報(97)であってもよい。
なお、処理部22は、図示しない所定の記憶部に更新情報を記憶させてもよい。電文処理装置2の負荷を鑑み、更新情報の出力のタイミングを制御する所定の制御部からの指示を受けて、処理部22は、図示しない所定の記憶部から更新情報を読み出し、読み出した更新情報を出力してもよい。
次に、図5を用いて、複製データ制御装置3の構成例を説明する。
複製データ制御装置3は、受信部31と、更新情報反映部32と、電文記憶部33と、電文処理反映部34と、複製データ記憶部35と、更新履歴記憶部36とを含む。
受信部31は、電文を処理する電文処理装置2から、電文と、電文の識別情報とを受信する。前述のとおり、本実施形態では、電文の識別情報は、電文処理装置2が当該電文を処理した順番を示す番号である。
受信部31は、電文と電文の識別情報とを対応付けて、電文記憶部33に記憶されている電文格納表の空き領域に格納する。また、受信部31は、受信した電文の識別情報を入力済通番として、更新履歴記憶部36に記憶されている更新履歴管理表に格納する。本実施形態では、入力済通番は、電文処理装置2から最後に受信した電文に対応する識別情報とする。
電文記憶部33は、電文を記憶する。本実施形態では、電文記憶部33は、電文格納表を記憶する。電文格納表は、電文と当該電文の識別情報とを含む。
図6に本実施形態の電文格納表の例を示す。この例では、識別情報が99、100、101の電文が、電文格納表に格納されている。
更新履歴記憶部36は、更新履歴管理表を記憶する。
図7に本実施形態の更新履歴管理表の例を示す。更新履歴管理表は、入力済通番と、反映済通番とを含む。この例は、受信部31が最後に受信した電文の識別情報が101である場合の例である。この場合、入力済通番に101が格納される。反映済通番については、後述する。
複製データ記憶部35は、複製データを記憶する。複製データは、電文処理装置2に障害が発生した場合などに用いられる予備のデータである。本実施形態では、電文処理装置2のデータ記憶部23に記憶されているデータと、複製データ制御装置3の複製データ記憶部35に記憶されている複製データとは、複製データ制御システムの運用開始時において同一であることを前提とする。また、複製データは、複数の複製データ記憶部35に分散配置されていてもよい。その場合、複製データ制御装置3は、複製データ記憶部35ごとに処理系列を分け、処理系列ごとに並列処理してもよい。なお、複製データ記憶部35は、複製データ制御装置3の外部の装置に含まれていてもよい。
更新情報反映部32は、電文処理装置2による電文の処理結果が反映されている更新情報と、更新情報に処理結果が反映されている電文の情報を示す更新電文情報とを、電文処理装置2の処理部22から受信する。更新電文情報は、電文の情報として、電文処理装置2が電文を処理した順番を示す識別情報を含む。
なお、本実施形態では、電文処理装置2は、電文の処理結果をデータへ反映する度に更新情報を作成する。そのため、更新情報が作成された順番は、更新電文情報に含まれる識別情報の順となる。複製データ制御装置3は、電文処理装置2が更新情報を作成した順、つまり、更新電文情報に含まれる識別情報の順に更新情報を用いて、複製データに電文の処理結果を反映する。
さらに、更新情報反映部32は、用いた更新情報に対応する更新電文情報に含まれる識別情報を反映済通番として更新履歴管理表に格納する。反映済通番は、どの電文の処理結果が、更新情報を用いて複製データに反映されたかを示す情報である。本実施形態の場合、反映済通番は、複製データへの処理結果の反映に最後に用いた更新情報に対応する、更新電文情報であるとする。複製データへの処理結果の反映に最後に用いた更新情報に対応する更新電文情報に、複数の識別情報が含まれる場合には、反映済通番は、更新電文情報に含まれる識別情報のうち、数値が最大の識別情報であってもよい。
図7の例の場合、更新履歴管理表には、反映済通番として100が格納されている。これは、複製データへの処理結果の反映に更新情報反映部32が最後に用いた更新情報に対応する更新電文情報に含まれる識別情報が100であったこと、つまり、識別情報が100までの電文の処理結果が複製データに反映されていることを示す。
電文処理反映部34は、所定の条件が満たされた場合に動作する。たとえば、条件は、電文の処理を指示する指示入力があった場合、電文処理装置2から電文を所定の時間受信しなかった場合、または、電文処理装置2の異常を所定の方法で検知した場合である。
いずれかの条件が満たされた場合に、電文処理反映部34は、電文記憶部33に記憶されている電文のうち、処理結果が複製データに反映されていない電文を、更新電文情報に基づいて特定する。具体的には、電文処理反映部34は、処理結果が複製データに反映されていない電文として、電文記憶部33に記憶されている電文のうち、更新履歴管理表に記憶されている反映済通番より大きい識別情報をもつ電文を特定する。
また、電文処理反映部34は、特定した電文を電文記憶部33の電文格納表から読み出し、特定した電文を処理し、特定した電文の処理結果を複製データに反映する。なお、処理結果が複製データに反映されていない電文として複数の電文が特定された場合、電文処理反映部34は、電文処理装置2が電文を処理した順番を示す識別情報の順番で、特定した電文を処理する。
また、電文処理反映部34は、電文を処理し、電文の処理結果を複製データに反映する度に、反映済通番として、当該電文の識別情報を更新履歴記憶部36に記憶されている更新履歴管理表に格納してもよい。この場合、反映済通番は、複製データに処理結果が反映されている電文の識別情報を示す。すなわち、更新情報反映部32による、更新情報を用いた処理結果の反映と、電文処理反映部34による、電文の処理結果を用いた処理結果の反映との両方の動作によって、反映済通番が格納される。
また、電文処理反映部34は、電文処理装置2の処理部22と同じ処理結果が得られる電文処理機能を備える。そのため、電文処理装置2の処理部22が処理結果をデータに反映した場合に、反映前後のデータに差分を生じさせない電文は、複製データ制御装置3が複製データに当該電文の処理結果を反映した場合も、反映前後の複製データに差分を生じさせない。
電文処理反映部34は、電文処理装置2の送受信部21から記憶部反映情報を受信した場合に、電文記憶部33に記憶されている電文格納表に記憶部反映情報を格納してもよい。記憶部反映情報は、電文処理装置2による電文の処理結果の反映により反映前後のデータに差分が生じたか否かを示す情報である。記憶部反映情報が電文格納表に格納されている場合には、複製データ制御装置3の電文処理反映部34は、記憶部反映情報に基づいて、反映前後のデータに差分を生じさせる電文を選択的に処理してもよい。第三の実施形態は、記憶部反映情報を用いる場合の実施の形態である。よって、記憶部反映情報を用いる場合については、第三の実施形態で説明する。
また、電文処理装置2に障害が発生した場合など、電文処理装置2で電文の処理を行うことができない場合は、複製データ制御装置3を実行系として用いることも可能である。複製データ制御装置3は、電文処理装置2から受信した電文の処理結果をすべて複製データに反映した後に、電文処理装置2の代わりに実行系として電文の処理を継続することが可能である。その場合は、複製データ制御装置3は、まず、処理結果が複製データに反映されていない電文として特定された電文を処理し、当該電文の処理結果を複製データへ反映する。その後、受信部31は、電文を受信するための通信回線を電文処理装置2から外部へ切り替え、外部から電文の入力を受ける。また、電文処理反映部34は、電文処理装置2の処理部22と同様に電文を処理し、複製データに電文の処理結果を反映する。
このように複製データ制御装置3を構成することによって、複製データ制御装置3は、電文記憶部33に記憶されている電文のうち、処理結果が複製データに反映されていない電文を、更新電文情報に基づいて特定する。また、複製データ制御装置3は、特定された電文を処理し、特定された電文の処理結果を複製データに反映する。そのため、複製データ制御装置3にかかる処理の負荷を軽減しつつ、電文処理装置2による電文の処理結果が反映されたデータと複製データ制御装置3によって複製された複製データとの差異を小さくすることが可能になる。
また、本実施形態の複製データ制御装置3は、障害発生など、所定の条件が満たされた場合に、電文記憶部33に記憶されている電文のうち、処理結果が複製データに反映されていない電文を更新電文情報に基づいて特定する。また、複製データ制御装置3は、特定された電文を処理し、電文の処理結果を複製データに反映する。これにより、特定された電文の処理結果を複製データに反映した後に、複製データに処理結果が反映されていない電文は、電文処理装置2が受信したものの、障害が発生したときに、複製データ制御装置3が電文処理装置2から受信していない電文のみとなる。そのため、本実施形態の複製データ制御装置3は、複製データ制御装置3に記憶されている複製データと、電文処理装置2に記憶されているデータとの差異を最小限にすることが可能である。また、本実施形態の複製データ制御システムは、電文処理装置2の代わりに複製データ制御装置3を実行系として用いて、電文の処理を短時間で再開することが可能になる。
また、本実施形態の電文処理反映部34は、電文を処理して処理結果を複製データに反映した後に、処理対象の電文の識別情報を反映済通番として更新履歴管理表に格納してもよい。その場合、複製データに処理結果が反映された電文を複製データ制御装置3が随時把握することが可能になる。これにより、電文処理反映部34は、電文の処理が中断した場合に、中断する直前に処理結果が複製データに反映された電文の次の識別情報をもつ電文(処理が中断された電文)から処理を行うことが可能になる。そのため、複製データ制御装置3は、電文を迅速に処理することが可能になる。
次に、図8から図10を用いて、本実施形態の複製データ制御システムの動作例を説明する。
図8は、電文処理装置2が電文を処理し、複製データ制御装置3が電文を電文格納表に格納する動作例を示す。図9は、電文処理装置2が更新情報を複製データ制御装置3に出力し、複製データ制御装置3が、受信した更新情報を用いて電文処理装置2による電文の処理結果を複製データに反映する動作例を示す。図10は、複製データ制御装置3が電文を処理し、電文の処理結果を複製データに反映する動作例を示す。
まず、図8を用いて、電文処理装置2が電文を処理し、複製データ制御装置3が電文を電文格納表に格納する動作を説明する。
電文処理装置2の送受信部21は、外部から電文(たとえば×××××××××)の入力を受ける(ステップS401)。また、送受信部21は、電文を識別する情報である識別情報(たとえば101)を電文に付与する(ステップS402)。さらに、送受信部21は、入力を受けた電文と電文の識別情報とを複製データ制御装置3に出力する(ステップS403)。なお、本実施形態では、識別情報は、電文処理装置2が電文を処理した順番を示す。
複製データ制御装置3の受信部31は、電文を処理する電文処理装置2から、電文と、電文の識別情報とを受信する。受信部31は、電文処理装置2から受信した電文と、電文の識別情報とを対応付けて、電文記憶部33に記憶されている電文格納表の空き領域に格納する(図6、3行目、識別情報:101/電文:×××××××××)。さらに、受信部31は、更新履歴記憶部36に記憶されている更新履歴管理表に、入力済通番として、受信した電文の識別情報(101)を格納する(ステップS404)。また、受信部31は、電文の格納の終了を示す応答を、電文処理装置2の送受信部21に出力する(ステップS405)。
なお、電文記憶部33に記憶されている電文のうち、更新履歴管理表の反映済通番以下の数値の識別情報をもつ電文は、当該電文の処理結果が複製データに既に反映されている。そのため、受信部31は、反映済通番以下の値の識別情報をもつ電文を、処理結果が複製データに既に反映されている電文であるとみなすことができる。そのため、受信部31は、当該電文を電文記憶部33から削除可能とみなしてもよい。または、電文記憶部33の、当該電文が記憶されている領域を空き領域とみなしてもよい。たとえば、更新履歴管理表の反映済通番が100であり、識別情報が90の電文が電文記憶部33に記憶されている場合に、識別情報が101の電文を受信部31が受信したとする。この場合は、受信部31は、電文記憶部33の、識別情報が90の電文と識別情報とが記憶されている領域に、識別情報が101の電文と識別情報とを記憶させてもよい。
電文処理装置2の送受信部21は、入力を受けた電文とその電文の識別情報とを処理部22に出力し(識別情報:101/電文:×××××××××)、出力した電文の処理を処理部22へ要求する。なお、送受信部21は、ステップS406の動作をステップS403の動作と並行して行ってもよい。
処理部22は、送受信部21から受信した電文を処理する(ステップS406)。
また、処理部22は、ステップS406における電文の処理結果を、データ記憶部23に記憶されているデータに反映する。また、処理部22は、ステップS406における電文の処理結果を反映した更新情報を作成する。処理部22は、電文の処理結果のデータへの反映が終了したことを示す終了通知を送受信部21に出力する(ステップS407)。
送受信部21は、ステップS405の応答とステップS407の終了通知とを受信した場合に、ステップS401で入力を受けた電文の処理が終了したとみなす(ステップS408)。電文処理装置2は、ステップS401からステップS408の動作の間は新しい電文の入力を受け付けない。電文処理装置2は、ステップS408の動作の後、新しい電文の入力を受け付ける。
次に、図9を用いて、電文処理装置2が更新情報を複製データ制御装置3に出力し、複製データ制御装置3が、受信した更新情報を用いて電文処理装置2による電文の処理結果を複製データに反映する動作の例を説明する。
電文処理装置2の処理部22は、所定のタイミングで、更新情報と、更新情報に処理結果が反映されている電文の情報を示す更新電文情報とを、複製データ制御装置3の更新情報反映部32に出力する(ステップS501)。たとえば、タイミングは、前回の出力から所定の時間が経過した場合、前回の出力以降に所定の数の電文を処理した場合、図示しない制御部から指示を受けた場合の少なくともいずれか1つの条件を満たした場合である。
また、本実施形態では、更新電文情報は、更新情報に処理結果が反映されている電文の識別情報を含む。また、処理部22は、更新電文情報の他に、処理部22が更新情報を作成した順番を示す更新情報通番や、一つの電文の処理結果が反映されている更新情報の総数を出力してもよい。更新情報通番や総数を用いる場合の複製データ制御システムの動作については、第三の実施形態で述べる。
複製データ制御装置3の更新情報反映部32は、電文処理装置2の処理部22から受信した更新情報を用いて、複製データ記憶部35に記憶されている複製データに、電文処理装置2による電文の処理結果を反映する。また、更新情報反映部32は、用いた更新情報に対応する更新電文情報に含まれる識別情報を反映済通番として、更新履歴記憶部36に記憶されている更新履歴管理表に格納する(ステップS502)。
たとえば、更新情報反映部32が、更新情報を用いて電文処理装置2による電文の処理結果を複製データに反映し、当該更新情報に対応する更新電文情報に含まれる識別情報が100であったとする。この場合、更新情報反映部32は、反映済通番として、更新電文情報に含まれる識別情報(100)を、更新履歴管理表に格納する(図7)。
次に、図10を用いて、複製データ制御装置3が電文を処理し、電文の処理結果を複製データに反映する動作例を説明する。
所定の条件が満たされた場合に、複製データ制御装置3の電文処理反映部34は、図10の動作を行う。
なお、所定の条件が満たされた時点での、複製データへの処理結果の反映の状況には、以下の2通りがある。
(1)複製データ制御装置3の電文記憶部33に記憶されている電文の処理結果は、複製データにすべて反映されている。
(2)複製データ制御装置3の電文記憶部33に記憶されている電文に、処理結果が複製データに反映されていない電文がある。
ここでは、(1)と(2)のそれぞれの場合を説明する。
まず、(1)複製データ制御装置3の電文記憶部33に記憶されている電文の処理結果が複製データにすべて反映されている場合について説明する。なお、(1)の場合、更新履歴管理表に記憶されている入力済通番は、反映済通番と等しい。
電文処理反映部34は、所定の条件が満たされた場合に、更新履歴管理表の入力済通番と反映済通番との比較を行う。(1)の場合、入力済通番と反映済通番が一致し、電文記憶部33に記憶されている電文の処理結果がすべて複製データに反映されている(ステップS601、NO)。そのため、電文処理反映部34は、ステップS602からステップS606までの動作を行わず、図10の動作を終了する。
次に、(2)複製データ制御装置3の電文記憶部33に記憶されている電文に、処理結果が複製データに反映されていない電文がある場合について説明する。
なお、ここでは、更新履歴管理表が図7の状態で、電文処理反映部34が図10の動作を開始した場合を例に説明する。更新履歴管理表が図7の状態の場合、識別情報100までの電文の処理結果が複製データに反映されている。また、電文記憶部33は、識別情報101までの電文を記憶している。
電文処理反映部34は、更新履歴管理表の入力済通番(図7、入力済通番:101)と反映済通番(図7、反映済通番:100)との比較を行う。そして、入力済通番より反映済通番が小さく、電文の処理結果が複製データに反映されていない電文があるので(ステップS601、YES)、電文処理反映部34は、電文の処理結果が複製データに反映されていない電文を特定する。なお、本実施形態では、電文の識別情報は、電文処理装置2が電文を処理した順番を示す番号である。そのため、電文処理反映部34は、反映済通番の次の番号から入力済通番と同じ番号までの識別情報をもつ電文を、処理結果が複製データに反映されていない電文として特定する。
次に、電文処理反映部34は、特定した電文のうち、反映済通番の次の番号の識別情報(識別情報:101)をもつ電文を、処理対象の電文として、電文記憶部33に記憶されている電文格納表から読み出す(ステップS602)。
次に、電文処理反映部34は、読み出された電文(処理対象の電文)を処理する(ステップS603)。また、電文処理反映部34は、当該電文の処理結果を複製データに反映する(ステップS604)。
電文処理反映部34は、ステップS604で複製データに処理結果が反映された電文(処理対象の電文)の識別情報(識別情報:101)と、更新履歴管理表の入力済通番とを比較する(ステップS605)。電文処理反映部34は、入力済通番より処理対象の電文の識別情報が小さい場合は(ステップS605、YES)、処理対象の電文の識別情報の次の番号の識別情報をもつ電文を、次の処理対象の電文として読み出す(ステップS606)。そして、電文処理反映部34は、ステップS603以後の動作を行う。
電文処理反映部34は、入力済通番と処理対象の電文の識別情報が一致する場合は(ステップS605、NO)、図10の動作を終了する。更新履歴管理表が図7の状態の場合は、識別情報101の電文を処理対象の電文として読み出しており、入力済通番と処理対象の電文の識別情報とが一致する。そのため、電文処理反映部34は図10の動作を終了する。
なお、電文処理反映部34は、ステップS604において、複製データに処理結果が反映された電文(処理対象の電文)の識別情報を反映済通番として更新履歴記憶部36に記憶されている更新履歴管理表に格納してもよい。その場合は、反映済通番は、複製データに処理結果が反映された電文の識別情報を示す。また、この場合、ステップS605において、電文処理反映部34は、更新履歴管理表に格納されている反映済通番と入力済通番とを比較してもよい。
このように動作することによって、複製データ制御装置3は、電文記憶部33に記憶されている電文のうち、処理結果が複製データに反映されていない電文を、更新電文情報に基づいて特定する。また、複製データ制御装置3は、特定された電文を処理し、特定された電文の処理結果を複製データに反映する。そのため、複製データ制御装置3にかかる処理の負荷を軽減しつつ、電文処理装置2による電文の処理結果が反映されたデータと複製データ制御装置3によって複製された複製データとの差異を小さくすることが可能になる。
以上で説明したように、本発明の第二の実施形態では、複製データ制御装置3は、電文記憶部33に記憶されている電文のうち、処理結果が複製データに反映されていない電文を、更新電文情報に基づいて特定する。また、複製データ制御装置3は、特定された電文を処理し、特定された電文の処理結果を複製データに反映する。そのため、複製データ制御装置3にかかる処理の負荷を軽減しつつ、電文処理装置2による電文の処理結果が反映されたデータと複製データ制御装置3によって複製された複製データとの差異を小さくすることが可能になる。
また、本実施形態の複製データ制御装置3は、障害発生など、所定の条件が満たされた場合に、電文記憶部33に記憶されている電文のうち、処理結果が複製データに反映されていない電文を更新電文情報に基づいて特定する。また、複製データ制御装置3は、特定された電文を処理し、電文の処理結果を複製データに反映する。これにより、特定された電文の処理結果の複製データへの反映の後に、複製データに処理結果が反映されていない電文は、電文処理装置2が受信したものの、障害が発生したときに、複製データ制御装置3が電文処理装置2から受信していない電文のみとなる。そのため、本実施形態の複製データ制御装置3は、複製データ制御装置3に記憶されている複製データと、電文処理装置2に記憶されているデータとの差異を最小限にすることが可能である。また、本実施形態の複製データ制御システムは、電文処理装置2の代わりに複製データ制御装置3を実行系として用いて、電文の処理を短時間で再開することが可能になる。
また、本実施形態の電文処理反映部34は、電文を処理して処理結果を複製データに反映した後に、処理対象の電文の識別情報を反映済通番として更新履歴管理表に格納してもよい。その場合、複製データに処理結果が反映された電文を複製データ制御装置3が随時把握することが可能になる。これにより、電文処理反映部34は、電文の処理が中断した場合に、中断する直前に処理結果が複製データに反映された電文の次の識別情報をもつ電文(処理が中断された電文)から処理を行うことが可能になる。そのため、複製データ制御装置3は、迅速に電文の処理をすることが可能になる。
また、上述のように、本実施形態の複製データ制御装置3は、電文記憶部33に記憶されている反映済通番以下の番号の識別情報をもつ電文を、既に処理結果が複製データに反映されている電文としてみなすことができる。そのため、複製データ制御装置3の受信部31は、当該電文を電文記憶部33から削除可能とみなす、または、電文記憶部33の当該電文が記憶されている領域を空き領域とみなすことができる。これにより、電文記憶部33は、必要な電文を記憶しつつ、記憶領域を有効に活用できるため、複製データ制御装置3の電文記憶部33にかかるコストを低減することが可能になる。
[第三の実施形態]
次に、本発明の第三の実施の形態における複製データ制御システムについて具体的に説明する。第三の実施の形態は、電文処理装置5と複製データ制御装置4のそれぞれが更新情報を記憶する点で、第二の実施形態と異なる。また、第二の実施形態と共通する構成や効果については、重複する説明を省略する。
まず、図11に本実施形態の複製データ制御システムの構成例を示す。本実施形態の複製データ制御システムは、複製データ制御装置4と、電文処理装置5とを含む。
次に、図11を用いて本実施形態の電文処理装置5の構成例を説明する。
本実施形態の電文処理装置5は、送受信部51と、処理部52と、データ記憶部53と、更新情報記憶部54とを含む。本実施形態の電文処理装置5は、更新情報記憶部54を含む点で、第二の実施形態の電文処理装置2(図5)と異なる。
送受信部51は、外部から入力を受けた電文と、当該電文を識別する情報である識別情報とを複製データ制御装置4に出力する。また、送受信部51は、入力を受けた電文と電文の識別情報とを電文処理装置5の処理部52に出力する。
本実施形態において、電文の識別情報は、電文処理装置5が当該電文を処理した順番を示す番号であるとする。また、識別情報の数値は、電文処理装置5によって処理された順で大きくなる(昇順)とする。
さらに、送受信部51は、トランザクション情報を処理部52から受信する。トランザクション情報は、電文の処理に関する情報である。トランザクション情報は、処理対象の電文の識別情報と、電文処理装置5による当該電文の処理に関する情報とを含む。また、本実施形態のトランザクション情報は、電文処理装置5による当該電文の処理に関する情報として、記憶部反映情報とレプリケーション情報とを含む。記憶部反映情報は、電文処理装置5による電文の処理結果の反映により反映前後でデータ記憶部53に記憶されているデータに差分を生じさせたか否かを示す情報である。レプリケーション情報は、電文処理装置5による電文の処理結果のデータへの反映が正常に終了したか否かを示す情報である。送受信部51は、電文の処理結果のデータへの反映が終了したことを示す終了通知を、トランザクション情報と共に、アプリケーション実行部521から受信する。そして、送受信部51は、トランザクション情報を複製データ制御装置4に出力する。なお、送受信部51は、トランザクション情報の出力に対する複製データ制御装置4の応答を待ち合わせない。
また、送受信部51は、電文の複製データ制御装置4への出力が終了し、かつ、アプリケーション実行部521から終了通知を受信した場合に、コミット処理またはロールバック処理を電文処理結果反映部522に要求する。このとき、送受信部51は、トランザクション情報に含まれるレプリケーション情報に基づいて、コミット処理、または、ロールバック処理を電文処理結果反映部522に要求する。なお、電文の処理結果のデータへの反映が正常に終了したか否かを示す情報が終了通知に含まれる場合は、送受信部51は、終了通知に含まれる情報に基づいて、コミット処理またはロールバック処理を電文処理結果反映部522に要求してもよい。また、コミット処理は、電文の処理結果のデータへの反映を確定する処理である。また、ロールバック処理は、電文の処理結果が反映される前の状態にデータを戻す処理である。
送受信部51は、受信したトランザクション情報に含まれるレプリケーション情報が電文の処理結果のデータへの反映が正常に終了したことを示す場合に、電文処理結果反映部522に、コミット処理を要求する。
また、送受信部51は、受信したトランザクション情報に含まれるレプリケーション情報が電文の処理結果のデータへの反映が正常に終了しなかったことを示す場合に、電文処理結果反映部522に、ロールバック処理を要求する。送受信部51は、ロールバック処理、または、コミット処理が終了したことを示す通知を電文処理結果反映部522から受信した場合に、電文の処理が終了したとみなし、次の電文の入力を受け付ける。
なお、送受信部51から複製データ制御装置4への電文の出力が正常に終了したか否かによらず、レプリケーション情報が電文の処理結果のデータへの反映が正常に終了したことを示す場合は、送受信部51は、電文処理結果反映部522にコミット処理を要求する。そして、電文処理装置5の電文処理結果反映部522は、電文の処理結果のデータへの反映を確定する。その後、電文処理装置5の送受信部51は、コミット処理が終了したことを示す通知を電文処理結果反映部522から受信した場合に、電文の処理が終了したとみなし、次の電文の入力を受け付ける。
複製データ制御装置4への電文の出力が正常に終了しなかった場合には、複製データ制御装置4と電文処理装置5との間の通信の障害、または、複製データ制御装置4の異常が想定される。そのため、電文処理装置5の送受信部51は、複製データ制御装置4の受信部41へ出力できなかった電文を受信部41へ再度出力してもよい。また、複製データ制御装置4がシステム内に複数存在する場合は、異常が発生した複製データ制御装置4の代わりに、異常が生じていない複製データ制御装置4を用いて、電文処理装置5に記憶されているデータを複製してもよい。
また、複製データ制御装置4や通信回線が障害から復旧した後に、電文処理装置5は、障害が発生している間に作成した更新情報と、更新電文情報とを複製データ制御装置4に出力してもよい。
データ記憶部53は、データを記憶する。データは、電文処理装置5による電文の処理結果が反映されている情報である。また、データは、複製データ制御装置4によって複製される対象である。なお、データ記憶部53は、電文処理装置5の外部の装置に含まれていてもよい。
処理部52は、アプリケーション実行部521と電文処理結果反映部522と更新情報管理部523とを含む。
アプリケーション実行部521は、送受信部51から受信した電文を処理し、電文の処理結果と当該電文の識別情報とを電文処理結果反映部522に出力する。また、電文の処理結果のデータへの反映が終了したことを示す終了通知とトランザクション情報とを電文処理結果反映部522から受信する。また、アプリケーション実行部521は、電文処理結果反映部522から受信したトランザクション情報と終了通知とを送受信部51に出力する。
電文処理結果反映部522は、アプリケーション実行部521から電文の処理結果と当該電文の識別情報を受信した場合に、電文の処理結果を反映する前のデータに関する情報を所定の記憶部に記憶する。さらに、電文処理結果反映部522は、アプリケーション実行部521から受信した電文の処理結果を、データ記憶部53に記憶されているデータに反映する。
さらに、電文処理結果反映部522は、電文の処理結果が反映された更新情報を作成する。本実施形態では、電文処理結果反映部522は、電文の処理結果を反映する前後のデータに関する情報を比較し、電文の処理結果の反映前後のデータに差分がある場合に、更新情報を作成する。また、電文処理結果反映部522は、更新情報に対して、当該更新情報が作成された順番を示す更新情報通番を設定する。更新情報は、電文処理装置5が電文の処理結果を電文処理装置5に記憶されているデータに反映した場合の反映前後のデータの差分を示す情報である。
また、電文処理結果反映部522は、更新情報と、更新電文情報と、更新情報通番とを更新情報管理部523に出力する。本実施形態の更新電文情報は、更新情報に処理結果が反映されている電文の情報として、更新情報に処理結果が反映されている電文の識別情報を含む。
また、電文処理結果反映部522は、電文の処理結果を反映する前後のデータに関する情報を比較し、記憶部反映情報を作成する。また、電文処理結果反映部522は、電文処理結果反映部522における電文の処理結果のデータへの反映が正常に終了したか否かに基づいてレプリケーション情報を作成する。また、電文処理結果反映部522は、電文の処理結果のデータへの反映が終了したことを示す終了通知とトランザクション情報とを、アプリケーション実行部521に出力する。
さらに、電文処理結果反映部522は、送受信部51からコミット処理を要求された場合に、電文の処理結果のデータへの反映を確定するコミット処理を行う。本実施形態において、電文の処理結果のデータへの反映を確定する、とは、ロールバック処理を行わないことを確定することである。また、電文処理結果反映部522は、コミット処理として、所定の記憶部に記憶されている、電文の処理結果を反映する前のデータに関する情報を削除してもよい。
なお、電文処理結果反映部522は、送受信部51からロールバック処理を要求された場合に、ロールバック処理を行う。具体的には、電文処理結果反映部522は、所定の記憶部に記憶されている、電文の処理結果を反映する前のデータに関する情報に基づいて、電文の処理結果が反映される前の状態にデータを戻す。
また、電文処理結果反映部522は、ロールバック処理、または、コミット処理を終了した後に、ロールバック処理、または、コミット処理が終了したことを示す通知を送受信部51に出力する。
また、電文処理結果反映部522は、ロールバック処理、または、コミット処理を終了した後に、処理結果のデータへの反映が確定された電文を示す情報を更新情報管理部523に出力する。なお、電文処理結果反映部522は、処理結果が反映される前の状態にデータが戻された電文を示す情報を更新情報管理部523に出力してもよい。
なお、電文処理結果反映部522は、一つの電文に対する更新情報の情報容量が大きい場合は、更新情報を任意の数に分割してもよい。この場合など、一つの電文の処理結果が反映された更新情報が複数ある場合は、電文処理結果反映部522は、更新情報通番の他に、電文に対する更新情報の総数を示す情報をさらに更新情報管理部523に出力する。
更新情報管理部523は、更新情報記憶部54に記憶されている更新情報格納表に、電文処理結果反映部522から受信した更新情報と、更新電文情報と、更新情報通番とを格納する。
また、更新情報管理部523は、処理結果のデータへの反映が確定された電文を示す情報を電文処理結果反映部522から受信する。
更新情報管理部523は、送受信部51、アプリケーション実行部521、電文処理結果反映部522の動作とは非同期で、更新情報を複製データ制御装置4へ出力する。具体的には、更新情報管理部523は、所定のタイミングで、処理結果のデータへの反映が確定された電文を示す情報に基づいて、処理結果のデータへの反映が確定された電文に関する更新情報と、更新電文情報と、更新情報通番とを更新情報格納表から読み出す。また、更新情報管理部523は、読み出した更新情報と、更新電文情報と、更新情報通番とを複製データ制御装置4の更新情報反映部42に出力する。たとえば、所定のタイミングは、更新情報管理部523が、電文処理装置5の負荷を鑑み、更新情報の出力のタイミングを制御する所定の制御部の指示を受けた時であってもよい。なお、更新電文情報に対する更新情報の総数がさらに更新情報格納表に含まれる場合は、更新情報管理部523は、総数をさらに更新情報反映部42に出力する。
なお、更新情報管理部523は、処理結果が反映される前の状態にデータが戻された電文を示す情報を電文処理結果反映部522から受信してもよい。更新情報管理部523は、電文処理結果反映部522から受信した、処理結果が反映される前の状態にデータが戻された電文を示す情報に基づいて、処理結果が反映される前の状態にデータが戻された電文に関する更新情報と、更新電文情報と、更新情報通番とを更新情報記憶部54から削除する。
更新情報記憶部54は、更新情報格納表を記憶する。
図14に本実施形態の更新情報記憶部54が記憶する更新情報格納表の例を示す。更新情報格納表は、更新情報と、更新電文情報と、更新情報通番とを含む。また、一つの電文の処理結果が反映されている更新情報の総数を電文処理装置5の更新情報管理部523から受信した場合には、更新情報管理部523は、更新情報格納表にさらに総数を記憶させる。また、更新電文格納表は、処理結果のデータへの反映が確定された電文を示す情報、または、処理結果が反映される前の状態にデータが戻された電文を示す情報を含んでいてもよい。
図14に示す更新情報格納表は、電文処理装置5に記憶されているデータに識別情報が102から105の電文の処理結果が反映され、識別情報が102、104、105の電文の処理結果のデータへの反映により、反映前後のデータに差分が生じた場合の例である。この例では、電文処理結果反映部522から更新情報管理部523が受信した、更新情報通番が200、201、202(更新電文情報が102、104、105)の更新情報が、更新情報格納表に記憶されている。
次に、図11を用いて、複製データ制御装置4の構成例を説明する。本実施形態の複製データ制御装置4は、更新情報記憶部47を含む点で、第二の実施形態の複製データ制御装置3(図5)と異なる。
複製データ制御装置4は、受信部41と、更新情報反映部42と、電文記憶部43と、電文処理反映部44と、複製データ記憶部45と、更新履歴記憶部46と、更新情報記憶部47とを含む。
受信部41は、電文を処理する電文処理装置5から、電文と、電文の識別情報とを受信する。前述のとおり、本実施形態では、電文の識別情報は、電文処理装置5が当該電文を処理した順番を示す番号である。また、受信部41は、電文と、電文の識別情報と、受信した情報が電文であることを示すデータ識別情報(『電文』)とを電文記憶部43に記憶されている電文格納表の空き領域に格納する。データ識別情報は、受信した情報が電文か、トランザクション情報かを示す情報である。また、受信部41は、受信した電文の識別情報を入力済通番として、更新履歴記憶部46に記憶されている更新履歴管理表に格納する。本実施形態では、入力済通番は、電文処理装置5から最後に受信した電文に対応する識別情報とする。
また、受信部41は、電文処理装置5からトランザクション情報を受信する。受信部41は、トランザクション情報と、受信した情報がトランザクション情報であることを示すデータ識別情報(『トランザクション終了』)とを、電文記憶部43に記憶されている電文格納表の空き領域に格納する。トランザクション情報を電文格納表に格納した後に、複製データ制御装置4の受信部41は、トランザクション情報に対する応答を電文処理装置5の送受信部51に返す。
電文記憶部43は、電文を記憶する。本実施形態では、電文記憶部43は、電文格納表を記憶する。電文格納表は、電文と当該電文の識別情報と当該電文のトランザクション情報(当該電文の識別情報とレプリケーション情報と記憶部反映情報)とを含む。
図12に本実施形態の電文格納表の例を示す。この例では、電文処理装置5から受信した、識別情報が103から108の電文に関する情報(レコード)がそれぞれ電文記憶部43に記憶されている。なお、識別情報が106の電文については、電文に関するレコードは記憶されているが、トランザクション情報に関するレコードは記憶されていない。なお、図12における『−』は、データがないことを示す。
また、図12における、レプリケーション情報が『異常』とは、電文処理装置5において、電文の処理結果のデータへの反映に関する動作が正常に終了しなかったため、電文の処理結果が電文処理装置5に記憶されているデータに反映されていないことを示す。この場合、電文処理装置5では、ロールバック処理が行われている。本実施形態の複製データ制御装置4は、レプリケーション情報が『異常』である電文を、電文処理装置5に記憶されているデータに処理結果が反映されていない電文とみなす。
また、記憶部反映情報は、電文処理装置5による電文の処理結果の反映により、データ記憶部53に記憶されているデータに反映前後で差分が生じたか否かを示す情報である。図12において、記憶部反映情報が『更新あり』とは、電文処理装置5による電文の処理結果の反映により反映前後のデータに差分が生じたこと示す。つまり、記憶部反映情報が『更新あり』となっている電文は、複製データ制御装置4で処理され、複製データに処理結果が反映された場合に、反映前後の複製データに差分を生じさせる電文である。一方で、記憶部反映情報が『更新なし』とは、電文処理装置5による電文の処理結果の反映により反映前後のデータに差分が生じない(反映の前後でデータの内容が同一である)電文であること示す。つまり、記憶部反映情報が『更新なし』となっている電文は、複製データ制御装置4で処理され、電文の処理結果が反映された場合に、反映前後の複製データに差分を生じさせない。
更新履歴記憶部46は、更新履歴管理表を記憶する。
図13に本実施形態の更新履歴管理表の例を示す。更新履歴管理表は、入力済通番と、格納済通番と、反映済通番とを含む。この例は、受信部41が受信した電文の識別情報が108である場合の例である。この場合、入力済通番に108が格納される。格納済通番と反映済通番については、後述する。
複製データ記憶部45は、複製データを記憶する。複製データは、電文処理装置5に障害が発生した場合などに用いられる予備のデータである。本実施形態では、電文処理装置5のデータ記憶部53に記憶されているデータと、複製データ制御装置4の複製データ記憶部45に記憶されている複製データは、複製データ制御システムの運用開始時において同一であることを前提とする。なお、複製データ記憶部45は、複製データ制御装置4の外部の装置に含まれていてもよい。
更新情報反映部42は、電文処理装置5による電文の処理結果が反映されている更新情報と、更新情報に処理結果が反映されている電文の情報を示す更新電文情報と、更新情報通番とを、電文処理装置5の更新情報管理部523から受信する。更新情報通番は、更新情報が作成された順番を示す。更新電文情報は、電文の情報として、電文の識別情報を含む。電文の識別情報は、電文処理装置5が電文を処理した順番を示す。更新情報反映部42は、更新情報と、更新電文情報と、更新情報通番とを、更新情報記憶部47に記憶されている更新情報格納表の空き領域に格納する。
さらに、更新情報反映部42は、受信した更新情報に対応する更新電文情報に含まれる識別情報を、格納済通番として、更新履歴管理表に格納する。格納済通番は、複製データ制御装置4が受信して更新情報記憶部47に記憶されている更新情報に対応する更新電文情報に含まれる、電文処理装置5による処理結果が更新情報に反映されている電文の識別情報である。更新電文情報に複数の識別情報が含まれる場合には、格納済通番は、更新電文情報に含まれる識別情報のうち、数値が最大の識別情報であってもよい。
また、更新情報反映部42は、ある電文の処理結果が反映されている更新情報の総数が電文処理装置5から出力されている場合に、次のように動作してもよい。ある電文に対して、総数と同じ個数の更新情報を更新情報格納表に格納した場合に、更新情報反映部42は、当該更新情報に対応する更新電文情報を格納済通番として更新履歴管理表に格納する。
たとえば、更新情報反映部42が電文処理装置5の更新情報管理部523から受信した更新電文情報が109、また、対応付けられた総数が2であったとする。また、更新情報反映部42が、電文処理装置5の更新情報管理部523から、更新電文情報が109、更新情報通番が205の更新情報と、更新電文情報が109、更新情報通番が206の更新情報とを受信したとする。更新情報反映部42は、更新情報通番が205と206の2つの更新情報を電文処理装置5の更新情報管理部523より受信し、更新情報格納表に格納した場合に、更新電文情報に含まれる識別情報の109を格納済通番として更新履歴管理表に格納する。
図13の更新履歴管理表の例の場合、格納済通番は105である。この例は、更新情報反映部42が、更新電文情報が105である更新情報を受信し、更新情報記憶部47に記憶されている更新情報格納表に当該更新情報を格納した場合の例である。この場合、更新履歴管理表には、格納済通番として105が格納される。
なお、電文記憶部43に記憶されている電文のうち、更新履歴管理表に格納されている格納済通番以下の値の識別情報をもつ電文は、当該電文の処理結果が反映されている更新情報が、更新情報記憶部47に既に記憶されている。そのため、受信部41は、電文処理装置5から受信した電文を電文記憶部43に記憶されている電文格納表の空き領域に格納する場合に、電文格納表の、格納済通番以下の識別情報をもつ電文が記憶されている領域を空き領域としてみなしてもよい。
本実施形態の更新情報反映部42は、更新電文情報に含まれる識別情報の順ではなく、更新情報通番の順に、更新情報を複製データに反映する。本実施形態では、電文処理装置5の電文処理結果反映部522は、電文の処理結果を反映する前後のデータに関する情報を比較し、電文の処理結果の反映により反映前後のデータに差分が生じる場合に更新情報を作成する。このため、更新情報記憶部47に記憶されている更新情報格納表において、更新情報に処理結果が反映されている電文の識別情報(更新電文情報)が連続しない場合がある。そこで、本実施形態の更新情報反映部42は、更新情報通番に基づき、更新情報を用いて、電文処理装置5による電文の処理結果を複製データに反映する。更新情報反映部42は、更新情報記憶部47に記憶されている更新情報を読み出し、更新情報通番の順に更新情報を用いて、複製データ記憶部45に記憶されている複製データに、電文処理装置5による電文の処理結果を反映する。
さらに、更新情報反映部42は、用いた更新情報に対応する更新電文情報に含まれる識別情報を反映済通番として更新履歴管理表に格納する。反映済通番は、どの電文の処理結果が、更新情報を用いて複製データに反映されたかを示す情報である。本実施形態の場合、反映済通番は、複製データへの処理結果の反映に最後に用いた更新情報に対応する、更新電文情報である。
更新情報反映部42は、ある電文について、当該電文の処理結果が反映された更新情報の総数を受信した場合に、更新情報通番の順に更新情報を用いて、電文処理装置5による電文の処理結果を複製データに反映する。また、更新情報反映部42は、更新情報の総数に基づいて、同じ識別情報を含む更新電文情報に対応するすべての更新情報を用いて電文の処理結果を反映した後に、当該更新電文情報に含まれる識別情報を反映済通番として更新履歴管理表に格納する。
また、図13の更新履歴管理表の例の場合、反映済通番は104である。この例は、更新情報反映部42が、更新電文情報が104の更新情報を用いて、電文処理装置5による電文の処理結果を複製データに反映したことを示す。この場合、更新履歴管理表には、反映済通番として104が格納される。
更新情報記憶部47は、更新情報格納表を記憶する。
図15に本実施形態の更新情報記憶部47が記憶する更新情報格納表の例を示す。更新情報格納表は、更新情報と、更新電文情報と、更新情報通番とを含む。さらに、更新情報格納表は、一つの電文の処理結果が反映されている更新情報の総数を含んでもよい。図15に示す更新情報格納表には、電文処理装置5の更新情報管理部523から複製データ制御装置4の更新情報反映部42が受信した、更新情報通番が200、201、202(更新電文情報が102、104、105)の更新情報が記憶されている。
電文処理反映部44は、アプリケーション実行部441と、電文処理結果反映部442とを含む。なお、本実施形態では、アプリケーション実行部441は、所定の条件が満たされない場合は電文を処理しないものとする。なお、アプリケーション実行部441は、所定の条件が満たされるまで、開発や評価環境として用いられるなど、他の用途に使用されてもよい。
また、アプリケーション実行部441は、電文処理装置5のアプリケーション実行部521と同じ処理結果が得られる電文処理機能を備える。
アプリケーション実行部441は、所定の条件が満たされた場合に動作する。たとえば、条件は、電文の処理を指示する指示入力があった場合、電文を所定の時間、電文処理装置5から受信していない場合、または、電文処理装置5の異常を所定の方法で検知した場合である。アプリケーション実行部441は、更新履歴管理表の格納済通番が反映済通番より大きい場合には、所定の条件が満たされた場合であっても、電文の処理を行わずに待機する。なぜなら、更新履歴管理表に記憶されている格納済通番が反映済通番より大きい場合には、更新情報記憶部47に記憶されている更新情報に、更新情報反映部42が電文の処理結果の複製データへの反映に用いていない更新情報があるためである。
そして、アプリケーション実行部441は、電文記憶部43に記憶されている電文のうち、処理結果が複製データに反映されていない電文を、更新電文情報に基づいて特定する。具体的には、アプリケーション実行部441は、処理結果が複製データに反映されていない電文として、電文記憶部43に記憶されている電文のうち、更新履歴管理表に記憶されている反映済通番より大きい識別情報をもつ電文を特定する。
アプリケーション実行部441は、特定した電文から、電文処理装置5のデータ記憶部53に記憶されているデータに正常に電文の処理結果が反映され、電文の処理結果の反映前後でデータに差分を生じさせた電文を、トランザクション情報に基づいて抽出する。さらに、アプリケーション実行部441は、抽出した電文を処理し、電文の処理結果を電文処理結果反映部442に出力する。なお、処理結果が複製データに反映されていない電文として複数の電文が抽出された場合、電文処理反映部44は、電文処理装置5が電文を処理した順番を示す識別情報に基づいて、識別情報の順で、電文を処理する。
電文処理結果反映部442は、アプリケーション実行部441から受信した電文の処理結果を、複製データ記憶部45に記憶されている複製データに反映する。
このように複製データ制御装置4を構成することによって、複製データ制御装置4は、電文記憶部43に記憶されている電文のうち、処理結果が複製データに反映されていない電文を、更新電文情報に基づいて特定する。また、複製データ制御装置4は、特定された電文を処理し、特定された電文の処理結果を複製データに反映する。そのため、複製データ制御装置4にかかる処理の負荷を軽減しつつ、電文処理装置5による電文の処理結果が反映されたデータと複製データ制御装置4によって複製された複製データとの差異を小さくすることが可能になる。
また、上述のように、本実施形態の複製データ制御装置4は、電文処理装置5によって更新情報が作成された順番を示す更新情報通番と、更新情報と、更新電文情報とを更新情報記憶部47に記憶する。これにより、複製データ制御装置4は、電文処理装置5による電文の処理結果を、更新情報を用いて、任意のタイミングで複製データに反映することが可能になる。そのため、複製データ制御装置4は、複製データ制御装置4の負荷が高い場合に、更新情報を用いた、電文の処理結果の複製データへの反映が複製データ制御装置4の負荷が低い時に行われるよう、反映のタイミングを制御することが可能になる。これにより、複製データ制御装置4の負荷を軽減することが可能になる。なお、複製データ制御装置4の負荷は、複製データ制御装置4のアプリケーション実行部441がデータの複製以外の用途に使用されている場合などに、高くなる可能性がある。
また、電文処理装置5は、更新情報を作成した順番を示す更新情報通番と、更新情報と、更新電文情報とを更新情報記憶部54に記憶する。これにより、電文処理装置5は、更新情報を任意のタイミングで複製データ制御装置4に出力することが可能になる。そのため、電文処理装置5の負荷が高くなっている場合に、更新情報の送信を遅らせて電文処理装置5の負荷を軽減することが可能になる。
また、電文処理装置5は、一つの電文の処理結果が反映された更新情報が複数ある場合に、更新情報通番の他に、当該電文の処理結果が反映されている更新情報の総数を複製データ制御装置4に出力する。これにより、複製データ制御装置4は、同じ識別情報を含む更新電文情報に対応する複数の更新情報を一括して更新情報格納表に格納することや、複製データに、複数の更新情報を用いて電文処理装置5による電文の処理結果を反映することが可能になる。また、電文処理装置5が電文の処理結果をデータに反映した結果、情報容量が大きい更新情報が作成された場合に、電文処理装置5は、更新情報を分割し、分割した更新情報を複製データ制御装置4に出力することが可能になる。そのため、複製データ制御装置4への更新情報の出力にかかる電文処理装置5の負荷を軽減することが可能になる。
次に、図16から図22を用いて、本実施形態の複製データ制御システムの動作例を説明する。
図16は、電文処理装置5が電文を処理し、複製データ制御装置4が電文を電文格納表に格納する動作例を示す。図17は、電文処理装置5が更新情報を複製データ制御装置4に出力し、複製データ制御装置4が、受信した更新情報を用いて電文処理装置5による電文の処理結果を複製データに反映する動作例を示す。図18から図22は、複製データ制御装置4の動作例である。
まず、図16を用いて、電文処理装置5が電文を処理し、複製データ制御装置4が電文を電文格納表に格納する動作例を説明する。
電文処理装置5の送受信部51は、外部から電文の入力を受ける(ステップS701)。また、送受信部51は、電文を識別する情報である識別情報を電文に付与する(ステップS702)。さらに、送受信部51は、入力を受けた電文と、電文の識別情報とを複製データ制御装置4に出力する(ステップS703)。なお、本実施形態では、識別情報は、電文処理装置5が電文を処理した順番を示す。
複製データ制御装置4は、電文を処理する電文処理装置5から、電文と、電文の識別情報とを受信する。複製データ制御装置4は、電文と、電文の識別情報と、データ識別情報(『電文』)とを対応付けて、電文記憶部43に記憶されている電文格納表の空き領域に格納する。さらに、複製データ制御装置4は、受信した電文の識別情報を入力済通番として、更新履歴記憶部46に記憶されている更新履歴管理表に格納する(ステップS704)。また、複製データ制御装置4は、電文の格納の終了を示す応答を、電文処理装置5の送受信部51に出力する(ステップS705)。
また、送受信部51は、アプリケーション実行部521に、電文の識別情報と、電文とを出力し、出力した電文の処理を要求する。
図12の電文格納表の例の場合、複製データ制御装置4が、識別情報が108の電文と、電文の識別情報(108)を受信した場合は、図12の10行目のレコードが電文格納表に記憶される。
図13の更新履歴管理表の例は、受信部41が、識別情報が108の電文を電文格納表に記憶し、入力済通番として、電文の識別情報(108)を更新履歴管理表に格納したことを示す。
電文処理装置5のアプリケーション実行部521は、送受信部51にから受信した電文を処理し、処理結果を電文処理結果反映部522に出力する(ステップS706)。
電文処理結果反映部522は、電文の処理結果を反映する前のデータに関する情報を、後述のステップS708で電文の処理が終了するまで、所定の記憶部に記憶する。電文処理結果反映部522は、アプリケーション実行部521から出力された電文の処理結果をデータ記憶部23に記憶されているデータに反映する。
なお、本実施形態の電文処理装置5は、ロールバック処理を行う場合がある。ステップS707の動作の結果、電文の処理結果が反映されたデータは、後述のステップS708で電文の処理が終了するまで、電文の処理結果が反映される前の状態にデータを戻すロールバック処理が可能な状態である。
また、電文処理結果反映部522は、電文の処理結果を反映する前後のデータに関する情報を比較し、電文の処理結果の反映前後のデータに差分がある場合に、更新情報を作成する(ステップS707)。また、電文処理結果反映部522は、更新情報に対して、当該更新情報が作成された順番を示す更新情報通番を設定する。また、電文処理結果反映部522は、更新情報と、更新電文情報と、更新情報通番とを更新情報管理部523に出力する。
更新情報管理部523は、更新情報記憶部54に記憶されている更新情報格納表に、電文処理結果反映部522から受信した更新情報と、更新電文情報と、更新情報通番とを格納する。
また、電文処理結果反映部522は、電文の処理結果を反映する前後のデータに関する情報を比較し、記憶部反映情報を作成する。また、電文処理結果反映部522は、電文処理装置5における電文の処理結果のデータへの反映が正常に終了したか否かに基づいてレプリケーション情報を作成する。また、電文処理結果反映部522は、電文の処理結果の反映が終了したことを示す終了通知と、トランザクション情報とをアプリケーション実行部521に出力する。
アプリケーション実行部521は、電文の処理結果のデータへの反映が終了したことを示す終了通知とトランザクション情報とを電文処理結果反映部522から受信する。また、アプリケーション実行部521は、電文処理結果反映部522から終了通知とトランザクション情報とを受信した場合に、トランザクション情報と終了通知とを送受信部51に出力する。
送受信部51は、ステップS705の応答と、電文処理装置5に記憶されているデータへの電文の処理結果の反映の終了通知とを受信した場合に、送受信部51は、コミット処理、または、ロールバック処理を電文処理結果反映部522に要求する。
送受信部51は、受信したトランザクション情報に含まれるレプリケーション情報が電文の処理結果のデータへの反映が正常に終了したことを示す場合に、電文処理結果反映部522に、コミット処理を要求する。また、ステップS708においてロールバック処理を行わないことが確定した場合に、電文処理結果反映部522は、更新情報を更新情報管理部523に出力する。
電文処理結果反映部522は、送受信部51からコミット処理を要求された場合に、コミット処理をする。具体的には、電文処理結果反映部522は、ロールバック処理を行わないことを確定する。電文処理結果反映部522は、コミット処理を終了した後に送受信部51に通知を出力する。
また、送受信部51は、受信したトランザクション情報に含まれるレプリケーション情報が電文の処理結果のデータへの反映が正常に終了しなかったことを示す場合に、電文処理結果反映部522に、ロールバック処理を要求する。
なお、電文処理結果反映部522は、送受信部51からロールバック処理を要求された場合に、ロールバック処理を行う。具体的には、処理部52は、所定の記憶部に記憶されている、処理結果を反映する前のデータに関する情報に基づいて、電文の処理結果が反映される前の状態にデータを戻す。電文処理結果反映部522は、ロールバック処理を終了した後に送受信部51に通知を出力する。
また、電文処理結果反映部522は、処理結果のデータへの反映が確定された電文を示す情報を更新情報管理部523に出力する。なお、電文処理結果反映部522は、処理結果が反映される前の状態にデータが戻された電文を示す情報を更新情報管理部523に出力してもよい。
送受信部51は、コミット処理、または、ロールバック処理の終了の通知を受信した場合に、電文の処理を終了する(ステップS708)。なお、電文処理装置5は、ステップS703の動作と、ステップS706からステップS707の動作を並行して行ってもよい。また、ステップS708の後、電文処理装置5は、新しい電文の入力を受け付ける。
送受信部51は、トランザクション情報を複製データ制御装置4の受信部41に出力する(ステップS709)。複製データ制御装置4の受信部41は、受信したトランザクション情報を、電文記憶部43に記憶されている電文格納表に記憶し、トランザクション情報に対する応答を電文処理装置5の送受信部51に返す。
トランザクション情報に対する応答を、所定の時間、電文処理装置5の送受信部51が複製データ制御装置4から受信しなかった場合に、電文処理装置5は、次に述べる動作を行う。電文処理装置5の送受信部51は、複製データ制御装置4から応答を所定の時間受信しなかったトランザクション情報を複製データ制御装置4に再度出力する。なお、送受信部51は、次に入力を受けた電文と電文の識別情報の出力と共に、トランザクション情報を再度出力してもよい。また、所定の時間、電文処理装置5の送受信部51が応答を受信しない場合として、複製データ制御装置4の受信部41と電文処理装置5の送受信部51との間の通信で、遅延が発生した、または、トランザクション情報や応答が失われた場合が想定される。
複製データ制御装置4の受信部41は、トランザクション情報を受信し、トランザクション情報とデータ識別情報の『トランザクション終了』とを対応付けて、電文記憶部43に記憶されている電文格納表の空き領域に格納する(ステップS710)。複製データ制御装置4は、トランザクション情報を電文格納表に格納した後に、トランザクション情報に対する応答を電文処理装置5の送受信部51に返す。なお、電文処理装置5は、トランザクション情報の出力に対する複製データ制御装置4の応答を待ち合わせない。
図12の電文格納表の例の場合、複製データ制御装置4は、受信したトランザクション情報に含まれる識別情報が108の場合、図12の11行目のレコードを電文格納表に格納する。
次に、図17を用いて、電文処理装置5が更新情報を複製データ制御装置4に出力し、複製データ制御装置4が更新情報を用いて電文処理装置5による電文の処理結果を複製データに反映する動作の例を説明する。
電文処理装置5の更新情報管理部523は、所定のタイミングで、処理結果のデータへの反映が確定された電文を示す情報に基づいて、処理結果のデータへの反映が確定された電文に関する更新情報と、更新電文情報と、更新情報通番とを更新情報格納表から読み出す。また、更新情報管理部523は、読み出した更新情報と、更新電文情報と、更新情報通番とを複製データ制御装置4の更新情報反映部42に出力する(ステップS801)。また、所定のタイミングは、前回の出力から所定の時間が経過した場合、前回の出力以降に所定の数の電文を処理した場合、図示しない制御部から指示を受けた場合の少なくともいずれか1つの条件を満たした場合である。なお、一つの電文の処理結果に対し複数の更新情報が生成された場合は、電文処理装置5の更新情報管理部523は、更新情報の総数をさらに複製データ制御装置4の更新情報反映部42へ出力する。
複製データ制御装置4の更新情報反映部42は、電文処理装置5の更新情報管理部523から受信した更新情報と、更新電文情報と、更新情報通番とを更新情報記憶部47に記憶されている更新情報格納表に格納する。また、更新情報反映部42は、格納した更新情報に対応する更新電文情報に含まれる識別情報を、格納済通番として、更新履歴記憶部46に記憶されている更新履歴管理表に格納する(ステップS802)。
図14の更新情報格納表の例は、更新情報反映部42が受信した、更新情報通番が202、更新電文情報が105の更新情報(図14の3行目のレコード)を更新情報格納表に格納したことを示す。
図13の更新履歴管理表の例は、更新情報記憶部47に記憶されている更新情報格納表に更新情報反映部42が格納した更新情報に対応する更新電文情報に含まれる識別情報が105の場合の例である。また、図13の更新履歴管理表の例は、格納済通番として、更新情報に対応する更新電文情報に含まれる識別情報(105)を更新情報反映部42が更新履歴管理表に格納したことを示す。
複製データ制御装置4の更新情報反映部42は、所定のタイミングで、更新情報記憶部47から、処理結果の複製データへの反映に用いる更新情報を読み出す。本実施形態においては、更新情報反映部12は、反映済通番より大きい値の識別情報を含む更新電文情報に対応する更新情報を、処理結果の複製データへの反映に用いる更新情報とみなす。更新情報反映部42は、更新情報通番の順に更新情報を用いて、複製データ記憶部45に記憶されている複製データに、電文処理装置5による電文の処理結果を反映する。また、更新情報反映部42は、用いた更新情報に対応する更新電文情報に含まれている識別情報を反映済通番として、更新履歴記憶部46に記憶されている更新履歴管理表に格納する(ステップS803)。
図13の更新履歴管理表の例は、更新情報反映部42が、104の識別情報を含む更新電文情報に対応する更新情報を用いて、電文の処理結果を複製データへ反映したことを示す。
なお、複製データ制御システムは、図16に示す動作と、図17に示す動作とを並行して行ってもよい。
次に、図18から図22を用いて、複製データ制御装置4の動作例について説明する。
まず、図18を用いて、複製データ制御装置4が電文を電文格納表に格納する動作を説明する。図18の動作は、図16のステップS704からステップS705の動作を詳述するものである。
受信部41は、電文を処理する電文処理装置5から、電文と、電文の識別情報とを受信する(ステップS901)。受信部41は、電文と、電文の識別情報と、データ識別情報(『電文』)とを対応付けて、電文記憶部43に記憶されている電文格納表の空き領域に格納する。さらに、複製データ制御装置4の受信部41は、受信した電文の識別情報を入力済通番として、更新履歴記憶部46に記憶されている更新履歴管理表に格納する(ステップS902)。
受信部41は、電文の格納の終了を示す応答を、電文処理装置5の送受信部21に出力する(ステップS903)。
次に図19を用いて複製データ制御装置4がトランザクション情報を受信し、電文記憶部43に記憶させる動作例を説明する。図19の動作は、図16のステップS709からステップS710の動作を詳述するものである。
受信部41は、トランザクション情報を電文処理装置5の送受信部51から受信する(ステップS911)。また、受信部41は、トランザクション情報とデータ識別情報(『トランザクション終了』)とを対応付けて、電文記憶部43に記憶されている電文格納表の空き領域に格納する(ステップS912)。また、複製データ制御装置4の受信部41は、トランザクション情報を電文格納表に格納した後に、トランザクション情報に対する応答を電文処理装置5の送受信部51に返す。
複製データ制御装置4の、電文格納表に電文を格納する動作(図18)と、トランザクション情報を電文格納表へ格納する動作(図19)はそれぞれ独立である。複製データ制御装置4は、図18に示す電文を格納する動作と、図19に示すトランザクション情報を格納する動作を並行して行ってもよい。
次に、図20を用いて、本実施形態の複製データ制御装置4が、更新情報を更新情報格納表に格納する動作を説明する。図20の動作は、図17のステップS802の動作を詳述するものである。
更新情報反映部42は、電文処理装置5の更新情報管理部523から、更新情報と、更新電文情報と、更新情報通番とを受信する(ステップS1001)。更新情報反映部42は、電文処理装置5の更新情報管理部523から受信した更新情報と、更新電文情報と、更新情報通番とを、更新情報記憶部47に記憶されている更新情報格納表に格納する。また、更新情報反映部42は、格納した更新情報に対応する更新電文情報に含まれる識別情報を、格納済通番として、更新履歴記憶部46に記憶されている更新履歴管理表に格納する(ステップS1002)。
次に図21を用いて、複製データ制御装置4が、更新情報記憶部47に記憶されている更新情報を用いて、電文処理装置5による電文の処理結果を複製データに反映する動作を説明する。図21の動作は、図17のステップS803の動作を詳述するものである。
更新情報反映部42は、所定のタイミングで、処理結果の複製データへの反映に用いる更新情報を更新情報記憶部47から読み出す。更新情報反映部42は、更新情報通番の順に更新情報を用いて、複製データ記憶部45に記憶されている複製データに、電文処理装置5による電文の処理結果を反映する(ステップS1011)。
さらに、更新情報反映部42は、用いた更新情報に対応する更新電文情報に含まれる識別情報を反映済通番として、更新履歴記憶部46に記憶されている更新履歴管理表に格納する(ステップS1012)。
更新情報反映部42の、複製データ制御装置4が更新情報を受信した場合の動作(図20)と、更新情報を用いて電文処理装置5による電文の処理結果を複製データに反映する動作(図21)とは、それぞれ独立である。
次に、図22を用いて、複製データ制御装置4が電文を処理し、電文の処理結果を複製データに反映する動作例を説明する。
所定の条件が満たされた場合に、複製データ制御装置4の電文処理反映部44は、図22の動作を行う。
なお、所定の条件が満たされた時点での、複製データへの処理結果の反映の状況には、第二の実施形態で述べたように以下の2通りがある。
(1)複製データ制御装置4の電文記憶部43に記憶されている電文の処理結果が、複製データにすべて反映されている。
(2)複製データ制御装置4の電文記憶部43に記憶されている電文に、電文の処理結果が複製データに反映されていない電文が含まれている。
本実施形態では、(2)についてさらに3通りがある。
(2−1)複製データに処理結果が反映されていない電文のトランザクション情報が電文記憶部43に記憶されていない。
(2−2)複製データに処理結果が反映されていない電文のレプリケーション情報が『正常』かつ記憶部反映情報が『更新なし』、またはレプリケーション情報が『異常』である。
(2−3)複製データに処理結果が反映されていない電文のレプリケーション情報が『正常』かつ記憶部反映情報が『更新あり』である。
なお、ここでは、(1)と(2)に共通の動作を説明し、その後、それぞれの場合に特有の動作を説明する。
まず、(1)と(2)に共通の動作を説明する。
電文処理反映部44のアプリケーション実行部441は、所定の条件が満たされた場合に、更新履歴管理表の格納済通番と反映済通番との比較を行う。更新履歴管理表の格納済通番が反映済通番より大きい場合、(ステップS1101、YES)、更新情報反映部42による、電文の処理結果の複製データへの反映に用いられていない更新情報が更新情報記憶部47に記憶されている。そのため、更新情報反映部42がすべての更新情報を用いて電文処理装置5による電文の処理結果を複製データに反映するまで、アプリケーション実行部441は待機する。また、反映済通番が格納済通番の値以上の場合(ステップS1101、NO)、更新情報記憶部47に記憶されている更新情報がすべて、電文の処理結果の複製データへの反映に用いられている。そこで、アプリケーション実行部441は、反映済通番の次の番号の識別情報をもつ電文を、処理対象の電文とし、ステップS1102以後の動作を実行する。
なお、電文処理結果反映部442は、電文の処理結果を複製データに反映する度に、反映済通番として、当該電文の識別情報を更新履歴記憶部46に記憶されている更新履歴管理表に格納してもよい。この場合、反映済通番が格納済通番より大きい値になることがある。
次に(1)と(2)に特有の動作を説明する。
まず、(1)複製データ制御装置4の電文記憶部43に記憶されている電文の処理結果が、複製データにすべて反映されている場合について説明する。なお、(1)の場合、更新履歴管理表に記憶されている入力済通番は、反映済通番と等しい。
電文処理反映部44のアプリケーション実行部441は、更新履歴管理表の入力済通番と反映済通番との比較を行う。(1)の場合、入力済通番と反映済通番とが一致し、電文記憶部43に記憶されている電文の処理結果がすべて複製データに反映されている(ステップS1102、NO)。そのため、アプリケーション実行部441は、ステップS1103からステップS1109までの動作を行わない。そして、電文処理反映部44は、図22の動作を終了する。
次に、(2)の場合について、(2−1)から(2−3)に共通の動作を説明し、その後、(2−1)から(2−3)に特有の動作を説明する。
(2)の場合、アプリケーション実行部441は、更新履歴管理表の入力済通番が反映済通番より大きいので(ステップS1102、YES)、ステップS1103以後の動作を行う。また、ステップS1108、ステップS1109の動作については、(2−1)から(2−3)の場合の動作を述べた後に説明する。
次に、(2−1)複製データに処理結果が反映されていない電文のトランザクション情報が電文記憶部43に記憶されていない場合に特有の動作について説明する。ここでは、図12に示す電文格納表の識別情報が106の電文(図12、7行目)が処理対象の電文である場合を例に説明する。
アプリケーション実行部441は、処理対象の電文の識別情報(106)に対応するトランザクション情報のレコードを、電文記憶部43に記憶されている電文格納表から読み出す。しかし、処理対象の電文の識別情報(106)に対応するトランザクション情報のレコードが存在しないので(ステップS1103、NO)、アプリケーション実行部441は、ステップS1105の動作を行わない。トランザクション情報のレコードがない場合は、アプリケーション実行部441は、処理対象の電文の処理結果が、電文処理装置5に記憶されているデータに反映されているか否かを判断できない。そのため、アプリケーション実行部441は、ユーザ(電文処理装置5の使用者、複製データ制御装置4の管理者など)の判断に基づいて電文を処理する(ステップS1104)。
当該電文を処理しないことを示す入力がユーザによりなされた場合は(ステップS1104、NO)、アプリケーション実行部441はステップS1106の動作を、また、電文処理結果反映部442はステップS1107の動作を行わない。
また、当該電文を処理することを示す入力がユーザによりなされた場合は(ステップS1104、YES)、アプリケーション実行部441は、電文を処理する(ステップS1106)。また、電文処理結果反映部442は、電文の処理結果を複製データに反映する(ステップS1107)。
なお、電文処理反映部44のアプリケーション実行部441は、ステップS1104において、事前にユーザが設定した設定に基づいて電文を処理を実行するか否かを判断してもよい。たとえば、複製データ制御装置4に『ユーザ判断とする/電文を処理する/電文を処理しない』の各設定を設け、複製データ制御装置4は、いずれかの設定を予めユーザに選択させてもよい。
次に、(2−2)複製データに処理結果が反映されていない電文のレプリケーション情報が、『正常』かつ記憶部反映情報が『更新なし』、またはレプリケーション情報が『異常』である場合に特有の動作について説明する。前者の場合、特定された電文は、処理結果の反映前後で複製データに差分を生じさせない。後者の場合、特定された電文は、電文処理装置5のデータに反映されていない電文である。そのため、前者の場合も後者の場合も、複製データ制御装置4の電文処理反映部44は、特定された電文を、処理結果を複製データに反映すべき電文とみなさない。
ここでは、図12に示す電文格納表の識別情報が107の電文(図12、8行目)が処理対象の電文である場合を例に説明する。
アプリケーション実行部441は、処理対象の電文の識別情報(107)に対応するトランザクション情報のレコード(図12、9行目)を電文記憶部43に記憶されている電文格納表から読み出す。アプリケーション実行部441は、トランザクション情報のレコードがあり(ステップS1103、YES)、レプリケーション情報が『異常』の場合は、処理対象の電文を、処理結果を複製データに反映すべき電文とみなさない(ステップS1105、NO)。この場合、アプリケーション実行部441は、ステップS1106の動作を、また、電文処理結果反映部442はステップS1107の動作を行わない。なお、アプリケーション実行部441は、ステップS1105について、レプリケーション情報が『正常』かつ記憶部反映情報が『更新なし』の場合も同様に動作する。
次に、(2−3)複製データに処理結果が反映されていない電文のレプリケーション情報が『正常』かつ記憶部反映情報が『更新あり』である場合に特有の動作について説明する。この場合は、複製データ制御装置4の電文処理反映部44は、処理対象の電文を、処理結果を複製データに反映すべき電文とみなす。ここでは、図12に示す電文格納表の識別情報108の電文(図12、10行目)が処理対象の電文である場合を例に説明する。
アプリケーション実行部441は、処理対象の電文の識別情報(108)に対応するトランザクション情報のレコード(図12、11行目)を電文記憶部43に記憶されている電文格納表から読み出す。アプリケーション実行部441は、電文格納表にトランザクション情報のレコードがあり(ステップS1103、YES)、レプリケーション情報が『正常』かつ『更新あり』の場合は、処理対象の電文を、処理結果を複製データに反映すべき電文とみなす(ステップS1105、YES)。そして、アプリケーション実行部441は、処理対象の電文を処理し、電文処理結果反映部442に処理結果を出力する(ステップS1106)。また、電文処理結果反映部442は、電文の処理結果を複製データに反映する(ステップS1107)。
上述の(2−1)から(2−3)のいずれかの動作を行った後に、電文処理反映部44は、電文記憶部43の電文格納表に記憶されている電文の処理結果をすべて複製データ記憶部45に反映したか否かを確認する。具体的には、アプリケーション実行部441は、処理対象の電文の識別情報と、更新履歴管理表の入力済通番とを比較する(ステップS1108)。アプリケーション実行部441は、入力済通番より処理対象の電文の識別情報が小さい場合は(ステップS1108、YES)、処理対象の電文の次の番号の識別情報をもつ電文を、次の処理対象の電文として電文記憶部43から読み出す(ステップS1109)。そして、電文処理反映部44は、ステップS1103からステップS1108までの動作を行う。
また、電文処理反映部44は、処理対象の電文の識別情報と、入力済通番が一致する場合は(ステップS1108、NO)、図22の動作を終了する。
また、電文処理装置5に障害が発生した場合など、電文処理装置5で電文の処理を行うことができない場合は、複製データ制御装置4を実行系として用いることも可能である。複製データ制御装置4は、電文処理装置5から受信した電文の処理結果をすべて複製データに反映した後に、電文処理装置5の代わりに実行系として電文の処理を継続することが可能である。その場合は、複製データ制御装置4は、まず、処理結果が複製データに反映されていない電文として特定された電文を処理し、当該電文の処理結果を複製データへ反映する。その後、受信部41は、電文を受信するための通信回線を電文処理装置5から外部へ切り替え、外部から電文の入力を受ける。また、電文処理反映部44は、電文処理装置5の処理部52と同様に電文を処理し、複製データに電文の処理結果を反映する。
このように動作することによって、複製データ制御装置4は、電文記憶部43に記憶されている電文のうち、処理結果が複製データに反映されていない電文を、更新電文情報に基づいて特定する。また、複製データ制御装置4は、特定された電文を処理し、特定された電文の処理結果を複製データに反映する。そのため、複製データ制御装置4にかかる処理の負荷を軽減しつつ、電文処理装置5による電文の処理結果が反映されたデータと複製データ制御装置4によって複製された複製データとの差異を小さくすることが可能になる。
以上で説明したように、本発明の第三の実施形態では、複製データ制御装置4は、電文記憶部43に記憶されている電文のうち、処理結果が複製データに反映されていない電文を、更新電文情報に基づいて特定する。また、複製データ制御装置4は、特定された電文を処理し、特定された電文の処理結果を複製データに反映する。そのため、複製データ制御装置4にかかる処理の負荷を軽減しつつ、電文処理装置5による電文の処理結果が反映されたデータと複製データ制御装置4によって複製された複製データとの差異を小さくすることが可能になる。
また、上述のように、本実施形態の複製データ制御装置4は、電文処理装置5によって更新情報が作成された順番を示す更新情報通番と、更新情報と、更新電文情報とを更新情報記憶部47に記憶する。これにより、複製データ制御装置4は、電文処理装置5による電文の処理結果を、更新情報を用いて、任意のタイミングで複製データに反映することが可能になる。そのため、複製データ制御装置4は、複製データ制御装置4の負荷が高い場合に、更新情報を用いた、電文の処理結果の複製データへの反映が複製データ制御装置4の負荷が低い時に行われるよう、反映のタイミングを制御することが可能になる。これにより、複製データ制御装置4の負荷を軽減することが可能になる。
また、電文処理装置5は、更新情報を作成した順番を示す更新情報通番と、更新情報と、更新電文情報とを更新情報記憶部54に記憶する。これにより、電文処理装置5は、更新情報を任意のタイミングで複製データ制御装置4に出力することが可能になる。そのため、電文処理装置5の負荷が高くなっている場合に、更新情報の送信を遅らせて電文処理装置5の負荷を軽減することが可能になる。
また、複製データ制御システムは一つの電文の処理結果が反映された更新情報が複数ある場合に、更新情報通番の他に、当該電文の処理結果が反映されている更新情報の総数を複製データ制御装置4に出力する。これにより、複製データ制御装置4は、同じ識別情報を含む更新電文情報に対応する複数の更新情報を一括して更新情報格納表に格納することや、複製データに、複数の更新情報を用いて電文処理装置5による電文の処理結果を反映することが可能になる。また、電文処理装置5が電文の処理結果をデータに反映した結果、情報容量が大きい更新情報が作成された場合に、電文処理装置5は、更新情報を分割し、分割した更新情報を複製データ制御装置4に出力することが可能になる。そのため、複製データ制御装置4への更新情報の出力にかかる電文処理装置5の負荷を軽減することが可能になる。
また、複製データ制御装置4は、電文処理装置5による電文の処理に関する情報であるトランザクション情報を受信する。これにより、複製データ制御装置4に記憶されている複製データに処理結果が反映されていない電文から、複製データ制御装置4が反映の対象としない電文を抽出することが可能になる。複製データ制御装置4が反映の対象としない電文として抽出するのは、たとえば、電文処理装置5がロールバック処理をし、処理結果がデータに反映されていない電文や、処理結果を反映しても反映前後の複製データに差分を生じさせない電文である。これにより、複製データ制御装置4は、電文処理装置5が処理結果をデータに反映した電文であり、反映前後の複製データに差分を生じさせる電文を選択的に処理することが可能になる。そのため、複製データ制御装置4は、迅速に複製データを電文処理装置5に記憶されているデータとの差異を小さくすることが可能になる。
[ハードウェア構成例]
上述した本発明の各実施形態における複製データ制御装置(1、3、4)、または、電文処理装置(2、5)を、一つの情報処理装置(コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。なお、複製データ制御装置または電文処理装置は、物理的または機能的に少なくとも二つの情報処理装置を用いて実現してもよい。また、複製データ制御装置または電文処理装置は、専用の装置として実現してもよい。また、複製データ制御装置または電文処理装置の一部の機能のみを情報処理装置を用いて実現してもよい。
図23は、本発明の各実施形態の複製データ制御装置または電文処理装置を実現可能な情報処理装置のハードウェア構成例を概略的に示す図である。情報処理装置6は、通信インタフェース61、入出力インタフェース62、演算装置63、記憶装置64、不揮発性記憶装置65およびドライブ装置66を含む。
たとえば、図1の受信部11、更新情報反映部12および電文処理反映部14は、演算装置63で実現することが可能である。また、電文記憶部13は、記憶装置64または不揮発性記憶装置65を用いることで実現することが可能である。
通信インタフェース61は、各実施形態の複製データ制御装置または電文処理装置が、有線あるいは/および無線で外部装置と通信するための通信手段である。なお、複製データ制御装置または電文処理装置を、少なくとも二つの情報処理装置を用いて実現する場合は、それらの装置の間を通信インタフェース61経由で相互に通信可能なように接続してもよい。
入出力インタフェース62は、入力デバイスの一例であるキーボードや、出力デバイスとしてのディスプレイ等のマンマシンインタフェースである。
演算装置63は、汎用のCPU(Central Processing Unit)やマイクロプロセッサ等の演算処理装置や複数の電気回路によって実現される。演算装置63は、たとえば、不揮発性記憶装置65に記憶された各種プログラムを記憶装置64に読み出し、読み出したプログラムに従って処理を実行することが可能である。
記憶装置64は、演算装置63から参照可能な、RAM(Random Access Memory)等のメモリ装置であり、プログラムや各種データ等を記憶する。記憶装置64は、揮発性のメモリ装置であってもよい。
不揮発性記憶装置65は、たとえば、ROM(Read Only Memory)、フラッシュメモリ、等の、不揮発性の記憶装置であり、各種プログラムやデータ等を記憶することが可能である。
ドライブ装置66は、たとえば、後述する記録媒体67に対するデータの読み取りや書き込みを処理する装置である。
記録媒体67は、たとえば、光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。
本発明の各実施形態は、たとえば、図23に例示した情報処理装置6により複製データ制御装置または電文処理装置を構成し、この複製データ制御装置または電文処理装置に対して、上記各実施形態において説明した機能を実現可能なプログラムを供給することにより実現してもよい。
この場合、複製データ制御装置または電文処理装置に対して供給したプログラムを、演算装置63が実行することによって、実施形態を実現することが可能である。また、複製データ制御装置または電文処理装置のすべてではなく、一部の機能を情報処理装置6で構成することも可能である。
さらに、上記プログラムを記録媒体67に記録しておき、複製データ制御装置または電文処理装置の出荷段階、あるいは運用段階等において、適宜上記プログラムが不揮発性記憶装置65に格納されるよう構成してもよい。なお、この場合、上記プログラムの供給方法は、出荷前の製造段階、あるいは運用段階等において、適当な治具を利用して複製データ制御装置または電文処理装置内にインストールする方法を採用してもよい。また、上記プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等の一般的な手順を採用してもよい。
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
電文を処理する電文処理装置から受信した電文を電文記憶部に記憶させる受信部と、
前記電文処理装置による前記電文の処理結果が反映されている更新情報と、前記更新情報に前記処理結果が反映されている前記電文の情報を示す更新電文情報とを受信し、前記更新情報を用いて、複製データ記憶部に記憶されている複製データに、前記電文処理装置による前記処理結果を反映する更新情報反映部と、
所定の条件が満たされた場合に、前記電文記憶部に記憶されている前記電文のうち、前記処理結果が前記複製データに反映されていない前記電文を、前記更新電文情報に基づいて特定し、前記特定された前記電文を処理し、前記特定された前記電文の前記処理結果を前記複製データに反映する電文処理反映部と、
を備える複製データ制御装置。
(付記2)
前記条件は、前記電文の処理を指示する指示入力があった場合、前記電文処理装置から前記電文を所定の時間受信しなかった場合、または、前記電文処理装置の異常を所定の方法で検知した場合のいずれか一つ以上である
ことを特徴とする付記1に記載の複製データ制御装置。
(付記3)
前記受信部は、前記更新電文情報に基づいて、前記電文記憶部に記憶されている前記電文のうち、前記複製データに前記処理結果が反映された前記電文を前記電文記憶部から削除する
ことを特徴とする付記1または付記2に記載の複製データ制御装置。
(付記4)
前記電文処理反映部は、前記複製データへの前記処理結果の反映に用いられていない前記更新情報がある場合に、前記更新情報を用いて前記処理結果が前記複製データに反映された後に前記特定を行う
ことを特徴とする付記1から付記3のいずれか1項に記載の複製データ制御装置。
(付記5)
前記更新電文情報は、前記更新情報に前記処理結果が反映されている前記電文の識別情報を含み、
前記識別情報は、前記電文処理装置により前記電文が処理された順番を示し、
前記更新情報反映部は、前記更新電文情報に含まれる前記識別情報に基づく順で前記更新情報を用いて、前記処理結果を前記複製データに反映する
ことを特徴とする付記1から付記4のいずれか1項に記載の複製データ制御装置。
(付記6)
前記受信部は、前記電文処理装置から受信した前記電文の前記識別情報を前記電文と対応付けて前記電文記憶部に記憶させ、
前記電文処理反映部は、前記特定された前記電文を前記識別情報が示す順で処理する
ことを特徴とする付記5に記載の複製データ制御装置。
(付記7)
前記電文処理反映部は、入力済通番と反映済通番とに基づいて、前記複製データに前記処理結果が反映されていない前記電文の前記特定を行い、
前記入力済通番は、前記電文記憶部に最後に記憶された前記電文の前記識別情報であり、
前記反映済通番は、前記複製データへの前記処理結果の反映に用いられた前記更新情報の前記更新電文情報に含まれる前記識別情報である
ことを特徴とする付記5または付記6に記載の複製データ制御装置。
(付記8)
前記更新情報反映部は、前記更新情報と前記更新電文情報とを更新情報記憶部に記憶させ、前記更新電文情報と前記反映済通番とに基づいて、前記更新情報記憶部に記憶されている前記更新情報のうち、前記電文処理装置による前記電文の前記処理結果の前記複製データへの反映に用いられていない前記更新情報を用いて、前記電文処理装置による前記電文の前記処理結果を前記複製データに反映する
ことを特徴とする付記7に記載の複製データ制御装置。
(付記9)
前記更新情報反映部は、前記更新情報が作成された順番を示す更新情報通番を前記電文処理装置から受信し、前記更新情報通番の順に前記更新情報を用いて、前記電文処理装置による前記電文の前記処理結果を前記複製データに反映する
ことを特徴とする付記1から付記8のいずれか1項に記載の複製データ制御装置。
(付記10)
前記更新情報反映部は、
前記電文の前記処理結果が反映されている前記更新情報の総数を前記電文処理装置から受信し、
前記総数に基づいて前記更新情報通番の順に前記更新情報を用いて、前記電文処理装置による前記電文の前記処理結果を前記複製データに反映する
ことを特徴とする付記9に記載の複製データ制御装置。
(付記11)
前記受信部は、前記電文処理装置による前記電文の前記処理結果が反映されたデータに反映前後で差分が生じたか否かを示す情報を含む記憶部反映情報を受信し、
前記電文処理反映部は、前記記憶部反映情報に基づいて、前記特定された前記電文のうち、前記電文処理装置による前記電文の前記処理結果の反映前後で前記データに差分を生じさせなかった前記電文の処理を行わない
ことを特徴とする付記1から付記10のいずれか1項に記載の複製データ制御装置。
(付記12)
前記受信部は、前記電文処理装置による前記電文の前記処理結果のデータへの反映が正常に終了したか否かを示す情報を含むレプリケーション情報を受信し、
前記電文処理反映部は、前記レプリケーション情報に基づいて、前記電文処理装置による前記電文の前記処理結果の前記データへの反映が正常に終了していない前記電文の処理を行わない
ことを特徴とする付記1から付記11のいずれか1項に記載の複製データ制御装置。
(付記13)
入力を受けた電文を複製データ制御装置に出力する送受信部と、
前記電文を処理し、前記電文の処理結果を、データ記憶部に記憶されているデータに反映し、前記処理結果が反映されている更新情報を作成し、前記更新情報と、前記更新情報に前記処理結果が反映されている前記電文の情報を示す更新電文情報とを、前記電文の出力と非同期で前記複製データ制御装置に出力する処理部と、
を備える電文処理装置。
(付記14)
前記更新電文情報は、前記更新情報に前記処理結果が反映されている前記電文の識別情報を含み、
前記電文の前記識別情報は、前記電文を識別する情報であり、前記電文が処理された順番を示す
ことを特徴とする付記13に記載の電文処理装置。
(付記15)
前記送受信部は、前記電文と共に前記電文の前記識別情報を前記複製データ制御装置に出力する
ことを特徴とする付記14に記載の電文処理装置。
(付記16)
前記処理部は、前記更新情報が作成された順番を示す更新情報通番を前記複製データ制御装置に出力する
ことを特徴とする付記13から付記15のいずれか1項に記載の電文処理装置。
(付記17)
前記処理部は、前記電文の前記処理結果が反映された前記更新情報の、当該電文に対する総数を前記複製データ制御装置に出力する
ことを特徴とする付記16に記載の電文処理装置。
(付記18)
前記送受信部は、前記電文の前記処理結果を反映した前記データに反映前後で差分が生じたか否かを示す情報を含む記憶部反映情報を前記複製データ制御装置に出力する
ことを特徴とする付記13から付記17のいずれか1項に記載の電文処理装置。
(付記19)
前記送受信部は、前記電文の前記処理結果の前記データへの反映が正常に終了したか否かを示す情報を含むレプリケーション情報を前記複製データ制御装置に出力する
ことを特徴とする付記13から付記18のいずれか1項に記載の電文処理装置。
(付記20)
付記1から付記12のいずれか1項に記載の複製データ制御装置と、
前記電文処理装置と、
を備えることを特徴とする複製データ制御システム。
(付記21)
付記13から付記19のいずれか1項に記載の電文処理装置と、
前記複製データ制御装置と、
を備えることを特徴とする複製データ制御システム。
(付記22)
前記複製データ制御装置が前記電文を処理して得られる前記処理結果は、前記電文処理装置が前記電文を処理して得られる前記処理結果と同じである
ことを特徴とする付記20または付記21に記載の複製データ制御システム。
(付記23)
付記1から付記4のいずれか1項に記載の複製データ制御装置と、
付記13に記載の電文処理装置と、
を備え、
前記複製データ制御装置の前記受信部は、前記電文処理装置の前記送受信部が送信した前記電文を受信し、
前記複製データ制御装置の前記更新情報反映部は、前記電文処理装置の前記処理部が出力した前記更新情報と前記更新電文情報とを受信する
ことを特徴とする複製データ制御システム。
(付記24)
付記5に記載の複製データ制御装置と、
付記14に記載の電文処理装置と、
を備え、
前記複製データ制御装置の前記受信部は、前記電文処理装置の前記送受信部が送信した前記電文を受信し、
前記複製データ制御装置の前記更新情報反映部は、前記電文処理装置の前記処理部が出力した前記更新情報と前記更新電文情報とを受信する
ことを特徴とする複製データ制御システム。
(付記25)
付記6から付記8のいずれか1項に記載の複製データ制御装置と、
付記15に記載の電文処理装置と、
を備え、
前記複製データ制御装置の前記受信部は、前記電文処理装置の前記送受信部が送信した前記電文と前記電文の前記識別情報とを受信し、
前記複製データ制御装置の前記更新情報反映部は、前記電文処理装置の前記処理部が出力した前記更新情報と前記更新電文情報とを受信する
ことを特徴とする複製データ制御システム。
(付記26)
付記9に記載の複製データ制御装置と、
付記16に記載の電文処理装置と、
を備え、
前記複製データ制御装置の前記受信部は、前記電文処理装置の前記送受信部が送信した前記電文を受信し、
前記複製データ制御装置の前記更新情報反映部は、前記電文処理装置の前記処理部が出力した前記更新情報と前記更新電文情報と前記更新情報通番とを受信する
ことを特徴とする複製データ制御システム。
(付記27)
付記10に記載の複製データ制御装置と、
付記17に記載の電文処理装置と、
前記複製データ制御装置の前記受信部は、前記電文処理装置の前記送受信部が送信した前記電文を受信し、
前記複製データ制御装置の前記更新情報反映部は、前記電文処理装置の前記処理部が出力した前記更新情報と前記更新電文情報と前記総数とを受信する
ことを特徴とする複製データ制御システム。
(付記28)
付記11に記載の複製データ制御装置と、
付記18に記載の電文処理装置と、
を備え、
前記複製データ制御装置の前記受信部は、前記電文処理装置の前記送受信部が送信した前記電文と、前記記憶部反映情報とを受信し、
前記複製データ制御装置の前記更新情報反映部は、前記電文処理装置の前記処理部が出力した前記更新情報と前記更新電文情報と受信する
ことを特徴とする複製データ制御システム。
(付記29)
付記12に記載の複製データ制御装置と、
付記19に記載の電文処理装置と、
を備え、
前記複製データ制御装置の前記受信部は、前記電文処理装置の前記送受信部が送信した前記電文と、前記レプリケーション情報とを受信し、
前記複製データ制御装置の前記更新情報反映部は、前記電文処理装置の前記処理部が出力した前記更新情報と前記更新電文情報と受信する
ことを特徴とする複製データ制御システム。
(付記30)
電文を処理する電文処理装置から受信した電文を電文記憶部に記憶させ、
前記電文処理装置による前記電文の処理結果が反映されている更新情報と、前記更新情報に前記処理結果が反映されている前記電文の情報を示す更新電文情報とを受信し、前記更新情報を用いて、複製データ記憶部に記憶されている複製データに、前記電文処理装置による前記処理結果を反映し、
所定の条件が満たされた場合に、前記電文記憶部に記憶されている前記電文のうち、前記処理結果が前記複製データに反映されていない前記電文を、前記更新電文情報に基づいて特定し、前記特定された前記電文を処理し、前記特定された前記電文の前記処理結果を前記複製データに反映する、
複製データ制御方法。
(付記31)
前記条件は、前記電文の処理を指示する指示入力があった場合、前記電文処理装置から前記電文を所定の時間受信しなかった場合、または、前記電文処理装置の異常を所定の方法で検知した場合のいずれか1つ以上である
ことを特徴とする付記30に記載の複製データ制御方法。
(付記32)
前記更新電文情報に基づいて、前記電文記憶部に記憶されている前記電文のうち、前記複製データに前記処理結果が反映された前記電文を前記電文記憶部から削除する
ことを特徴とする付記30または付記31に記載の複製データ制御方法。
(付記33)
前記複製データへの前記処理結果の反映に用いられていない前記更新情報がある場合に、前記更新情報を用いて前記処理結果が前記複製データに反映された後に前記特定を行う
ことを特徴とする付記30から付記32のいずれか1項に記載の複製データ制御方法。
(付記34)
前記更新電文情報は、前記更新情報に前記処理結果が反映されている前記電文の識別情報を含み、
前記識別情報は、前記電文処理装置により前記電文が処理された順番を示し、
前記更新電文情報に含まれる前記識別情報に基づく順で前記更新情報を用いて、前記処理結果を前記複製データに反映する、
ことを特徴とする付記30から付記33のいずれか1項に記載の複製データ制御方法。
(付記35)
前記電文処理装置から受信した前記電文の前記識別情報を前記電文と対応付けて前記電文記憶部に記憶させ、
前記特定された前記電文を前記識別情報が示す順で処理する
ことを特徴とする付記34に記載の複製データ制御方法。
(付記36)
入力済通番と反映済通番とに基づいて、前記複製データに前記処理結果が反映されていない前記電文の前記特定を行い、
前記入力済通番は、前記電文記憶部に最後に記憶された前記電文の前記識別情報であり、
前記反映済通番は、前記複製データへの前記処理結果の反映に用いられた前記更新情報の前記更新電文情報に含まれる前記識別情報である
ことを特徴とする付記34または付記35に記載の複製データ制御方法。
(付記37)
前記更新情報と前記更新電文情報とを更新情報記憶部に記憶させ、前記更新電文情報と前記反映済通番とに基づいて、前記更新情報記憶部に記憶されている前記更新情報のうち、前記電文処理装置による前記電文の前記処理結果の前記複製データへの反映に用いられていない前記更新情報を用いて、前記電文処理装置による前記電文の前記処理結果を前記複製データに反映する
ことを特徴とする付記36に記載の複製データ制御方法。
(付記38)
前記更新情報が作成された順番を示す更新情報通番を前記電文処理装置から受信し、前記更新情報通番の順に前記更新情報を用いて、前記電文処理装置による前記電文の前記処理結果を前記複製データに反映する
ことを特徴とする付記30から付記37のいずれか1項に記載の複製データ制御方法。
(付記39)
前記電文の前記処理結果が反映されている前記更新情報の総数を前記電文処理装置から受信し、
前記総数に基づいて前記更新情報通番の順に前記更新情報を用いて、前記電文処理装置による前記電文の前記処理結果を前記複製データに反映する
ことを特徴とする付記38に記載の複製データ制御方法。
(付記40)
前記電文処理装置による前記電文の前記処理結果が反映されたデータに反映前後で差分が生じたか否かを示す情報を含む記憶部反映情報を受信し、
前記記憶部反映情報に基づいて、前記特定された前記電文のうち、前記電文処理装置による前記電文の前記処理結果の反映前後で前記データに差分を生じさせなかった前記電文の処理を行わない
ことを特徴とする付記30から付記39のいずれか1項に記載の複製データ制御方法。
(付記41)
前記電文処理装置による前記電文の前記処理結果のデータへの反映が正常に終了したか否かを示す情報を含むレプリケーション情報を受信し、
前記レプリケーション情報に基づいて、前記電文処理装置による前記電文の前記処理結果の前記データへの反映が正常に終了していない前記電文の処理を行わない
ことを特徴とする付記30から付記40のいずれか1項に記載の複製データ制御方法。
(付記42)
入力を受けた電文を複製データ制御装置に出力し、
前記電文を処理し、前記電文の処理結果を、データ記憶部に記憶されているデータに反映し、前記処理結果が反映されている更新情報を作成し、前記更新情報と、前記更新情報に前記処理結果が反映されている前記電文の情報を示す更新電文情報とを、前記電文の出力と非同期で前記複製データ制御装置に出力する、
電文処理方法。
(付記43)
前記更新電文情報は、前記更新情報に前記処理結果が反映されている前記電文の識別情報を含み、
前記電文の前記識別情報は、前記電文を識別する情報であり、前記電文が処理された順番を示す
ことを特徴とする付記42に記載の電文処理方法。
(付記44)
前記電文と共に前記電文の前記識別情報を前記複製データ制御装置に出力する
ことを特徴とする付記43に記載の電文処理方法。
(付記45)
前記更新情報が作成された順番を示す更新情報通番を前記複製データ制御装置に出力する
ことを特徴とする付記42から付記44のいずれか1項に記載の電文処理方法。
(付記46)
前記電文の前記処理結果が反映された前記更新情報の、当該電文に対する総数を前記複製データ制御装置に出力する
ことを特徴とする付記45に記載の電文処理方法。
(付記47)
前記電文の前記処理結果を反映した前記データに反映前後で差分が生じたか否かを示す情報を含む記憶部反映情報を前記複製データ制御装置に出力する
ことを特徴とする付記42から付記46のいずれか1項に記載の電文処理方法。
(付記48)
前記電文の前記処理結果の前記データへの反映が正常に終了したか否かを示す情報を含むレプリケーション情報を前記複製データ制御装置に出力する
ことを特徴とする付記42から付記47のいずれか1項に記載の電文処理方法。
(付記49)
コンピュータに、
電文を処理する電文処理装置から受信した電文を電文記憶部に記憶させる受信機能と、
前記電文処理装置による前記電文の処理結果が反映されている更新情報と、前記更新情報に前記処理結果が反映されている前記電文の情報を示す更新電文情報とを受信し、前記更新情報を用いて、複製データ記憶部に記憶されている複製データに、前記電文処理装置による前記処理結果を反映する更新情報反映機能と、
所定の条件が満たされた場合に、前記電文記憶部に記憶されている前記電文のうち、前記処理結果が前記複製データに反映されていない前記電文を、前記更新電文情報に基づいて特定し、前記特定された前記電文を処理し、前記特定された前記電文の前記処理結果を前記複製データに反映する電文処理反映機能と、
を実現させる複製データ制御プログラム。
(付記50)
前記条件は、前記電文の処理を指示する指示入力があった場合、前記電文処理装置から前記電文を所定の時間受信しなかった場合、または、前記電文処理装置の異常を所定の方法で検知した場合のいずれか一つ以上である
ことを特徴とする付記49に記載の複製データ制御プログラム。
(付記51)
前記受信機能は、前記更新電文情報に基づいて、前記電文記憶部に記憶されている前記電文のうち、前記複製データに前記処理結果が反映された前記電文を前記電文記憶部から削除する
ことを特徴とする付記49または付記50に記載の複製データ制御プログラム。
(付記52)
前記電文処理反映機能は、前記複製データへの前記処理結果の反映に用いられていない前記更新情報がある場合に、前記更新情報を用いて前記処理結果が前記複製データに反映された後に前記特定を行う
ことを特徴とする付記49から付記51のいずれか1項に記載の複製データ制御プログラム。
(付記53)
前記更新電文情報は、前記更新情報に前記処理結果が反映されている前記電文の識別情報を含み、
前記識別情報は、前記電文処理装置により前記電文が処理された順番を示し、
前記更新情報反映機能は、前記更新電文情報に含まれる前記識別情報に基づく順で前記更新情報を用いて、前記処理結果を前記複製データに反映する
ことを特徴とする付記49から付記52のいずれか1項に記載の複製データ制御プログラム。
(付記54)
前記受信機能は、前記電文処理装置から受信した前記電文の前記識別情報を前記電文と対応付けて前記電文記憶部に記憶させ、
前記電文処理反映機能は、前記特定された前記電文を前記識別情報が示す順で処理する
ことを特徴とする付記53に記載の複製データ制御プログラム。
(付記55)
前記電文処理反映機能は、入力済通番と反映済通番とに基づいて、前記複製データに前記処理結果が反映されていない前記電文の前記特定を行い、
前記入力済通番は、前記電文記憶部に最後に記憶された前記電文の前記識別情報であり、
前記反映済通番は、前記複製データへの前記処理結果の反映に用いられた前記更新情報の前記更新電文情報に含まれる前記識別情報である
ことを特徴とする付記53または付記54に記載の複製データ制御プログラム。
(付記56)
前記更新情報反映機能は、前記更新情報と前記更新電文情報とを更新情報記憶部に記憶させ、前記更新電文情報と前記反映済通番とに基づいて、前記更新情報記憶部に記憶されている前記更新情報のうち、前記電文処理装置による前記電文の前記処理結果の前記複製データへの反映に用いられていない前記更新情報を用いて、前記電文処理装置による前記電文の前記処理結果を前記複製データに反映する
ことを特徴とする付記55に記載の複製データ制御プログラム。
(付記57)
前記更新情報反映機能は、前記更新情報が作成された順番を示す更新情報通番を前記電文処理装置から受信し、前記更新情報通番の順に前記更新情報を用いて、前記電文処理装置による前記電文の前記処理結果を前記複製データに反映する
ことを特徴とする付記49から付記56のいずれか1項に記載の複製データ制御プログラム。
(付記58)
前記更新情報反映機能は、
前記電文の前記処理結果が反映されている前記更新情報の総数を前記電文処理装置から受信し、
前記総数に基づいて前記更新情報通番の順に前記更新情報を用いて、前記電文処理装置による前記電文の前記処理結果を前記複製データに反映する
ことを特徴とする付記57に記載の複製データ制御プログラム。
(付記59)
前記受信機能は、前記電文処理装置による前記電文の前記処理結果が反映されたデータに反映前後で差分が生じたか否かを示す情報を含む記憶部反映情報を受信し、
前記電文処理反映機能は、前記記憶部反映情報に基づいて、前記特定された前記電文のうち、前記電文処理装置による前記電文の前記処理結果の反映前後で前記データに差分を生じさせなかった前記電文の処理を行わない
ことを特徴とする付記49から付記58のいずれか1項に記載の複製データ制御プログラム。
(付記60)
前記受信機能は、前記電文処理装置による前記電文の前記処理結果のデータへの反映が正常に終了したか否かを示す情報を含むレプリケーション情報を受信し、
前記電文処理反映機能は、前記レプリケーション情報に基づいて、前記電文処理装置による前記電文の前記処理結果の前記データへの反映が正常に終了していない前記電文の処理を行わない
ことを特徴とする付記49から付記59のいずれか1項に記載の複製データ制御プログラム。
(付記61)
コンピュータに、
入力を受けた電文を複製データ制御装置に出力する送受信機能と、
前記電文を処理し、前記電文の処理結果を、データ記憶部に記憶されているデータに反映し、前記処理結果が反映されている更新情報を作成し、前記更新情報と、前記更新情報に前記処理結果が反映されている前記電文の情報を示す更新電文情報とを、前記電文の出力と非同期で前記複製データ制御装置に出力する処理機能と、
を実現させる電文処理プログラム。
(付記62)
前記更新電文情報は、前記更新情報に前記処理結果が反映されている前記電文の識別情報を含み、
前記電文の前記識別情報は、前記電文を識別する情報であり、前記電文が処理された順番を示す
ことを特徴とする付記61に記載の電文処理プログラム。
(付記63)
前記送受信機能は、前記電文と共に前記電文の前記識別情報を前記複製データ制御装置に出力する
ことを特徴とする付記62に記載の電文処理プログラム。
(付記64)
前記処理機能は、前記更新情報が作成された順番を示す更新情報通番を前記複製データ制御装置に出力する
ことを特徴とする付記61から付記63のいずれか1項に記載の電文処理プログラム。
(付記65)
前記処理機能は、前記電文の前記処理結果が反映された前記更新情報の、当該電文に対する総数を前記複製データ制御装置に出力する
ことを特徴とする付記64に記載の電文処理プログラム。
(付記66)
前記送受信機能は、前記電文の前記処理結果を反映した前記データに反映前後で差分が生じたか否かを示す情報を含む記憶部反映情報を前記複製データ制御装置に出力する
ことを特徴とする付記61から付記65のいずれか1項に記載の電文処理プログラム。
(付記67)
前記送受信機能は、前記電文の前記処理結果の前記データへの反映が正常に終了したか否かを示す情報を含むレプリケーション情報を前記複製データ制御装置に出力する
ことを特徴とする付記61から付記66のいずれか1項に記載の電文処理プログラム。