# ネットワークファイルの排他制御

DataMagicでは、データ加工の入出力ファイルなどで、ネットワーク上にあるファイルを利用できます。ネットワークファイル機能とは、ネットワーク上にあるファイルにアクセスし、そのファイルに対してDataMagicが排他制御を掛ける機能です。DataMagicでは、DataMagicがインストールされているホスト(DataMagicホスト)ではなく、ネットワーク上のほかのホストで管理されるファイルを「ネットワークファイル」といいます。

また、DataMagicの各機能からネットワークファイルにアクセスする際、対象のファイルに対して独自の排他制御を掛けることができます。この排他制御の機能を、「ネットワークファイルロック」といいます。ロックされたファイルにアクセスしようとすると、即座にエラーになります。アクセスの処理が終了すると、ネットワークファイルはアンロックされます。

図6.2 ネットワークファイル機能の概要

ネットワークファイルロックを有効にすることで、ネットワークファイルに対する処理で、データの整合性が保証されます。また、実行前に入力データをネットワーク上からローカルのホストにコピーしたり、実行後に出力データをファイルサーバへ保存し直したりする手間を削減できます。そのため、処理対象となるファイルの運用管理が容易になります。ネットワークファイルのロック方法については、「(5) ネットワークファイルロックの設定について」を参照してください。

また、ネットワークファイル機能を使用する前に、あらかじめ「(7) 注意事項」を参照し、ネットワークファイルを扱う場合の注意事項を確認してください。

(1) ネットワークファイル機能の運用例

ネットワークファイル機能を利用して、ファイルサーバに格納されているデータを加工する運用例を次に示します。

図6.3 ネットワークファイル機能の運用例

(2) パスの指定方法

ネットワークファイルのパスを指定する場合は、画面のファイル名を指定する項目に、次に示す書式で指定してください。

注意

Windowsの場合は、必ずUNC(Universal Naming Convention)表記に従って記述してください。また、ネットワークドライブは指定できません。

(3) 前提条件とネットワークファイル機能導入確認ツール

DataMagicでネットワークファイル機能を利用するための前提条件について説明します。

なお、ネットワーク上のファイルサーバがここで説明する前提条件を満たしているかどうかを、「ネットワークファイル機能導入確認ツール」で確認できます。ネットワークファイル機能を利用してDataMagicを運用したい場合、このツールを入手して事前に確認してください。このツールは、次に示す弊社ホームページのDataMagicの動作環境を記載するページから入手できます。

URL: https://www.hulft.com

a) OS共通の前提条件

対象パスにアクセス権限が設定されていること。

  次に示すパスに対して、「読み込み・書き込み権限」が設定されている必要があります。

  - 対象のネットワークファイルおよびネットワークパス

  - システム動作環境設定ファイル（huledenv.conf）の「HULFT製品間共有環境設定パス(hulsharepath)」に指定したディレクトリのパス

  注意

  以下のファイルについては「読み込み権限」のみの設定でも問題ありません。

  - 入力ファイル

  - マッチングファイル

  - 仮想テーブルに指定するファイル

  - CSV情報詳細の項目取り込み画面で指定するファイル

b) UNIX/Linux固有の前提条件

ファイルサーバがNFS version 3(NFS v3)をサポートしていること。

  ネットワークファイルを管理するファイルサーバが、分散ファイルプロトコル「NFS」のversion 3(NFS v3)以上をサポートしている必要があります。

対象ファイルとパスへの属性キャッシュが無効になっていること。

  対象となるファイルが格納されているディレクトリをマウントする際にNFSクライアントの属性キャッシュを無効にしておく必要があります。

  Red Hat Enterprise Linux 5からマウントする場合のコマンド例を以下に示します。

  <マウントコマンド例>

      #
      # mount -o noac server:/data /mnt/server/data/
      #

c) Windows固有の前提条件

ファイルサーバがSMB/CIFSをサポートしていること。

  ネットワークファイルを管理するファイルサーバが、Windowsのファイル共有プロトコルSMB/CIFSをサポートしている必要があります。

