(57)【特許請求の範囲】
【請求項１】
排他制御の対象の資源が格納される共有ディスクの識別情報と、前記共有ディスク上のルートディレクトリから前記対象の資源であるディレクトリまたはファイルまでを示すフルパスと、を含む所在情報を受け付けると、階層化された複数の資源の階層関係を示す情報を参照して、受け付けた前記所在情報に含まれる、前記対象の資源の上位の資源を特定し、
前記複数の資源それぞれが排他制御されているか否かを示す情報を前記複数の資源それぞれに対応付けて記憶する記憶部を参照して、特定した前記資源に対応付けられた情報を取得し、
取得した前記情報に基づき、前記対象の資源を排他制御の対象とできるか否かの判定を行う、
処理をコンピュータに実行させることと、
前記複数の資源の階層関係を示す情報および前記複数の資源それぞれが排他制御されているか否かを示す情報は、前記共有ディスクの識別情報を含むディスク識別構造体と、各資源についての要素名、要素種別、排他制御状態、上位の資源へのリンク情報および下位の資源へのリンク情報を含むファイル・ディレクトリ識別構造体と、により表されることと、
を特徴とする判定プログラム。
【請求項２】
前記複数の資源の階層関係を示す情報および前記複数の資源それぞれが排他制御されているか否かを示す情報は、前記受け付けた排他制御の対象の資源が排他制御の対象とできると判定した場合に、前記資源の所在情報に基づいて記憶する、
ことを特徴とする請求項１に記載の判定プログラム。
【請求項３】
前記対象の資源が前記複数の資源の階層関係を示す情報に存在する場合は、前記対象の資源および前記資源の上位または下位のいずれの資源も排他制御されていない場合に、前記対象の資源を排他制御の対象とできると判定する、
ことを特徴とする請求項１または２に記載の判定プログラム。
【請求項４】
前記対象の資源が前記複数の資源の階層関係を示す情報に存在しない場合は、前記対象の資源に階層上で最も近い資源および該資源の上位のいずれの資源も排他制御されていない場合に、前記対象の資源を排他制御の対象とできると判定する、
ことを特徴とする請求項１乃至３のいずれか一項に記載の判定プログラム。
【請求項５】
排他制御の対象の資源が格納される共有ディスクの識別情報と、該共有ディスク上のルートディレクトリから対象の資源であるディレクトリまたはファイルまでを示すフルパスと、を含む所在情報を受け付ける受信部と、
前記受信部により前記所在情報を受け付けると、階層化された複数の資源の階層関係を示す情報を参照して、受け付けた前記所在情報に含まれる、前記対象の資源の上位の資源を特定し、前記複数の資源それぞれが排他制御されているか否かを示す情報を前記複数の資源それぞれに対応付けて記憶する記憶部を参照し、特定した前記資源に対応付けられた情報に基づき、前記対象の資源を排他制御の対象とできるか否かの判定を行う判定部と、
を備えることと、
前記複数の資源の階層関係を示す情報および前記複数の資源それぞれが排他制御されているか否かを示す情報は、前記共有ディスクの識別情報を含むディスク識別構造体と、各資源についての要素名、要素種別、排他制御状態、上位の資源へのリンク情報および下位の資源へのリンク情報を含むファイル・ディレクトリ識別構造体と、により表されることと、
を特徴とする判定装置。
【請求項６】
コンピュータが、
排他制御の対象の資源の所在情報を受け付けると、階層化された複数の資源の階層関係を示す情報を参照して、受け付けた前記所在情報に含まれる、前記対象の資源の上位の資源を特定し、
前記複数の資源それぞれが排他制御されているか否かを示す情報を前記複数の資源それぞれに対応付けて記憶する記憶部を参照して、特定した前記資源に対応付けられた情報を取得し、
取得した前記情報に基づき、前記対象の資源を排他制御の対象とできるか否かの判定を行う、
処理を実行することと、
前記複数の資源の階層関係を示す情報および前記複数の資源それぞれが排他制御されているか否かを示す情報は、共有ディスクの識別情報を含むディスク識別構造体と、各資源についての要素名、要素種別、排他制御状態、上位の資源へのリンク情報および下位の資源へのリンク情報を含むファイル・ディレクトリ識別構造体と、により表されることと、
を特徴とする判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、判定プログラム、判定装置および判定方法に関する。
【背景技術】
【０００２】
バッチ処理では所定のファイルの参照・更新が行われるが、あるバッチ処理の動作中に他のバッチ処理が同じファイルを更新してしまうと処理結果に矛盾が生じてしまうため、他のバッチ処理による更新ができないよう、論理的な排他制御を行っている。また、バッチ処理では比較的長い時間にわたって決められた処理を行うため、排他制御を行うファイル等の資源を必要最小限にものとすることが望まれる。
【０００３】
従来における排他制御は、対象となるファイル等の資源に対してロック状態（排他状態）を管理することにより行っていた（例えば、特許文献１等を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１０９６３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したように、従来は対象となるファイル等の資源毎に排他制御を行っていたため、ディレクトリの階層（包含）関係を含めたファイル・ディレクトリ間の排他制御を行うことができなかった。
【０００６】
昨今、ビッグデータ活用等における主要技術として注目されているHadoop（データを複数のサーバに分散し並列して処理するミドルウェア）などの並列分散処理では、計算結果がディレクトリ配下の複数のファイルに分割されて出力されることがある。ファイル名は事前にはわからないが、それらのファイルを後続のステップで必要とすることがある。
【０００７】
バッチ処理を短時間で実行するため、バッチ処理においてHadoopと連携するニーズがあるが、Hadoop連携では連携するための入力や出力の資源をディレクトリとして指定する必要がある。そのため、ファイル・ディレクトリ間の排他制御はもとより、ディレクトリとその包含関係にあるファイルやサブディレクトリの排他制御を効率的に実施する必要がある。
【０００８】
そこで、一側面では、指定された資源を排他制御の対象とできるか否かの判定を効率的に行うことができるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
一つの形態では、排他制御の対象の資源が格納される共有ディスクの識別情報と、前記共有ディスク上のルートディレクトリから前記対象の資源であるディレクトリまたはファイルまでを示すフルパスと、を含む所在情報を受け付けると、階層化された複数の資源の階層関係を示す情報を参照して、受け付けた前記所在情報に含まれる、前記対象の資源の上位の資源を特定し、前記複数の資源それぞれが排他制御されているか否かを示す情報を前記複数の資源それぞれに対応付けて記憶する記憶部を参照して、特定した前記資源に対応付けられた情報を取得し、取得した前記情報に基づき、前記対象の資源を排他制御の対象とできるか否かの判定を行う、処理をコンピュータに実行させ、前記複数の資源の階層関係を示す情報および前記複数の資源それぞれが排他制御されているか否かを示す情報は、前記共有ディスクの識別情報を含むディスク識別構造体と、各資源についての要素名、要素種別、排他制御状態、上位の資源へのリンク情報および下位の資源へのリンク情報を含むファイル・ディレクトリ識別構造体と、により表される。
【発明の効果】
【００１０】
指定された資源を排他制御の対象とできるか否かの判定を効率的に行うことができる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態にかかるシステム構成例を示す図である。
【図２】排他制御装置の機能構成例を示す図である。
【図３】排他管理ツリー情報の要素となる構造体の例を示す図である。
【図４】排他管理ツリー情報の例を示す図である。
【図５】排他制御装置のハードウェア構成例を示す図である。
【図６】実施形態の処理例を示すシーケンス図である。
【図７】排他制御装置の処理例を示すフローチャートである。
【図８】排他情報取得における「排他管理ツリーから排他獲得可能か判定」の処理例を示すフローチャートである。
【図９】排他獲得要求に対する処理例を示す図（その１）である。
【図１０】排他獲得要求に対する処理例を示す図（その２）である。
【図１１】排他獲得要求に対する処理例を示す図（その３）である。
【図１２】排他獲得要求に対する処理例を示す図（その４）である。
【図１３】排他獲得要求に対する処理例を示す図（その５）である。
【図１４】排他獲得要求に対する処理例を示す図（その６）である。
【発明を実施するための形態】
【００１２】
以下、本発明の好適な実施形態につき説明する。
【００１３】
＜構成＞
図１は一実施形態にかかるシステム構成例を示す図である。図１において、ネットワーク３（有線・無線を問わない）には、複数のバッチ処理サーバ１Ａ、１Ｂ、・・・と、バッチ管理サーバ２と、共有ディスク４と、クライアント５と、排他制御装置６とが接続されている。バッチ処理サーバ１Ａ、１Ｂ、・・・は、クライアント５からのバッチ処理要求に応じ、バッチ管理サーバ２を介して起動され、内部で実行される単数または複数のジョブによりバッチ処理を実行する機能を有している。バッチ処理サーバ１Ａ、１Ｂ、・・・のジョブは、バッチ処理に際して共有ディスク４上のファイルを参照・更新する。また、バッチ処理サーバ１Ａ、１Ｂ、・・・のジョブは、バッチ処理に際して、自らが参照・更新するファイルが他のジョブにより更新されないように、ディレクトリまたはファイルを指定した排他獲得要求を排他制御装置６に対して行う。
【００１４】
バッチ管理サーバ２は、クライアント５からのバッチ処理要求に応じ、負荷状態等を考慮して、バッチ処理サーバ１Ａ、１Ｂ、・・・に処理の振り分けを行う等のバッチ処理の管理を行う機能を有している。排他制御装置６は、バッチ処理サーバ１Ａ、１Ｂ、・・・のジョブからのサービス起動命令および使用開始命令に従って処理の準備を行うとともに、排他獲得要求や排他情報取得要求に応じて、排他制御または情報提供を行う機能を有している。また、排他制御装置６は、バッチ処理サーバ１Ａ、１Ｂ、・・・のジョブからの要求に応じて、排他制御の解除の機能も有している。
【００１５】
図２は排他制御装置６の機能構成例を示す図である。図２において、排他制御装置６は、排他管理ツリー情報６０と命令・要求／応答送受信部６１と命令・要求解釈部６２と操作判定部６３と排他判定部６４と排他管理ツリー・ロック管理部６５とを備えている。排他管理ツリー情報６０は、共有ディスク４毎に排他制御の状態を管理する情報である。排他管理ツリー情報６０による排他管理ツリーは、初期状態ではブランクであり、バッチ処理サーバ１（１Ａ、１Ｂ、・・・）からの排他獲得要求により追加されていく。すなわち、排他獲得可である場合に排他制御の対象となる資源（ディレクトリ、ファイル）の階層構造および排他制御の状態の情報が追加されていく。
【００１６】
図３は排他管理ツリー情報６０の要素となる構造体の例を示す図であり、共有ディスク４の識別情報を含むディスク識別構造体と、各資源についての情報を含むファイル・ディレクトリ識別構造体とがある。ディスク識別構造体には、ディスク識別子が含まれている。ディスク識別子にはディスク識別子名が入る。
【００１７】
ファイル・ディレクトリ識別構造体には、要素名、要素種別、ロック中？、子へのリンクおよび親へのリンクが含まれている。要素名は、資源を特定する情報であり、具体的には共有ディスク上のルートディレクトリから対象の資源であるディレクトリまたはファイルまでを示すフルパス（所在情報）の記述である。要素種別は、ディレクトリまたはファイルの別である。ロック中？は、排他制御状態を示す情報であり、ＹＥＳの場合は排他制御中（ロック中）、ＮＯの場合は排他制御されていないことを示す。子へのリンクは、該資源の階層構造における直近の下位の資源を示す情報である。子は、存在しない場合、単数の場合、複数の場合がある。親へのリンクは、該資源の階層構造における直近の上位の資源を示す情報である。親はルートディレクトリの場合は存在しない。その他の場合は１つの親が存在する。
【００１８】
図４は排他管理ツリー情報６０の例を示す図である。図示の例では、ディスク識別子："disk001_GYOMU_A"において、ルートディレクトリＸ０、その下位のディレクトリＸ１、Ｘ２、ディレクトリＸ１の下位のディレクトリＹ１、ディレクトリＸ２の下位のディレクトリＺ０について示している。なお、着色しているディレクトリＹ１、Ｚ０はロック中であることを示している。なお、末端の資源はファイルであることもある。
【００１９】
なお、前述したように、排他管理ツリーは初期状態ではブランクであり、バッチ処理サーバ１（１Ａ、１Ｂ、・・・）からの排他獲得要求に対して排他獲得可である場合にツリー部分が追加されていく。ツリー部分の追加は、ファイル・ディレクトリ識別構造体が追加されることを意味する。
【００２０】
排他獲得要求は、排他獲得要求である旨と、共有ディスクの識別情報と、排他獲得対象の資源を示すフルパスとを排他制御装置６に送信することで行われる。例えば、排他獲得要求＋"disk001_GYOMU_A"：X0/X1/Y1/に応じ（"/"は階層が変わることを示すパス文字）、対応する資源が排他管理ツリー上に存在しない場合、図４のＸ０→Ｘ１→Ｙ１のツリー部分が追加される。また、排他獲得要求＋"disk001_GYOMU_A"：X0/X2/Z0/に応じ、対応する資源が排他管理ツリー上に存在しない場合、図４のＸ０→Ｘ２→Ｚ０のツリー部分が追加される。また、資源の排他制御を解除する場合も、解除をする旨と資源のフルパスを指定することで、該当する資源をロック中から非ロック中に変更する。なお、排他制御の解除に際して、該当するツリー部分を削除（対応する構造体を削除）してもよい。
【００２１】
図２に戻り、命令・要求／応答送受信部６１は、バッチ処理サーバ１（１Ａ、１Ｂ、・・・）から命令（サービス起動命令、使用開始命令等）または要求（排他獲得要求、排他情報取得要求、排他解除要求等）を受信し、処理後に応答を行う機能を有している。命令・要求解釈部６２は、命令・要求／応答送受信部６１の受信した命令または要求を定義情報等に基づいて解釈する機能を有している。操作判定部６３は、命令・要求解釈部６２により解釈された命令または要求に応じて行うべき操作を判定する機能を有している。排他判定部６４は、排他獲得要求または排他情報取得要求に対応する操作として、排他管理ツリー情報６０を参照し、指定された資源が排他制御可能であるか否かを判定する機能を有している。排他管理ツリー・ロック管理部６５は、サービス起動命令、使用開始命令に対応する操作として、排他管理ツリー情報６０の初期化（記憶領域確保等）を行うとともに、排他獲得要求に応じて新たなツリー部分の追加・変更等を行う機能を有している。
【００２２】
図５は排他制御装置６のハードウェア構成例を示す図である。図５において、排他制御装置６は、バス６０７を介して相互に接続されたＣＰＵ（Central Processing Unit）６０１、ＲＯＭ（Read Only Memory）６０２、ＲＡＭ（Random Access Memory）６０３を備えている。また、排他制御装置６は、ＨＤＤ（Hard Disk Drive）／ＳＳＤ（Solid State Drive）６０４、接続Ｉ／Ｆ（Interface）６０５、通信Ｉ／Ｆ６０６を備えている。ＣＰＵ６０１は、ＲＡＭ６０３をワークエリアとしてＲＯＭ６０２またはＨＤＤ／ＳＳＤ６０４等に格納されたプログラムを実行することで、排他制御装置６の動作を統括的に制御する。接続Ｉ／Ｆ６０５は、排他制御装置６に接続される機器とのインタフェースである。通信Ｉ／Ｆ６０６は、ネットワークを介して他の情報処理装置と通信を行うためのインタフェースである。
【００２３】
図２で説明した排他制御装置６の機能は、ＣＰＵ６０１において所定のプログラムが実行されることで実現される。プログラムは、記録媒体を経由して取得されるものでもよいし、ネットワークを経由して取得されるものでもよいし、ＲＯＭ組込でもよい。処理に際して参照・更新されるデータは、ＲＡＭ６０３またはＨＤＤ／ＳＳＤ６０４に保持される。
【００２４】
＜動作＞
図６は上記の実施形態の処理例を示すシーケンス図である。図６において、バッチ処理サーバ１（１Ａ、１Ｂ、・・・）は、クライアント５（図１）からのバッチ処理要求に応じ、バッチ管理サーバ２（図１）を介して起動されると（ステップＳ１１１）、排他制御装置６に対してサービス起動命令を発行する（ステップＳ１１２）。
【００２５】
サービス起動命令を受信した排他制御装置６は、排他制御サービスを起動し（ステップＳ１１３）、各種の初期化を行う（ステップＳ１１４）。すなわち、各部の初期化処理を実施し、排他管理ツリー情報６０の排他管理ツリーを一つも要素を含まない状態に初期化し、排他管理ツリーの操作が行える状態にする。そして、初期化が完了すると、排他制御装置６は要求元のバッチ処理サーバ１に対して起動完了応答を行う（ステップＳ１１５）。
【００２６】
その後、バッチ処理サーバ１がバッチ処理の開始に際して排他制御装置６に対して使用開始命令を発行すると（ステップＳ１２１）、排他制御装置６は各種の設定を行う（ステップＳ１２２）。すなわち、命令・要求解釈部６２へ新規のバッチ処理サーバ１に関する情報の追加等を行い、命令・要求解釈部６２がバッチ処理サーバ１からの命令・要求を解釈できるように処理する。これにより、バッチ処理サーバ１からの要求に応じて排他管理ツリーに要素の追加・削除などの操作ができる状態となる。そして、設定が完了すると、排他制御装置６はバッチ処理サーバ１に対して使用可能応答を行う（ステップＳ１２３）。
【００２７】
その後、バッチ処理サーバ１は、バッチ処理に際して、自らが参照・更新するファイルが他のジョブにより更新されないように、ディレクトリまたはファイルを指定した排他獲得要求を排他制御装置６に対して行う（ステップＳ１３１）。排他獲得要求は、前述したように、排他獲得要求である旨と、共有ディスクの識別情報と、排他獲得対象の資源を示すフルパスとを含む。
【００２８】
排他獲得要求を受信した排他制御装置６は、排他管理ツリーを参照することで排他制御の可否の判定を行う（ステップＳ１３２）。処理の詳細は後述する。
【００２９】
そして、排他制御が可能である場合、排他制御装置６は、排他管理ツリーの追加等を行う（ステップＳ１３３）。処理の詳細は後述する。
【００３０】
そして、排他制御装置６は、排他獲得結果を要求元のバッチ処理サーバ１に応答する（ステップＳ１３４）。
【００３１】
また、バッチ処理サーバ１は、排他獲得ではなく、排他制御の状態を確認したい場合、ディレクトリまたはファイルを指定した排他情報取得要求を排他制御装置６に対して行う（ステップＳ１４１）。排他情報取得要求には、排他情報取得要求である旨と、共有ディスクの識別情報と、排他獲得対象の資源を示すフルパスとを含む。
【００３２】
排他情報取得要求を受信した排他制御装置６は、排他管理ツリーを参照することで排他制御の可否の判定を行う（ステップＳ１４２）。処理の詳細は後述する。
【００３３】
そして、排他制御の可否を排他情報として要求元のバッチ処理サーバ１に応答する（ステップＳ１４３）。
【００３４】
図７は、図６におけるステップＳ１３２、Ｓ１３３等の処理の詳細を示したものである。図８は、図７におけるステップＳ２１１の処理の詳細を示している。
【００３５】
図７において、排他制御装置６は、バッチ処理サーバ１から要求（リクエスト）を受信すると（ステップＳ２０１）、要求が資源の排他獲得か排他情報取得かにより処理を分岐する（ステップＳ２０２）。資源の排他獲得である場合、排他制御装置６は、要求された資源が排他管理ツリー内に存在するか否か判断する（ステップＳ２０３）。
【００３６】
要求された資源が排他管理ツリー内に存在しないと判断した場合（ステップＳ２０３のＮｏ）、排他制御装置６は、要求された資源に最も近い資源またはその上位の資源のいずれかがロック中であるか否か判断する（ステップＳ２０４）。要求された資源に最も近い資源とは、同じ共有ディスクで既に排他管理ツリーに存在する資源のうち、要求された資源と階層構造上で最も近い資源である。
【００３７】
要求された資源に最も近い資源またはその上位の資源のいずれもロック中でないと判断した場合（ステップＳ２０４のＮｏ）、排他制御装置６は、排他獲得可と判定し（ステップＳ２０５）、要求された資源を排他管理ツリーに追加する（ステップＳ２０６）。そして、排他獲得の旨の応答（レスポンス）を要求元のバッチ処理サーバ１に送信する（ステップＳ２１２）。排他獲得の旨の応答を受け取ったバッチ処理サーバ１は、処理を継続（待機していた場合は再開）する。排他獲得の可否に応じて処理の継続・待機を行うことが、論理的な排他制御となる。
【００３８】
図９は排他管理ツリーがブランクの状態で、排他獲得要求「disk001_GYOMU_A：/X0/X1/Y1」が行われた状態を示している。排他管理ツリーがブランクであるため、要求された資源が排他管理ツリー内に存在しないと判断され（ステップＳ２０３のＮｏ）、要求された資源に最も近い資源またはその上位の資源のいずれも存在しないためロック中でないと判断される（ステップＳ２０４のＮｏ）。そのため、排他獲得可と判定され（ステップＳ２０５）、要求された資源が排他管理ツリーに追加される（ステップＳ２０６）。図９の右側には、指定された資源Ｙ１を末端としたツリー部分が追加された状態を示している。なお、資源Ｙ１は排他獲得によりロック中とされる。ツリー部分を示す構造体は図４に示したのと同様である。
【００３９】
図１０は、左側に示す排他管理ツリーの状態（図９の右の状態）において更に排他獲得要求「disk001_GYOMU_A：/X0/X2/Z0」が行われた状態を示している。この場合も排他獲得可と判定され（ステップＳ２０５）、要求された資源が排他管理ツリーに追加される（ステップＳ２０６）。図１０の右側には、指定された資源Ｚ０を末端としてたツリー部分が追加された状態を示している。なお、資源Ｚ０は排他獲得によりロック中とされる。ツリー部分を示す構造体は図４に示したのと同様である。
【００４０】
図１１は、左側に示す排他管理ツリーの状態（図１０の右の状態）で、排他獲得要求「disk001_GYOMU_A：/X0/X2/X3/Q1」が行われた状態を示している。この場合、資源Ｑ１は要求された資源が排他管理ツリー内に存在しないと判断され（ステップＳ２０３のＮｏ）、要求された資源Ｑ１に最も近い資源Ｘ２またはその上位の資源Ｘ０のいずれもロック中でないと判断される（ステップＳ２０４のＮｏ）。そのため、排他獲得可と判定され（ステップＳ２０５）、要求された資源が排他管理ツリーに追加される（ステップＳ２０６）。図１１の右側はＸ２−Ｘ３−Ｑ１のツリー部分が追加された状態を示している。
【００４１】
図７に戻り、要求された資源に最も近い資源またはその上位の資源のいずれかがロック中であると判断した場合（ステップＳ２０４のＹｅｓ）、排他制御装置６は、排他獲得不可と判定する（ステップＳ２０７）。そして、排他制御装置６は、排他獲得不可の旨の応答を要求元のバッチ処理サーバ１に送信する（ステップＳ２１２）。排他獲得不可の旨の応答を受け取ったバッチ処理サーバ１は、処理を待機する。
【００４２】
図１２は、左側に示す排他管理ツリーの状態で、排他獲得要求「disk001_GYOMU_A：/X0/X2/Z0/Q2」が行われた状態を示している。この場合、資源Ｑ２は要求された資源が排他管理ツリー内に存在しないと判断され（ステップＳ２０３のＮｏ）、要求された資源Ｑ２に最も近い資源Ｚ０がロック中であると判断される（ステップＳ２０４のＹｅｓ）。そのため、排他獲得不可と判定される（ステップＳ２０７）。
【００４３】
図７に戻り、要求された資源が排他管理ツリー内に存在すると判断した場合（ステップＳ２０３のＹｅｓ）、排他制御装置６は、要求された資源またはその上位・下位の資源のいずれかがロック中であるか否か判断する（ステップＳ２０８）。下位の資源の排他状態も確認するのは、あるディレクトリを排他制御するということはその下位の全ての資源を排他制御することとなるため、既に排他制御されている資源がある場合には重複して排他制御することを避ける必要があるからである。
【００４４】
要求された資源またはその上位・下位の資源のいずれもロック中でないと判断した場合（ステップＳ２０８のＮｏ）、排他制御装置６は、排他獲得可と判定し（ステップＳ２０９）、要求された資源をロック中に変更する（ステップＳ２１０）。そして、排他獲得の旨の応答を要求元のバッチ処理サーバ１に送信する（ステップＳ２１２）。排他獲得の旨の応答を受け取ったバッチ処理サーバ１は、処理を継続（待機していた場合は再開）する。
【００４５】
図１３は、左側に示す排他管理ツリーの状態で、排他獲得要求「disk001_GYOMU_A：/X0/X1/Y1」が行われた状態を示している。なお、排他管理ツリーの資源Ｙ１は排他制御が解除されているものとしている。この場合、要求された資源Ｙ１は排他管理ツリー内に存在すると判断され（ステップＳ２０３のＹｅｓ）、要求された資源Ｙ１またはその上位・下位の資源Ｘ１、Ｘ０のいずれもロック中でないと判断される（ステップＳ２０８のＮｏ）。そのため、排他獲得可と判定され（ステップＳ２０９）、図１３の右側に示すように、要求された資源Ｙ１はロック中に変更される（ステップＳ２１０）。
【００４６】
図７に戻り、要求された資源またはその上位・下位の資源のいずれかがロック中であると判断した場合（ステップＳ２０８のＹｅｓ）、排他制御装置６は、排他獲得不可と判定する（ステップＳ２０７）。そして、排他制御装置６は、排他獲得不可の旨の応答を要求元のバッチ処理サーバ１に送信する（ステップＳ２１２）。排他獲得不可の旨の応答を受け取ったバッチ処理サーバ１は、処理を待機する。
【００４７】
図１４は、左側に示す排他管理ツリーの状態で、排他獲得要求「disk001_GYOMU_A：/X0/X1/Y1」が行われた状態を示している。この場合、要求された資源Ｙ１は排他管理ツリー内に存在すると判断され（ステップＳ２０３のＹｅｓ）、要求された資源Ｙ１はロック中であると判断される（ステップＳ２０８のＹｅｓ）。そのため、排他獲得不可と判定される（ステップＳ２０７）。
【００４８】
図７に戻り、要求が排他情報取得である場合（ステップＳ２０２の排他情報取得）、排他制御装置６は排他管理ツリーから排他獲得可能か判定し（ステップＳ２１１）、判定結果を要求元のバッチ処理サーバ１に送信する（ステップＳ２１２）。
【００４９】
「排他管理ツリーから排他獲得可能か判定」（図７のステップＳ２１１）の処理例を図８により説明する。図８において、処理を開始すると（ステップＳ２２１）、排他制御装置６は、要求された資源が排他管理ツリー内に存在するか否か判断する（ステップＳ２２２）。
【００５０】
要求された資源が排他管理ツリー内に存在しないと判断した場合（ステップＳ２２２のＮｏ）、排他制御装置６は、要求された資源に最も近い資源またはその上位の資源のいずれかがロック中であるか否か判断する（ステップＳ２２３）。
【００５１】
要求された資源に最も近い資源またはその上位の資源のいずれもロック中でないと判断した場合（ステップＳ２２３のＮｏ）、排他制御装置６は、排他獲得可と判定し（ステップＳ２２４）、処理を終了する。
【００５２】
要求された資源に最も近い資源またはその上位の資源のいずれかがロック中であると判断した場合（ステップＳ２２３のＹｅｓ）、排他制御装置６は、排他獲得不可と判定し（ステップＳ２２５）、処理を終了する。
【００５３】
要求された資源が排他管理ツリー内に存在すると判断した場合（ステップＳ２２２のＹｅｓ）、排他制御装置６は、要求された資源またはその上位・下位の資源のいずれかがロック中であるか否か判断する（ステップＳ２２６）。
【００５４】
要求された資源またはその上位・下位の資源のいずれもロック中でないと判断した場合（ステップＳ２２６のＮｏ）、排他制御装置６は、排他獲得可と判定し（ステップＳ２２７）、処理を終了する。
【００５５】
要求された資源またはその上位・下位の資源のいずれかがロック中であると判断した場合（ステップＳ２２６のＹｅｓ）、排他制御装置６は、排他獲得不可と判定し（ステップＳ２２５）、処理を終了する。
【００５６】
なお、上述したフローチャートでは、排他制御の解除についての処理については省略したが、排他制御が不要となった場合、バッチ処理サーバ１は排他解除の旨と資源のフルパスを指示することで、排他制御装置６は該当する資源のロック中を非ロック中に変更する。以降の構造体の取り扱いは実装に依存した処理としてよい。例えば、排他解除と同時に構造体を削除するようにしてもよい。
【００５７】
＜総括＞
以上説明したように、本実施形態によれば、指定された資源を排他制御の対象とできるか否かの判定を効率的に行うことができる。
【００５８】
また、従来は行えなかったファイルとディレクトリの包含関係を考慮した排他制御を行うことができる。
【００５９】
以上、好適な実施の形態により説明した。ここでは特定の具体例を示して説明したが、特許請求の範囲に定義された広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により限定されるものと解釈してはならない。
【００６０】
以上の説明に関し、更に以下の項を開示する。
（付記１）
排他制御の対象の資源の所在情報を受け付けると、階層化された複数の資源の階層関係を示す情報を参照して、受け付けた前記所在情報に含まれる、前記対象の資源の上位の資源を特定し、
前記複数の資源それぞれが排他制御されているか否かを示す情報を前記複数の資源それぞれに対応付けて記憶する記憶部を参照して、特定した前記資源に対応付けられた情報を取得し、
取得した前記情報に基づき、前記対象の資源を排他制御の対象とできるか否かの判定を行う、
処理をコンピュータに実行させることを特徴とする判定プログラム。
（付記２）
前記所在情報は、前記対象の資源が格納される共有ディスクの識別情報と、該共有ディスク上のルートディレクトリから対象の資源であるディレクトリまたはファイルまでを示すフルパスとを含む、
ことを特徴とする付記１に記載の判定プログラム。
（付記３）
前記複数の資源の階層関係を示す情報および前記複数の資源それぞれが排他制御されているか否かを示す情報は、前記共有ディスクの識別情報を含むディスク識別構造体と、各資源についての要素名、要素種別、排他制御状態、上位の資源へのリンク情報および下位の資源へのリンク情報を含むファイル・ディレクトリ識別構造体とにより表される、
ことを特徴とする付記２に記載の判定プログラム。
（付記４）
前記複数の資源の階層関係を示す情報および前記複数の資源それぞれが排他制御されているか否かを示す情報は、前記受け付けた排他制御の対象の資源が排他制御の対象とできると判定した場合に、該資源の所在情報に基づいて記憶する、
ことを特徴とする付記１乃至３のいずれか一項に記載の判定プログラム。
（付記５）
前記対象の資源が前記複数の資源の階層関係を示す情報に存在する場合は、前記対象の資源および該資源の上位または下位のいずれの資源も排他制御されていない場合に、前記対象の資源を排他制御の対象とできると判定する、
ことを特徴とする付記１乃至４のいずれか一項に記載の判定プログラム。
（付記６）
前記対象の資源が前記複数の資源の階層関係を示す情報に存在しない場合は、前記対象の資源に階層上で最も近い資源および該資源の上位のいずれの資源も排他制御されていない場合に、前記対象の資源を排他制御の対象とできると判定する、
ことを特徴とする付記１乃至５のいずれか一項に記載の判定プログラム。
（付記７）
排他制御の対象の資源の所在情報を受け付けると、階層化された複数の資源の階層関係を示す情報を参照して、受け付けた前記所在情報に含まれる、前記対象の資源の上位の資源を特定する手段と、
前記複数の資源それぞれが排他制御されているか否かを示す情報を前記複数の資源それぞれに対応付けて記憶する記憶部を参照して、特定した前記資源に対応付けられた情報を取得する手段と、
取得した前記情報に基づき、前記対象の資源を排他制御の対象とできるか否かの判定を行う手段と、
を備えたことを特徴とする判定装置。
（付記８）
前記所在情報は、前記対象の資源が格納される共有ディスクの識別情報と、該共有ディスク上のルートディレクトリから対象の資源であるディレクトリまたはファイルまでを示すフルパスとを含む、
ことを特徴とする付記７に記載の判定装置。
（付記９）
前記複数の資源の階層関係を示す情報および前記複数の資源それぞれが排他制御されているか否かを示す情報は、前記共有ディスクの識別情報を含むディスク識別構造体と、各資源についての要素名、要素種別、排他制御状態、上位の資源へのリンク情報および下位の資源へのリンク情報を含むファイル・ディレクトリ識別構造体とにより表される、
ことを特徴とする付記８に記載の判定装置。
（付記１０）
前記複数の資源の階層関係を示す情報および前記複数の資源それぞれが排他制御されているか否かを示す情報は、前記受け付けた排他制御の対象の資源が排他制御の対象とできると判定した場合に、該資源の所在情報に基づいて記憶する、
ことを特徴とする付記７乃至９のいずれか一項に記載の判定装置。
（付記１１）
前記判定を行う手段は、前記対象の資源が前記複数の資源の階層関係を示す情報に存在する場合は、前記対象の資源および該資源の上位または下位のいずれの資源も排他制御されていない場合に、前記対象の資源を排他制御の対象とできると判定する、
ことを特徴とする付記７乃至１０のいずれか一項に記載の判定装置。
（付記１２）
前記判定を行う手段は、前記対象の資源が前記複数の資源の階層関係を示す情報に存在しない場合は、前記対象の資源に階層上で最も近い資源および該資源の上位のいずれの資源も排他制御されていない場合に、前記対象の資源を排他制御の対象とできると判定する、
ことを特徴とする付記７乃至１１のいずれか一項に記載の判定装置。
（付記１３）
排他制御の対象の資源の所在情報を受け付けると、階層化された複数の資源の階層関係を示す情報を参照して、受け付けた前記所在情報に含まれる、前記対象の資源の上位の資源を特定し、
前記複数の資源それぞれが排他制御されているか否かを示す情報を前記複数の資源それぞれに対応付けて記憶する記憶部を参照して、特定した前記資源に対応付けられた情報を取得し、
取得した前記情報に基づき、前記対象の資源を排他制御の対象とできるか否かの判定を行う、
処理をコンピュータが実行することを特徴とする判定方法。
（付記１４）
前記所在情報は、前記対象の資源が格納される共有ディスクの識別情報と、該共有ディスク上のルートディレクトリから対象の資源であるディレクトリまたはファイルまでを示すフルパスとを含む、
ことを特徴とする付記１３に記載の判定方法。
（付記１５）
前記複数の資源の階層関係を示す情報および前記複数の資源それぞれが排他制御されているか否かを示す情報は、前記共有ディスクの識別情報を含むディスク識別構造体と、各資源についての要素名、要素種別、排他制御状態、上位の資源へのリンク情報および下位の資源へのリンク情報を含むファイル・ディレクトリ識別構造体とにより表される、
ことを特徴とする付記１４に記載の判定方法。
（付記１６）
前記複数の資源の階層関係を示す情報および前記複数の資源それぞれが排他制御されているか否かを示す情報は、前記受け付けた排他制御の対象の資源が排他制御の対象とできると判定した場合に、該資源の所在情報に基づいて記憶する、
ことを特徴とする付記１３乃至１５のいずれか一項に記載の判定方法。
（付記１７）
前記対象の資源が前記複数の資源の階層関係を示す情報に存在する場合は、前記対象の資源および該資源の上位または下位のいずれの資源も排他制御されていない場合に、前記対象の資源を排他制御の対象とできると判定する、
ことを特徴とする付記１３乃至１６のいずれか一項に記載の判定方法。
（付記１８）
前記対象の資源が前記複数の資源の階層関係を示す情報に存在しない場合は、前記対象の資源に階層上で最も近い資源および該資源の上位のいずれの資源も排他制御されていない場合に、前記対象の資源を排他制御の対象とできると判定する、
ことを特徴とする付記１３乃至１７のいずれか一項に記載の判定方法。
【符号の説明】
【００６１】
１、１Ａ、１Ｂ      バッチ処理サーバ
２                  バッチ管理サーバ
３                  ネットワーク
４                  共有ディスク
５                  クライアント
６                  排他制御装置
６０                排他管理ツリー情報
６１                命令・要求／応答送受信部
６２                命令・要求解釈部
６３                操作判定部
６４                排他判定部
６５                排他管理ツリー・ロック管理部
【図１】
0006740721.tif 000002
【図２】
0006740721.tif 000003
【図３】
0006740721.tif 000004
【図４】
0006740721.tif 000005
【図５】
0006740721.tif 000006
【図６】
0006740721.tif 000007
【図７】
0006740721.tif 000008
【図８】
0006740721.tif 000009
【図９】
0006740721.tif 000010
【図１０】
0006740721.tif 000011
【図１１】
0006740721.tif 000012
【図１２】
0006740721.tif 000013
【図１３】
0006740721.tif 000014
【図１４】
0006740721.tif 000015