(57)【要約】【課題】ファイルの排他制御要求を適切に分散させる。【解決手段】管理サーバ７は、複数の処理の実行スケジュール７ａに基づいて、所定の時間帯内にファイルの排他制御要求を行う処理を特定する。次に管理サーバ７は、複数の処理それぞれで使用するファイルを示す使用ファイル情報７ｂに基づいて、所定の時間帯内で排他制御の対象となるファイルを特定する。そして管理サーバ７は、ファイルの排他制御を行う複数のファイル管理サーバ２，３それぞれに対して所定の時間帯内に送信される排他制御要求の数が、所定数を超えないように、特定されたファイルそれぞれの排他制御要求の送信先とするファイル管理サーバを決定する。【選択図】図１
2014241121.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
複数の処理の実行スケジュールに基づいて、所定の時間帯内にファイルの排他制御要求を行う処理を特定し、
前記複数の処理それぞれで使用するファイルを示す使用ファイル情報に基づいて、前記所定の時間帯内で排他制御の対象となるファイルを特定し、
ファイルの排他制御を行う複数のファイル管理サーバそれぞれに対して前記所定の時間帯内に送信される排他制御要求の数が、所定数を超えないように、前記特定されたファイルそれぞれの排他制御要求の送信先とするファイル管理サーバを決定する、
処理を実行させるプログラム。
【請求項２】
前記コンピュータに、さらに、
前記特定されたファイルそれぞれの排他制御要求の送信先とするファイル管理サーバを示す送信先情報を、前記特定された処理を実行する実行サーバに送信する、
処理を実行させる請求項１記載のプログラム。
【請求項３】
前記送信先情報の送信では、前記所定の時間帯の開始時刻に達したときに、前記送信先情報を送信することを特徴とする請求項２記載のプログラム。
【請求項４】
処理の特定では、処理の実行期間を複数の単位時間帯に分け、単位時間帯内に行われるファイルの排他制御要求の数が所定数を超える場合に、該単位時間帯を前記所定の時間帯とすることを特徴とする請求項１乃至３のいずれかに記載のプログラム。
【請求項５】
処理の特定では、前記所定の時間帯内に開始または終了する処理を、前記所定の時間帯内にファイルの排他制御要求を行う処理と判断することを特徴とする請求項１乃至４のいずれかに記載のプログラム。
【請求項６】
排他制御要求の送信先とするファイル管理サーバの決定では、複数のファイル管理サーバそれぞれに送信される排他制御要求数が均等になるように、排他制御要求の送信先を決定することを特徴とする請求項１乃至５のいずれかに記載のプログラム。
【請求項７】
コンピュータが、
複数の処理の実行スケジュールに基づいて、所定の時間帯内にファイルの排他制御要求を行う処理を特定し、
前記複数の処理それぞれで使用するファイルを示す使用ファイル情報に基づいて、前記所定の時間帯内で排他制御の対象となるファイルを特定し、
ファイルの排他制御を行う複数のファイル管理サーバそれぞれに対して前記所定の時間帯内に送信される排他制御要求の数が、所定数を超えないように、前記特定されたファイルそれぞれの排他制御要求の送信先とするファイル管理サーバを決定する、
排他制御要求振り分け方法。
【請求項８】
複数のファイルを格納するストレージ装置と、
排他制御要求に応じて、前記ストレージ装置に格納されたファイルの排他制御を行う複数のファイル管理サーバと、
前記ストレージ装置に格納されたファイルを使用した処理を実行する複数の実行サーバと、
複数の処理の実行スケジュールに基づいて、所定の時間帯内にファイルの排他制御要求を行う処理を特定し、前記複数の処理それぞれで使用するファイルを示す使用ファイル情報に基づいて、前記所定の時間帯内で排他制御の対象となるファイルを特定し、ファイルの排他制御を行う複数のファイル管理サーバそれぞれに対して前記所定の時間帯内に送信される排他制御要求の数が、所定数を超えないように、前記特定されたファイルそれぞれの排他制御要求の送信先とするファイル管理サーバを決定し、前記特定されたファイルそれぞれの排他制御要求の送信先とするファイル管理サーバを示す送信先情報を、前記特定されたジョブを実行する実行サーバに送信する管理サーバと、
を有するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、排他制御要求の送信先を決定するプログラム、排他制御要求振り分け方法およびシステムに関する。
【背景技術】
【０００２】
近年のコンピュータシステムでは、一晩の間に数万〜数十万のジョブが実行される場合も少なくない。また処理対象データ量も爆発的に増加しており、数千や万単位のファイルを扱う環境になってきている。
【０００３】
実行されるジョブ数や取り扱うファイル数の増加により、複数のジョブによって実施される業務の実行時間が長期化している。そのため、例えば規定時間内に終了させるべきバッチ処理が、規定時間内に終わらなくなりそうな場合も考えられる。バッチ処理が規定時間内に完了するかどうかは、バッチ処理の処理時間を予測することで判断できる。バッチ処理の処理時間を予測する技術としては、例えば、複数のジョブが並列して動作することが可能な計算機システムにおけるバッチ処理時間予測方法が考えられている。
【０００４】
バッチ処理が規定時間内に終わりそうもない場合の解決手段として、実行サーバの増強と増設が考えられる。サーバ増強は、１台のサーバの性能を強化することであり、サーバ増設は、ジョブを実行するサーバ数を増やすことである。従来はシステムの処理能力が不足する場合、サーバを増強することが多かったが、サーバの増強のみでは最近の処理対象データの爆発的増加への対応が困難となっている。そこで、サーバの増設が行われる。
【０００５】
サーバを増設した場合、大量のジョブが複数のサーバで分散して実行される。ジョブを複数のサーバで分散処理する場合、ジョブを実行する複数のサーバは、ジョブの実行に使用するファイルを共有する。このとき、並走する複数のジョブ間で同一のファイルを同時に更新してファイルを破壊することのないように、ファイルの排他制御が行われる。ファイルの排他制御では、あるサーバがファイルの排他的な使用権を獲得している間、そのファイルを他のサーバが操作できないように、ファイルが管理される。
【０００６】
例えば、ジョブを実行するサーバとは別にファイル排他制御装置が用意され、ファイル排他制御装置により共有ファイルの排他制御が行われる。ファイル排他制御装置に関する技術としては、並列コンピュータを構成する各コンピュータおよびファイル排他制御装置の一部に処理が集中し、それが原因で並列コンピュータ全体の処理能力が低下することを防ぐファイル排他制御システムがある。このファイル排他制御システムでは、例えば、複数のファイル排他制御装置が、複数のコンピュータそれぞれの負荷情報を用いて複数のコンピュータ間のジョブ処理の負荷の偏りを演算し、負荷の偏りが解消されるようジョブの分担が再設定される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−２０３１５１号公報
【特許文献２】特開２００６−１６４０８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、従来の技術では、ファイルの排他制御を複数のファイル排他制御装置で行う場合に、各ファイル排他制御装置の排他制御に関する処理負荷が正しく判断されていない。そのため、複数のファイル排他制御装置にファイルの排他制御要求を分散しても、ファイル排他制御装置それぞれが処理する排他制御要求の数が偏ることにより、排他制御要求の処理が遅延し、システム全体の処理効率が低下することがある。
【０００９】
１つの側面では、本件は、ファイルの排他制御要求を適切に分散させることを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、コンピュータに、以下の処理を実行させるプログラムが提供される。
コンピュータは、まず、複数の処理の実行スケジュールに基づいて、所定の時間帯内にファイルの排他制御要求を行う処理を特定する。次にコンピュータは、複数の処理それぞれで使用するファイルを示す使用ファイル情報に基づいて、所定の時間帯内で排他制御の対象となるファイルを特定する。そしてコンピュータは、ファイルの排他制御を行う複数のファイル管理サーバそれぞれに対して所定の時間帯内に送信される排他制御要求の数が、所定数を超えないように、特定されたファイルそれぞれの排他制御要求の送信先とするファイル管理サーバを決定する。
【発明の効果】
【００１１】
１態様によれば、ファイルの排他制御要求を適切に分散させることが可能となる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係るシステムの構成例を示す図である。
【図２】ＣＰＵビジー率、ファイルアクセス、および排他制御要求数の時間変化の比較例を示す図である。
【図３】第２の実施の形態のシステム構成例を示す図である。
【図４】管理サーバのハードウェアの一構成例を示す図である。
【図５】各装置の機能の一例を示すブロック図である。
【図６】ファイルの排他制御の分散処理の例を示す図である。
【図７】ジョブ定義の一例を示す図である。
【図８】実行スケジュールの一例を示す図である。
【図９】共有ファイル定義の構造例を示す図である。
【図１０】ファイル管理サーバが管理するファイルの定義例を示す図である。
【図１１】共有ファイル定義生成処理の手順の一例を示すフローチャートの前半である。
【図１２】ファイル一覧作成処理の手順の一例を示すフローチャートである。
【図１３】ファイル一覧の一例を示す図である。
【図１４】ソート後のファイル一覧の一例を示す図である。
【図１５】共有ファイル定義生成処理の手順の一例を示すフローチャートの後半である。
【図１６】過大な負荷がかかる時間帯のレコードのソート結果を示す図である。
【図１７】共有ファイル定義の一例を示す図である。
【図１８】共有ファイル定義配信処理の手順の一例を示すフローチャートである。
【図１９】実行サーバによるジョブ制御処理の手順の一例を示すフローチャートである。
【図２０】排他制御要求処理の手順の一例を示すフローチャートである。
【図２１】ファイル分類処理の手順の一例を示すフローチャートである。
【図２２】排他依頼テーブルの一例を示す図である。
【図２３】排他獲得の排他制御要求の手順の一例を示すフローチャートである。
【図２４】排他解除の排他制御要求の手順の一例を示すフローチャートである。
【図２５】排他制御処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず第１の実施の形態について説明する。
【００１４】
図１は、第１の実施の形態に係るシステムの構成例を示す図である。第１の実施の形態で、ストレージ装置１に複数のファイル１ａ，１ｂ，１ｃ，・・・が格納されている。ストレージ装置１に格納された複数のファイル１ａ，１ｂ，１ｃ，・・・は、複数の実行サーバ４〜６で共有される。
【００１５】
ファイル管理サーバ２，３は、ストレージ装置１に格納されている複数のファイル１ａ，１ｂ，１ｃ，・・・を管理する。例えばファイル管理サーバ２，３は、ファイルの排他制御を行う。すなわちファイル管理サーバ２，３は、ファイルを使用する処理に伴う、そのファイルを指定した排他獲得要求に応じて、その処理によるファイルの排他的な使用を許可する。その後、ファイル管理サーバ２，３は、排他的に使用されているファイルに対する排他獲得要求を受け取っても、その排他獲得要求は拒絶する。またファイル管理サーバ２，３は、処理の終了に伴い、その処理で使用していたファイルの排他解除要求を受け取ると、そのファイルの排他的な使用を終了し、他の処理での使用を可能とする。以下、排他獲得要求と排他解除要求とを総称して、排他制御要求と呼ぶこととする。
【００１６】
実行サーバ４，５，６は、管理サーバ７からの処理の実行依頼に応じて処理を実行する。実行サーバ４，５，６は、実行する処理で使用するファイルを占有する。そのために実行サーバ４，５，６は、処理の実行開始時に、その処理で使用するファイルの排他獲得要求を、いずれかのファイル管理サーバに送信する。なお、どのファイル管理サーバに排他獲得要求を送信すればよいのかは、予め管理サーバ７から指示されている。実行サーバ４，５，６は、処理が終了すると、その処理で使用したファイルの排他解除要求を、そのファイルの排他獲得要求の送信先と同じファイル管理サーバに送信する。
【００１７】
管理サーバ７は、複数の処理の実行スケジュール７ａと、複数の処理それぞれで使用するファイルを示す使用ファイル情報７ｂを有している。そして管理サーバ７は、実行スケジュール７ａと使用ファイル情報７ｂとに基づいて、各実行サーバ４，５，６に、処理の実行依頼を送信すると共に、実行する処理で使用するファイルの排他制御要求の送信先を指定する。このうち、排他制御要求の送信先は、以下のようにして決定される。
【００１８】
管理サーバ７は、実行スケジュール７ａに基づいて、所定の時間帯内にファイルの排他制御要求を行う処理を特定する。例えば管理サーバ７は、処理の実行期間を複数の単位時間帯に分け、単位時間帯内に行われるファイルの排他制御要求の数が所定数を超える場合に、その単位時間帯内にファイルの排他制御要求を行う処理を特定する。
【００１９】
なお所定の時間帯内に排他制御要求を行う処理かどうかの判断については、その時間帯内に開始または終了する処理かどうかに基づいて判断できる。例えば管理サーバ７は、所定の時間帯内に開始または終了する処理は、その時間帯内にファイルの排他制御要求を行う処理であると判断する。
【００２０】
時間帯内にファイルの排他制御要求を行う処理が特定されると、管理サーバ７は、複数の処理それぞれで使用するファイルを示す使用ファイル情報７ｂに基づいて、所定の時間帯内で排他制御の対象となるファイルを特定する。例えば管理サーバ７は、特定された処理で使用するファイルを、所定の時間帯内で排他制御の対象となるファイルとする。
【００２１】
排他制御の対象となるファイルが特定されると、管理サーバ７は、特定されたファイルそれぞれの排他制御要求の送信先とするファイル管理サーバを決定する。この際、管理サーバ７は、ファイルの排他制御を行う複数のファイル管理サーバそれぞれに対して所定の時間帯内に送信される排他制御要求の数が、所定数を超えないようにする。例えば、管理サーバ７は、複数のファイル管理サーバそれぞれに送信される排他制御要求数が均等になるように、排他制御要求の送信先を決定する。
【００２２】
そして管理サーバ７は、特定されたファイルそれぞれの排他制御要求の送信先とするファイル管理サーバを示す送信先情報７ｃを、特定された処理を実行する実行サーバに送信する。例えば管理サーバ７は、所定の時間帯の開始時刻に達したときに、その時間帯内で行われる排他制御要求の送信先を示す送信先情報７ｃを送信する。
【００２３】
このようなシステムによれば、まず、実行スケジュール７ａと使用ファイル情報７ｂとに基づいて、管理サーバ７により、送信先情報７ｃが生成される。図１の例では、実行スケジュール９において、時間帯ｔ１〜ｔ２の間に、処理Ａ、処理Ｂ、処理Ｄを実行することが示されている。一方、使用ファイル情報７ｂには、処理Ａがファイルａとファイルｂとを使用すること、処理Ｂがファイルｃとファイルｄとを使用すること、処理Ｄがファイルｇとファイルｈとを使用することが示されている。そこで、管理サーバ７は、時間帯「ｔ１〜ｔ２」において排他制御要求がファイル管理サーバ２，３に均等に送信されるように、各ファイルの排他制御要求の送信先を決定する。例えば管理サーバ７は、ファイルａ，ｂ，ｃについての排他制御要求の送信先を、名称「α」のファイル管理サーバ２とし、ファイルｄ，ｇ，ｈについての排他制御要求の送信先を、名称「β」のファイル管理サーバ３とする。
【００２４】
同様に、時間帯ｔ２〜ｔ３の間に排他制御要求を送信する処理（処理Ｃ、処理Ｅ、処理Ｆ）に基づいて、その時間帯ｔ２〜ｔ３における、処理Ｃ・処理Ｅ・処理Ｆそれぞれで使用するファイルの排他制御要求の送信先が決定される。図１の例では、ファイルｅ，ｆ，ｉについての排他制御要求の送信先が、名称「α」のファイル管理サーバ２に決定され、ファイルｊ，ｋ，ｌについての排他制御要求の送信先が、名称「β」のファイル管理サーバ３に決定されている。
【００２５】
排他制御要求の送信先が決定されると、決定内容を示す送信先情報７ｃが、管理サーバ７から各実行サーバ４，５，６に配布される。
その後、管理サーバ７は、時間帯ｔ１〜ｔ２の間に、実行スケジュール７ａに従って、処理Ａ、処理Ｂ、処理Ｄの実行指示を、各実行サーバ４，５，６に送信する。処理Ａを実行する実行サーバ４は、送信先情報７ｃに基づいて、ファイルａ，ｂに関する排他制御要求を、ファイル管理サーバ２に送信する。処理Ｂを実行する実行サーバ５は、送信先情報７ｃに基づいて、ファイルｃに関する排他制御要求をファイル管理サーバ２に送信し、ファイルｄに関する排他制御要求をファイル管理サーバ３に送信する。処理Ｄを実行する実行サーバ５は、送信先情報７ｃに基づいて、ファイルｇ，ｈに関する排他制御要求を、ファイル管理サーバ３に送信する。
【００２６】
さらに管理サーバ７は、時間帯ｔ２〜ｔ３の間に、実行スケジュール７ａに従って、処理Ｃ、処理Ｅ、処理Ｆの実行要求を、各実行サーバ４，５，６に送信する。処理Ｃを実行する実行サーバ４は、送信先情報７ｃに基づいて、ファイルｅ，ｆに関する排他制御要求を、ファイル管理サーバ２に送信する。処理Ｅを実行する実行サーバ６は、送信先情報７ｃに基づいて、ファイルｉに関する排他制御要求をファイル管理サーバ２に送信し、ファイルｊに関する排他制御要求をファイル管理サーバ３に送信する。処理Ｆを実行する実行サーバ５は、送信先情報７ｃに基づいて、ファイルｋ，ｌに関する排他制御要求を、ファイル管理サーバ３に送信する。
【００２７】
このように第１の実施の形態では、所定の時間帯内で排他制御の対象となるファイルを特定し、特定したファイルに関する排他制御要求の送信先を決定する。これにより、ファイルの排他制御要求を適切に分散させることができる。その結果、ファイルの排他制御の遅延によりシステム全体の処理効率が低下することが抑止される。
【００２８】
ところで、ＣＰＵ（Central Processing Unit）ビジー率やファイルアクセス数などに関する過去の負荷情報から過去に発生した負荷の集中は把握できるが、過去の負荷情報からは今後実行する処理により排他制御要求が集中する時間帯を特定することはできない。このため、過去の負荷情報に基づいて排他制御要求の集中の有無を判断しても、実際に負荷の集中は発生した後にしか負荷を平準化できない。例えば、１分間隔で性能情報を収集している場合、少なくとも１分間は負荷が集中した状態が継続し、結果的に処理の実行時間を長期化させる影響が発生する。このような自体を避けようとすると、従来はどのタイミングでファイルの排他制御要求の送信先を切り替えればよいかは人が判断することとなり、判断の誤りが生じやすい。
【００２９】
そこで、第１の実施の形態では、処理の実行スケジュールに基づいて、排他制御の遅延が生じる可能性がある時間帯を特定している。これにより、実際に排他制御要求数が過大となる時間帯を的確に判断し、その時間帯における排他制御要求の送信先が平準化するように、排他制御要求の送信先を、負荷が過大になる前に変更しておくことができる。
【００３０】
またＣＰＵビジー率やファイルアクセス数などの負荷情報と、排他制御要求数との間には、相関関係が弱い場合がある。そのため、ＣＰＵビジー率やファイルアクセス数などの負荷情報に基づく排他制御の負荷の大小判断は、不正確である。
【００３１】
図２は、ＣＰＵビジー率、ファイルアクセス、および排他制御要求数の時間変化の比較例を示す図である。図２には、ＣＰＵビジー率、ファイルアクセス、および排他制御要求数それぞれの推移を示すグラフが示されている。
【００３２】
一般に、ファイルの排他制御要求数は、ＣＰＵの処理負荷またはファイルアクセスの負荷と同期しない。ＣＰＵの負荷は、例えばＣＰＵのビジー率で表される。ファイルアクセスの負荷は、例えばファイルアクセスの最大性能（例えば単位時間当たりの最大の入出力可能データ量）に対する、実際に入出力されたデータ量の割合で表される。
【００３３】
例えば図２では、ファイルアクセスが少なく、サイズは小さいが多数のファイルを扱う処理（ＪＯＢ＃１）と、ファイルアクセスが多く、ファイルのサイズが大きい処理（ＪＯＢ＃２）とのそれぞれを実行したときの、負荷の時間遷移を示している。図２に示すように、ファイルの排他制御要求の処理に関する負荷、ＣＰＵ等の処理負荷、ファイルアクセスの負荷は、それぞれ異なる。例えばＪＯＢ＃１の場合、ＣＰＵ使用率やファイルアクセスによる負荷が適正範囲内であっても、排他制御要求数は過大な時間帯が存在する。逆に、ＪＯＢ＃２では、ＣＰＵビジー率やファイルアクセスの負荷が過大であっても、排他制御要求数は少ない。
【００３４】
このように、ＣＰＵビジー率やファイルアクセス利用状況とファイルの排他制御要求は必ずしも同期しない。そのため、ＣＰＵ利用状況（負荷）による偏りを判断して、排他制御要求を平準化しようとしても、実際のファイル排他制御要求の負荷は偏った状況に陥る可能性がある。
【００３５】
第１の実施の形態では、実際に行われる排他制御要求の数を事前に求め、その排他制御要求数に基づいて、今後実行される排他制御の負荷の大小を判断している。そのため、排他制御の負荷が適切に判断される。例えば、第１の実施の形態では、処理の実行期間を複数の単位時間帯に分け、単位時間帯内に行われるファイルの排他制御要求の数が所定数を超える場合に、その単位時間帯内にファイルの排他制御要求の送信先を切り替えることができる。これにより、排他制御要求の負荷が過大となる時間帯を適切に判定し、その時間帯の排他制御要求を適切に分散させることができる。図２に示したＪＯＢ＃１の例であれば、排他制御要求数が６０００を超える時間帯について、排他制御要求の送信先を適切に分散させることができる。
【００３６】
しかも第１の実施の形態では、排他要求数が所定数を超える時間帯における、排他要求の対象となるファイルを特定し、そのファイルの排他制御要求の送信先を決定する。そのため、複数のファイル管理サーバそれぞれに所定の時間帯内に送信される排他制御要求数を、可能な限り、所定値以下に抑止することができる。
【００３７】
なお、ファイル管理サーバ２，３、実行サーバ４，５，６、および管理サーバ７は、例えばプロセッサやメモリを有するコンピュータである。その場合、ファイル管理サーバ２，３、実行サーバ４，５，６、および管理サーバ７によって実現される処理が記述されたプログラムが用意される。
【００３８】
また、図１に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第２の実施の形態〕
次に第２の実施の形態について説明する。なお、第２の実施の形態では、実行サーバで実行する処理の単位を「ジョブ」と呼ぶこととする。
【００３９】
図３は、第２の実施の形態のシステム構成例を示す図である。第２の実施の形態では、ネットワーク２０を介して、管理サーバ１００、複数の実行サーバ２００，２００ａ，２００ｂ，・・・、ストレージ装置３００、ファイル管理サーバ４００，４００ａ，・・・、および端末装置３１，３２，・・・が接続されている。
【００４０】
管理サーバ１００は、実行するジョブを管理するコンピュータである。例えば管理サーバ１００は、ジョブのスケジューリングを行い、各ジョブの実行期間を決定する。そして管理サーバ１００は、実行開始時刻になったジョブの実行指示を、いずれかの実行サーバに送信する。ジョブの実行指示を送信する場合、例えば管理サーバ１００は、負荷分散処理を行い、各実行サーバの負荷が均等になるように、ジョブの実行指示を振り分ける。
【００４１】
また管理サーバ１００は、ファイル管理サーバ４００，４００ａ，・・・それぞれの排他制御の負荷が均等になるように、各ファイルの排他制御を行うファイル管理サーバを決定する。例えば管理サーバ１００は、ある期間内に実行されるジョブで使用されるファイルを特定し、そのファイルの排他制御が均等になるように、各ファイルの排他制御を行うファイル管理サーバを決定する。管理サーバ１００は、各ファイルの排他制御を行うファイル管理サーバの指定を、所定間隔で動的に変更することもできる。そして管理サーバ１００は、ジョブの実行の際に使用するファイルの排他制御を、そのファイル管理サーバ４００，４００ａ，・・・に依頼するのかに関する情報を、各実行サーバ２００，２００ａ，２００ｂ，・・・に通知する。
【００４２】
実行サーバ２００，２００ａ，２００ｂ，・・・は、ジョブを実行するコンピュータである。例えば実行サーバ２００，２００ａ，２００ｂ，・・・には、ジョブの実行に用いられるアプリケーションプログラムがインストールされている。そして実行サーバ２００，２００ａ，２００ｂ，・・・は、ジョブの実行要求に応じて、アプリケーションプログラムを用いたジョブを実行する。以下、実行サーバ２００，２００ａ，２００ｂ，・・・がアプリケーションプログラムを実行することで実現する機能を、単に「アプリケーション」と呼ぶこととする。
【００４３】
ストレージ装置３００は、ジョブの実行に使用するファイルを記憶する記憶装置である。例えばストレージ装置３００には、数千や万単位のファイルが格納されている。ストレージ装置３００としては、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）が用いられる。またストレージ装置３００は、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）のようなディスクアレイであってもよい。
【００４４】
ファイル管理サーバ４００，４００ａ，・・・は、ストレージ装置３００に格納されているファイルの排他制御を行う。例えばファイル管理サーバ４００，４００ａ，・・・は、いずれかの実行サーバからのファイルの排他獲得の依頼に基づいて、そのファイルを、その実行サーバ内のジョブによる占有状態とする。占有状態となったファイルは、例えば、占有しているジョブ以外のジョブからの更新を伴うアクセスが抑止される。またファイル管理サーバ４００，４００ａ，・・・は、いずれかの実行サーバからのファイルの排他解除の依頼に基づいて、そのファイルの占有状態を解除する。占有状態が解除されたファイルは、いずれのジョブからも更新操作が可能となる。
【００４５】
端末装置３１，３２，・・・は、ユーザが使用するコンピュータである。例えばユーザは、端末装置３１，３２，・・・を介して、管理サーバ１００に、実行するジョブを指示する。
【００４６】
図４は、管理サーバのハードウェアの一構成例を示す図である。管理サーバ１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１の機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００４７】
メモリ１０２は、管理サーバ１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００４８】
バス１０９に接続されている周辺機器としては、ＨＤＤ１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびネットワークインタフェース１０８がある。
【００４９】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、管理サーバ１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置を使用することもできる。
【００５０】
グラフィック処理装置１０４には、モニタ２１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２１の画面に表示させる。モニタ２１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００５１】
入力インタフェース１０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース１０５は、キーボード２２やマウス２３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス２３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００５２】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２４に記録されたデータの読み取りを行う。光ディスク２４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００５３】
機器接続インタフェース１０７は、管理サーバ１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００５４】
ネットワークインタフェース１０８は、ネットワーク２０に接続されている。ネットワークインタフェース１０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００５５】
以上のようなハードウェア構成によって、管理サーバ１００の処理機能を実現することができる。なお、図４には、管理サーバ１００のハードウェア構成を示したが、他の実行サーバ２００，２００ａ，２００ｂ，・・・、およびファイル管理サーバ４００，４００ａ，・・・も同様のハードウェアで実現できる。また第１の実施の形態に示した装置も、図４に示した管理サーバ１００と同様のハードウェアにより実現することができる。
【００５６】
管理サーバ１００、実行サーバ２００，２００ａ，２００ｂ，・・・、およびファイル管理サーバ４００，４００ａ，・・・は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。各サーバに実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、各サーバに実行させるプログラムをＨＤＤに格納しておくことができる。各サーバのプロセッサは、ＨＤＤ内のプログラムの少なくとも一部をメモリにロードし、プログラムを実行する。また各サーバに実行させるプログラムを、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサからの制御により、ＨＤＤにインストールされた後、実行可能となる。またプロセッサが、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００５７】
図５は、各装置の機能の一例を示すブロック図である。管理サーバ１００は、ジョブスケジューラ１１０とコントローラ１２０とを有する。
ジョブスケジューラ１１０は、ジョブの実行時間のスケジューリングを行う。例えばジョブスケジューラ１１０は、所定期間内に実行するバッチジョブを複数の実行サーバ２００，２００ａ，２００ｂ，・・・に均等に分散実行させるように、各ジョブの実行時間と、各ジョブを実行する実行サーバとを決定する。
【００５８】
コントローラ１２０は、ジョブスケジューラ１１０で決定された実行スケジュールに従って、ジョブの実行指示を、そのジョブを実行する実行サーバに送信する。またコントローラ１２０は、ジョブスケジューラ１１０で決定された実行スケジュールに基づいて、ストレージ装置３００に格納されている各ファイル３０１，３０２，３０３，・・・の排他制御を行うファイル管理サーバを決定する。そしてコントローラ１２０は、各ファイル３０１，３０２，３０３，・・・の排他制御を行うファイル管理サーバを示す共有ファイル定義を、各実行サーバ２００，２００ａ，２００ｂ，・・・に配布する。
【００５９】
実行サーバ２００は、複数のジョブ制御部２１１，２１２，２１３，・・・、複数のアプリケーション２２１，２２２，２２３，・・・、およびファイル管理部２３０を有する。ジョブ制御部２１１，２１２，２１３，・・・は、管理サーバ１００からのジョブの実行指示に従ってアプリケーション２２１，２２２，２２３，・・・を起動し、ジョブを実行させる。またジョブ制御部２１１，２１２，２１３，・・・は、実行対象のジョブで使用するファイルの排他制御要求をファイル管理部２３０に送信する。他の実行サーバ２００ａ，２００ｂ，・・・も、実行サーバ２００と同様の機能を有している。
【００６０】
アプリケーション２２１，２２２，２２３，・・・は、ジョブ制御部２１１，２１２，２１３，・・・から与えられたジョブを実行する。なおアプリケーション２２１，２２２，２２３，・・・は、ジョブの実行に際し、ストレージ装置３００内のファイルにアクセスする。
【００６１】
ファイル管理部２３０は、ジョブ制御部２１１，２１２，２１３，・・・からのファイルの排他制御要求を、ファイル管理サーバ４００，４００ａ，・・・に送信する。例えばファイル管理部２３０は、管理サーバ１００から送られた共有ファイル定義を取得する。そしてファイル管理部２３０は、共有ファイル定義に従って、排他制御要求の送信先のファイル管理サーバを決定する。
【００６２】
ファイル管理サーバ４００，４００ａ，・・・は、ファイル排他制御部４１０，４１０ａ，・・・を有する。ファイル排他制御部４１０，４１０ａ，・・・は、排他制御要求に応じて、ファイルの排他制御を行う。
【００６３】
各装置がこのような機能を有していることにより、ファイルの排他制御が複数のファイル管理サーバ４００，４００ａ，・・・で分散処理される。なお、図５に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
【００６４】
図６は、ファイルの排他制御の分散処理の例を示す図である。なお図６には、３台の実行サーバ２００，２００ａ，２００ｂ、２台のファイル管理サーバ４００，４００ａの場合の例を示しているが、さらに多くの実行サーバやファイル管理サーバがあってもよい。
【００６５】
管理サーバ１００では、ジョブスケジューラ１１０が、所定期間内に実行するジョブに関するジョブ定義４０，４０ａ，４０ｂ，・・・に基づいて、ジョブの実行予定を示す実行スケジュール５０を作成する。作成された実行スケジュール５０とジョブ定義４０，４０ａ，４０ｂ，・・・とに基づいて、コントローラ１２０が共有ファイル定義６０を作成する。共有ファイル定義６０には、所定の時間帯ごとの、各ファイル管理サーバ４００，４００ａが管理するファイルの分担が定義されている。コントローラ１２０は、共有ファイル定義６０に設定された時間帯の開始時刻になると、その時間帯に関する時間帯別定義情報を、各実行サーバ２００，２００ａ，２００ｂに送信する。送信された時間帯別定義情報は、各実行サーバ２００，２００ａ，２００ｂのファイル管理部２３０，２３０ａ，２３０ｂで受信される。ファイル管理部２３０，２３０ａ，２３０ｂは、時間帯別定義情報を内部のメモリなどの記憶媒体に保持し、ジョブ制御部２１１，２１１ａ，２１１ｂからのファイルの排他制御要求を待つ。図６の例では、ストレージ装置３００内のファイルのうち、「ファイルＡ」と「ファイルＢ」はファイル管理サーバ４００で管理され、「ファイルＣ」と「ファイルＤ」はファイル管理サーバ４００ａで管理されるものとする。
【００６６】
その後、管理サーバ１００のコントローラ１２０は、ジョブの実行スケジュールに基づいて、実行開始時刻になったジョブの実行指示を、実行サーバ２００，２００ａ，２００ｂに送信する。実行サーバ２００，２００ａ，２００ｂでは、ジョブ制御部２１１，２１１ａ，２１１ｂがジョブの実行指示を受信する。そしてジョブ制御部２１１，２１１ａ，２１１ｂは、実行するジョブで使用するファイルの排他獲得の排他制御要求を、ファイル管理部２３０，２３０ａ，２３０ｂに送信する。ファイル管理部２３０，２３０ａ，２３０ｂは、排他獲得の排他制御要求を受信すると、予め受信している時間帯別定義情報を参照し、制御対象のファイルごとに、排他制御を行うファイル管理サーバを判定する。そしてファイル管理部２３０，２３０ａ，２３０ｂは、各ファイルの排他制御を行うファイル管理サーバに、排他獲得の排他制御要求を送信する。
【００６７】
図６の例では、実行サーバ２００のアプリケーション２２１が実行するジョブでは「ファイルＡ」を使用する。実行サーバ２００ａのアプリケーション２２１ａが実行するジョブでは「ファイルＢ」と「ファイルＣ」とを使用する。実行サーバ２００ｂのアプリケーション２２１ｂが実行するジョブでは「ファイルＤ」を使用する。この場合、実行サーバ２００のファイル管理部２３０は、「ファイルＡ」を管理するファイル管理サーバ４００に、「ファイルＡ」の排他獲得の排他制御要求を送信する。実行サーバ２００ａのファイル管理部２３０ａは、「ファイルＢ」を管理するファイル管理サーバ４００に、「ファイルＢ」の排他獲得の排他制御要求を送信する。またファイル管理部２３０ａは、「ファイルＣ」を管理するファイル管理サーバ４００ａに、「ファイルＣ」の排他獲得の排他制御要求を送信する。実行サーバ２００ｂのファイル管理部２３０ｂは、「ファイルＤ」を管理するファイル管理サーバ４００ａに、「ファイルＤ」の排他獲得の排他制御要求を送信する。
【００６８】
その後、各実行サーバ２００のジョブ制御部２１１，２１１ａ，２１１ｂは、ジョブの実行指示内容に従ってアプリケーション２２１，２２１ａ，２２１ｂを起動する。そしてジョブ制御部２１１，２１１ａ，２１１ｂは、起動したアプリケーション２２１，２２１ａ，２２１ｂに、指示内容に応じたジョブを実行させる。アプリケーション２２１，２２１ａ，２２１ｂは、与えられたジョブを実行する。アプリケーション２２１，２２１ａ，２２１ｂは、ジョブの実行過程で、ストレージ装置３００内のファイルにアクセスし、例えばファイルの内容を更新する。
【００６９】
このようにして、ファイルの排他制御の負荷が分散される。なお第２の実施の形態では、管理サーバ１００が、所定の時間帯ごとに、その時間帯内で使用されるジョブが使用するファイルの情報を用いて、ファイル管理サーバ４００，４００ａ，・・・の負荷が均等になるように、共有ファイル定義を作成する。各ジョブで使用されるファイルは、ジョブ定義４０，４０ａ，４０ｂ，・・・に示されている。
【００７０】
図７は、ジョブ定義の一例を示す図である。ジョブごとに設けられたジョブ定義４０，４０ａ，４０ｂ，・・・には、ジョブ名が設定されている。ジョブ定義４０，４０ａ，４０ｂ，・・・には、複数のジョブステップ定義４１，４２，４３，・・・が設定されている。ジョブステップ定義４１，４２，４３，・・・は、ジョブ内で実行するステップごとの処理を定義している。ジョブステップ定義４１，４２，４３，・・・には、ジョブの実行に使用するアプリケーションと１以上のファイルとが指定されている。またジョブステップ定義４１，４２，４３，・・・には、例えばアプリケーションの実行時に指定する各種パラメータを含めることができる。このような内容のジョブ定義４０，４０ａ，４０ｂ，・・・は、図１に示した第１の実施の形態における使用ファイル情報７ｂの一例である。
【００７１】
なおジョブ定義４０，４０ａ，４０ｂ，・・・は、予め端末装置３１，３２，・・・などから管理サーバ１００に入力される。このようなジョブ定義４０，４０ａ，４０ｂ，・・・に基づいて、実行するジョブの内容が認識でき、ジョブスケジューラ１１０によって、実行サーバ２００，２００ａ，２００ｂの負荷が均等になるように、実行スケジュール５０が作成される。
【００７２】
図８は、実行スケジュールの一例を示す図である。作成された実行スケジュール５０には、ジョブのジョブ名に対応付けて、そのジョブを実行する実行サーバ、ジョブ実行の開始時刻、およびジョブ実行の終了時刻が設定されている。
【００７３】
図７・図８に示したようなジョブ定義４０，４０ａ，４０ｂ，・・・と実行スケジュール５０とに基づいて、共有ファイル定義６０が生成される。
図９は、共有ファイル定義の構造例を示す図である。共有ファイル定義６０は、複数の時間帯別定義情報６１，６２，・・・を含んでいる。時間帯別定義情報６１，６２，・・・それぞれには、時刻情報が設定されている。時刻情報は、適用する時間帯別定義情報の切り替え時刻を示している。換言すると、時刻情報は、その下に設定されている時間帯別定義情報が適用される時間帯の開始時刻を示している。
【００７４】
時刻情報の下には、ファイル管理サーバのＩＰアドレスと、「ディレクトリ名＋ファイル名」とが交互に設定されている。「ディレクトリ名＋ファイル名」は、ファイルを管理するファイル管理サーバを判断するときの判定基準として使用される。
【００７５】
図１０は、ファイル管理サーバが管理するファイルの定義例を示す図である。例えばストレージ装置３００内のファイルの一覧が、「ディレクトリ名＋ファイル名」の文字列でソートされる。そして各ファイル管理サーバには、ソート後のファイル一覧６４のうちの、一定の範囲内の連続するファイルが、管理対象として割り当てられる。
【００７６】
文字列のソートでは、まず、文字列内の先頭の文字が比較される。比較された文字の文字コードの値が小さい文字列ほど、ソート後に上位に設定される。先頭の文字が同じ複数の文字列がある場合、後続の文字が順次比較され、比較される文字が最初に異なる文字となったとき、その文字の文字コードの値の大小が比較される。そして、文字コードの値が小さい方の文字列が上位、文字コードの値が大きい方の文字列が下位となる。
【００７７】
例えば特定のＩＰアドレスに対応するファイル管理サーバは、そのＩＰアドレスの上に設定されている「ディレクトリ名＋ファイル名」に対応するファイルの次のファイルが、管理対象のファイルの範囲の先頭である。またそのＩＰアドレスの下に設定されている「ディレクトリ名＋ファイル名」に対応するファイルが、管理対象のファイルの範囲の末尾である。図１０の例では、ファイル管理サーバ「Ｂ」が管理するのは、ファイル一覧６４において「/data/data-file5」から「/etc/etc-file6」までのファイルである。
【００７８】
ＩＰアドレスの上に「ディレクトリ名＋ファイル名」が設定されていない場合、そのＩＰアドレスに対応するファイル管理サーバは、ソート後のファイル一覧６４の先頭のファイルを、管理対象のファイルの範囲の先頭とする。したがって、図１０に示すファイル管理サーバ「Ａ」が管理するのは、ファイル一覧６４において「/apl/apl-file1」から「/data/data-file4」までのファイルである。
【００７９】
ＩＰアドレスの下に「ディレクトリ名＋ファイル名」が設定されていない場合、そのＩＰアドレスに対応するファイル管理サーバは、ソート後のファイル一覧６４の末尾のファイルを、管理対象のファイルの範囲の末尾とする。したがって、図１０に示すファイル管理サーバ「Ｚ」が管理するのは、ファイル一覧６４において「/work/work-file10」から「/work/work-file1000」までのファイルである。
【００８０】
このように、共有ファイル定義６０において、各ファイル管理サーバが管理するファイルが、時間帯ごとに定義される。しかも、同一時間帯での各ファイル管理サーバでの排他制御の負荷が均等になるように、各ファイル管理サーバが管理するファイルが決定される。
【００８１】
以下に、共有ファイル定義の生成処理について詳細に説明する。
図１１は、共有ファイル定義生成処理の手順の一例を示すフローチャートの前半である。
【００８２】
［ステップＳ１０１］コントローラ１２０は、実行予定のすべてのジョブについての、ジョブの開始時刻と終了時刻とを採取する。例えばコントローラ１２０は、ジョブスケジューラ１１０からすべてのジョブの実行予定を示す実行スケジュール５０（図８参照）を受け取り、その実行スケジュール５０からジョブの開始時刻と終了時刻とを取得する。
【００８３】
［ステップＳ１０２］コントローラ１２０は、ファイル一覧を作成する。ファイル一覧は、実行するジョブで使用されるファイルをリストアップしたものである。ファイル一覧には、例えば、そのファイルを実行するジョブや、そのジョブの開始時刻・終了時刻を設定することができる。ただし、ファイルにアクセスしないジョブに関する情報は、ファイル一覧への設定対象から除外される。なお、ファイル一覧作成処理の詳細は後述する（図１３参照）。
【００８４】
［ステップＳ１０３］コントローラ１２０は、ファイル一覧の各ファイルのレコードを、そのファイルを実行するジョブの開始時刻を付与したレコードと、ファイルを実行するジョブの終了時刻を付与したレコードとに分ける。そしてコントローラは、ファイル一覧の各レコードを、開始時刻および終了時刻の値によって、昇順にソートする。
【００８５】
［ステップＳ１０４］コントローラ１２０は、変数ｎに「０」を設定する。変数ｎは、後述する配列Ｂ［ｎ］のインデックスとして使用される。
［ステップＳ１０５］コントローラ１２０は、ファイル一覧の上位から順に、開始時刻または終了時刻の分単位までの値が同じレコードを選択し、そのレコードの数を変数Ｎ１に設定する。すなわち、開始時刻または終了時刻が、秒以下の値を無視したときに同じ時刻となるレコードが選択され、選択されたレコード数が変数Ｎ１に設定される。変数Ｎ１の値は、１分間隔の時間帯内に実行されるファイルの排他制御要求の数を表している。なお、すでにファイル一覧に設定されているすべての開始時刻または終了時刻についてレコード数のカウントが完了している場合、新たなレコードは選択されず、変数Ｎ１には０が設定される。
【００８６】
［ステップＳ１０６］コントローラ１２０は、変数Ｎ１の値が０か否かを判断する。変数Ｎ１の値が０の場合、ファイル一覧に設定されているすべての開始時刻または終了時刻について、同じ時間帯のレコード数のカウントが完了している。変数Ｎ１の値が０であれば、処理がステップＳ１２１（図１５参照）に進められる。変数Ｎ１の値が０でなければ、処理がステップＳ１０７に進められる。
【００８７】
［ステップＳ１０７］コントローラ１２０は、変数Ｎ１の値が６０００以下か否かを判断する。変数Ｎ１の値が６０００以下であれば、処理がステップＳ１０５に進められる。変数Ｎ１の値が６０００を超えている場合、処理がステップＳ１０８に進められる。
【００８８】
［ステップＳ１０８］コントローラ１２０は、ステップＳ１０５で選択したレコードの範囲を、配列Ｂ［ｎ］に設定する。選択したレコードの範囲は、例えば、選択したレコードのうちの先頭のレコードの位置と、そのレコードと同じ時間帯の時刻が設定されたレコード数（変数Ｎ１に設定されている）との組で表される。
【００８９】
［ステップＳ１０９］コントローラ１２０は、変数ｎの値に１を加算し、処理をステップＳ１０５に進める。
このようにして、ファイル一覧の格納情報から、同一時間帯にファイルの排他制御要求が集中する箇所が導出される。図１１の例では、１分幅の時間帯ごとに、その時間帯内の開始時刻または終了時刻が設定されたレコードの個数がカウントされる。各レコードの開始時刻または終了時刻は、そのレコードに示されるファイルの、排他獲得または排他解除の排他制御要求の出力時刻を示している。従って、ファイル一覧において、開始時刻または終了時刻が特定の時間帯内であるレコードの数は、その時間帯内に発生する排他制御要求の数を表している。
【００９０】
そして、ある時間帯内に発生する排他制御要求の数が所定数を超えた場合に、該当する時間帯において排他制御要求が集中すると判断される。図１１の例では、１分間内の排他制御要求の数が６０００を超えた場合に、処理が集中すると判断している（ステップＳ１０７）。６０００という値は、１つのファイル管理サーバがボトルネックとならずに処理できる、１分あたりの排他制御要求数の最大値であり、以下のようにして導き出している。
【００９１】
ファイル管理処理には、オンライン処理と同様にＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）を利用できる。ここで、１秒当たり処理可能なオンライン数（ＴＰＳ：Transaction Per Second）が１０００程度であるとする。すると、排他制御に対してＣＰＵの１割を使用するとして、排他制御に１００トランザクション分の資源が割り当てられる。すると１秒当たり１００の排他制御要求を処理することができ、１分あたりに換算して６０００となる。
【００９２】
排他制御要求数が６０００を超えた時間帯については、ステップＳ１０８に示すように、その時間帯内の開始時刻または終了時刻が設定されたレコードの範囲が、配列Ｂ［ｎ］に設定される。配列Ｂ［ｎ］に設定された情報は、共有ファイル定義内の時間帯別定義情報の生成に使用される。
【００９３】
他方、排他制御要求数が６０００以下の時間帯については、１つのファイル管理サーバに排他制御要求が集中したとしてもボトルネックにはならない。そのような場合、図１１のステップＳ１０７で「ＹＥＳ」判定となり、ステップＳ１０８の処理は行われない。その結果、排他制御要求数が６０００以下の時間帯内のレコードの範囲については、配列Ｂ［ｎ］に設定されず、その時間帯は、時間帯別定義情報の生成対象から除外される。このように、排他制御要求がボトルネックとならないことが分かっている時間帯は、例えば、直前に適用していた時間帯別定義情報が継続して適用される。
【００９４】
次に、ステップＳ１０２に示したファイル一覧作成処理について詳細に説明する。
図１２は、ファイル一覧作成処理の手順の一例を示すフローチャートである。
［ステップＳ１１１］コントローラ１２０は、実行スケジュール５０から、１日に動作するジョブのうちの未処理のジョブを１つ選択し、そのジョブのジョブ名を変数Ｃに設定する。
【００９５】
［ステップＳ１１２］コントローラ１２０は、ステップＳ１１１においてジョブが選択されたか否かを判断する。例えば実行スケジュール５０に設定されているすべてのジョブに対する処理が終了した場合、ステップＳ１１１ではジョブが選択されない。ジョブが選択されていない場合、ファイル一覧作成処理が終了する。ジョブが選択された場合、処理がステップＳ１１３に進められる。
【００９６】
［ステップＳ１１３］コントローラ１２０は、ジョブ名に対応するジョブ定義を取得する。例えば管理サーバ１００は、予め入力されたジョブ定義をメモリ１０２に保持する。そしてコントローラ１２０は、メモリ１０２から、取得したジョブ名が設定されたジョブ定義を取得する。
【００９７】
［ステップＳ１１４］コントローラ１２０は、取得したジョブ定義内に設定されているファイルのうちの未選択のファイルを１つ選択し、そのファイルの「ディレクトリ名＋ファイル名」を変数Ｄに設定する。
【００９８】
［ステップＳ１１５］コントローラ１２０は、ステップＳ１１４においてファイルが選択されたか否かを判断する。例えば取得したジョブ定義内のすべてのファイルが選択済みとなった場合、その後のステップＳ１１４ではファイルが選択されない。ファイルが選択されなかった場合、処理がステップＳ１１１に進められる。ファイルが選択された場合、処理がステップＳ１１６に進められる。
【００９９】
［ステップＳ１１６］コントローラ１２０は、ファイル一覧における、変数Ｃで示されるジョブ名と、変数Ｄに設定された「ディレクトリ名＋ファイル名」を設定する。またコントローラ１２０は、実行スケジュール５０から、変数Ｃで示されたジョブ名に対応する開始時刻と終了時刻とを取得する。そしてコントローラ１２０は、取得した開始時刻と終了時刻とを、変数Ｃで示されるジョブ名に対応付けて、ファイル一覧に設定する。その後、処理がステップＳ１１４に進められる。
【０１００】
このようにして、実行する各ジョブで使用するファイルのリストであるファイル一覧が作成される。
図１３は、ファイル一覧の一例を示す図である。ファイル一覧６４には、ジョブ名、ディレクトリ名、ファイル名、開始時刻、および終了時刻が設定されている。ジョブ名は、実行されるジョブの名称である。ディレクトリ名は、実行されるジョブで使用されるファイルが格納されたディレクトリの名称である。ファイル名は、実行されるジョブで使用されるファイルの名称である。開始時刻は、ジョブの開始時刻である。ジョブの開始時刻に、そのジョブで使用されるファイルの排他獲得を示す排他制御要求が出力される。終了時刻は、ジョブの終了時刻である。ジョブの終了時刻に、そのジョブで使用されるファイルの排他解除を示す排他制御要求が出力される。
【０１０１】
作成されたファイル一覧６４の各レコードは、図１１のステップＳ１０３において、開始時刻は設定されているが、終了時刻は設定されていないレコードと、終了時刻は設定されているが、開始時刻は設定されていないレコードとに分離される。そして、開始時刻または終了時刻に設定された時刻により、ファイル一覧６４内のレコードがソートされる。
【０１０２】
図１４は、ソート後のファイル一覧の一例を示す図である。ファイル一覧６４内の各レコードを時刻でソートすることにより、時刻が早い順に、レコードが並べられる。そして同じ時刻（分単位まで）が設定されたレコードの数が数えられる。図１４の例では、２時１７分が設定されたレコードが９０００個、２：２０分が設定されたレコードが６０００個である。一分間に６０００を超える排他制御要求が出力されたときに、排他制御がボトルネックとなる可能性がある場合、２時１７分の１分間の時間帯が、排他制御要求の振り分け最適化の対象とされる。排他制御要求の振り分け最適化の対象となった時間帯に対応する、ファイル一覧６４内のレコードの範囲が、配列Ｂ［ｎ］に設定される。
【０１０３】
次に、配列Ｂ［ｎ］に設定された情報に基づき、時間帯別定義情報が生成され、共有ファイル定義に設定される。
図１５は、共有ファイル定義生成処理の手順の一例を示すフローチャートの後半である。
【０１０４】
［ステップＳ１２１］コントローラ１２０は、配列Ｂ［ｎ］をｎ＝０から順に取得する。配列Ｂ［ｎ］には、ファイル管理サーバの負荷が大きくなる時間帯において、排他制御の対象となるファイルを示すレコードの範囲が、変数Ａと変数Ｎ１とで示されている。変数Ａは、ファイル一覧内の該当する複数のレコードのうちの先頭のレコードの位置を示しており、変数Ｎ１は、該当するレコード数を示している。そこで、コントローラ１２０は、ファイル一覧内の変数Ａで示される位置のレコードから順に、変数Ｎ１に示された数のレコードを取得する。
【０１０５】
［ステップＳ１２２］コントローラ１２０は、ステップＳ１２１において配列Ｂ［ｎ］に設定された情報が取得できたか否かを判断する。例えば、ｎに対応する要素が配列Ｂ［ｎ］に登録されていない場合、ステップＳ１２１において情報が取得できない。情報が取得できなかった場合、コントローラ１２０は、配列Ｂ［ｎ］に登録されたすべての要素に関して処理が完了したものと認識し、共有ファイル定義生成処理を終了する。情報が取得できた場合、処理がステップＳ１２３に進められる。
【０１０６】
［ステップＳ１２３］コントローラ１２０は、取得した情報で示された範囲のレコードをファイル一覧から取得し、各レコードを「ディレクトリ名＋ファイル名」でソートする。
【０１０７】
［ステップＳ１２４］コントローラ１２０は、取得したファイルの数をファイル管理サーバ数で割った商を、変数Ｎ２に設定する。なおコントローラ１２０は、ファイル数がファイル管理サーバ数で割り切れなかった場合、例えば除算の商に１を加えた値を、変数Ｎ２に設定してもよい。
【０１０８】
［ステップＳ１２５］コントローラ１２０は、取得したレコードに基づく時間帯別定義情報を、共有ファイル定義に設定する。例えばコントローラ１２０は、取得したレコードそれぞれに設定されている開始時刻または終了時刻のうちの最先の時刻を、共有ファイル定義に追加する。次にコントローラ１２０は、ソートされたレコードのうちの、先頭から、Ｎ２、Ｎ２×２、・・・番目のレコードを特定し、特定したレコードからディレクトリ名ファイル名を抽出する。そしてコントローラ１２０は、ファイル管理サーバのＩＰアドレスと取得した「ディレクトリ名＋ファイル名」とを交互に追加する。例えばコントローラ１２０は、共有ファイル定義の時刻情報の下に、１台のファイル管理サーバのＩＰアドレスを設定する。次にコントローラ１２０は、Ｎ２番目のレコードから抽出された「ディレクトリ名＋ファイル名」を設定する。その後、ＩＰアドレスの設定、Ｎ２×２番目のレコードの「ディレクトリ名＋ファイル名」の設定、ＩＰアドレスの設定という順に、共有ファイル定義に情報が設定される。その結果、ファイル管理定義に、配列Ｂ［ｎ］に基づく時間帯別定義情報が追加される。時間帯別定義情報の追加が完了すると処理がステップＳ１２１に進められる。このような時間帯別定義情報の追加処理が、配列Ｂ［ｎ］に設定された要素に対して実行されることで、共有ファイル定義が生成される。
【０１０９】
なお、コントローラ１２０は、取得したレコードそれぞれに設定されている開始時刻または終了時刻のうちの最先の時刻を跨いで実行されるジョブが存在しない場合のみ、新たな時間帯別定義情報を設定するようにしてもよい。ある時刻を跨いで実行されるジョブとは、その時刻よりも早く実行が開始され、その時刻の後に実行が終了するジョブである。このようなジョブが存在しない場合のみ新たな時間帯別定義情報を設定することで、あるジョブがファイルを占有している間に、そのファイルの排他制御を行うファイル管理サーバが切り替わることを抑止できる。
【０１１０】
なお、排他制御中のファイルを管理するファイル管理サーバの変更を可能とするように、複数のファイル管理サーバが連携動作している場合もあり得る。このような場合には、取得したレコードそれぞれに設定されている開始時刻または終了時刻のうちの最先の時刻を跨いで実行されるジョブが存在しても、その時刻を適用開始時刻とする時間帯別定義情報を設定することができる。
【０１１１】
このようにして、ディレクトリをどのファイル管理サーバで管理するのかが決定され、共有ファイル定義が自動生成される。以下、図１６、図１７を参照して、図１４に示す、２時１７分のレコードに基づく時間帯別定義情報の生成例を示す。
【０１１２】
図１６は、過大な負荷がかかる時間帯のレコードのソート結果を示す図である。図１４に示すファイル一覧６４から、開始時刻または終了時刻が、負荷が過大となる時間帯（２時１７分の１分間）に含まれるレコードが抽出され、「ディレクトリ名＋ファイル名」の文字列でソートされる。ここで、ファイル管理サーバ数が「３」の場合を想定する。抽出されるレコード数は９０００であるため、レコード数をファイル管理サーバ数で除算すると、３０００となる。するとソート後の３０００番目のレコード６５と６０００番目のレコード６６とが特定される。そして特定されたレコード６５，６６が、２時１７分の時間帯別定義情報として、共有ファイル定義に設定される。
【０１１３】
図１７は、共有ファイル定義の一例を示す図である。共有ファイル定義７０には、２時１７分を適用開始時刻とする時間帯別定義情報７１が設定されている。時間帯別定義情報７１には、図１６に示す複数のレコードのうち、特定されたレコード６５，６６の「ディレクトリ名＋ファイル名」が、ファイル管理サーバのＩＰアドレスの間に挿入されている。
【０１１４】
このような共有ファイル定義７０に設定された時間帯別定義情報７１は、適用開始時刻になると、実行サーバ２００，２００ａ，２００ｂ，・・・に配信される。
図１８は、共有ファイル定義配信処理の手順の一例を示すフローチャートである。
【０１１５】
［ステップＳ１３１］管理サーバ１００のコントローラ１２０は、共有ファイル定義７０の先頭から順に、未選択の時刻を１つ選択する。
［ステップＳ１３２］コントローラ１２０は、ステップＳ１３１において時刻が選択されたか否かを判断する。例えば共有ファイル定義７０に設定されている時刻のすべてが選択済みになった後は、ステップＳ１３１において時刻が選択されない。時刻が選択されなかった場合、共有ファイル定義配信処理が終了する。時刻が選択された場合、処理がステップＳ１３３に進められる。
【０１１６】
［ステップＳ１３３］コントローラ１２０は、現在時刻を取得する。例えばコントローラ１２０は、管理サーバ１００内の時刻管理機能から現在時刻を取得する。
［ステップＳ１３４］コントローラ１２０は、選択した時刻と現在時刻が一致したか否かを判断する。一致した場合、処理がステップＳ１３５に進められる。一致しない場合、処理がステップＳ１３３に進められる。
【０１１７】
［ステップＳ１３５］コントローラ１２０は、選択した時刻に対応する時間帯別定義情報を、各実行サーバ２００，２００ａ，２００ｂ，・・・に配信する。配信された時間帯別定義情報は、各実行サーバ２００，２００ａ，２００ｂ，・・・において、メモリに展開される。その後、処理がステップＳ１３１に進められる。
【０１１８】
共有ファイル定義内の最初の時間の時間帯別定義情報を配信した後、コントローラ１２０は、実行スケジュール５０に従って、ジョブの実行指示を、実行サーバに送信する。すると実行サーバでジョブが実行される。
【０１１９】
図１９は、実行サーバによるジョブ制御処理の手順の一例を示すフローチャートである。以下、実行サーバ２００がジョブ制御を行う場合を例に採り、図１９の処理を説明する。
【０１２０】
［ステップＳ２０１］ジョブ制御部２１１は、管理サーバ１００からのジョブの実行指示を受信する。ジョブの実行指示には、例えば実行するジョブのジョブ定義が含まれる。
［ステップＳ２０２］ジョブ制御部２１１は、ファイル管理部２３０にファイルの排他獲得を依頼する。例えばジョブ制御部２１１は、実行するジョブのジョブ定義から、そのジョブで使用するファイルの「ディレクトリ名＋ファイル名」を取得する。そしてジョブ制御部２１１は、「ディレクトリ名＋ファイル名」により排他制御対象のファイルを指定した排他獲得の依頼を、ファイル管理部２３０に送信する。
【０１２１】
［ステップＳ２０３］ジョブ制御部２１１は、ジョブ定義で指定されたアプリケーションを実行する。この際、ジョブ制御部２１１は、例えばジョブ定義に示されるパラメータなどの情報をアプリケーションに入力することで、実行するジョブの内容をアプリケーションに指示する。
【０１２２】
［ステップＳ２０４］ジョブ制御部２１１は、アプリケーションによるジョブの実行が完了すると、ファイルの排他解除依頼をファイル管理部２３０に送信する。その後、ジョブ制御が終了する。
【０１２３】
このようにして、ジョブ実行開始時と終了時に、それぞれファイルの排他制御の依頼が出力される。出力された排他制御要求に基づいて、ファイル管理部２３０によって、排他制御対象のファイルを管理するファイル管理サーバに、排他制御要求が送信される。
【０１２４】
図２０は、排他制御要求処理の手順の一例を示すフローチャートである。
［ステップＳ２１１］ファイル管理部２３０は、ジョブ制御部２１１からの排他制御要求を受信する。
【０１２５】
［ステップＳ２１２］ファイル管理部２３０は、排他制御要求の内容を判断する。排他獲得依頼であれば、処理がステップＳ２１３に進められる。排他解除依頼であれば、処理がステップＳ２１６に進められる。
【０１２６】
［ステップＳ２１３］依頼内容が排他獲得の場合、ファイル管理部２３０は、ジョブ定義から、ジョブで使用するファイルの「ディレクトリ名＋ファイル名」を取得する。
［ステップＳ２１４］ファイル管理部２３０は、ジョブで使用するファイルを、管理するファイル管理サーバごとに分類する。この処理の詳細は後述する（図２１参照）。
【０１２７】
［ステップＳ２１５］ファイル管理部２３０は、ジョブで使用するファイルを管理するファイル管理サーバそれぞれに、排他獲得の排他制御を依頼する。この処理の詳細は後述する（図２３参照）。その後、排他制御要求処理が終了する。
【０１２８】
［ステップＳ２１６］依頼内容が排他解除の場合、ファイル管理部２３０は、ジョブで使用したファイルを管理するファイル管理サーバそれぞれに、排他解除の排他制御を依頼する。この処理の詳細は後述する（図２４参照）。その後、排他制御要求処理が終了する。
【０１２９】
次に、ファイル分類処理の詳細について説明する。
図２１は、ファイル分類処理の手順の一例を示すフローチャートである。
［ステップＳ２２１］ファイル管理部２３０は、ステップＳ２１３（図２０参照）で取得した「ディレクトリ名＋ファイル名」のうちの、未処理の「ディレクトリ名＋ファイル名」の１つを変数Ｅに設定する。
【０１３０】
［ステップＳ２２２］ファイル管理部２３０は、ステップＳ２２１の処理により変数Ｅに情報が設定されたか否かを判断する。例えば取得した「ディレクトリ名＋ファイル名」のすべてが選択済みとなった後にステップＳ２２１の処理が行われた場合、変数Ｅには情報が設定されない。情報が設定されていない場合、ファイル分類処理が終了する。情報が設定されている場合、処理がステップＳ２２３に進められる。
【０１３１】
［ステップＳ２２３］ファイル管理部２３０は、予めメモリに展開されている時間帯別定義情報に示されるファイル管理サーバのうちの、未選択のファイル管理サーバの１つを選択し、変数Ｓに設定する。例えば時間帯別定義情報には、ＩＰアドレスによってファイル管理サーバが示されている。そこでファイル管理部２３０は、時間帯別定義情報からファイル管理サーバのＩＰアドレスを１つ選択する。さらにファイル管理部２３０は、選択したファイル管理サーバ（ＩＰアドレス）の下の「ディレクトリ名＋ファイル名」を変数Ｆに設定する。
【０１３２】
［ステップＳ２２４］ファイル管理部２３０は、変数Ｆに情報が設定されたか否かを判断する。例えばステップＳ２２３で選択したファイル管理サーバが、時間帯別定義情報内の最後のファイル管理サーバの場合、その下には「ディレクトリ名＋ファイル名」は設定されていない。このような場合、変数Ｆには情報が設定されない。情報が設定されていない場合、処理がステップＳ２２６に進められる。情報が設定されていれば、処理がステップＳ２２５に進められる。
【０１３３】
［ステップＳ２２５］ファイル管理部２３０は、変数Ｅに設定された「ディレクトリ名＋ファイル名」と変数Ｆに設定された「ディレクトリ名＋ファイル名」との、文字列を比較する。例えばファイル管理部２３０は、文字列を比較し、文字列をソートしたときに、どちらの「ディレクトリ名＋ファイル名」が上位となるかを判断する。文字列のソートでは、例えば文字列の先頭から順位文字コードが比較され、最初に異なる文字コードとなったとき、文字コードの値が小さい方が上位となる。変数Ｅに設定された文字列の方が下位（Ｅの文字コードの方が値が大きい）となるのであれば、処理がステップＳ２２３に進められる。文字列が同じか、あるいは変数Ｅに設定された文字列の方が上位（Ｆの文字コードの方が値が大きい）となるのであれば、処理がステップＳ２２６に進められる。
【０１３４】
［ステップＳ２２６］ファイル管理部２３０は、変数Ｓに設定されているサーバに対応する排他依頼テーブルがあるか否かを判断する。該当する排他依頼テーブルがあれば、処理がステップＳ２２８に進められる。該当する排他依頼テーブルがなければ、処理がステップＳ２２７に進められる。
【０１３５】
［ステップＳ２２７］ファイル管理部２３０は、変数Ｓに設定されているサーバに対応する排他依頼テーブルを作成する。
［ステップＳ２２８］ファイル管理部２３０は、変数Ｓに対応する排他依頼テーブルに変数Ｅの「ディレクトリ名＋ファイル名」を追加する。その後、処理がステップＳ２２１に進められる。
【０１３６】
このようにして、ファイル管理サーバごとの排他依頼テーブルが作成され、ジョブで使用するファイルの「ディレクトリ名＋ファイル名」が、いずれかの排他依頼テーブルに設定される。
【０１３７】
図２２は、排他依頼テーブルの一例を示す図である。排他依頼テーブル８１，８２，・・・は、ファイル管理サーバごとに設けられている。例えば排他依頼テーブル８１，８２，・・・は、ファイル管理サーバのＩＰアドレスに対応付けられている。そして、排他依頼テーブル８１，８２，・・・には、実行するジョブで使用するファイルのうち、対応するファイル管理サーバで管理するファイルの「ディレクトリ名＋ファイル名」が設定されている。
【０１３８】
このような排他依頼テーブルをファイル管理サーバに送信することで、複数のファイルに関する排他制御の依頼を一括で行うことができる。
図２３は、排他獲得の排他制御要求の手順の一例を示すフローチャートである。
【０１３９】
［ステップＳ２３１］ファイル管理部２３０は、未選択の排他依頼テーブルのうちの１つを選択する。
［ステップＳ２３２］ファイル管理部２３０は、ステップＳ２３１において排他依頼テーブルが選択されたか否かを判断する。例えばすべての排他依頼テーブルが選択済みであり、ステップＳ２３１を実行する際に、未選択の排他依頼テーブルが残っていない場合、排他依頼テーブルは選択されない。排他依頼テーブルが選択されていなければ、排他獲得の排他制御要求処理が終了する。排他依頼テーブルが選択されていれば、処理がステップＳ２３３に進められる。
【０１４０】
［ステップＳ２３３］ファイル管理部２３０は、選択された排他依頼テーブルに対応するファイル管理サーバに、その排他依頼テーブルに設定されているファイルの排他獲得の排他制御要求を送信する。例えばファイル管理部２３０は、排他依頼テーブルに対応するＩＰアドレスを宛先として、ジョブ定義に示されるジョブ名および排他依頼テーブルを含む排他獲得依頼を送信する。その後、処理がステップＳ２３１に進められる。
【０１４１】
ジョブで使用するファイルの排他獲得が完了すると、実行サーバでジョブが実行される。そしてジョブの実行が完了すると、排他解除の排他制御要求が行われる。
図２４は、排他解除の排他制御要求の手順の一例を示すフローチャートである。
【０１４２】
［ステップＳ２４１］ファイル管理部２３０は、未選択の排他依頼テーブルのうちの１つを選択する。
［ステップＳ２４２］ファイル管理部２３０は、ステップＳ２４１において排他依頼テーブルが選択されたか否かを判断する。例えばすべての排他依頼テーブルが選択済みであり、ステップＳ２４１を実行する際に、未選択の排他依頼テーブルが残っていない場合、排他依頼テーブルは選択されない。排他依頼テーブルが選択されていなければ、排他解除の排他制御要求処理が終了する。排他依頼テーブルが選択されていれば、処理がステップＳ２４３に進められる。
【０１４３】
［ステップＳ２４３］ファイル管理部２３０は、選択された排他依頼テーブルに対応するファイル管理サーバに、その排他依頼テーブルに設定されているファイルの排他解除の排他制御要求を送信する。例えばファイル管理部２３０は、排他依頼テーブルに対応するＩＰアドレスを宛先として、ジョブ定義に示されるジョブ名および排他依頼テーブルを含む排他解除依頼を送信する。その後、処理がステップＳ２４１に進められる。
【０１４４】
次に、ファイル管理サーバによる排他制御処理について説明する。
図２５は、排他制御処理の手順の一例を示すフローチャートである。
［ステップＳ３０１］ファイル管理サーバ４００のファイル排他制御部４１１は、いずれかの実行サーバから、排他獲得または排他解除の排他制御要求を受信する。排他制御要求には、排他制御の対象となるファイルを示す排他依頼テーブルと、それらのファイルを使用するジョブを示すジョブ名とが含まれる。
【０１４５】
［ステップＳ３０２］ファイル排他制御部４１１は、制御対象のファイルのうち、未選択のファイルを１つ選択する。
［ステップＳ３０３］ファイル排他制御部４１１は、ステップＳ３０２でファイルが選択されたか否かを判断する。例えばすべてのファイルが選択済みとなった後に、ステップＳ３０２の処理を実行すると、ファイルが選択されない。ファイルが選択されていない場合、排他制御処理が終了する。ファイルが選択されていれば、処理がステップＳ３０４に進められる。
【０１４６】
［ステップＳ３０４］ファイル排他制御部４１１は、排他制御を実行する。例えばファイル制御部４１１は、排他獲得の排他制御要求であれば、排他制御要求に含まれる排他依頼テーブルに示される「ディレクトリ名＋ファイル名」に対応する各ファイルの状態を、排他制御要求で示されるジョブによる占有状態にする。ファイル排他制御部４１１は、占有状態となったファイルに関し、そのファイルを占有するジョブを実行するアプリケーション以外からの排他制御要求や更新操作を抑止する。またファイル排他制御部４１１は、排他解除の排他制御要求であれば、排他制御要求に含まれる排他依頼テーブルに示される「ディレクトリ名＋ファイル名」に対応する各ファイルの状態を、解放状態にする。解放状態となったファイルは、占有状態が解除され、以後、任意のジョブによる占有が可能となる。
【０１４７】
［ステップＳ３０５］ファイル排他制御部４１１は、ステップＳ３０４の排他制御が成功したか否かを判断する。排他制御が成功した場合、処理がステップＳ３０２に進められる。成功していなければ、処理がステップＳ３０４に進められる。
【０１４８】
以上のようにして、分散システム環境でのファイルの排他制御を、適切に分散させることができ、ファイルの排他制御がボトルネックとなることが抑止される。その結果、システム全体を効率的に運用できる。
【０１４９】
しかも、ジョブ実行時には、ジョブで使用するファイルを管理するファイル管理サーバが自動で割り出され、そのファイル管理サーバでファイルの排他制御が行われる。このように、ファイルの排他要求の負荷の分散が自動で行われるため、ファイルの排他制御要求数の増大をユーザが意識する必要がなくなる。その結果、システム運用の人的負荷が軽減される。また排他制御要求の送信先の切り替え判断に、人の判断が介在しないため、人の判断の誤りによる不適切な排他制御要求の分散が行われることが抑止される。
【０１５０】
さらに第２の実施の形態では、例えば排他制御要求が所定数以上となる時間帯に限定して、排他制御要求の送信先の決定処理を行う。これにより、排他制御要求数が過大となる時間帯を適切に判定し、その時間帯における排他制御要求の送信先を適切に分散させることができる。しかも、排他制御要求数が過大となる時間帯だけ、排他制御要求の送信先の切り替えを行うようにすることで、排他制御が遅延するおそれのない時間帯におけるシステムの処理負荷を軽減できる。
【０１５１】
なお第２の実施の形態では、ファイルごとに、そのファイルの排他制御を行うファイル管理サーバを決定しているが、ディレクトリごとに、そのディレクトリ内のファイルの排他制御を行うファイル管理サーバを決定することもできる。ただし、ディレクトリ単位での排他制御の分散を行うと、すべてのファイルが同一ディレクトリに配置されている場合に、排他制御の処理を分散できない。そのため、同一ディレクトリに大量のファイルが格納されている場合には、ファイルごとにファイルの排他制御を行うファイル管理サーバを決定するのが適切である。
【０１５２】
また第２の実施の形態では、ジョブスケジューラ１１０がジョブの実行スケジュール５０を作成しているが、ユーザが任意に編集した実行スケジュール５０をコントローラ１２０に入力することもできる。
【０１５３】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１５４】
１  ストレージ装置
２，３  ファイル管理サーバ
４，５，６  実行サーバ
７  管理サーバ
７ａ  実行スケジュール
７ｂ  使用ファイル情報
７ｃ  送信先情報
【図１】
2014241121.tif 000003
【図２】
2014241121.tif 000004
【図３】
2014241121.tif 000005
【図４】
2014241121.tif 000006
【図５】
2014241121.tif 000007
【図６】
2014241121.tif 000008
【図７】
2014241121.tif 000009
【図８】
2014241121.tif 000010
【図９】
2014241121.tif 000011
【図１０】
2014241121.tif 000012
【図１１】
2014241121.tif 000013
【図１２】
2014241121.tif 000014
【図１３】
2014241121.tif 000015
【図１４】
2014241121.tif 000016
【図１５】
2014241121.tif 000017
【図１６】
2014241121.tif 000018
【図１７】
2014241121.tif 000019
【図１８】
2014241121.tif 000020
【図１９】
2014241121.tif 000021
【図２０】
2014241121.tif 000022
【図２１】
2014241121.tif 000023
【図２２】
2014241121.tif 000024
【図２３】
2014241121.tif 000025
【図２４】
2014241121.tif 000026
【図２５】
2014241121.tif 000027