oplock(Opportunistic Lock)が無効になっていること。

  ファイルサーバ上のファイルを、SMB/CIFS以外のファイル共有プロトコルを利用するアプリケーションと共有する場合、oplockを無効に設定する必要があります。oplockの設定方法は、使用しているOSまたはファイルサーバのマニュアルを参照してください。

  ファイル共有プロトコルがSMB/CIFSのアプリケーションとファイルサーバ上のファイルを共有する場合、oplockを無効に設定する必要はありません。

(4) 適用範囲

DataMagicでは、次の操作でネットワークファイルおよびパスを指定できます。

- 入出力ファイル

- マッチングファイル

- 仮想テーブル

- システム動作環境設定ファイル（huledenv.conf）の「HULFT製品間共有環境設定パス(hulsharepath)」の指定

- CSV情報詳細画面から開く、項目の取り込み画面のファイル名の指定

- 製品種別が「SQLite3」の場合、DB接続情報詳細画面のDB名

= 備考 =

システム動作環境設定ファイル（huledenv.conf）の「HULFT製品間共有環境設定パス(hulsharepath)」とは、ネットワークファイルに対して排他制御を行うために設定するパスです。詳細については、「(5) ネットワークファイルロックの設定について」を参照してください。

(5) ネットワークファイルロックの設定について

ネットワークファイルロックを有効にするためには、システム動作環境設定ファイル（huledenv.conf）の指定が必要です。システム動作環境設定ファイル（huledenv.conf）は、複数のDataMagic間、またはDataMagicとHULFTなどのHULFT Family製品の間など、システム構成に応じて指定する必要があります。

a) 複数のHULFT Family製品間でファイルを共有する場合

複数のDataMagicやHULFTからネットワークファイルを共有するには、各ホストでシステム動作環境設定ファイル（huledenv.conf）を指定します。排他制御管理ファイルが格納されているネットワーク上の任意のパスを、各ホストのシステム動作環境設定(DataMagicの場合は「HULFT製品間共有環境設定パス(hulsharepath)」）に指定してください。必ず同一のパスを指定してください。

注意

ファイルを共有するDataMagic間で「HULFT製品間共有環境設定パス」の指定が一致していない場合、排他制御が正しく実行されずに対象のファイルが破壊される可能性があります。

図6.4 ネットワークファイル機能の共有

「図6.4 」では、ホストAで動作しているHULFTとホストBで動作しているDataMagicで、ファイルサーバ上のファイル1を共有しています。「HULFT製品間共有環境設定パス(hulsharepath)」には、ネットワーク上の任意のディレクトリ「\\server\data」のパスを、各OSの表記形式に則って設定します。この設定により、ホストAまたはホストBからファイル1へのアクセスで排他制御が実行され、データの整合性が保証されます。

システム動作環境設定の詳細については、オンラインヘルプを参照してください。

b) ファイルサーバにDataMagicを導入している場合

ファイルサーバにDataMagicを導入し、そのファイルサーバのファイルをネットワークファイルとして他のホストと共有している場合は、ファイルサーバのDataMagicには次のように設定してください。

- システム動作環境設定ファイル（huledenv.conf）の「HULFT 製品間共有環境設定パス（hulsharepath）」にパスを設定。

- システム動作環境設定ファイル（huledenv.conf）の「ローカルファイルロックモード（localfile_lockmode）」に「モード1（ローカルファイルに対して、ネットワークファイルロックを使用する）」を設定。

注意

- ファイルサーバに導入しているDataMagicで「ローカルファイルロックモード」が「モード0」の状況でファイルを共有した場合、ネットワークファイルロックの排他制御が正しく実行されずに、対象のファイルが破壊される可能性があります。ファイルサーバのDataMagicの「ローカルファイルロックモード」には「モード1」を設定してください。

- 他のホストとファイルを共有しないDataMagicの場合は、「ローカルファイルロックモード（localfile_lockmode）」に「モード0」を指定することをお勧めします。

図6.5 ローカルファイルロックモード設定

「図6.5 」では、ホストAで動作しているDataMagicと、ファイルサーバで動作しているDataMagicで、ファイルサーバ上のファイル1を共有しています。

