複数種の処理手順が含まれるアプリケーションプログラムでの処理の進行状況を示すデータであって、処理が進行している処理手順の処理手順IDIdentifierが記述されるデータをジャーナルとして生成するジャーナル生成部と、生成されたジャーナルごとに、ジャーナルの書出先となる書出先ジャーナルファイルを複数のジャーナルファイルの中から決定する書出先決定部と、処理手順IDが共通するジャーナルの間で書出先ジャーナルファイルが変更になる場合に、書出先ジャーナルファイルの変更を通知する書出先変更通知を、書出先ジャーナルファイル変更前のいずれかのジャーナルと書出先ジャーナルファイル変更後のいずれかのジャーナルに記述する書出先変更通知部と、前記書出先決定部により決定された書出先ジャーナルファイルにジャーナルを書き出す書出部と、それぞれが、いずれかのジャーナルファイルに対応付けられ、対応付けられているジャーナルファイルからジャーナルを読み込み、読み込んだジャーナルを処理手順IDに従って分類し、処理手順IDごとに、分類された1つ以上のジャーナルからジャーナル列を生成し、読み込んだジャーナルの中に書出先変更通知が記述されているジャーナルがある場合に、書出先変更通知が記述されているジャーナルに記述されている処理手順IDを書出先変更発生IDとして他の処理手順IDから区別する複数のジャーナル読込分類部と、書出先変更発生IDに対して生成されたジャーナル列を少なくともいずれかのジャーナル読込分類部から入力し、共通する書出先変更発生IDに対して生成された2つ以上のジャーナル列を連結するジャーナル連結部とを有することを特徴とするジャーナル管理システム。前記ジャーナル管理システムは、更に、書出先変更発生ID以外の処理手順IDに対して生成されたジャーナル列をいずれかのジャーナル読込分類部から入力し、入力したジャーナル列を解析し、書出先変更発生IDに対して生成された連結後のジャーナル列を前記ジャーナル連結部から入力し、入力した連結後のジャーナル列を解析するジャーナル解析部を有することを特徴とする請求項1に記載のジャーナル管理システム。前記書出先変更通知部は、処理手順IDが共通するジャーナルの間で書出先ジャーナルファイルが変更になる場合に、書出先ジャーナルファイル変更前の最後尾のジャーナルに、書出先ジャーナルファイル変更前の最後尾のジャーナルであることを通知する変更前最後尾データ通知を、前記書出先変更通知として記述し、書出先ジャーナルファイル変更後の先頭のジャーナルに、書出先ジャーナルファイル変更後の先頭のジャーナルであることを通知する変更後先頭データ通知を、前記書出先変更通知として記述し、前記ジャーナル管理システムは、更に、先頭のジャーナルに変更後先頭データ通知が記述され、最後尾のジャーナルに変更前最後尾データ通知が記述されていないというジャーナル列のパターンを、特殊ジャーナル列パターンとして記憶する記憶部を有し、前記ジャーナル連結部は、入力したジャーナル列が前記特殊ジャーナル列パターンに該当するか否かを判断し、入力したジャーナル列が前記特殊ジャーナル列パターンに該当する場合に、他のジャーナル列との連結の対象とすることなく、入力したジャーナル列の一部を前記ジャーナル解析部に出力することを特徴とする請求項2に記載のジャーナル管理システム。前記ジャーナル管理システムは、前記アプリケーションプログラムにおいて発生する同じ処理手順の複数の処理インスタンスに、処理インスタンスの発生順序を表す処理インスタンスIDを設定し、前記ジャーナル生成部は、処理手順IDと、処理インスタンスIDとが記述されるジャーナルを生成し、前記ジャーナル連結部は、入力したジャーナル列が前記特殊ジャーナル列パターンに該当する場合に、入力したジャーナル列を解析して、処理手順が完了している処理インスタンスが存在するか否かを判断し、入力したジャーナル列を解析した結果、処理手順が完了している処理インスタンスが存在する場合に、処理手順が完了している処理インスタンスよりも後の発生順序を表す処理インスタンスIDが記述されている1つ以上のジャーナルを、入力したジャーナル列から抽出し、抽出したジャーナルを、他のジャーナル列との連結の対象とすることなく、前記ジャーナル解析部に出力することを特徴とする請求項3に記載のジャーナル管理システム。前記ジャーナル生成部は、mm≧2個の分岐が存在する処理手順に対して、各分岐での最後の工程が完了したことを示すm個の完了ジャーナルを、処理インスタンスごとに生成し、前記ジャーナル連結部は、入力したジャーナル列が前記特殊ジャーナル列パターンに該当する場合に、入力したジャーナル列に、共通の処理インスタンスIDが記述されるm個の完了ジャーナルが存在する場合に、当該処理インスタンスIDに対応する処理インスタンスにおいて処理手順が完了していると判断することを特徴とする請求項4に記載のジャーナル管理システム。前記ジャーナル連結部は、入力したジャーナル列が前記特殊ジャーナル列パターンに該当し、入力したジャーナル列を解析した結果、処理手順が完了している処理インスタンスが存在しない場合に、入力したジャーナル列を、共通する書出先変更発生IDに対して生成された他のジャーナル列と連結し、連結後のジャーナル列を前記ジャーナル解析部に出力することを特徴とする請求項4に記載のジャーナル管理システム。前記記憶部は、先頭のジャーナルに変更後先頭データ通知が記述され、処理手順内の最初の工程の処理が完了したことを示す開始ジャーナルであって、x番目の発生順序を表す処理インスタンスIDが記述される開始ジャーナルが存在し、処理手順内の最後の工程の処理が完了したことを示す完了ジャーナルであって、前記x番目の発生順序を表す処理インスタンスIDが記述される完了ジャーナルが、処理手順内の分岐数分存在するというジャーナル列のパターンを、制限ジャーナル列パターンとして記憶し、前記ジャーナル連結部は、入力したジャーナル列が前記特殊ジャーナル列パターンに該当しない場合に、入力したジャーナル列が前記制限ジャーナル列パターンに該当するか否かを判断し、入力したジャーナル列が前記制限ジャーナル列パターンに該当する場合に、前記x番目の発生順序を表す処理インスタンスIDに相当する処理インスタンスIDを入力したジャーナル列から抽出し、抽出した処理インスタンスIDよりも前の発生順序を表す処理インスタンスIDが記述されているジャーナル列を、連結の対象から除外することを特徴とする請求項4に記載のジャーナル管理システム。前記記憶部は、先頭のジャーナルに変更後先頭データ通知が記述され、処理手順内の最後の工程の処理が完了したことを示す完了ジャーナルであって、x番目の発生順序を表す処理インスタンスIDが記述される完了ジャーナルが、処理手順内の分岐数分存在し、処理手順内の最初の工程の処理が完了したことを示す開始ジャーナルであって、x1番目の発生順序を表す処理インスタンスIDが記述される開始ジャーナルが、先頭のジャーナルと前記x番目の発生順序を表す処理インスタンスIDの最後尾の完了ジャーナルとの間又は当該最後尾の完了ジャーナルの直後に存在しているというジャーナル列のパターンを、制限ジャーナル列パターンとして記憶し、前記ジャーナル連結部は、入力したジャーナル列が前記特殊ジャーナル列パターンに該当しない場合に、入力したジャーナル列が前記制限ジャーナル列パターンに該当するか否かを判断し、入力したジャーナル列が前記制限ジャーナル列パターンに該当する場合に、前記x番目の発生順序を表す処理インスタンスIDに相当する処理インスタンスIDを入力したジャーナル列から抽出し、抽出した処理インスタンスIDよりも前の発生順序を表す処理インスタンスIDが記述されているジャーナル列を、連結の対象から除外することを特徴とする請求項4に記載のジャーナル管理システム。前記記憶部は、先頭のジャーナルに変更後先頭データ通知が記述され、処理手順内の最後の工程の処理が完了したことを示す完了ジャーナルであって、x番目の発生順序を表す処理インスタンスID及びx-1番目の発生順序を表す処理インスタンスIDのいずれかが記述される完了ジャーナルが、処理手順内の分岐数分存在し、処理手順内の最初の工程の処理が完了したことを示す開始ジャーナルであって、x1番目の発生順序を表す処理インスタンスIDが記述される開始ジャーナルが、先頭のジャーナルと前記x番目の発生順序を表す処理インスタンスIDの最後尾の完了ジャーナルとの間又は当該最後尾の完了ジャーナルの直後に存在しているというジャーナル列のパターンを、制限ジャーナル列パターンとして記憶し、前記ジャーナル連結部は、入力したジャーナル列が前記特殊ジャーナル列パターンに該当しない場合に、入力したジャーナル列が前記制限ジャーナル列パターンに該当するか否かを判断し、入力したジャーナル列が前記制限ジャーナル列パターンに該当する場合に、前記x番目の発生順序を表す処理インスタンスIDに相当する処理インスタンスIDを入力したジャーナル列から抽出し、抽出した処理インスタンスIDよりも前の発生順序を表す処理インスタンスIDが記述されているジャーナル列を、連結の対象から除外することを特徴とする請求項4に記載のジャーナル管理システム。このように、特許文献1及び特許文献2では、ジャーナルファイルを複数用意することによる書出し性能の向上、読み込み及び復旧処理時間の短縮、書出先ジャーナルファイルの変更を全て満たすことができないという課題がある。本発明は、このような課題に鑑みてなされたものであり、ジャーナルの書出し性能の向上、読み込み及び復旧処理時間の短縮、書出先ジャーナルファイルの変更の全てを実現することを主な目的とする。本発明に係るジャーナル管理システムは、複数種の処理手順が含まれるアプリケーションプログラムでの処理の進行状況を示すデータであって、処理が進行している処理手順の処理手順IDIdentifierが記述されるデータをジャーナルとして生成するジャーナル生成部と、生成されたジャーナルごとに、ジャーナルの書出先となる書出先ジャーナルファイルを複数のジャーナルファイルの中から決定する書出先決定部と、処理手順IDが共通するジャーナルの間で書出先ジャーナルファイルが変更になる場合に、書出先ジャーナルファイルの変更を通知する書出先変更通知を、書出先ジャーナルファイル変更前のいずれかのジャーナルと書出先ジャーナルファイル変更後のいずれかのジャーナルに記述する書出先変更通知部と、前記書出先決定部により決定された書出先ジャーナルファイルにジャーナルを書き出す書出部と、それぞれが、いずれかのジャーナルファイルに対応付けられ、対応付けられているジャーナルファイルからジャーナルを読み込み、読み込んだジャーナルを処理手順IDに従って分類し、処理手順IDごとに、分類された1つ以上のジャーナルからジャーナル列を生成し、読み込んだジャーナルの中に書出先変更通知が記述されているジャーナルがある場合に、書出先変更通知が記述されているジャーナルに記述されている処理手順IDを書出先変更発生IDとして他の処理手順IDから区別する複数のジャーナル読込分類部と、書出先変更発生IDに対して生成されたジャーナル列を少なくともいずれかのジャーナル読込分類部から入力し、共通する書出先変更発生IDに対して生成された2つ以上のジャーナル列を連結するジャーナル連結部とを有することを特徴とする。本発明では、書出先ジャーナルファイルが変更になる場合にジャーナルに書出先変更通知を記述し、書出先変更通知が記述されているジャーナルの処理手順IDを書出先変更発生IDとして他の処理手順IDから区別し、共通する書出先変更発生IDに対して生成された2つ以上のジャーナル列を連結する。このため、ジャーナルファイルを固定する必要がなく、ジャーナルファイルの変更が可能であり、ジャーナルの書出し性能の向上が図られる。また、書出先ジャーナルファイルの変更があったジャーナルは書出先変更通知により検知できるので、ジャーナルファイルの読込みの並列化が可能であり、読込み時間を短縮することができる。実施の形態1.図1は、本実施の形態に係るジャーナル管理システムの構成例を示す。ジャーナル管理システムには、ジャーナル出力装置100及び復旧装置200が含まれる。ジャーナル出力装置100は、図27及び図28に示したサーバ装置805に相当する。つまり、ジャーナル出力装置100は、正常時にアプリケーション300を実行するとともに、アプリケーション300での処理の進行状況を示すデータであるジャーナル600を生成し、生成したジャーナル600をジャーナルファイル400及びジャーナルファイル500に書き出す。復旧装置200は、図28に示した予備サーバ装置806に相当する。つまり、復旧装置200は、アプリケーション300が異常終了した際に、ジャーナルファイル400及びジャーナルファイル500からジャーナル600を読み出し、読み出したジャーナル600を解析して、アプリケーション300を異常終了により中断した工程の次の工程から再開させる。なお、アプリケーション300は、ジャーナル出力装置100及び復旧装置200の各々の記憶領域に格納されていてもよいし、ジャーナル出力装置100及び復旧装置200が共有する共用サーバ装置等に格納されていてもよい。図1の例では、ジャーナル出力装置100は、処理種別Aの処理の実行において生成されたジャーナル600と処理種別Bの処理の実行において生成されたジャーナル600をジャーナルファイル400に書き出し、処理種別Cの処理の実行において生成されたジャーナル600をジャーナルファイル500に書き出すことになっている。しかし、後述するように、ジャーナル600の書出先のジャーナルファイルは変更になることがある。ジャーナルファイル400とジャーナルファイル500は、ジャーナル出力装置100と復旧装置200がともにアクセス可能な記憶領域磁気ディスク等である。ジャーナル出力装置100において、ジャーナル生成部101は、ジャーナル600を生成する。ジャーナル600の詳細は後述する。書出先決定部102は、ジャーナル生成部101により生成されたジャーナル600の書出先となるジャーナルファイルを決定する。なお、書出先決定部102によりジャーナル600の書出先として決定されたジャーナルファイルを書出先ジャーナルファイルという。書出先変更通知部103は、処理定義IDIdentifierが共通するジャーナルの間で書出先ジャーナルファイルが変更になる場合に、書出先ジャーナルファイルの変更を通知する書出先変更通知を、書出先ジャーナルファイル変更前の最後尾のジャーナル600と書出先ジャーナルファイル変更後の先頭のジャーナル600に記述する。なお、処理定義ID、書出先変更通知の詳細は後述する。書出部104は、書出先決定部102により決定された書出先ジャーナルファイルにジャーナル600を書き出す。テーブル記憶部105は、書出先決定テーブル106及び書出先保持テーブル107を記憶する。書出先決定テーブル106は、ジャーナル600の書出先ジャーナルファイルとして指定されたジャーナルファイルを示す情報である。書出先保持テーブル107は、実際にジャーナル600を書き出しているジャーナルファイルを示す情報である。書出先決定テーブル106及び書出先保持テーブル107の詳細は、後述する。復旧装置200において、読込部201aは、ジャーナルファイル400に対応付けられ、ジャーナルファイル400からジャーナル600を読み込む。読込部201bは、ジャーナルファイル500に対応付けられ、ジャーナルファイル500からジャーナル600を読み込む。なお、読込部201aと読込部201bを区別する必要がないときは、読込部201と表記する。書出先変更検知部202aは、読込部201aがジャーナルファイル400から読み込んだジャーナル600を処理定義IDに従って分類し、処理定義IDごとに、分類された1つ以上のジャーナルからジャーナル列を生成する。また、書出先変更検知部202aは、読み込んだジャーナル600の中に書出先変更通知が記述されているジャーナル600がある場合に、書出先変更通知が記述されているジャーナル600に記述されている処理定義IDを書出先変更発生IDとして他の処理定義IDから区別する。更に、書出先変更検知部202aは、書出先変更発生IDに対して生成されたジャーナル列は順序保証部204に出力し、書出先変更発生ID以外の処理定義IDに対して生成されたジャーナル列は復旧部203aに出力する。書出先変更検知部202bは、読込部201bがジャーナルファイル500から読み込んだジャーナル600を処理定義IDに従って分類し、処理定義IDごとに、分類された1つ以上のジャーナル600からジャーナル列を生成する。また、書出先変更検知部202bは、読み込んだジャーナル600の中に書出先変更通知が記述されているジャーナル600がある場合に、書出先変更通知が記述されているジャーナル600に記述されている処理定義IDを書出先変更発生IDとして他の処理定義IDから区別する。更に、書出先変更検知部202bは、書出先変更発生IDに対して生成されたジャーナル列は順序保証部204に出力し、書出先変更発生ID以外の処理定義IDに対して生成されたジャーナル列は復旧部203bに出力する。なお、書出先変更検知部202aと書出先変更検知部202bを区別する必要がないときは、書出先変更検知部202と表記する。読込部201aと書出先変更検知部202a、読込部201bと書出先変更検知部202bとは、それぞれ、ジャーナル読込分類部の例に相当する。復旧部203aは、書出先変更検知部202aから書出先変更発生ID以外の処理定義IDに対して生成されたジャーナル列を入力し、入力したジャーナル列に対してアプリケーション300を復旧するための解析を行う。復旧部203bは、書出先変更検知部202bから書出先変更発生ID以外の処理定義IDに対して生成されたジャーナル列を入力し、入力したジャーナル列に対してアプリケーション300を復旧するための解析を行う。復旧部203cは、書出先変更発生IDに対して生成されたジャーナル列であって順序保証部204によって連結された後のジャーナル列を、順序保証部204から入力し、入力したジャーナル列に対してアプリケーション300を復旧するための解析を行う。復旧部203a、復旧部203b及び復旧部203cは、それぞれ、ジャーナル解析部の例に相当する。なお、復旧部203a、復旧部203b、復旧部203cを区別する必要がないときは、復旧部203と表記する。順序保証部204は、順序待合せ部205を有し、順序待合せ部205を管理する。順序保証部204は、書出先変更検知部202a及び書出先変更検知部202bの少なくともいずれかから、書出先変更発生IDに対して生成されたジャーナル列を入力し、入力したジャーナル列を順序待合せ部205に渡す。順序待合せ部205は、共通する書出先変更発生IDに対して生成された2つ以上のジャーナル列を連結する。順序待合せ部205は、処理定義IDごとに設けられている。順序待合せ部205を含む順序保証部204は、ジャーナル連結部の例に相当する。図2は、ジャーナル600の構成例を示す。ジャーナル600は、ヘッダとボディから構成される。ヘッダは、処理定義ID、処理ID、処理ステージID、処理ブランチID、処理ブランチ数、処理状態、書出先変更通知領域から構成される。ボディは、処理データから構成される。書出先変更通知領域は、書出先ジャーナルファイルの変更を通知する書出先変更通知が記述される領域である。なお、処理定義ID、処理ID、処理ステージID、処理ブランチID、処理ブランチ数、処理状態及び処理データの詳細は後述する。また、本実施の形態では、ジャーナル600は図31のようにも表記する。図31の表記方式では、符号821で示す要素で処理定義IDを表し、符号822で示す要素で処理IDを表し、符号823で示す要素で処理ステージIDを表し、符号824で示す要素で処理ブランチIDを表し、符号825で示す要素で処理状態を表し、符号826で示す要素で処理データを表す。つまり、図31の処理定義ID821、処理ID822、処理ステージID823、処理ブランチID824、処理状態825及び処理データ826は、図2の処理定義ID、処理ID、処理ステージID、処理ブランチID、処理状態及び処理データに対応する。図31の表記方式では、処理ブランチ数及び書出先変更通知領域は省略される。以降では、図2の表記方式及び図31の表記方式を用いて、ジャーナル600を表記する。図32に示すように、アプリケーションプログラムの入力から出力までの一連の処理を処理定義と呼ぶ。処理定義が実行されることにより、アプリケーションプログラムに備わっている所定の機能が実現される。つまり、処理定義は、アプリケーションプログラムに備わっている機能を実現するための処理手順である。各処理定義を識別するための識別子を処理定義ID821と呼ぶ。換言すると、処理定義IDは、処理手順を識別するための識別子であり、処理手順IDの例に相当する。各処理定義は、複数の内部処理処理手順内の工程で構成される。なお、処理定義は、特許文献1及び特許文献2の説明において言及した処理種別と同義である。アプリケーションプログラムにおいて、各処理定義は繰り返し実行可能である。つまり、同じ処理定義に対して複数のインスタンス処理インスタンスと呼ぶを発生させることができる。各処理インスタンスを識別するための識別子を処理ID822又は処理インスタンスIDと呼ぶ。図33に示すように、処理ID822処理インスタンスIDは、処理定義ごとの連番である。処理ID822処理インスタンスIDは、外部からの処理要求ごとに増加する。各処理定義は、内部処理の集合であるが、図34のように、各内部処理の段階を処理ステージと呼ぶ。つまり、処理定義は、複数の処理ステージから構成される。各処理ステージを識別するための識別子を処理ステージID823と呼ぶ。図35のように、処理の並列化などにより同じ処理ステージ内で複数に処理工程が分割される場合の1つの処理工程を処理ブランチという。各処理ブランチを識別するための識別子を処理ブランチID824と呼ぶ。処理ブランチの数を処理ブランチ数と呼ぶ。処理状態825は、完了や未完了などの処理の状態を示す。処理状態825を識別するための識別子を状態IDともいう。処理データ826は、処理で必要とするデータである。処理データ826は、現在の処理ステージまたは次の処理ステージを再開するのに十分な情報量を持つデータとする必要がある。アプリケーション300は、図36のように、外部から入力データ801を入力し、入力データ801に対して複数の内部処理を実行する。そして、分岐後の最終工程である内部処理Pn_1~Pn_mがすべて完了すると、アプリケーション300の処理が終了となる。アプリケーション300と内部処理と入力データ801との間には、以下の関係がある。1アプリケーション300は、複数の内部処理から構成され、最終処理は複数存在する。2入力データが幾つかの種別に分類され図36では、種別A、B、C、種別間で内部処理が異なる。3同じ種別の入力データ801でも流量は一定では無く、振れ幅が大きいトランザクション系の処理とバッチ系の処理が混在する。以上の説明を前提にして、アプリケーション300にジャーナル方式を適用した場合のジャーナルファイルの構成を図37に示す。この例では、処理ブランチの数を2としている。図37において、A1は処理定義ID:A及び処理ID:1を表し、A2は処理定義ID:A及び処理ID:2を表し、B3は処理定義ID:B及び処理ID:3を表している。また、p1は処理ステージID:1を表し処理ブランチはない、p21は処理ステージID:2及び処理ブランチID:1を表し、pn1は処理ステージID:n及び処理ブランチID:1を表し、pn2は処理ステージID:n及び処理ブランチID:2を表している。なお、図37では、図31に示した処理状態825及び処理データ826の図示は省略している。A1、B3のように、1つのジャーナルファイルには、複数種の処理定義のジャーナル600が格納されていることがある。また、A1p1、A2p1...A1pn_1となっているように、同じ処理定義の同じ処理ステージでは、処理ID順に順序が保証されるため、A2p1は必ずA1p1の後に出現する。各処理ステージでは外部から要求された内部処理を順次実行するため、必ずしも処理IDの順序通りにはならず、A1pn_1の前にA2p1が出力されることがある。図37の例では、処理ブランチ数が2のため、A1の処理インスタンスは、最初の工程処理ステージの完了を示すジャーナルA1p1と最後の工程処理ステージの完了を示すジャーナルA1pn_1、A1pn_2が揃っていれば、完了している。この時、A1p1のように、最初の処理ステージIDを持つジャーナルを開始ジャーナル、A1pn_1、A1pn_2のように最後の処理ステージIDを持つジャーナルを完了ジャーナルと呼ぶ。図3は、テーブル記憶部105に記憶される書出先決定テーブル106の例を示す。書出先決定テーブル106は、処理定義IDと書出先ジャーナルファイルを対応付ける表である。書出先ジャーナルファイルを変更する場合にはこの書出先決定テーブル106の値を変更する。例えば、アプリケーション300、または、アプリケーション300を管理するOSOperatingSystemからの指示に基づき、書出先決定部102は、書出先決定テーブル106の値を変更する。図4は、テーブル記憶部105に記憶される書出先保持テーブル107の例を示す。書出先保持テーブル107は、処理定義IDと現在書き出している書出先ジャーナルファイルを対応付ける表である。書出先変更通知部103は、書出先決定テーブル106の値と書出先保持テーブル107の値を比較して、書出先ジャーナルファイルの変更を検知する。本実施の形態のジャーナル管理システムでは、ジャーナルファイルを複数用意し、処理種別ごとに決定されたジャーナルファイルにジャーナルを書き込むとともに、書出先ジャーナルファイルが変更された場合には、書出先のジャーナルファイルが変更されたことをジャーナルにセットする。そして、復旧時には、ジャーナルファイルごとに読込/復旧を行い、復旧時に、書出先ジャーナルファイルが変更されたジャーナルを持つ種別のみ、順序保証を行うようにする。このようにすることで、複数のジャーナルファイルによる書出し性能の向上、読み込み及び復旧処理時間の短縮、書出先ジャーナルファイルの変更を全て実現する。次に、本実施の形態に係るジャーナル管理システムの動作を説明する。正常時の動作を図5のフローで説明する。まず、ステップ100において、アプリケーション300が、処理定義ID、処理ID、処理ステージID、処理ブランチID、処理ブランチ数、処理データを決定し、APIApplicationProgrammingInterfaceを介してジャーナル出力装置100を呼び出し、処理定義ID、処理ID、処理ステージID、処理ブランチID、処理ブランチ数、処理データを引数としてジャーナル出力装置100に与え、ステップ200へ進む。処理データは、アプリケーション300が次の処理ステージから処理を開始するために必要なデータとする。ステップ200において、ジャーナル生成部101は、引数で与えられた処理定義ID、処理ID、ステージID、処理ブランチID、処理ブランチ数からヘッダを、処理データからボディを作成し、ステップ300へ進む。ヘッダとボディを合せてジャーナル600と呼ぶ。ステップ300では、書出先決定部102が、ステップ200で生成されたジャーナル600の処理定義IDと、書出先決定テーブル106図3とを照合し、ステップ200で生成されたジャーナル600の書出先ジャーナルファイルを決定し、ステップ400へ進む。例えば、ステップ200で生成されたジャーナル600の処理定義IDがAであれば、図3に示す書出先決定テーブル106に従って、書出先決定部102は、書出先ジャーナルファイルとしてジャーナルファイル1を指定する。また、書出先決定部102は、ステップ300において、次のジャーナル600処理定義IDが同一の次のジャーナル600の書出先ジャーナルファイルを変更するか否かを判断し、書出先ジャーナルファイルを変更する場合は、書出先決定部102は、書出先決定テーブル106の値を変更する。但し、変更後の書出先ジャーナルファイルが適用されるのは、次のジャーナル600からである。例えば、図37に示す順序でジャーナル600が生成される場合を想定する。この場合に、ジャーナルA1p1に対するステップ300開始時の書出先決定テーブル106の値が図3に示す通りであれば、ジャーナルA1p1の書出先ジャーナルファイルはジャーナルファイル1となる。ここで、書出先決定部102が書出先決定テーブル106を変更して処理定義ID:Aの書出先ジャーナルファイルをジャーナルファイル:2とすれば、同じ処理定義IDの次のジャーナルA2p1に対するステップ300において、書出先決定部102は、書出先ジャーナルファイルをジャーナルファイル2とする。ステップ400において、書出先変更通知部103が、ステップ200で生成されたジャーナル600の処理定義IDと、書出先保持テーブル107図4から、これまでジャーナル600が書き込まれていた書出先ジャーナルファイルの値を取得する。また、書出先保持テーブル107から取得した書出先ジャーナルファイルの値と、書出先決定テーブル106図3の書出先ジャーナルファイルの値とを比較し、ステップ410へ進む。ステップ410では、書出先ジャーナルファイルが変更されている場合書出先保持テーブル107の書出先ジャーナルファイルの値と、書出先決定テーブル106の書出先ジャーナルファイルの値が異なる場合は、ステップ450へ進み、変更されていない場合はステップ430へ進む。ステップ430では、書出先変更通知部103は、ジャーナルヘッダの書出先変更通知領域に変更無しを設定し、ステップ500へ進む。ステップ450では、書出先変更通知部103は、ジャーナルヘッダの書出先変更通知領域に変更有りを設定する。また、ステップ410におけるYES判定書出先ジャーナルファイルが変更されているとの判定が1度目であれば、ステップ500に進む。一方、ステップ410におけるYES判定書出先ジャーナルファイルが変更されているとの判定が2度目であれば、書出先変更通知部103は、ステップ460において、書出先保持テーブル107に書出先決定テーブル106の書出先ジャーナルファイルの値を書き込み、書出先保持テーブル107を更新し、ステップ500へ進む。ステップ500では、書出部104が、書出先保持テーブル107に記述されている書出先ジャーナルファイルへジャーナル600を書き出す。書出部104は、書出しが完了するとアプリケーション300へ処理を返す。例えば、図37に示す順序でジャーナル600が生成される場合を想定する。ステップ300において、図3の書出先決定テーブル106に従って、ジャーナルA1p1の書出先ジャーナルファイルとしてジャーナルファイル1が決定された後に、書出先決定部102により書出先ジャーナルファイルが変更されて、処理定義ID:Aの書出先ジャーナルファイルがジャーナルファイル:2になったとする。なお、このときの書出先保持テーブル107では、処理定義ID:Aの書出先ジャーナルファイルはジャーナルファイル:1である。そして、ジャーナルA1p1に対するステップ410では、書出先決定テーブル106の値と書出先保持テーブル107の値が異なるのでステップ410でYES、ステップ450において、ジャーナルA1p1の書出先変更通知領域には変更有りが記述される。但し、この時点では、ステップ410におけるYES判定は1度目なので、書出先保持テーブル107は変更されず、ステップ500において、ジャーナルA1p1はジャーナルファイル1に書出される。次のジャーナルA2p1に対するステップ300において、図3の書出先決定テーブル106に従って、ジャーナルA2p1の書出先ジャーナルファイルとしてジャーナルファイル2が決定される。ここでは、処理定義ID:Aの書出先ジャーナルファイルは変更されないものとする。また、このときの書出先保持テーブル107では、処理定義ID:Aの書出先ジャーナルファイルはジャーナルファイル:1である。ジャーナルA2p1に対するステップ410では、書出先決定テーブル106の値と書出先保持テーブル107の値が異なるのでステップ410でYES、ステップ450において、ジャーナルA2p1の書出先変更通知領域には変更有りが記述される。そして、ステップ410におけるYES判定は2度目なので、書出先保持テーブル107において処理定義ID:Aの書出先ジャーナルファイルがジャーナルファイル:2変更され、ステップ500において、ジャーナルA2p1はジャーナルファイル2に書出される。このように、処理定義IDが共通するジャーナルの間で書出先ジャーナルファイルが変更になる場合には、書出先ジャーナルファイルの変更を通知する書出先変更通知変更有りとの通知が、書出先ジャーナルファイル変更前の最後尾のジャーナル前出のジャーナルA1p1と、書出先ジャーナルファイル変更後の先頭のジャーナル前出のジャーナルA2p1とに記述される。次に、復旧時の動作を図6、図7、図8、図9、図10、図11を参照して説明する。図6は、復旧装置200のフローである。ステップ100では、復旧装置200は、予め指定されたディレクトリにあるジャーナルファイルを全て読込み、ジャーナルファイルごとに読込部201を起動する。読込部201の起動が完了すると、図6のフローは終了する。図7及び図8は、読込部201及び書出先変更検知部202のフローである。ステップ100では、読込部201が、対応付けられているジャーナルファイル400500を開き、ジャーナル600を一つずつ取り出し、ステップ110へ進む。ステップ110では、読込部201は、ジャーナルヘッダから処理定義IDと書出先変更通知領域の値を取得し、ステップ120へ進む。ステップ120では、読込部201は、ステップ110で取得した処理定義ID用のジャーナル列格納領域例えば、ワークメモリ内の領域があるかどうかをチェックし、ジャーナル列格納領域が無ければジャーナル列格納領域を作成し、ステップ130へ進む。ステップ130では、読込部201は、ステップ110で取得した書出先変更通知領域の値をチェックし、変更有りの場合にはステップ140へ進み、変更無しの場合にはステップ150へ進む。ステップ140では、読込部201は、この処理定義ID用の書出先変更有無格納領域例えば、ワークメモリ内の領域を新しく作成し、この処理定義IDで書出先ジャーナルファイルが変更されていることを書出先変更有無格納領域に格納し、ステップ150へ進む。前述したように、ステップ140で書出先変更有無格納領域に書出先ジャーナルファイルが変更されていることが格納された処理定義ID、つまり、書出先変更通知領域に変更有りが記述されているジャーナル600に記述されている処理定義IDを、書出先変更発生IDという。ステップ150では、読込部201は、該当する処理定義IDのジャーナル列格納領域へジャーナル600を追加し、ステップ160へ進む。ステップ160では、読込部201は、ジャーナルファイルのジャーナル600を全て読み込んだ場合、ステップ200へ進む。全て読み込んで無い場合には、ステップ100へ進み、ジャーナル600の読込みを続ける。ステップ200では、書出先変更検知部202が、処理定義IDごとにジャーナル列格納領域に格納された1つ以上のジャーナルジャーナル列と呼ぶを取り出し、ステップ210へ進む。ステップ210では、書出先変更検知部202は、該当する処理定義ID用の書出先変更有無格納領域を参照して書出先ジャーナルファイルが変更されているかどうかをチェックし、書出先ジャーナルファイルが変更されていない場合にはステップ220へ進み、変更されている場合にはステップ230へ進む。ステップ220では、書出先変更検知部202は、ジャーナル列を復旧部203へ渡し、ステップ240へ進む。つまり、書出先変更検知部202は、書出先変更発生ID以外の処理定義IDに対して生成されたジャーナル列は復旧部203に出力する。一方、ステップ230では、書出先変更検知部202は、ジャーナル列を順序保証部204へ渡し、ステップ240へ進む。つまり、書出先変更検知部202は、書出先変更発生IDに対して生成されたジャーナル列は順序保証部204に出力する。ステップ240では、書出先変更検知部202は、全ての処理定義IDのジャーナル列を処理している場合には、動作を終了する。一方、未処理の処理定義IDがある場合には、ステップ200へ進み、ジャーナル列の処理を続ける。図12は、ジャーナル列の生成イメージを示している。説明を簡明にするために、図12のジャーナル600では、処理定義IDと処理IDのみを図示している。ジャーナルファイル400500には、複数の処理定義IDのジャーナル600が含まれているが、読込部201が、処理定義IDに従ってジャーナル600を分類し、同じ処理定義IDを持つジャーナル600をまとめたものがジャーナル列である。図12では、処理定義A、B、Cのジャーナル600が混在しているジャーナルファイル400500から、処理定義Aのジャーナル600のみを抽出して、処理定義Aのジャーナル列を生成している状況が示されている。図9は、順序保証部204の動作フローである。ステップ100では、順序保証部204が、書出先変更検知部202から渡されたジャーナル列の集合からジャーナル列を1つ取り出し、ステップ110へ進む。ステップ110では、順序保証部204は、ステップ100で取り出したジャーナル列から処理定義IDを取得し、ステップ120へ進む。ステップ120では、順序保証部204は、処理定義IDに対応する順序待合せ部205が起動されているかを検査し、順序待合せ部205が起動されている場合にはステップ140へ進み、起動されていない場合にはステップ130へ進む。ステップ130では、順序保証部204は、処理定義IDに対応する順序待合せ部205を起動して、ステップ140へ進む。ステップ140では、順序保証部204は、ジャーナル列を処理定義IDに対応する順序待合せ部205へ渡して、ステップ150へ進む。ステップ150では、順序保証部204は、書出先変更検知部202から渡された全てのジャーナル列を処理したかを検査し、処理していればステップ160へ進む。未処理のジャーナル列がある場合は、ステップ100へ進み、ジャーナル列の処理を続ける。ステップ160では、順序保証部204は、全ての順序待合せ部205へジャーナル列受取完了を通知し、動作を終了する。図10は、順序待合せ部205の動作フローである。ステップ100では、順序待合せ部205は、順序保証部204からジャーナル列を受け取り、ステップ110へ進む。ステップ110では、順序待合せ部205は、受け取ったジャーナル列を処理ID順に一つのジャーナル列に再構成し、ステップ120へ進む。つまり、順序待合せ部205は、共通する書出先変更発生IDに対して生成された2つ以上のジャーナル列を連結する。ステップ120では、順序待合せ部205は、順序保証部204がジャーナル列受取完了通知を出しているかをチェックし、ジャーナル列受取完了通知を出している場合は、ステップ130へ進む。ジャーナル列受取完了通知を出していない場合はステップ100へ進み、ジャーナル列の受け取りを続ける。ステップ130では、順序待合せ部205は、繋ぎ合わせたジャーナル列を復旧部203cへ渡す。図11は、復旧部203の動作フローである。ステップ100では、復旧部203は、渡されたジャーナル列から処理定義IDの小さい順に、ある処理IDを持つ複数のジャーナルを取り出し、ステップ110へ進む。ステップ110では、復旧部203は、取り出したジャーナルを検査し、その処理IDに対して、全ての処理ステージと処理ブランチが揃っているかを検査する。全ての処理ステージと処理ブランチが揃っていれば、復旧部203は、ステップ120へ進む。揃っていなければステップ130へ進む。ステップ120では、復旧部203は、この処理IDのジャーナル列が完了していることを記憶し、ステップ140へ進む。ステップ130では、復旧部203は、この処理IDのジャーナル列が未完了であることを記憶し、ステップ140へ進む。ステップ140では、復旧部203は、ジャーナル列に含まれる全ての処理IDに対して処理したかを検査する。全ての処理IDに対して処理していれば、動作を終了する。処理していなければステップ100へ進み、処理を継続する。復旧部203はジャーナル列を解析し、ある処理定義IDのどの処理IDが完了していて、どの処理IDが未完了なのかを判定する。アプリケーション300は内部処理の完了状況を取得し、完了していない内部処理があればアプリケーション300が再開処理を行うことで、異常終了により中断された内部処理を再開させることができる。以上のように、本実施の形態では、書出先変更検知部で、書出先ジャーナルファイルが変更された順序保証が必要となる処理定義のジャーナル列のみを順序保証対象とすることで、順序保証処理による遅延を最小化し、アプリケーション全体の復旧処理を高速化することができる。また、本実施の形態では、書出先ジャーナルファイルが変更になる場合にジャーナルに書出先変更通知を記述し、書出先変更通知が記述されているジャーナルの処理手順IDを書出先変更発生IDとして他の処理定義IDから区別し、共通する書出先変更発生IDに対して生成された2つ以上のジャーナル列を連結する。このため、ジャーナルファイルを固定する必要がなく、ジャーナルファイルの変更が可能であり、ジャーナルの書出し性能の向上が図られる。また、書出先ジャーナルファイルの変更があったジャーナルは書出先変更通知により検知できるので、ジャーナルファイルの読込みの並列化が可能であり、読込み時間を短縮することができる。実施の形態2.以上の実施の形態1では、書出先変更通知がセットされた処理定義IDのジャーナル列を全て順序保証部204へ渡すようにしている。これに対し、実施の形態2では、書出先変更通知がセットされたジャーナル列でも、あるパターンにマッチするジャーナル列は順序保証部204へ渡さないようにすることで、順序保証による遅延を最小化し、アプリケーション全体の復旧処理を高速化する。実施の形態2に係るジャーナル管理システムの構成例を図13に示す。実施の形態2では、実施の形態1の構成に加えて、ジャーナル出力装置100に順序保証除外部206a、順序保証除外部206b及び順序保証除外パターン記憶部207を備える。なお、順序保証除外部206a、順序保証除外部206bを区別する必要がないときは、順序保証除外部206と表記する。また、実施の形態2では、ジャーナル600の書出先変更通知は、書出先変更通知OUTと書出先変更通知INに区別される。書出先変更通知OUTは、書出先ジャーナルファイル変更前の最後尾のジャーナルであることを通知する情報であり、変更前最後尾データ通知の例に相当する。また、書出先変更通知INは、書出先ジャーナルファイル変更後の先頭のジャーナルであることを通知する情報であり、変更後先頭データ通知の例に相当する。つまり、本実施の形態では、書出先変更通知部103は、処理定義IDが共通するジャーナルの間で書出先ジャーナルファイルが変更になる場合に、書出先ジャーナルファイル変更前の最後尾のジャーナルの書出先変更通知領域に書出先変更通知OUTを記述する。また、書出先変更通知部103は、処理定義IDが共通するジャーナルの間で書出先ジャーナルファイルが変更になる場合に、書出先ジャーナルファイル変更後の先頭のジャーナルの書出先変更通知領域に書出先変更通知INを記述する。順序保証除外パターン記憶部207は、順序保証除外パターンを記憶する。順序保証除外パターンは、後述するように、先頭のジャーナルに書出先変更通知INが記述され、最後尾のジャーナルに書出先変更通知OUTが記述されていないというジャーナル列のパターンである。順序保証除外パターンは、後述する図14のパターン2であり、特殊ジャーナル列パターンの例に相当する。また、順序保証除外パターン記憶部207は、記憶部の例に相当する。順序保証除外部206は、書出先変更検知部202から入力したジャーナル列が順序保証除外パターンに該当するか否かを判断し、入力したジャーナル列が順序保証除外パターンに該当する場合に、他のジャーナル列との連結の対象とすることなく、入力したジャーナル列の一部を復旧部203に出力する。より具体的には、順序保証除外部206は、入力したジャーナル列が順序保証除外パターンに該当する場合に、入力したジャーナル列を解析して、処理手順が完了している処理インスタンスが存在するか否かを判断する。そして、順序保証除外部206は、処理手順が完了している処理インスタンスが存在する場合に、処理手順が完了している処理インスタンスよりも後の発生順序を表す処理IDが記述されている1つ以上のジャーナルを、入力したジャーナル列から抽出する。更に、順序保証除外部206は、抽出したジャーナルを、他のジャーナル列との連結の対象とすることなく、復旧部203に出力する。なお、順序保証除外部206は、順序保証部204とともに、ジャーナル連結部の例に相当する。なお、図13の構成において、書出先変更通知部103、順序保証除外部206及び順序保証除外パターン記憶部207以外の要素は、図1に示したものと同様なので説明を省略する。次に、順序保証除外パターンを図14を参照して説明する。図14は、ジャーナル列のパターンを示している。つまり、図14は、1つのジャーナルファイルに含まれるジャーナルを処理定義IDごとに分類し、図17のように書出先変更通知の出現を区切りとして分割して得られるジャーナル列のパターンを示している。図17の例では、1つのジャーナルファイルから、同じ処理定義IDが記述されている3つのジャーナル列が生成される書出先ジャーナルファイルが2回変更になったことを示している。図14に示すように、ジャーナル列のパターンは次の4つとなる。なお、2~4のパターンが出現する場合は、図17のように1つの処理定義IDに対して2つ以上のジャーナル列が抽出される。また、1のパターンの場合は、1つの処理定義IDに対して必ず1つのジャーナル列が抽出される。1パターン1は、書出先変更通知が無いジャーナル列である。2パターン2は、先頭のジャーナルに書出先変更通知INが記述され、それ以降最後尾のジャーナルまで書出先変更通知が無いジャーナル列である。3パターン3は、最後尾のジャーナルのみに書出先変更通知OUTが記述されているジャーナル列である。4パターン4は、先頭のジャーナルに書出先変更通知INが記述され、さらに最後尾のジャーナルに書出先変更通知OUTが記述されているジャーナル列である。上記の2パターン2が、順序保証除外パターンである。次に、本実施の形態に係るジャーナル管理システムの動作を説明する。正常時の動作を図15のフローで説明する。ステップ100~400までは、実施の形態1と同じため説明を省略する。ステップ410では、書出先変更通知部103が、実施の形態1と同様の判断手順にて書出先ジャーナルファイルが変更されているか否かを判断し、書出先ジャーナルファイルが変更されている場合は、ステップ420へ進み、変更されていない場合はステップ430へ進む。ステップ430では、書出先変更通知部103は、ジャーナルヘッダの書出先変更通知領域に変更無しを設定し、ステップ500へ進む。ステップ420では、書出先変更通知部103は、書出先ジャーナルファイルが変更された直後の書出しかどうかを検査し、直後の書出しの場合はステップ440へ進み、2回目の書出しの場合は、ステップ452へ進む。つまり、書出先変更通知部103は、ステップ410におけるYES判定書出先ジャーナルファイルが変更されているとの判定が1度目であるか2度目であるかを判断し、1度目であればステップ440へ進み、2度目の場合はステップ452へ進む。ステップ440では、書出先変更通知部103は、書出先変更通知領域に書出先変更通知OUTとして変更有りOUTを設定し、ステップ500へ進む。ステップ452では、書出先変更通知部103は、書出先変更通知領域に書出先変更通知INとして変更有りINを設定し、ステップ460へ進む。ステップ460では、書出先変更通知部103は、書出先保持テーブル107に書出先決定テーブル106の書出先ジャーナルファイルの値を書き込み、書出先保持テーブル107を更新し、ステップ500へ進む。ステップ500では、書出部104が、書出先保持テーブル107に格納された書出先ジャーナルファイルへジャーナル600を書き出す。書出部104は、書出しが完了するとアプリケーションへ処理を返す。図16は、書出先変更通知部103がジャーナル600の書出先変更通知領域に書出先変更通知OUT及び書出先変更通知INを記述する動作を説明している。処理定義ID:A、処理ID:2のジャーナル600を書き出す際に書出先ジャーナルファイルが変更された場合、書出先変更通知部103は、処理定義ID:A、処理ID:2のジャーナルの書出先変更通知領域には書出先変更通知OUTとして変更有りOUTを格納し、当該ジャーナルを書出部104が変更前のジャーナルファイル400へ書き出す。また、書出先変更通知部103は、処理定義ID:A、処理ID:3のジャーナル2回目の書出先変更通知領域には書出先変更通知INとして変更有りINを格納し、当該ジャーナルを書出部104が変更後のジャーナルファイル500へ書き出す。次に、復旧時の動作を図18、図19及び図20を参照して説明する。復旧装置200のフローは実施の形態1と同様であるため省略する。図18及び図19は、読込部201及び書出先変更検知部202のフローである。ステップ100では、読込部201は、対応付けられているジャーナルファイル400500を開き、ジャーナルを一つずつ取り出し、ステップ110へ進む。ステップ110では、読込部201は、ジャーナルヘッダから処理定義IDと書出先変更通知領域の値を取得し、ステップ120へ進む。ステップ120では、読込部201は、ステップ110で取得した処理定義ID用のジャーナル列格納領域例えば、ワークメモリ内の領域があるかどうかをチェックし、ジャーナル列格納領域が無ければジャーナル列格納領域を作成し、ステップ130へ進む。ステップ130では、読込部201は、ステップ110で取得した書出先変更通知領域の値をチェックし、変更有りの場合にはステップ132へ、変更無しの場合にはステップ150へ進む。ステップ132では、読込部201は、書出先変更通知領域の値をチェック、変更有りINの場合にはステップ134へ、変更有りOUTの場合にはステップ140へ進む。ステップ134では、この処理定義ID用のジャーナル列格納領域を新しく作成し、ステップ140へ進む。ステップ140では、この処理定義IDで書出先ジャーナルファイルが変更されていることを書出先変更有無格納領域に格納し、ステップ150へ進む。ステップ150では、読込部201は、この処理定義ID用のジャーナル列格納領域へジャーナル600を追加し、ステップ160へ進む。ステップ160では、読込部201は、ジャーナルファイルのジャーナル600を全て読み込んだ場合、ステップ202へ進む。全て読み込んで無い場合には、ステップ100へ進み、ジャーナル600の読込みを続ける。ステップ202では、書出先変更検知部202が、処理定義IDごとにジャーナル格納領域に格納された1つ以上のジャーナルジャーナル列と呼ぶを取り出し、ステップ210へ進む。ステップ210では、書出先変更検知部202は、該当する処理定義ID用の書出先変更有無格納領域を参照して書出先ジャーナルファイルが変更されているかどうかをチェックし、書出先ジャーナルファイルが変更されていない場合にはステップ220へ進み、変更されている場合にはステップ232へ進む。ステップ220では、書出先変更検知部202は、ジャーナル列を復旧部203へ渡し、ステップ240へ進む。ステップ220で書出先変更検知部202から復旧部203に出力されるジャーナル列は、図14のパターン1に該当するジャーナル列である。一方、ステップ232では、書出先変更検知部202は、ジャーナル列を順序保証除外部206へ渡し、ステップ240へ進む。ステップ232で書出先変更検知部202から順序保証除外部206に出力されるジャーナル列は、図14のパターン2~4のいずれかに該当するジャーナル列である。ステップ240では、書出先変更検知部202は、全ての処理定義IDのジャーナル列を処理している場合には、動作を終了する。一方、未処理の処理定義IDがある場合には、ステップ202へ進み、ジャーナル列の処理を続ける。図20は、順序保証除外部206の動作フローである。ステップ100では、順序保証除外部206は、書出先変更検知部202から渡されたジャーナル列から一つジャーナル列を取り出し、ステップ110へ進む。ステップ110では、順序保証除外部206は、取り出したジャーナル列を図14のパターン2と照合し、ステップ120へ進む。ステップ120では、順序保証除外部206は、ジャーナル列がパターン2に該当する場合は、ステップ130へ進む。ジャーナル列がパターン2以外のパターンに該当する場合には、ステップ140へ進む。ステップ130では、順序保証除外部206は、ジャーナル列内のジャーナルを処理IDの小さい順番に処理IDごとに検査し、完了している処理IDがあるかどうかを検査し、完了している処理IDがある場合にはステップ160へ進み、完了している処理IDが一つも無い場合にはステップ140へ進む。ステップ160では、順序保証除外部206は、完了している処理IDより後の処理IDのジャーナルをジャーナル列として再構成し、再構成したジャーナル列を復旧部203へ渡して、動作を終了する。この場合は、完了している処理IDより後の処理IDのジャーナルで構成されるジャーナル列は他のジャーナル列との連結の対象とせずに、復旧部203へ渡す。ステップ140では、順序保証除外部206は、渡されたジャーナル列を全て処理したかを検査し、処理していなければステップ100へ進み、処理を継続する。一方、全てを処理していればステップ150へ進む。ステップ150では、順序保証除外部206は、ジャーナル列を順序保証部204へ渡す。例えば、図37に示されるジャーナル600群から、処理定義ID:Aをもつジャーナル列A1p1、A2p1、A1pn_1、A1pn_2が生成され、当該ジャーナル列A1p1、A2p1、A1pn_1、A1pn_2が図14のパターン2に該当すると想定する。ここで、処理ID:1は、A1pn_1、A1pn_2の両者が揃っているので完了しており、順序保証除外部206は、処理ID:1よりも後の処理IDである処理ID:2が記述されているジャーナルA2p1を、ステップ160において、復旧部203へ出力する。順序保証部204、順序待合せ部205、復旧部203の動作は実施の形態1と同様であるため、説明を省略する。以上のように実施の形態2では、順序保証除外部により、書出先変更通知があるジャーナル列でもパターン2にマッチし、完了したジャーナルを含む場合には、このジャーナル列を、順序保証部へ渡さずに復旧部へ渡すようにしている。このようなジャーナル列は、書出先ジャーナルファイルの変更があるため、共通の処理定義IDが記述されているジャーナルが複数のジャーナルファイルに跨って存在し、本来なら順序保証部によりそれらジャーナルを繋ぎ合わせ完全な状態としてから解析し、復旧部へ渡す必要がある。しかし、パターン2のように末尾まで書出先ジャーナルファイルの変更がされておらず、さらに途中で完了している処理IDがある場合、その処理IDまでの処理が完了していることが分かるため、復旧処理に関してそれ以前のジャーナルは必要ない。このようなジャーナルは、順序保証部へ渡す必要はなく、これらを復旧部へ直接渡すことにより、必要のない順序保証をなくし、アプリケーション全体の復旧処理を高速化することができる。実施の形態3.以上の実施の形態2では、書出先変更通知がセットされたジャーナル列でも順序保証除外パターンにマッチするジャーナル列は、順序保証部へ渡さないようにしている。実施の形態3では、さらに順序保証部へ渡されたジャーナル列を分析して、順序待合せ対象から除外する。実施の形態3に係るジャーナル管理システムの構成例を図21に示す。本実施の形態では、実施の形態2の構成に加えて、ジャーナル出力装置100において、順序待合せ除外部208、順序待合せ除外パターン記憶部209を備える。順序待合せ除外部208、順序待合せ除外パターン記憶部209以外の要素は、実施の形態2と同様なので説明を省略する。順序待合せ除外パターン記憶部209は、順序待合せ除外パターンを記憶する。順序待合せ除外パターンの詳細は後述する。順序待合せ除外パターンは、制限ジャーナル列パターンの例に相当する。また、順序待合せ除外パターン記憶部209は、記憶部の例に相当する。順序待合せ除外部208は、順序保証除外部206により順序保証除外パターン図14のパターン2に該当しないと判断されたジャーナル列、更には、図20のステップ130により完了しているジャーナルがないと判定されたジャーナル列が、順序待合せ除外パターンに該当するか否かを判断する。そして、ジャーナル列が順序待合せ除外パターンに該当する場合に、所定の処理IDが記述されているジャーナル列を、他のジャーナル列との連結の対象から除外する。順序待合せ除外部208は、順序保証部204及び順序保証除外部206とともに、ジャーナル連結部の例に相当する。次に、順序待合せ除外パターン記憶部209が記憶する順序待合せ除外パターンを説明する。あるジャーナル列が書出先変更通知INを持つ場合、そのジャーナル列に含まれるジャーナルの開始ジャーナルある処理定義のある処理IDの最初の処理ステージが完了したことを示すジャーナルや開始ジャーナル以降のジャーナルが、それ以前のジャーナル列他のジャーナルファイルに書き出されたジャーナルから生成されるジャーナル列に含まれている可能性があるため、それ以前のジャーナル列の取得を待ち合わせ、共通の処理IDが記述されているジャーナル列同士を連結してから復旧処理を行う必要がある。しかし、あるジャーナル列が書出先変更通知INを持つ場合でも、そのジャーナル列の中で、ある処理IDの処理インスタンスが完了していることが分かる場合には、その処理IDより後の処理インスタンスを再開すればよいため、その処理IDが記述されているジャーナル及びその処理IDより前の処理IDが記述されているジャーナルは復旧処理で利用されない。このため、ジャーナル列の待ち合わせをする必要は無い。順序待合せ除外パターン記憶部209が記憶する順序待合せ除外パターンは、このようなジャーナル列を判別するためのパターンである。順序待合せ除外パターンは、具体的には、図22に示すパターン1~パターン3である。パターン1は、次の条件を満たすジャーナル列のパターンである。1先頭のジャーナルに書出先変更通知INがある。2ある処理ID:xの開始ジャーナルと全ての完了ジャーナルが揃っている。ここで、全ての完了ジャーナルが揃っているとは、処理ブランチ数分、すなわち、処理手順内の分岐数分、完了ジャーナルが存在していることを意味する。前述したように、開始ジャーナルとは、処理手順内の最初の工程処理ステージが完了したことを示すジャーナルであり、完了ジャーナルとは、処理手順内の最後の工程処理ステージが完了したことを示すジャーナルである。パターン1に該当する場合は、処理ID:xの処理インスタンスと、処理ID:xの処理インスタンスよりも前の処理インスタンスは完了している。もし、処理ID:xの処理インスタンスが、完了している最後の処理インスタンスであれば、処理ID:xの開始ジャーナルから末尾までのジャーナル完了ジャーナルを分析して復旧処理を開始することができる。パターン1の例を図23に示す処理ブランチ数は2。図23では、先頭ジャーナルA1pn_1に書出先変更通知INがあり、開始ジャーナルA2p1に対して完了ジャーナルA2pn_1、A2pn_2があり、完了ジャーナルが全て揃っている。パターン2は、次の条件を満たすジャーナル列のパターンである。1先頭のジャーナルに書出先変更有りINがある。2ある処理ID:xの全ての完了ジャーナルが揃っている処理ID:xの開始ジャーナルはない。3先頭のジャーナルから処理ID:xの最後の完了ジャーナルまでの間、または最後の完了ジャーナルの次のジャーナルに、処理ID:xの次の処理ID:x1の開始ジャーナルがある。パターン2に該当する場合、処理ID:xの開始ジャーナルが無くても、全ての完了ジャーナルが揃っており、処理ID:xの処理インスタンスは完了している。さらに、処理ID:xより次の処理ID:x1の開始ジャーナルがそのジャーナル列にあれば、処理ID:xの処理インスタンスと、処理ID:xの処理インスタンスよりも前の処理インスタンスは復旧に必要ない。パターン2の例を図24に示す処理ブランチ数は2。図24では、先頭ジャーナルA3p1に書出先変更通知INがあり、A2の完了ジャーナルA2pn_1、A2pn_2が揃っている。A2の開始ジャーナルは無いが、A3の開始ジャーナルA3p1があるためA2以降の処理インスタンスのジャーナルは全てこのジャーナル列にある。このため、A2以前のジャーナル列は復旧のために必要が無い。パターン3は、次の条件を満たすジャーナル列のパターンである。1先頭のジャーナルに書出先変更有りINがある。2ある処理ID:x、処理ID:x-1の完了ジャーナルがあり、1つのジャーナルとして見た場合に完了ジャーナルが全て揃っている。例えばA1処理ID:1、A2処理ID:2があり、ブランチ数が4つの場合、完了ジャーナルA1pn_1、A2pn_2、A2pn_3、A2pn_4が揃っている状態である。ここでの揃っているとは、A1のブランチID=2、3、4の完了ジャーナルは無いが、A2のブランチID=2、3、4の完了ジャーナルがあることを指す。3先頭のジャーナルから処理ID:xの最後の完了ジャーナルまでの間、または最後の完了ジャーナルの次のジャーナルに、処理ID:xの次の処理ID:x1の開始ジャーナルがある。パターン3の例を図25に示す処理ブランチ数は2。図25では、先頭ジャーナルA3p1に書出先変更通知INがあり、A2の完了ジャーナルA2pn_2、A3の完了ジャーナルA3pn_1がある。また、A4の開始ジャーナルA3p1が存在している。A2、A3のどちらのジャーナルも完了するためには完了ジャーナルが不足しているが、両方では補完しあっている。同じ処理ステージ内では追い越しが無いため、A3pn_2が存在することで、ジャーナル列には現れないがA2pn_2がこのジャーナル列より前のジャーナル列他のジャーナルファイルに書出されたジャーナルで構成されるジャーナルに存在することが保証されるため、A2の完了ジャーナルが揃っていると判断することができる。次に、本実施の形態に係るジャーナル管理システムの動作を説明する。正常時のフローは、実施の形態2と同様のため省略する。復旧時のフローは、図26の順序待合せ除外部208のフロー以外は実施の形態2と同様のため省略する。図26は、順序待合せ除外部208の動作フローである。ステップ100で、順序待合せ除外部208は、順序保証部204からジャーナル列を受け取るとステップ200へ進む。順序待合せ除外部208が入力するジャーナル列は、図20のステップ120においてパターン3又はパターン4に該当すると判定されたジャーナル列、または、図20のステップ130により完了しているジャーナルがないと判定されたパターン2のジャーナル列である。ステップ200では、順序待合せ除外部208は、取得したジャーナル列と順序保証除外パターンとを照合し、ステップ210へ進む。ステップ210では、順序待合せ除外部208は、取得したジャーナル列が、いずれかの順序保証除外パターンにマッチする場合には、ステップ220へ進み、いずれの順序保証除外パターンにもマッチしない場合には、ステップ240へ進む。ステップ220では、順序待合せ除外部208は、順序保証除外パターンとマッチしたジャーナル列の処理IDを取得し、ステップ230へ進む。すなわち、順序待合せ除外部208は、図22の各パターンの説明で示している処理ID:xに相当する処理IDをジャーナル列から抽出する。ステップ230では、順序待合せ除外部208は、処理ID格納領域例えば、ワークメモリ内の領域をチェックし、ステップ220で取得した処理IDが処理ID格納領域に登録されていなければ、取得した処理IDを処理ID格納領域に登録する。ステップ220で取得した処理IDが既に処理ID格納領域に登録されている場合は、登録されている処理IDよりも取得した処理IDの方が大きい場合には、順序待合せ除外部208は、取得した処理IDを上書きして登録し、ステップ240へ進む。ステップ240では、順序待合せ除外部208は、処理ID格納領域をチェックし、ステップ100で受け取ったジャーナル列の処理IDが処理ID格納領域に登録されている場合は、ステップ250へ進み、登録されていない場合はステップ110へ進む。ステップ250では、順序待合せ除外部208は、ステップ100で受け取ったジャーナル列と、これまで受け取り繋ぎ合わせたジャーナル列を検査し、処理ID格納領域にある処理ID以降のジャーナルが全て揃っているかどうかを検査する。揃っている場合にはステップ260へ、揃っていない場合にはステップ110へ進む。ステップ260では、順序待合せ除外部208は、ステップ100で受け取ったジャーナル列とこれまで受け取り繋ぎ合わせたジャーナル列を繋ぎ合わせ、処理ID格納領域にある処理ID以降のジャーナルを抽出してジャーナル列を作成し、作成したジャーナル列を復旧部203へ渡して、動作を終了する。ステップ110では、順序待合せ除外部208は、ステップ100で受け取ったジャーナル列とこれまで受け取り繋ぎ合わせたジャーナル列を繋ぎ合わせ、ステップ120へ進む。ステップ120では、順序待合せ除外部208は、順序保証部204からジャーナル受取完了通知が来たかどうかを検査し、ジャーナル受取完了通知が来た場合には、ステップ130へ進む。ジャーナル受取完了通知が来ていない場合には、ステップ100へ進み、順序待合せ処理を継続する。ステップ130では、順序待合せ除外部208は、繋ぎ合せたジャーナル列を復旧部203へ渡して、動作を終了する。以上のように、実施の形態3では、順序保証部へ渡されたジャーナル列でも、順序待合せ除外パターンにマッチするジャーナル列は、それ以前のジャーナル列の待ち合わせを行わないようにする。つまり、実施の形態3に係る順序待合せ除外部208は、処理ID:xに相当する処理IDよりも前の発生順序を表す処理IDが記述されているジャーナル列を、連結の対象から除外する。これにより、待ち合わせによる処理遅延を排除し、アプリケーション全体の復旧処理を高速化することができる。最後に、実施の形態1~3に示したジャーナル出力装置100及び復旧装置200のハードウェア構成例について説明する。図38は、実施の形態1~3に示すジャーナル出力装置100及び復旧装置200のハードウェア資源の一例を示す図である。なお、図38の構成は、あくまでもジャーナル出力装置100及び復旧装置200のハードウェア構成の一例を示すものであり、ジャーナル出力装置100及び復旧装置200のハードウェア構成は図38に記載の構成に限らず、他の構成であってもよい。図38において、ジャーナル出力装置100及び復旧装置200の各々は、プログラムを実行するCPU911CentralProcessingUnit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいうを備えている。CPU911は、バス912を介して、例えば、ROMReadOnlyMemory913、RAMRandomAccessMemory914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。更に、CPU911は、FDD904FlexibleDiskDrive、コンパクトディスク装置905CDD、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、SSDSolidStateDrive、光ディスク装置、メモリカード登録商標読み書き装置などの記憶装置でもよい。RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。実施の形態1~3で説明した~記憶部は、RAM914、磁気ディスク装置920等により実現される。通信ボード915、キーボード902、マウス903、スキャナ装置907などは、入力装置の一例である。また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。通信ボード915は、ネットワークに接続されている。例えば、通信ボード915は、LANローカルエリアネットワーク、インターネット、WANワイドエリアネットワーク、SANストレージエリアネットワークなどに接続されている。磁気ディスク装置920には、オペレーティングシステム921OS、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM914には、CPU911による処理に必要な各種データが格納される。また、ROM913には、BIOSBasicInputOutputSystemプログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。ジャーナル出力装置100及び復旧装置200の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。上記プログラム群923には、実施の形態1~3の説明において~部~記憶部以外、以下同様として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。ファイル群924には、実施の形態1~3の説明において、~の判断、~の判定、~の生成、~の作成、~の計算、~の算出、~の比較、~の検査、~の照合、~の更新、~の設定、~の登録、~の選択、~の入力、~の出力、~の取得等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、~ファイルや~データベースの各項目として記憶されている。~ファイルや~データベースは、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出検索参照比較演算計算処理編集出力印刷表示などのCPUの動作に用いられる。抽出検索参照比較演算計算処理編集出力印刷表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。また、実施の形態1~3で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。また、実施の形態1~3の説明において~部として説明しているものは、~回路、~装置、~機器であってもよく、また、~ステップ、~手順、~処理であってもよい。すなわち、実施の形態1~3で説明したフローチャートに示すステップ、手順、処理により、ジャーナル出力装置100及び復旧装置200の処理をジャーナル管理方法として捉えることができる。また、~部として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子デバイス基板配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1~3の~部としてコンピュータを機能させるものである。あるいは、実施の形態1~3の~部の手順や方法をコンピュータに実行させるものである。このように、実施の形態1~3に示すジャーナル出力装置100及び復旧装置200は、それぞれ、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。そして、上記したように~部として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。