# HULFTとユーザージョブ間での排他制御について

業務アプリケーションを作成したときに、HULFTとの間でファイルの排他制御を行う必要が発生した場合、以下の方法で行うことができます。

配信ファイルの削除を指定するときの配信ファイルおよび集信ファイルに対するロックの方法としてHULFTでは、ミューテックスオブジェクト（詳細はWin32SDKまたはVisual C++参照）を使用しています。

業務アプリケーションで配信ファイルまたは集信ファイルに対して排他制御を行いたい場合は、同じようにミューテックスオブジェクトを使用し、CreateMutex()関数、ReleaseMutex()関数を使用してください。

注意

- ミューテックスオブジェクトの所有権を獲得した後でファイルに対する処理を行ってください。

- 集信完了通知の設定が“正常時ジョブ完了”で、集信後ジョブで集信ファイルにアクセスする場合は、すでにHULFTでミューテックスオブジェクトによるロックをかけているので、集信後ジョブでミューテックスオブジェクトによるロックをかけないでください。

- ミューテックスオブジェクトによる排他制御は、ローカルファイルに対してのみ有効になります。HULFT10のServerグレードを導入した環境で扱うネットワークファイルには適用されません。

<ミューテックスの命名規約>

ミューテックス名は以下の命名規約で作成されます。

ミューテックス名 = 「Global\」＋「HUL」＋「配信ファイル名または集信ファイル名」

「Global\」

  ミューテックス名の先頭に“Global\”を指定します。

「HUL」

  固定文字列“HUL”を指定します。

「配信ファイル名または集信ファイル名」

  配信管理情報の配信ファイル名、または集信管理情報の集信ファイル名をフルパスで指定します。

  ただし、“\”は“?”に変更してください。

  また、アルファベットの大文字と小文字を区別して指定してください。

<ミューテックス名の例>

配信ファイル名 = 「c:\temp\sendfile.txt」の場合

    Global\HULc:?temp?sendfile.txt