(57)【要約】【課題】データベースとシーケンシャルファイルとを１つの処理（プログラム）で連動させて更新するバッチ処理システムにおける処理異常終了発生時の再処理のためのデータ復元を効率的に行う。【解決手段】業務プログラム内でデータベース５０のコミット時点のシーケンシャルファイル６０を自動的にバックアップファイル７０に退避して、コミット後のデータベース５０と整合性のとれたシーケンシャルファイル６０の内容を確保しておき、処理異常終了時には、ＤＢＭＳ機能によるデータベース５０のロールバック処理による回復処理と共に、シーケンシャルファイル６０に対しても、バッチ処理の処理制御ツールのリカバリ処理機能により、バックアップファイル７０からのデータ自動回復を行う。【選択図】図１
2008234142.tif 000002
【特許請求の範囲】
【請求項１】
プログラムされたコンピュータによって、バッチ処理システムにおけるデータベースおよびシーケンシャルファイルのデータ更新処理異常終了からの回復処理を行う方法であって、
上記データベースのコミット時点の上記シーケンシャルファイルのデータをバックアップ装置に格納する第１のステップと、
上記データベースの回復処理と共に、上記シーケンシャルファイルに対する上記バックアップ装置からのデータ回復を行う第２のステップと
を有することを特徴とするバッチ処理回復方法。
【請求項２】
請求項１に記載のバッチ処理回復方法であって、
上記第２のステップは、
上記データベースの回復処理をＤＢＭＳのロールバック機能を用いて行い、
上記シーケンシャルファイルに対する上記バックアップ装置からのデータ回復をバッチ処理制御ツールのリカバリ機能を用いて行うことを特徴とするバッチ処理回復方法。
【請求項３】
プログラムされたコンピュータによって、バッチ処理装置におけるデータベースおよびシーケンシャルファイルのデータ更新処理異常終了からの回復処理を行うシステムであって、
請求項１もしくは請求項２のいずれかに記載のバッチ処理回復方法における各ステップでの処理を実行する手段を具備したことを特徴とするバッチ処理システム。
【請求項４】
コンピュータに、請求項１もしくは請求項２のいずれかに記載のバッチ処理回復方法における各ステップでの処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムを用いた更新系バッチ処理において、データベースとシーケンシャルファイルとを１つの処理（プログラム）で連動させて更新する場合の処理異常終了発生時の再処理のためのデータ復元技術に係り、特に、大量更新のためデータベースのコミット（更新確定）を複数回実施するような処理において異常終了した場合における再処理の準備を、容易に、且つ、正確に実現させるのに好適な技術に関するものである。
【背景技術】
【０００２】
バッチ処理では、入力ファイルに格納されているレコードを順次読込み、この読込んだレコードについて処理を行い更新ファイル（データベース）に順次格納するという処理過程をジョブ毎に行う。
【０００３】
このようなバッチ処理は、更新系バッチ処理プログラムに従って行われるが、ファイルレコードの更新処理途中で障害が発生すると、ファイルレコードの二重更新を防止するために、一旦、更新前の状態に全てのファイルレコードを戻し、再度、ファイルレコードの最初から更新処理をやり直すようになっている。
【０００４】
そのために、復旧時間が長くなると共に、データベース（更新ファイル）を更新前の状態に戻す際に種々のトラブルが発生するという問題がある。
【０００５】
このような問題を解決する従来技術として、例えば、特許文献１に記載の技術がある。この技術は、更新系バッチ処理プログラムの障害発生時における更新ファイルの復旧処理をなくして、バッチ処理再開を直ちに行い得るようにしたものである。
【０００６】
具体的には、入力ファイルから順次レコードを読込んでこの読込みレコードについて処理を行い更新ファイルに順次格納する処理過程をジョブ毎に行うようにしたバッチ処理システムにおいて、ジョブ毎に処理済みのレコード数を記録する処理レコード記録手段と、所定ジョブの開始指令に応答して、処理レコード記録手段に記録されている当該ジョブ対応のレコード数を検索する手段と、この検索された処理レコード数が初期値“０”以外の数値を示しているとき、入力ファイル内の数値の次のレコードから処理を開始する手段とを設けたものである。
【０００７】
また、他の従来技術では、入力ファイルから順次レコードを読み込んで、データベースを更新する処理において、処理が異常終了した場合、以下のように対処している。
【０００８】
第１の従来技術では、入力ファイルから順次レコードを読み込んで、データベースを更新する処理では、処理が異常終了した場合、コミット（更新確定）を行う前の状態の時は、データベースのロールバック機能により、データベースを更新前の状態に自動回復する。この技術では、再処理時は、異常終了の原因を除去後、再度入力ファイルの先頭レコードからデータベース更新処理を実行させる。
【０００９】
第２の従来技術では、大量のデータをデータベースに更新する処理において、データベースのロールバック用のエリアが膨大にならないように、適切なレコード数分の処理が終了した段階でコミット（更新確定）を実施させる。この場合、更新処理が異常終了したときは、直前のコミット（更新確定）前までデータベースを自動回復させる。この技術では、再処理時は、異常終了の原因を除去後、最終コミット（更新確定）時点までの入力ファイルのレコードを読み飛ばし、最終コミット（更新確定）時点以降のレコードからデータベース更新処理を実行させる。これにより二重更新を防止させる。
【００１０】
第３の従来技術では、入力ファイルから順次レコードを読み込んで、出力ファイルであるシーケンシャルファイルを更新する処理において、処理が異常終了した場合、処理前に取得した出力ファイルのバックアップを基にファイルを回復させるか、もしくは、再処理実施時、更新したレコード件数分の入力レコードを読み飛ばすことで、二重更新を起こさせないようにする。
【００１１】
しかし、データベースとシーケンシャルファイルを１つの処理（プログラム）で同時に更新を行い、且つ、大量更新のためデータベースのコミット（更新確定）を複数回実施するような処理を行うシステムにおいては、異常終了した場合、ロールバック後のデータベースと更新後のシーケンシャルファイルでは、処理済み時点が異なってしまうため、同期が取れていない。このような場合、上述の特許文献１の技術を含めむ従来技術では対処できない。
【００１２】
例えば、業務プログラムにて入力ファイから順次レコードを読み込み、レコード項目のチェック処理を行った後、チェック処理（データベースの更新判定）でＯＫとなったレコードをデータベースへ更新し、ＮＧとなったレコードをエラー情報としてシーケンシャルファイルに出力するような処理において、大量のデータを入力させる場合、データベースのロールバック用エリアが膨大且つ、不足しないよう、適切なレコード数分処理した場合に、コミットさせる場合である。
【００１３】
このような場合、異常終了後の再処理を行うためには、処理実行前のデータベースとシーケンシャルファイルのバックアップをそれぞれ取得しておき、異常終了時には、バックアップからデータベースとシーケンシャルファイルを処理実行前の状態に回復した後、再度１件目のレコードから処理を行う必要がある。
【００１４】
これにより、再処理で途中の件数までは、１回目と同じ処理を繰り返さなければならないため、時間、および、労力に無駄が発生することになる。
【００１５】
【特許文献１】特開平０６−０１２２６７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
解決しようとする問題点は、従来の技術では、データベースの更新を単一プログラムで複数回コミットし、且つ、シーケンシャルファイルを更新する処理を行うシステムにおいては、処理が途中で異常終了した場合、データベースはロールバック機能にて直前コミット時点まで自動回復するが、シーケンシャルファイルは異常終了時点となり、データベースとシーケンシャルファイルのデータが不整合となる点である。
【００１７】
本発明の目的は、これら従来技術の課題を解決し、データベースのコミット時点と連動したシーケンシャルファイルの退避と処理異常時の回復を自動的に行うことで処理異常時の対処（再実行など）を簡易的および正確に実施することを可能とすることである。
【課題を解決するための手段】
【００１８】
上記目的を達成するため、本発明においては、業務プログラム内でデータベースのコミット時点のシーケンシャルファイルを自動的にバックアップファイルに退避して、コミット後のデータベースと整合性のとれたシーケンシャルファイルの内容を確保しておき、処理異常終了時には、ＤＢＭＳ機能によるデータベースのロールバック処理による回復処理と共に、シーケンシャルファイルに対しても、バッチ処理の処理制御ツールのリカバリ処理機能により、バックアップファイルからのデータ自動回復を行う。このように、コミット時点でのシーケンシャルファイル自動バックアップと、従来技術であるバッチ処理の処理制御ツールのリカバリ機能にて行うシーケンシャルファイル回復とを組み合わることにより、単一プログラムで複数回コミットする場合のデータベースおよびシーケンシャルファイルを整合性のとれた状態とすることができる。
【発明の効果】
【００１９】
本発明によれば、データベースの更新を単一業務プログラムで複数回コミットし、且つ、シーケンシャルファイルを更新する処理を行うバッチ処理システムにおいて、例え、業務プログラムの処理が途中で異常終了した場合にも、シーケンシャルファイルを、ロールバックされたデータベースと整合性のとれた直近のコミット完了時点の内容に自動的に回復することができ、大量データの更新を行うときに処理異常終了が発生した場合にも、処理異常終了発生時にも、データベースのコミットとシーケンシャルファイルの更新の整合性を意識することなく、異常終了時の再実行を簡易に且つ正確に行うことが可能である。
【発明を実施するための最良の形態】
【００２０】
以下、図を用いて本発明を実施するための最良の形態例を説明する。図１は、本発明に係るバッチ処理システムの構成例を示すブロック図であり、図２は、図１におけるバッチ処理システムの本発明に係る処理動作例を示すフローチャート、図３は、図１におけるバッチ処理システムによる更新処理異常終了時のデータベースの回復処理およびシーケンシャルファイルの回復処理動作例を示す説明図、図４は、図１におけるバッチ処理システムによる更新処理異常終了までのデータベースおよびシーケンシャルファイルの更新処理動作例を示す説明図、図５は、図１におけるバッチ処理システムによる更新処理異常終了時のデータベースの回復処理動作例を示す説明図、図６は、図１におけるバッチ処理システムによる更新処理異常終了時のシーケンシャルファイルの回復処理動作例を示す説明図である。
【００２１】
図１におけるバッチ処理システムは、プログラムされたコンピュータ処理により、データベース５０とシーケンシャルファイル（図中「出力ファイル」と記載）６０とを１つの処理（プログラム）で連動させて更新すると共に、処理異常終了発生時の再処理のためのデータ復元を行うものであり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や主メモリ、表示装置、入力装置、外部記憶装置等からなり、光ディスク駆動装置等を介してＣＤ−ＲＯＭ等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みＣＰＵで処理することにより、各処理部の機能を実行することで、特に、大量更新のためデータベース５０のコミット（更新確定）を複数回実施するような処理において異常終了した場合における再処理の準備を、容易に、且つ、正確に行う。
【００２２】
図１において、バッチ処理システムは、業務プログラムにて、記憶装置に格納された入力ファイル３０から順次レコードを読み込み、記憶装置に格納されたデータベース５０とシーケンシャルファイル６０の更新を行う処理を実行するものであり、プログラムを用いてコンピュータで実現する機能として、通常実行処理部１０と異常終了処理部２０が設けられている。
【００２３】
通常実行処理部１０は、入力ファイル読み込み部１１、ファイル出力部１２ａとデータベース更新部１２ｂからなるデータベース更新部１２、コミット部１３ａと出力ファイルバックアップ部１３ｂからなるデータベース更新確定部１３、コミット件数情報記録部１４からなり、入力ファイル３０の読み込みと、データベース５０への書き込み・更新、および、データベース５０のコミット（確定更新）と、当該データベース５０のコミット時のコミット件数情報の記録ならびにシーケンシャルファイル６０の退避（バックアップ処理）を行う。
【００２４】
すなわち、入力ファイル読み込み部１１は、プログラム機動指令に対応して入力ファイル３０から当該ジョブ対応のレコードを順次に読み込みデータベース更新部１２に渡す。
【００２５】
データベース更新部１２は、入力ファイル読み込み部１１から渡されたレコードに対して、データチェック処理機能によりデータ項目のチェックを行い、データ項目が正しければデータベース更新部１２ｂにより、データ編集・加工を行った後にデータベース５０への書き込み・更新を行う。
【００２６】
データチェック処理機能によるデータ項目のチェックで、データ項目に誤りがあることを検出した場合には、データベース更新部１２は、ファイル出力部１２ａにより、エラー情報として当該レコードをシーケンシャルファイル６０へ出力する。
【００２７】
その際、外部パラメータであるコミット間隔パラメータ４０から指定されたコミットカウンタ値と業務プログラムで記録しているレコードカウント値とが一致した場合、データベース更新確定部１３が起動する。
【００２８】
データベース更新確定部１３は、コミット部１３ａにより、データベース５０に対するコミット（更新確定）を実施すると共に、出力ファイルバックアップ部１３ｂにより、シーケンシャルファイル６０のレコード内容をバックアップファイル（図中「出力ファイルバックアップ」と記載）７０に複製して退避させる。これにより、データベース５０のコミット（確定更新）時点のシーケンシャルファイル６０の同期を行う。
【００２９】
コミット件数情報記録部１４は、データベース更新確定部１３のコミット部１３ａおよび出力ファイルバックアップ部１３ｂによる、データベース５０に対するコミット（更新確定）とシーケンシャルファイル６０のレコード内容のバックアップファイル７０への退避処理毎に、当該処理情報を記憶装置に記録する。
【００３０】
このように、本例のジョブ処理システムでは、データベース５０のコミット時点のシーケンシャルファイル６０のレコード内容を自動的にバックアップファイル７０へ退避しておくことで、ロールバック後のデータベース５０と整合性のとれたバックアップファイル７０を確保している。
【００３１】
そして、処理異常終了時には、異常終了処理部２０におけるリカバリ処理部２１による処理により、データベース５０の回復処理と共に、確保したバックアップファイル７０からシーケンシャルファイル６０のレコード内容を回復する処理を行い、データベース５０との同期をとる。
【００３２】
本例のリカバリ処理部２１は、ＤＢＭＳ（Ｄａｔａ  Ｂａｓｅ  Ｍａｎａｇｉｎｇ  Ｓｙｓｔｅｍ）の既存の機能であるロールバック処理を行うロールバック部２１ａと、従来技術であるバッチ処理の処理制御ツールのリカバリ機能としてのリカバリ処理を行う出力ファイル戻し部２１ｂを具備し、ロールバック部２１ａにより、データベース５０に対するロールバック処理を行い、出力ファイル戻し部２１ｂにより、出力ファイルバックアップ７０を用いたシーケンシャルファイル６０に対するリカバリ処理を行う。
【００３３】
これにより、データベース５０の更新を複数回コミットする業務プログラムが異常終了した場合に、ロールバックされたデータベース５０と整合性のとれたシーケンシャルファイル６０を、直近のコミット完了時点のシーケンシャルファイル７０と同じ内容で自動的に回復することができる。
【００３４】
このように、本例のバッチ処理システムでは、コミット時点でのシーケンシャルファイル自動バックアップとバッチ処理の処理制御ツールのリカバリ機能を組み合わることにより、単一プログラムで複数回コミットする場合のデータベース５０およびシーケンシャルファイル６０が整合性のとれた状態となる。
【００３５】
以下、図２を用いて、通常実行処理部１０による、データベース５０とシーケンシャルファイル６０の更新処理の詳細を説明する。
【００３６】
上述したように、ここでは、業務プログラムにて入力ファイル３０のレコードを順次読み込み、データチェック処理にてデータ項目をチェックし、データ項目が正しければデータ編集・加工した後にデータベース５０の更新を行い、データ項目に誤りがあれば、シーケンシャルファイル６０にエラー情報としてレコードを出力する処理を行い、その際、外部パラメータで指定したコミットカウンタ値（コミット間隔パラメータ４０）と業務プログラムで記録しているレコードカウント値が一致した場合、データベース５０のコミット（確定更新）とシーケンシャルファイル６０の退避を行い、データベース５０のコミット（確定更新）時点のシーケンシャルファイル６０の同期を行う例を用いる。
【００３７】
処理の実行に当たり、最初に、データベース５０のコミット実行判定の基となるコミットカウンタ値を読み込む（ステップＳ２０１）。
【００３８】
次に、入力ファイル３０から１レコードを読み込み（ステップＳ２０２）、コミット判定値となる入力ファイル３０のレコード入力件数をカウントするレコードカウンタ値に１を設定する（ステップＳ２０３）。
【００３９】
続いて、入力ファイル３０のレコード読み込みが終了（ＥＯＦ）となるまで繰り返す処理部分（ステップＳ２０４〜Ｓ２１４）について説明する。
【００４０】
まず、入力したレコードの項目チェックを行い、データベース５０への更新判定を実施する（ステップＳ２０５）。
【００４１】
判定の結果、データベース５０への更新対象レコードであれば、データ項目の編集・加工を行い、データベース５０への仮書き込みを行い（ステップＳ２０６）、また、判定結果がデータベース５０の更新対象外レコードであれば、入力レコードをシーケンシャルファイル６０（出力ファイル）へ出力する（ステップＳ２０７）。
【００４２】
次に、コミットカウンタ値とレコードカウンタ値を比較し（ステップＳ２０８）、カウンタ値が同じ場合、データベース５０へのコミット（更新確定）を行う（ステップＳ２０９）と共に、シーケンシャルファイル６０（出力ファイル）の全レコードをバックアップ用のシーケンシャルファイル（バックアップファイル７０）へ出力する（ステップＳ２１０）。
【００４３】
そして、レコードカウンタ値を「０」とし（ステップＳ２１１）、入力ファイル３０から次の１レコードを読み込み（ステップＳ２１２）、レコードカウンタ値に１を加算（ステップＳ２１３）した後、繰り返し部分の先頭（ステップＳ２０４）へ戻る。
【００４４】
尚、ステップＳ２０８での比較において、カウンタ値が異なる場合、入力ファイル３０から１レコードを読み込み（ステップＳ２１２）、レコードカウンタ値に１を加算（ステップＳ２１３）した後、繰り返し部分の先頭（ステップＳ２０４）へ戻る。
【００４５】
入力ファイル３０が最終レコードの場合には、繰り返し部分（ステップＳ２０４〜２１４）の処理の終了後、コミット（更新確定）を実行し（ステップＳ２１５）、処理を終了させる。尚、ステップＳ２０９およびステップＳ２１５におけるコミット実行時には、コミット件数情報記録部１４において、その際の、入力レコード件数等の情報を記憶装置に記録する。
【００４６】
次に、図３〜図６を用いて、異常終了処理部２０による、更新処理異常終了時のシーケンシャルファイル６０の自動回復を行う業務処理の実行例を説明する。
【００４７】
本例の説明では、業務プログラムにて入力ファイル３０のレコードを順次読み込み、入力ファイル３０のレコード読み込みが４５万件目で例外データ（データチェック処理でエラーとならないデータ）やデータベース５０のエリア不足などにより処理が異常終了した場合の、回復したデータベース５０に同期しているシーケンシャルファイル６０の自動回復機能を例とする。
【００４８】
図４に示すように、入力ファイル３０からのレコードの読み込みが１０万件に達する度に、データベース５０におけるコミット（更新確定）とシーケンシャルファイル６０（出力ファイル）に対するバックアップファイル７０（退避ファイル）への退避処理が実行され、入力ファイル３０のレコード読み込みが４５万件目で処理が異常終了した場合（ステップ３０１）、データベース３０は、リカバリ処理部２１のロールバック部２１ａにより、図５に示すように、ＤＢＭＳのロールバック機能により最終コミット時点である４０万件目処理終了時点まで自動的に回復する（ステップ３０２〜３０３）。
【００４９】
シーケンスファイル６０に関しては、データベース５０の最終コミット時点である４０万件目処理終了時点のバックアップファイル７０が自動取得されており、リカバリ処理部２１の出力ファイル戻し部２１ｂ、すなわち、バッチ処理の処理制御ツールのリカバリ機能により、図６に示すように、バックアップファイル７０からシーケンシャルファイル６０を自動的に回復する（ステップ３０５〜３０７）。
【００５０】
これにより、データベース５０とシーケンシャルファイル６０はきちんと同期が取れた状況になり、異常終了の原因を除去後、再処理を行う際には、最終コミット（更新確定）時点までの入力ファイルの件数を読み飛ばす従来技術により、無駄な入力処理も無くすことが可能となる。
【００５１】
以上、図１〜図６を用いて説明したように、本例では、業務プログラム内でデータベース５０のコミット時点のシーケンシャルファイル６０を自動的にバックアップファイル７０に退避して、コミット後のデータベース５０と整合性のとれたシーケンシャルファイル６０の内容を確保しておき、処理異常終了時には、ＤＢＭＳ機能によるデータベース５０のロールバック処理による回復処理と共に、シーケンシャルファイル６０に対しても、バッチ処理の処理制御ツールのリカバリ処理機能により、バックアップファイル７０からのデータ自動回復を行う。
【００５２】
このように、コミット時点でのシーケンシャルファイル６０のバックアップファイル７０への自動バックアップと、従来技術であるバッチ処理の処理制御ツールのリカバリ機能にて行うシーケンシャルファイル回復とを組み合わることにより、単一プログラムで複数回コミットする場合のデータベース５０およびシーケンシャルファイル６０を整合性のとれた状態とすることができる。
【００５３】
これにより、データベース５０の更新を単一業務プログラムで複数回コミットし、且つ、シーケンシャルファイル６０を更新する処理を行うバッチ処理システムにおいて、例え、業務プログラムの処理が途中で異常終了した場合にも、シーケンシャルファイル６０を、ロールバックされたデータベース５０と整合性のとれた直近のコミット完了時点の内容に自動的に回復することができる。
【００５４】
このように、データベース５０のコミット時点と連動したシーケンシャルファイル６０の退避と処理異常時の回復を自動的に行うことで、大量データの更新を行うときに処理異常終了が発生した場合にも、データベース５０のコミットとシーケンシャルファイル６０の更新の整合性を意識することなく、異常終了時の再実行を簡易に且つ正確に行うことが可能となる。
【００５５】
すなわち、大量データの更新を行うとき、処理が異常終了した段階でデータベース５０のロールバックによる回復時点に合わせて、シーケンシャルファイル６０も自動的に回復させることができ、再処理のための準備を効率よく行うことが可能となる。
【００５６】
尚、本発明は、図１〜図６を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例では、１つのコンピュータ装置内に、バッチ処理システムとデータベース・システム等を設けた構成としているが、バッチ処理システムとデータベース・システム等を、それぞれネットワークを介して接続された個別のコンピュータ装置に設けた構成としても良い。
【００５７】
また、本例のコンピュータ構成に関しても、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【図面の簡単な説明】
【００５８】
【図１】本発明に係るバッチ処理システムの構成例を示すブロック図である。
【図２】図１におけるバッチ処理システムの本発明に係る処理動作例を示すフローチャートである。
【図３】図１におけるバッチ処理システムによる更新処理異常終了時のデータベースの回復処理およびシーケンシャルファイルの回復処理動作例を示す説明図である。
【図４】図１におけるバッチ処理システムによる更新処理異常終了までのデータベースおよびシーケンシャルファイルの更新処理動作例を示す説明図である。
【図５】図１におけるバッチ処理システムによる更新処理異常終了時のデータベースの回復処理動作例を示す説明図である。
【図６】図１におけるバッチ処理システムによる更新処理異常終了時のシーケンシャルファイルの回復処理動作例を示す説明図である。
【符号の説明】
【００５９】
１０：通常実行処理部、１１：入力ファイル読み込み部、１２：データベース更新部、１２ａ：ファイ出力部、１２ｂ：データベース更新部、１３：データベース更新確定部、１３ａ：コミット部、１３ｂ：出力ファイルバックアップ部、１４：コミット件数情報記憶部、２０：異常終了処理部、２１：リカバリ処理部、２１ａ：ロールバック部、２１ｂ：出力ファイル戻し部、３０：入力ファイル、４０：コミット間隔パラメータ、５０：データベース、６０：シーケンシャルファイル（「出力ファイル」）、７０：バックアップファイル（「出力ファイルバックアップ」）。
【図１】
2008234142.tif 000003
【図２】
2008234142.tif 000004
【図３】
2008234142.tif 000005
【図４】
2008234142.tif 000006
【図５】
2008234142.tif 000007
【図６】
2008234142.tif 000008