この場合、ファイルサーバで動作しているDataMagicからファイル1へのアクセスでネットワークファイルのパスを指定しても、システムの処理でローカルファイルとして扱われることがあります。その結果、ネットワークファイルロックの排他制御が正しく実行されない恐れがあります。「ローカルファイルロックモード」を有効にすると、ローカルファイルへのアクセスに対しても、ネットワークファイルロックの排他制御を実行できます。その結果、ホストAとファイルサーバのDataMagicで、ファイル1へのアクセスが重なった場合に排他制御が実行されます。

なお、ファイルサーバに導入されていないホストAでは、ローカルファイルをロックする設定は不要です。

(6) ファイルサーバへの接続アカウント

DataMagicでは、ネットワーク上のファイルサーバにアクセスするとき、次に示すアカウントで接続します。

a) UNIX/Linuxの場合

操作 | 接続アカウント
--- | ---
DataMagic要求受付デーモン(huledd)をrootユーザで起動する。 | root
DataMagic要求受付デーモン(huledd)をroot以外のユーザで起動する。 | huleddデーモンを起動したアカウント
データ加工実行コマンド(utled)を実行する。 | 左記のユーティリティを起動したアカウント

b) Windowsの場合

設定または操作 | 接続アカウント
--- | ---
DataMagicサービスに対して、サービスのプロパティ画面のログオンタブで、ローカル システム アカウントを設定している。 | SYSTEM
DataMagicサービスに対して、サービスのプロパティ画面のログオンタブで、任意のアカウントを設定している。 | 左記で設定したアカウント
データ加工実行コマンド(utled)を実行する。 | 左記のユーティリティを起動したアカウント

なお、DataMagicサービスに任意のアカウントを設定する場合は、アカウントに対して事前に次の設定が必要です。

ファイルサーバ側の設定

  DataMagicサービスに指定したアカウントからの接続を許可する設定にしてください。

  なお、接続を制限しない場合は、「ユーザ管理やユーザ権利の設定」の設定は不要です。

ユーザ管理やユーザ権利の設定

  DataMagicサービスのプロパティダイアログのログオンタブで、アカウントに任意のアカウントを指定する。

(7) 注意事項

ネットワークファイルを扱う際の注意事項について説明します。

a) サポート対象外の動作

DataMagicでは、HULFT Family製品以外のアプリケーションに対するネットワークファイルロックの動作については保証していません。ファイルサーバによっては、各アプリケーションのロック機構の相違の影響で、排他制御を実行できない環境があります。この場合、「(3) 前提条件とネットワークファイル機能導入確認ツール」に示した条件を満たしていても、DataMagicと他のアプリケーションで互いに排他状態を正しく認識できません。その結果、対象のファイルが破壊される可能性もあるため、HULFT Family製品以外のアプリケーションとネットワークファイルを共有しないことを推奨します。

b) 排他制御ファイルに関する注意

DataMagicによるネットワークファイルロックでは、対象ファイルと同階層のディレクトリ下に「排他制御ファイル(.#HULLOCK. 対象のファイル名)」を自動的に作成し、そのファイルを使用して排他制御を行います。このため、ネットワークファイルロックの処理中に排他制御ファイルを削除すると、DataMagicによる排他制御は正しく実行されないため、注意してください。

c) ネットワークファイルに指定するファイル名に関する注意

次に示す画面の「ファイル名」または「DB名」にネットワークファイルを指定する場合、重複するファイル名を指定しないでください。

- 入力設定画面のレイアウトタブ

- 入力設定画面のマージタブ

- 出力設定画面のレイアウトタブ

- マッチング設定画面のレイアウトタブ

- 仮想テーブル設定画面のレイアウトタブ

- DB接続情報詳細画面（「製品種別」に"SQLite3"を選択した場合）

例えば、ファイルをマージする場合、入力設定画面のレイアウトタブの「ファイル名」、入力設定画面のマージタブの「ファイル名」、および出力設定画面のレイアウトタブの「ファイル名」には、それぞれ異なるファイル名を指定してください。

同じファイル名を指定してデータ加工を実行した場合、動作は保証できません。