エンタープライズのシステム連携で長年愛されているファイル転送ミドルウェア、HULFT(ハルフト)。
HULFTを運用していると、「配信管理情報」や「集信管理情報」、「詳細ホスト情報」といったさまざまな「ID情報(管理情報)」を設定しますよね。
ここでふと、次のような疑問が湧いたことはないでしょうか?
「HULFTって、これらの管理情報を裏でOracleやSQL Server、PostgreSQLみたいな『データベース(RDB)』を使って管理しているの?」
今回は、Windows版HULFTのデータ管理の裏側について、技術的な仕組みを解説します!
結論:外部のRDB(データベース)は使っていない!
結論から言うと、Windows版HULFTは各種IDの管理にSQL ServerやOracleといった外部のデータベース管理システム(DBMS)は使用していません。
ではどうやっているかというと、HULFT独自仕様の「専用のインデックス付きバイナリファイル」を使ってデータを管理しています。
システム的なカテゴリで言えば、RDB(リレーショナルデータベース)ではなく、「独自のローカルファイル(フラットファイル / ISAM風構造)」をデータベース的に利用している、というのが正確な表現になります。
管理情報の実体はどこにある?
Windows版HULFTをインストールすると、環境設定ファイル(hulft.ini)の HULPATH というパラメータで指定されたフォルダに、設定情報が格納されます。
実際にそのフォルダを覗いてみると、以下のような拡張子 .dat のファイル群が存在していることが分かります。これらこそが、HULFTが「DB的」に使っているファイルの実体です。
主な管理情報ファイルの一覧
| 管理情報 | ファイル名(実体) | 役割 |
| 配信管理情報 | hulsnddb.dat |
配信ファイルIDごとの設定 |
| 集信管理情報 | hulrcvdb.dat |
集信ファイルIDごとの設定 |
| 詳細ホスト情報 | hulhstdb.dat |
接続先ホストのIPやホスト名 |
| 転送グループ情報 | hulrhtdb.dat |
複数ホストをまとめるグループ設定 |
| ジョブ起動情報 | hulexedb.dat |
転送前後に起動するジョブの設定 |
これらのファイルはテキストエディタ(メモ帳など)で開いても、中身は暗号化・バイナリ化されているため読めません。HULFT内部のプログラムだけが高速に読み書きできるように最適化されています。
なぜRDBを使わず、独自ファイルなのか?
「今どき、軽量なSQLiteとかを使えばいいのに」と思うかもしれません。しかし、HULFTが昔から頑なに「独自バイナリファイル」を採用しているのには、ミドルウェアとして極めて合理的な理由があります。
① 外部依存を極限まで減らし「高信頼性」を保つため
もし管理情報の保持にSQL Serverや外部DBを使っていた場合、「DBが起動していないからファイル転送ができない」「DBの接続ライブラリのバージョン競合で動かない」といった、余計なトラブル要因(障害点)が増えてしまいます。
「自己完結していること」こそが、ファイル転送ミドルウェアに最も求められる「堅牢さ」に直結しています。
② 高速なルックアップ(検索)
ファイル転送が要求された際、HULFTは即座に指定された「ファイルID」の設定を読み込まなければなりません。
RDBを介してSQLを発行するよりも、自社専用に最適化されたバイナリファイルをメモリにマッピングして直接検索する方が、はるかにオーバーヘッドが少なく、高速に処理できます。
③ バックアップや再現の手順が確立しやすい
SQLのダンプや複雑なインポート手順を踏まなくても、HULFT標準のコマンドを使って「テキスト形式に一括書き出し(エクスポート)」し、それを移行先で「一括取り込み(インポート)」するだけで、設定をきれいに再現できます。
データベースの知識がない運用担当者でも、定型コマンドだけで簡単にバックアップや復旧ができる仕組みになっています。
運用時に知っておくべき注意点
この「DB的なファイルを直接持っている」という仕様上、運用においていくつか注意すべきポイントがあります。
-
直接ファイルを編集・削除しないこと
hulsnddb.datなどのファイルを直接バイナリエディタでいじったり、手動で削除したりすると、管理情報が破損し、最悪の場合はHULFTが起動しなくなります。登録情報の変更は必ず「HULFT管理画面(HULFT Manager)」 か、専用の「コマンド(utliupdtなど)」で行いましょう。 -
バックアップや移行は「標準コマンド」を使うのが鉄則
「同じ
.datファイルだから、別のサーバーにそのままコピーすれば動くのでは?」と思うかもしれません。しかし、これは非常に危険です。OSのビット数(32bit/64bit)の違い、HULFTのバージョンやパッチレベルの違い、あるいはインストールパスの違いによって、ファイルコピーだけでは正常に動作しないケース(最悪の場合、データ破損)があります。
バックアップや移行の際は、必ず以下の公式推奨手順を踏みましょう。
1. 移行元でのエクスポート(パラメータの抽出)
登録されている各種管理情報を、テキスト形式(パラメータファイル)として出力するには
utligen(管理情報パラメータファイル生成コマンド)を使用します。DOS
utligen -f [出力先ファイル名] -i [出力したい情報の種類] -id *(例:配信・集信・詳細ホスト情報を一括で書き出す場合)
DOS
utligen -f C:\temp\hul_backup.txt -i snd -id * -i rcv -id * -i hst -id *※IDをワイルドカードで絞る例
utligen -f
C:\temp\hul_backup.txt-i snd -id "s*" -i rcv -id "r*"2. 移行先でのインポート(パラメータの登録)
エクスポートしたテキストファイルを移行先で取り込むには、
utliupdt(管理情報バッチ登録コマンド)を使用します。DOS
utliupdt -f [取り込むファイル名] -r※
-rオプションを指定すると、移行先に同名IDが存在する場合に「上書き」します。
まとめ
Windows版HULFTは、リレーショナルデータベース(RDB)こそ使っていませんが、独自仕様の超高速なローカルバイナリデータベース(.datファイル)を用いて、各種IDを安全かつ堅牢に管理しています。
この「シンプルで外部に依存しない構造」こそが、何十年も企業の基幹システムを支え続けられている強力な強みの一つと言えますね!

