(57)【要約】【課題】  複数の装置による、共用データファイルに対する処理競合によるデータ破壊を防止し、処理が異常終了した場合にも、システム全体のデッドロックを回避可能な共有データファイル排他制御方法を提供する。【解決手段】  複数の処理装置が共有している共有データファイルに対して、ある処理装置が処理を行う際、目的とする共有データファイルに１対１に対応する排他ファイルが存在するかどうかを確認し（Ｓ１）、存在しなければ、排他ファイルを作成し（Ｓ２）、占有情報を排他ファイルに記録した（Ｓ３）後、共有データファイルに対して処理を行う（Ｓ４）。処理後は、Ｓ２で作成した排他ファイルを消去する（Ｓ５）。Ｓ１で排他ファイルが存在したら、その排他ファイルの占有情報を確認し、処理可能かどうか判断する（Ｓ６）。処理可能であれば、既に存在する排他ファイルを削除した後、Ｓ２〜Ｓ５と同様の処理を行う（Ｓ７〜Ｓ１０）。Ｓ６で処理可能でなければ、処理を中止する（Ｓ１１）。【選択図】  図２
2005100207.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に接続された複数の処理装置から、１つの共有データファイルに対する処理競合を防止する排他制御方法であって、
前記処理装置が、共有データファイルに対して処理を行う際に、当該共有データファイルと１対１に対応した排他ファイルが存在するかどうかを確認する段階と、
排他ファイルが存在する場合に、排他ファイル内の占有情報を参照して、前記共有データファイルに対して処理可能であるかどうかを判定する段階と、
前記排他ファイルが存在しない場合もしくは、処理可能であると判定された場合に、排他ファイルを作成する段階と、
前記作成した排他ファイルに占有情報を記録する段階と、
前記共有データファイルに対して、目的とする処理を実行する段階と、
前記共有データファイルに対する処理終了後に、前記処理装置自身が作成した排他ファイルを消去する段階と、
を有することを特徴とする共有データファイル排他制御方法。
【請求項２】
前記排他ファイルが存在する際に、処理可能であると判断された場合、前記排他ファイルを作成する段階において、既に存在する排他ファイルを削除した後、新たな排他ファイルを作成することを特徴とする請求項１に記載の共有データファイル排他制御方法。
【請求項３】
前記占有情報は、処理の占有期間、優先度、前記共有データファイル内の更新箇所、処理を実行する装置名、利用者名の各情報を有するものであることを特徴とする請求項１または請求項２に記載の共有データファイル排他制御方法。
【請求項４】
前記複数の処理装置は、欠陥検査装置および欠陥修正装置であって、前記欠陥検査装置が行う処理は、前記欠陥修正装置よりも高い優先度で占有情報の記録を行うものであることを特徴とする請求項３に記載の共有データファイル排他制御方法。
【請求項５】
前記排他ファイルのファイル名は、共有データファイルのファイル名と拡張子だけが異なるものであることを特徴とする請求項１から請求項４のいずれかに記載の共有データファイル排他制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上に接続された複数の装置による共有データファイルに対する書込みまたは更新等の処理競合を防止する排他制御方法に関する。
【背景技術】
【０００２】
従来より、ネットワーク上に接続された複数の装置間で共有データファイルを処理する場合、１つの共有データファイルに対して複数の装置が別々に処理を行うことによる内容の不整合を防止するため、１つの装置が処理を行っている際に、他の装置に処理を禁止する排他制御が行われている。
【０００３】
排他制御の手法としては、通常時は排他ファイルを作成しておき、共有データファイルに対する処理を行う装置は、共有データファイルに対する処理を行う前に、排他ファイルを消去し、共有データファイルに対する処理終了後に排他ファイルを再作成する手法（例えば、特許文献１参照）や、共有データファイルに対する処理を行う装置は、共有データファイルに対する処理を行う前に、内部に占有情報を記録させていない空の排他ファイルを作成し、共有データファイルに対する処理終了後に排他ファイルを消去する手法が用いられている。
【特許文献１】特開２０００−２６７９２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の手法では、共有データファイルに対する処理中に処理が異常終了すると、排他ファイルが消去された状態（または、作成された状態）のまま残り、以後、システム全体がデッドロックを起こしてしまい、メンテナンス処理（排他ファイルを手動で作成または消去する処理）を行わないとシステムを復旧できないという問題がある。また、共有データファイルが複数存在し、異なる装置が異なる共有ファイルに対する処理を行おうとする場合、一方の処理の終了を待たないと処理が継続できず、効率が悪いという欠点がある。
【０００５】
上記のような点に鑑み、本発明は、ネットワーク上に接続された複数の装置による、共用データファイルに対する処理競合によるデータ破壊を防止すると共に、処理が異常終了した場合にも、システム全体のデッドロックを回避することが可能な共有データファイル排他制御方法を提供することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明では、ネットワーク上に接続された複数の処理装置から、１つの共有データファイルに対する処理競合を防止する排他制御方法として、処理装置が、共有データファイルに対して処理を行う際に、共有データファイルと１対１に対応した排他ファイルが存在するかどうかを確認する段階、排他ファイルが存在する場合に、排他ファイル内の占有情報を参照して、共有データファイルに対して処理可能であるかどうかを判定する段階、排他ファイルが存在しない場合もしくは、処理可能であると判定された場合に、排他ファイルを作成する段階、作成した排他ファイルに占有情報を記録する段階、共有データファイルに対して、目的とする処理を実行する段階、共有データファイルに対する処理終了後に、処理装置自身が作成した排他ファイルを消去する段階を実行するようにしたことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、共有データファイルにアクセスする際に、共有データファイルに１対１で対応する排他ファイルを作成して目的とする処理を行い、目的とする処理が終了したら、自身が作成した排他ファイルを消去するようにしたので、処理中の共有データファイルには、必ず排他ファイルが存在することになり、共用データファイルに対する処理競合を防止することが可能となる。
【０００８】
また、排他ファイルが存在する場合でも、処理可能であると判断された場合、排他ファイルを作成する段階において、既に存在する排他ファイルを削除した後、新たな排他ファイルを作成するようにしたので、処理が異常終了した場合にも、システム全体のデッドロックを回避することが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の好適な実施形態について、図面を参照して詳細に説明する。
（システム構成）
図１は本発明に係る共有データファイル排他制御方法を実行する際の装置構成の一例を示す図である。図１において、１０はファイルサーバ、２０、３０は処理装置、４０はネットワークである。
【００１０】
ファイルサーバ１０は、ネットワーク４０に接続された処理装置２０、３０が処理可能な共有データファイルを管理するサーバコンピュータである。ファイルサーバは、各処理装置で共有して利用できる共有データファイルを有している。図１の例では、共有データファイルとしてＡ、Ｂの二つが記録されている。排他ファイルは、処理装置から共有データファイルにアクセスする際に、作成されるものであり、処理装置からのアクセスがないときは、原則としてファイルサーバ１０内に存在していない。処理装置２０、３０はネットワークを介してファイルサーバ１０にアクセスし、ファイルサーバ１０が管理する共有データファイルに対して所定の処理を行うことが可能な装置であり、コンピュータ端末等、データ処理可能な任意の処理装置が利用可能である。
（処理の流れ）
続いて、本発明に係る共有データファイル排他制御方法の処理概要について、図２に示したフローチャートを用いて説明する。まず、処理装置がファイルサーバに記録されている共有データファイルについて、処理を行おうとする際、処理対象とするファイルに対応する排他ファイルが存在するかどうかを確認する（ステップＳ１）。本実施形態では、排他ファイルのファイル名を、処理対象とする共有データファイル名に拡張子「ＬＯＣＫ」を付加したものとしている。例えば、共有データファイル「Ａ」に対して処理を行う場合は、排他ファイル「Ａ．ＬＯＣＫ」の存在を確認することになる。
【００１１】
上記ステップＳ１の処理において、排他ファイルが存在しない場合には、処理装置は、排他ファイルの作成を行う（ステップＳ２）。具体的には、処理装置が排他ファイル「Ａ．ＬＯＣＫ」を新たに作成することになる。さらに、処理装置は、作成した排他ファイルに占有情報を記録する（ステップＳ３）。ここで、本実施形態で排他ファイルに記録する占有情報の一例を図３に示す。図３に示すように、占有情報として、占有期間、処理の優先度、処理箇所、装置名、ユーザ名が記録されている。占有期間とは、対象とする共有データファイルを占有する予定期間である。処理の優先度とは、行っている処理の優先度であり、「高」「中」「低」等が設定される。処理箇所とは、共有データファイル内の処理を行おうとしている箇所であり、行番号、列番号等で示される。装置名、ユーザ名は、占有している装置、ユーザを特定するための情報である。
【００１２】
次に、共有データファイルに対して、目的とする処理（更新処理等）を行う（ステップＳ４）。目的とする処理が終了したら、作成した排他ファイルを消去する（ステップＳ５）。
【００１３】
一方、上記ステップＳ１の処理において、排他ファイルが存在した場合には、処理を行っても良いかどうかの判定を行う（ステップＳ６）。具体的には、排他ファイルに記録されている占有情報を確認する。例えば、占有期間が既に過ぎてしまっている場合、処理を行うことが可能となる。ここで、占有期間が過ぎている場合に処理を行うことを可能とするのは、処理が異常終了した場合に、残ってしまった排他ファイルを削除して処理を進めることにより、システム全体のデッドロックを回避するためである。また、占有期間が過ぎていなくても、占有情報として記録されている優先度が、装置が行う優先度に比べて低い場合、処理を行うことが可能となる。
【００１４】
上記ステップＳ６の処理において、処理を行っても良いと判定された場合には、処理装置は、排他ファイルの再作成を行う（ステップＳ７）。具体的には、ファイルサーバに存在する排他ファイル「Ａ．ＬＯＣＫ」を消去し、新たに同名の排他ファイル「Ａ．ＬＯＣＫ」を作成することになる。続いて、ステップＳ３と同様、処理装置は、作成した排他ファイルに占有情報を記録する（ステップＳ８）。さらに、上記ステップＳ４と同様、共有データファイルに対して、目的とする処理を行い（ステップＳ９）、目的とする処理が終了したら、上記ステップＳ５と同様、再作成した排他ファイルを消去する（ステップＳ１０）。
【００１５】
上記ステップＳ６において、判定を行った結果、処理をしてはいけないと判定された場合は、処理を停止する（ステップＳ１１）。処理をしてはいけない場合とは、排他ファイルに記録されている占有期間内であって、排他ファイルに記録されている優先度の方が、処理を行おうとしている装置の優先度より高い場合である。処理停止となった場合は、所定の時間をおいた後、再びステップＳ１に戻って処理を行うことになる。
【００１６】
なお、上記の例では、共有データファイルＡに対する処理について説明したが、共有データファイルＢに対して処理を行う場合も、独立して排他ファイルＢ．ＬＯＣＫが作成され、図２に示したフローチャートに従った処理が行われることになる。すなわち、各共有データファイルに１対１に対応した排他ファイルが作成されて排他制御が行われる。
【００１７】
上記の例では、１つの処理装置に注目して、排他制御処理について説明したが、ここで、２つの処理装置が１つの共有データファイルに対して処理を行う場合に、どのようになるか説明する。ここでは、図１に示した構成において、共有データファイルＡに対してどの装置も処理を行っていない状態から、処理装置２０が処理を行っている最中に、処理装置３０が共有データファイルＡに対する処理を行おうとした場合を考える。なお、処理装置２０と処理装置３０の優先度は等しいものとする。まず、処理装置２０は、共有データファイルＡに対応する排他ファイルＡ．ＬＯＣＫが存在しないことを確認した後、排他ファイルＡ．ＬＯＣＫを作成し、占有情報として占有期間「2003/2/27 12:00:00まで占有」を記録する。占有期間を記録後、処理装置２０は、共有データファイルＡに対する処理を行う。この時に、処理装置３０が共有データファイルＡに対する処理を行おうとした場合、排他ファイルＡ．ＬＯＣＫが存在するため、排他ファイルＡ．ＬＯＣＫの内容を検査する。現在の時刻が占有期間内（例えば、2003/2/27 11:59:00）であれば、処理装置３０は、排他ファイルＡ．ＬＯＣＫ内の占有期間と比較し、占有期間が過ぎていないため、共有データファイルＡに対する処理はできないと判断し、占有期間まで処理を停止する。処理装置２０の共有データファイルＡに対する処理が正常終了した場合、排他ファイルＡ．ＬＯＣＫが消去され、処理を停止していた処理装置３０は、共有データファイルＡに対する処理を継続できる。このようにして処理装置２０と処理装置３０について排他制御を実現できる。
【００１８】
処理装置２０の共有データファイルＡに対する処理が異常終了した場合、排他ファイルが排他ファイルＡ．ＬＯＣＫが消去されずに残ったままとなる。この時に、処理装置３０が共有データファイルＡに対する処理を行おうとした場合、排他ファイルＡ．ＬＯＣＫが存在するため、排他ファイルＡ．ＬＯＣＫの内容を検査し、現在の時刻が占有期間以降（例えば、2003/2/27 12:00:05）であれば、処理装置３０は、排他ファイルＡ．ＬＯＣＫ内の占有期間と比較し、占有期間が過ぎているため、共有データファイルＡに対する処理は可能と判断し、排他ファイルＡ．ＬＯＣＫの再作成を行い、共有データファイルＡに対する処理を継続できる。このように共有データファイルに対する処理が異常終了した場合でも、占有期間が過ぎれば自動的にシステム全体のデッドロックを回避することができる。また、図３に示したように、排他ファイルの内容を検査する際の内容として、占有期間の検査の他に、処理の優先度、処理箇所、装置名、ユーザ名を用いれば、より柔軟な排他制御が可能となる。
【００１９】
次に、図１に示した構成において、共有データファイルＡ、Ｂに対してどの装置も処理を行っていない状態から、処理装置２０が共有データファイルＡに対する処理を行っている最中に、処理装置３０が共有データファイルＢに対する処理を行おうとした場合を考える。処理装置２０が共有データファイルＡに対する処理を行う場合、共有データファイルＡに対応する排他ファイルＡ．ＬＯＣＫが存在しないため、処理装置２０は共有データファイルＡに対応した排他ファイルＡ．ＬＯＣＫを作成し、共有データファイルＡに対する処理を行う。このとき、処理装置３０が共有データファイルＢに対する処理を行おうとした場合、共有データファイルＢに対応する排他ファイルＢ．ＬＯＣＫが存在しないため、処理装置３０は共有データファイルＢに対応した排他ファイルＢ．ＬＯＣＫを作成し、共有データファイルＢに対する処理を行う。このように、複数の処理装置が複数の共有データファイルに対して処理を行う際、処理装置２０が共有データファイルＡに対して処理を行っている最中でも、処理装置３０は処理装置２０の処理終了を待つことなく、共有データファイルＢに対して処理を行うことができる。
【００２０】
（より具体的な例）
続いて、本発明に係る共有データファイル排他制御方法を物品の欠陥検査および修正に利用した場合を例にとって説明する。図３は、欠陥検査および修正の場合の装置構成を示す図である。図３において、１１はファイルサーバ、２１は欠陥検査装置、３１は欠陥修正装置、４１はネットワークである。実際には、検査対象および修正対象となる物品が流れるライン、欠陥検査装置２１が欠陥を検査する機構、欠陥修正装置３１が欠陥を修正する機構等が存在するが、発明の本質ではないので、ここでは詳細な説明は省略する。
【００２１】
ファイルサーバ１１は、ネットワーク４１に接続された欠陥検査装置２１、欠陥修正装置３１が処理可能な共有データファイルを管理するサーバコンピュータである。欠陥検査装置２１は、物品の欠陥検査後、検出した欠陥情報を共有データファイルに記録する機能を有している。欠陥修正装置３１は、共有データファイルに記録された欠陥情報を読み込み、物品の欠陥を修正すると共に、修正後、修正した旨の情報を共有データファイルに記録する機能を有している。
【００２２】
続いて、図３に示した装置を利用した場合の排他制御方法がどのようになるかを、再び図２に示したフローチャートを用いて説明する。まず、欠陥検査装置２１の処理について説明する。欠陥検査装置２１は、欠陥を検出すると、欠陥修正装置３１と共有するデータファイルである欠陥記録ファイルに対応する排他ファイルが存在するかどうかを確認する（ステップＳ１）。上述のように、本実施形態では、目的とする欠陥記録ファイルのファイル名に、拡張子「ＬＯＣＫ」が付いた排他ファイルが存在するかどうかを確認することになる。
【００２３】
上記ステップＳ１の処理において、排他ファイルが存在しない場合には、欠陥検査装置２１は、排他ファイルの作成を行った（ステップＳ２）後、作成した排他ファイルに占有情報を記録する（ステップＳ３）。このとき、優先度として、優先度が高いことを示す「高」を記録する。
【００２４】
次に、欠陥記録ファイルに対して、欠陥情報の記録処理を行う（ステップＳ４）。欠陥情報の記録処理が終了したら、作成した排他ファイルを消去する（ステップＳ５）。
【００２５】
一方、上記ステップＳ１の処理において、排他ファイルが存在した場合には、処理を行っても良いかどうかの判定を行う（ステップＳ６）。この際、排他ファイルに記録されている占有期間内である場合、優先度の比較を行う。欠陥情報の記録処理の優先度は「高」であるため、排他ファイルに記録されている優先度が「低」である場合は、欠陥検査装置２１が処理を行うことが可能となる。
【００２６】
上記ステップＳ６の処理において、処理を行っても良いと判定された場合には、欠陥検査装置２１は、排他ファイルの再作成を行った（ステップＳ７）後、排他ファイルに占有情報を記録する（ステップＳ８）。さらに、欠陥記録ファイルに対して、欠陥情報の記録処理を行った（ステップＳ９）後、再作成した排他ファイルを消去する（ステップＳ１０）。
【００２７】
欠陥検査装置２１による欠陥情報の記録処理は優先度が「高」であるため、上記ステップＳ６において判定を行った場合、必ず処理をして良いと判定されるため、ステップＳ１１に進んで処理が停止することはない。
【００２８】
続いて、図２のフローチャートを用いて、欠陥修正装置３１の処理について説明する。欠陥修正装置３１は、定期的に所定のタイミングで、欠陥検査装置２１と共有するデータファイルである欠陥記録ファイルに欠陥情報が記録されていないかどうかを確認する。この際、欠陥記録ファイルに対応する排他ファイルが存在するかどうかを確認する（ステップＳ１）。
【００２９】
上記ステップＳ１の処理において、排他ファイルが存在しない場合には、欠陥修正装置３１は、排他ファイルの作成を行った（ステップＳ２）後、作成した排他ファイルに占有情報を記録する（ステップＳ３）。このとき、優先度として、優先度が低いことを示す「低」を記録する。次に、欠陥記録ファイルから、欠陥情報の読込処理を行う（ステップＳ４）。欠陥情報の読込処理が終了したら、作成した排他ファイルを消去する（ステップＳ５）。
【００３０】
一方、上記ステップＳ１の処理において、排他ファイルが存在した場合には、処理を行っても良いかどうかの判定を行う（ステップＳ６）。排他ファイルに記録されている占有期間が既に過ぎてしまっている場合、処理を行うことが可能となる。
【００３１】
上記ステップＳ６の処理において、処理を行っても良いと判定された場合には、欠陥修正装置３１は、排他ファイルの再作成を行った（ステップＳ７）後、排他ファイルに占有情報を記録する（ステップＳ８）。さらに、欠陥記録ファイルから、欠陥情報の読込処理を行った（ステップＳ９）後、再作成した排他ファイルを消去する（ステップＳ１０）。欠陥情報の読込処理の優先度は「低」であるため、上記ステップＳ６において、排他ファイルに記録されている占有期間内である場合は、処理をしてはいけないと判定されるため、ステップＳ１１に進むことになる。
【００３２】
欠陥修正装置３１が修正した旨の情報を記録する場合にも、欠陥情報の読込処理と同様に処理が行われる。
【図面の簡単な説明】
【００３３】
【図１】本発明に係る共有データファイル排他制御方法を実行する際の一般的な装置構成の一例を示す図である。
【図２】本発明に係る共有データファイル排他制御方法の概要を示すフローチャートである。
【図３】排他ファイルに記録される占有情報の一例を示す図である。
【図４】本発明に係る共有データファイル排他制御方法を実行する際の具体的な装置構成の一例を示す図である。
【符号の説明】
【００３４】
１０、１１・・・ファイルサーバ
２０、３０・・・処理装置
２１・・・欠陥検査装置
３１・・・欠陥修正装置
４０、４１・・・ネットワーク
【図１】
2005100207.tif 000003
【図２】
2005100207.tif 000004
【図３】
2005100207.tif 000005
【図４】
2005100207.tif 000006