本レポートは、富士通ホスト(MSP、HULFT 8)とRHELサーバー(HULFT 8または10)間におけるHULFTファイル転送の課題を解決し、最適な転送定義を提案するものです。特に、符号付き数値項目、PAC(16進数)項目、および全角文字項目(JEF漢字)の解釈における差異を吸収し、円滑な双方向データ連携を実現することを目的とします。
よくある課題
- 符号付き数値項目の解釈
- PAC(16進数)項目の解釈
- 全角文字項目の解釈
これら3つの懸念点について、HULFTの標準機能を用いた解決策を以下に示します。
2. 課題の分析と解決策
2.1. 符号付き数値項目およびPAC項目の解釈
課題:
•符号付き数値項目(例:S9(5)):5バイト目に数値と符号を保持する形式の解釈。
•PAC項目(例:9(5) COMP-3):1バイトに2桁の値を保持するパック10進数形式の解釈。
解決策:
HULFTのフォーマット転送機能を利用することで、これらの数値データ形式の差異を吸収できます。フォーマット転送では、データレイアウトを定義した「フォーマット情報」を用いることで、項目単位でのデータ変換が可能です [1]。
具体的には、フォーマット情報の項目タイプとして以下を指定します。
COBOL定義 | HULFT項目タイプ | 説明 |
---|---|---|
PIC S9(n) DISPLAY | S(サイン付外部10進数) | ゾーン形式の符号付き10進数データを扱います。 |
PIC 9(n) COMP-3 | P(サイン付内部10進数) | パック形式の10進数データを扱います。 |
これにより、HULFTは転送時にMSP(EBCDIC)とRHEL(ASCII)の数値表現の違いを自動的に変換します。
2.2. 全角文字項目(JEF漢字)の解釈
課題:
•全角文字項目(例:N(5)):JEF漢字のシフトコード(SO/SI)が付与されないことによる文字化け。
解決策:
この課題は、HULFTのコード変換機能とシフトコード制御機能を組み合わせることで解決します。
1.コード変換設定:
•MSP側HULFTのシステム動作環境設定で、自機種のコードセットとして「富士通漢字(JEF)」を指定します
•RHEL側HULFTでは、転送に使用するコードセット(例:UTF-8, EUC-JP, Shift-JIS)を指定します。
•詳細ホスト情報で、相手ホストのコードセットを正しく設定することで、HULFTが自動的にJEFと指定のコードセット間の変換を行います [2]。
2.シフトコードの扱い:
•ホスト(MSP)からRHELへの転送時: 配信管理情報の「シフトコードの扱い(SHIFT-CODE)」で「C(カットする)」または「S(スペースに変換)」を選択します。これにより、JEFのシフトコード(SO/SI)が削除され、RHEL側で正しく文字として認識されます [3]。一般的には「C(カットする)」が推奨されます。
•RHELからホスト(MSP)への転送時: 配信管理情報の「シフトコードの扱い(SHIFT-CODE)」で「Y(付加する)」を選択します。これにより、ASCII系のデータにシフトコードが自動的に付加され、MSP側でJEF漢字として正しく認識されます [3]。
3. 最適な転送定義
以上の解決策を踏まえ、双方向転送における具体的なHULFT設定項目を以下に提案します。
3.1. ホスト(MSP)からRHELへの転送
管理情報 | パラメータ名 | 設定値 | 目的・理由 |
---|---|---|---|
配信管理情報 | ファイルID | 任意 | 転送定義の識別子 |
転送種別 | F(フォーマット転送) | 項目単位でのデータ変換を行うため | |
フォーマットID | 作成したフォーマットID | 上記2.1で定義したフォーマットを指定 | |
コード変換 | S(配信側) | MSP側でJEFから中間コードへ変換 | |
シフトコードの扱い | C(カットする) | JEFのシフトコードを削除するため | |
集信管理情報 | ファイルID | 配信側と同一 | – |
作成モード | C(作成) | – | |
詳細ホスト情報(MSP側) | ホスト名 | RHELサーバーのホスト名 | – |
転送コードセット | RHEL側のコードセット(例: U (UTF-8)) | 変換先のコードセットを指定 | |
詳細ホスト情報(RHEL側) | ホスト名 | MSPのホスト名 | – |
転送コードセット | J(JEF) | 変換元のコードセットを指定 | |
フォーマット情報 | – | COBOLレイアウトに基づき定義 | S、P、Nなどの項目タイプを適切に設定 |
3.2. RHELからホスト(MSP)への転送
管理情報 | パラメータ名 | 設定値 | 目的・理由 |
---|---|---|---|
配信管理情報 | ファイルID | 任意 | 転送定義の識別子 |
転送種別 | F(フォーマット転送) | 項目単位でのデータ変換を行うため | |
フォーマットID | 作成したフォーマットID | 上記2.1で定義したフォーマットを指定 | |
コード変換 | S(配信側) | RHEL側で指定コードから中間コードへ変換 | |
シフトコードの扱い | Y(付加する) | JEF用のシフトコードを付加するため | |
集信管理情報 | ファイルID | 配信側と同一 | – |
作成モード | C(作成) | – | |
詳細ホスト情報(RHEL側) | ホスト名 | MSPのホスト名 | – |
転送コードセット | J(JEF) | 変換先のコードセットを指定 | |
詳細ホスト情報(MSP側) | ホスト名 | RHELサーバーのホスト名 | – |
転送コードセット | RHEL側のコードセット(例: U (UTF-8)) | 変換元のコードセットを指定 | |
フォーマット情報 | – | COBOLレイアウトに基づき定義 | S、P、Nなどの項目タイプを適切に設定 |
4. まとめと推奨事項
富士通ホスト(MSP)とRHELサーバー間のHULFTファイル転送における文字コードやデータ形式の差異は、HULFTのフォーマット転送機能と**コード変換設定(特にシフトコードの扱い)**を適切に組み合わせることで、完全に吸収することが可能です。
上記で提案した転送定義を適用することで、符号付き数値、PAC項目、JEF漢字を含むデータであっても、双方向でシームレスなファイル転送が実現できます。
重要な点として、実際のデータレイアウト(COBOL定義)に即した正確な「フォーマット情報」の作成が、本解決策の根幹となります。
5. 参考文献
[1] HULFT. (2025). フォーマット転送およびマルチフォーマット転送の場合のコード変換規則. Retrieved from https://www.hulft.com/help/ja-jp/HULFT-V10/COM-CNV/Content/HULFT_CNV/specific/CnvRule_Frmt_MultFrmtTrns.htm [2] HULFT. (2022). 日本語コードセット変換. Retrieved from https://www.hulft.com/help/ja-jp/HULFT-V8/COM-CNV/Content/HULFT_CNV/outline/CodeSetType_J.htm [3] HULFT. (2022). シフトコードの変換規則. Retrieved from
このページの内容はManusによって作成されました
インフォグラフィックWEBページ
https://blog.proastio.co.jp/HULFT-MSP2RHEL.html