Hinemos HULFT

Similar documents
ユーティリティ 管理番号 内容 対象バージョン 157 管理情報バッチ登録コマンド (utliupdt) のメッセージ出力に対し リダイレクトまたはパイプを使用すると メッセージが途中までしか出 力されないことがある 267 転送集計コマンド (utllogcnt) でファイル ID とホスト名の組

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

オブジェクト指向プログラミング・同演習 5月21日演習課題

Android Layout SDK プログラミング マニュアル

インストーラー 管理番号 内容 対象バージョン 230 HULFT がすでにインストールされているパスに対してサイレントインストールを実行すると インストールされていた HULFT の動作環境が不正な状態になる 7.3.0~7.3.1 ユーティリティ 管理番号 内容 対象バージョン 231 管理情報

HULFT for Mainframe Type ACOS Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HULFT for Mainframe Type ACOS < 対応 OS> ACOS-4/XVP PX, ACOS-4/NPX, ACOS-4/i-

レベルアップ詳細情報 < 製品一覧 > 製品名 バージョン < 追加機能一覧 > 管理番号 内容 説明書参照章 カナ文字拡張対応 < 改善一覧 > 管理番号 内容 対象バージョン 説明書参照章 文字列のコピー ペースト改善 ~ 子画面の表示方式 ~ 履歴の詳細情報 ~ タブの ボタン ~ 接続時の管

Brekeke PBX - Version 2.1 ARSプラグイン開発ガイド

JavaプログラミングⅠ

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

<48554C46545F F A5490E08E9197BF2E786C73>

< 障害一覧 > HULFT 配信機能 管理番号 内容 対象バージョン 39 コード変換の必要がない集信処理および配信処理を実行したにも関わ 7.0.0~7.3.1 らず コード変換処理でエラーとなる場合がある 44 システム動作環境設定再設定コマンド (hulclusterxxx -set) を使

Prog2_10th

HDC-EDI Manager Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2

<4D F736F F D20837D836A B5F93C192E88C F2E646F63>

PowerPoint Presentation

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

PowerPoint プレゼンテーション

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

K227 Java 2

SAMBA Stunnel(Windows) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxx 部分は会社様によって異なります xxxxx 2 Windows 版ダウンロード ボ

JavaプログラミングⅠ

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

要求受付機能 管理番号内容対象バージョン 314 トレースログに重複してメッセージが出力される場合がある 6.3.2~ 大量のファイルトリガ情報が登録されている状態でファイルトリガプロセスを起動するとファイルトリガプロセスが停止する場合がある 7.2.0~7.3.1 ユーティリティ

Prog1_11th

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

JavaプログラミングⅠ

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt

Microsoft Word - XOOPS インストールマニュアルv12.doc

WebSAM System Navigator JNS isadmin SNMP Trap 連携設定手順書 NEC 2012 年 12 月

Microsoft Word - ModelAnalys操作マニュアル_

<4D F736F F D20837D836A B5F93C192E88C AC888D593FC97CD5F2E646F63>

メソッドのまとめ

DHCPサーバのクラスタ化

Prog1_15th

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

Microsoft Word - ssVPN MacOS クライアントマニュアル_120版.doc

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2

Web型iEDIシステム操作説明書

TestDesign for Web

AppsWF ワークフロー設定ガイド Ver.1.1 株式会社オプロ

Microsoft PowerPoint - OOP.pptx

Microsoft Windows Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Linux は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat

Micro Focus Enterprise Developer チュートリアル メインフレーム COBOL 開発 : MQ メッセージ連携 1. 目的 本チュートリアルでは CICS から入力したメッセージを MQ へ連携する方法の習得を目的としています 2. 前提 使用した OS : Red H

HULFT8 for Windows/UNIX/Linux/zLinux の機能で発生する不具合について

整理番号変換ツール 操作説明書 平成 20 年 11 月 厚生労働省保険局調査課

Microsoft Windows Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Linux は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

プログラミングA

目次 目次 2 1 ライセンス 3 2 はじめに 内容物 ドキュメント インストーラ システム構成と動作 4 3 前提条件 動作環境 前提条件 対応バージョン 5 4 インストール アンインストール 5 4.

HULFT8 for Windows ソフトウェア説明書

PowerPoint Presentation

アーカイブ機能インストールマニュアル

GEC-Java

GUIプログラムⅤ

CS-DRC1操作説明書

PC にソフトをインストールすることによって OpenVPN でセキュア SAMBA へ接続することができます 注意 OpenVPN 接続は仮想 IP を使用します ローカル環境にて IP 設定が被らない事をご確認下さい 万が一仮想 IP とローカル環境 IP が被るとローカル環境内接続が行えなくな

ADempiere (3.5)

GEC-Java

CLUSTERPRO MC StorageSaver for BootDisk 2.1 (for Windows) インストールガイド 2016(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

操作方法 XXXTOEMF は コマンドライン形式のアプリケーションです 通常のコマンドと同じように コマンドラインからの実行やバッチファイルに組み込むことが可能です インストールについては, 別紙の KDxxxx コンバートソフトの特記事項について を参照してください ここでは 直接コマンドライン

KDDI Smart Mobile Safety Manager Apple Business Manager(ABM) 運用マニュアル 最終更新日 2019 年 4 月 25 日 Document ver1.1 (Web サイト ver.9.6.0)

JavaプログラミングⅠ

Programming-C-9.key

HULFT7 for Windows/UNIX/Linux/zLinuxにて発生する問題について

intra-mart ワークフローデザイナ

eYACHO 管理者ガイド

2

ファイル操作-バイナリファイル

Android プログラム ガイド

目次 1. 概要 動作環境

26 editor.putint(pref_count_key, executecount); 27 // 変更した Preference を確定させる 28 editor.commit(); 29 } (c) 実行の様子実装して実行した様子を図 1 と図 2 に示す. 一度実行するごとに, カウン

証明書ダウンロードシステム操作手順書 (ios) 第 1.15 版 証明書ダウンロードシステム 操作手順書 (ios) Ver1.15 セキュアネットワークサービス 2018 年 10 月 29 日 セキュアネットワークサービス 1 DLS-SNT-IOS-V1.15

CLUSTERPRO MC StorageSaver for BootDisk 1.2 (for Windows) インストールガイド 2014(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

U/Cサーバ 業務システム間転送プログラムインターフェース仕様書

1. はじめに (1) 本書の位置づけ 本書ではベジフルネット Ver4 の導入に関連した次の事項について記載する ベジフルネット Ver4 で改善された機能について 新機能の操作に関する概要説明 ベジフルネット Ver4 プログラムのインストールについて Ver4 のインストール手順についての説明

Pirates Buster Series Secure Viewer セットアップマニュアル (Web インストーラ)

WebReportCafe

PowerPoint Presentation

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

対応 OS について WindowsOS への対応状況 2010 年 10 月時点で用意させていただいている CiscoVPN ソフトウェアですが 対応している OS は WindowsXp WindowsVista Windows7 となります また WindowsVista Windows7 の

CLUSTERPRO MC RootDiskMonitor 2.3 for Windows インストールガイド 2018(Jun) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール 本製品のアップデートインストール

SAMBA Stunnel(Mac) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxxxx 部分は会社様によって異なります xxxxx 2 Mac OS 版ダウンロー

CLUSTERPRO MC RootDiskMonitor 1.0 for Windows インストールガイド 2013(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

ESMPRO/JMSS Ver6.0

CLUSTERPRO MC RootDiskMonitor 1.0 for Windows FAQ 集 2013(Mar) NEC Corporation 導入に関する質問 運用に関する質問 動作環境に関する質問

サイボウズ Office 10「個人フォルダ」

新OS使用時の留意事項

プラン作成ガイド ~ 仮想環境をエージェントレスで バックアップするプランの作成 ~ 年 8 月

文字列操作と正規表現

NEC Express5800 シリーズ COBOL Media V1 セットアップカード SL438730B01-2

アーカイブ機能インストールマニュアル

管理番号 内容仮想テーブル設定画面およびマッチング条件設定画面においてコメントを設定した場合 変換エラーが発生する マッピング情報設定画面の出力情報に固定値を選択し区分に 動的バイナリ値 を指定した場合 関数を設定す

はじめに 面的評価支援システム操作マニュアル ( 別冊 ) 国土地理院数値地図 25000( 空間データ基盤 ) 変換編 は 国土地理院の HP よりダウンロードした数値地図 25000( 空間データ基盤 ) の地図データを 面的評価支援システム 用に変換するツールの使用方法についてまとめたものです

クラスタ構築手順書

CLUSTERPRO MC ProcessSaver 2.1 for Windows 構築ガイド 2016(Mar) NEC Corporation はじめに 責任範囲 適用範囲 概要 事前準備 クラスタ設定

PowerPoint Presentation

Prog2_9th

Transcription:

Hinemos HULFT 連携ノウハウと適用例公開日 :2012/11/5

Page 2 Section

Section Page 3 目次 1 はじめに 6 2 免責事項 6 3 目指す姿 7 3.1 背景 7 3.2 連携の目的 8 3.3 連携による解決方法 8 4 事前準備 9 4.1 Hinemosの必須設定項目 9 4.2 HULFTの必須設定項目 10 4.3 その他の事前準備 10 5 連携シナリオ 11 5.1 シナリオの想定 11 5.2 シナリオ1: ファイル転送設定の登録 12 5.2.1 シナリオ概要 12 5.2.2 手順 1: ファイル転送ジョブユニットの登録 13 5.2.3 手順 2: マスタファイル作成ジョブの登録 13 5.2.4 手順 3: 配信管理情報登録ジョブの登録 13 5.2.5 手順 4: ファイル転送ジョブの登録 15 5.2.6 手順 5: スケジュールの登録 17 5.3 シナリオ2: ファイル転送結果の閲覧 18 5.3.1 シナリオ概要 18 5.3.2 ファイル転送に成功した場合 18 5.3.3 ファイル転送に失敗した場合 20 5.4 シナリオ3: ファイル転送失敗時の再配信指示 22 5.4.1 シナリオ概要 22 5.4.2 再配信指示 22 6 付録 A 24 6.1 サンプルプログラムの構成 24 6.2 サンプルプログラムで使用するHULFTのエラーコード ファイル 25 6.2.1 HULFTのエラーコード 25 6.2.2 HULFTのファイル 26 6.3 HulftSend.java 27 6.3.1 プログラム概要 27 6.3.2 配信管理情報のパラメータファイル作成 28 6.3.3 配信管理情報の登録 29 6.4 HulftFileTransferJob.java 30 6.4.1 プログラム概要 30 6.4.2 集信管理情報のパラメータファイル作成 35 6.4.3 集信管理情報の登録 35 6.4.4 送信要求コマンドの実行 35 6.4.5 エラーコードを取得 35 6.4.6 詳細メッセージの表示 35

Page 4 Section 7 付録 B 37 7.1 連携にあたっての検討内容 37

Section Page 5 本ソフトウェアは独立行政法人情報処理推進機構 (IPA) の 2004 年度下期オープンソースソフトウェア活用基盤整備事業の委託を受けて開発しました テーマ名は 分散ファシリティ統合マネージャの開発 です http://www.ipa.go.jp/software/open/2004/result.html 本ドキュメントについては GPL の下で配布されていません 本ドキュメントの使用には 以下の条件が適用されます 内容の変更 編集は許可されません 例えば印刷物の販売や出版物に本ドキュメントの一部を記載する場合は 事前に株式会社 NTT データとの契約 合意を必要とします

Page 6 Section 1 はじめに 1 はじめに 本ドキュメントでは 統合運用管理ソフトウェア Hinemos とファイル転送 データ連携ツール HULFT の連携手順について説明します 本ドキュメントで用いたソフトウェア OS を下記に記載します ソフトウェア OS Hinemos ver4.0.0 HULFT 7 Windows Server 2008 R2 Red Hat Enterprise Linux 6.2 2 免責事項 本ドキュメントでの設定は一例であり 実際に使用される際はご利用の環境の構成 各ソフトのバージョン 運用設計等に沿って設定を変更していただけない場合 適用できません 本ソフトウェア ドキュメント及びサンプルプログラムの使用により生じたいかなる損害に対しても 弊社は一切の責任を負いません

Section 3 目指す姿 Page 7 3 目指す姿 3.1 背景 1 つの業務要件を実現するため複数のシステム間でデータを連携する環境では Hinemos だけでは機能不足であるため 安全にデータ転送を行う機能を持った HULFT を利用することがよくあります 一方で現在 Hinemos と HULFT の両方を利用する環境では 以下のような課題があります 図 1, Hinemos と HULFT の両方を利用する環境の課題

Page 8 Section 3.2 連携の目的 3.2 連携の目的 本連携により Hinemos から HULFT によるシステム間のデータ連携機能をシームレスに利用可能となることで 運用対象の単一化によるコスト低減を実現します 図 2, Hinemos-HULFT 連携によるメリット 3.3 連携による解決方法 Hinemos のジョブ管理機能によりジョブネットやジョブスケジュールの登録を行うことで Hinemos と HULFT の連携を実現します 本連携では エラーメッセージの確認も Hinemos の画面上で行えます 図 3, 連携による解決方法 (Hinemos ジョブ管理機能の活用 )

Section 4 事前準備 Page 9 4 事前準備 4.1 Hinemos の必須設定項目 まず Hinemos マネージャを運用管理サーバ Hinemos エージェントをファイルの送信元と送信先 Hinemos クライアントを運用管理端末にインストールします インストールの詳細は 下記マニュアルをご参照ください Hinemos ver4.0 インストールマニュアル第 1.1 版 Hinemos のインストール後 事前に設定が必要な項目は下記のとおりです 1. ノード登録 ファイルの送信先 送信元をあらかじめノードとして登録します ノード登録の詳細については 下記マニュアルを参照してください Hinemos ver4.0 ユーザマニュアル第 1.1 版 3.4.1 ノード情報の作成 2. スコープ登録 OS ごとにジョブの設定が異なるため OS ごとにスコープを登録します スコープ登録の詳細については 下記マニュアルを参照してください Hinemos ver4.0 ユーザマニュアル第 1.1 版 3.6.1 スコープの作成 3. スコープへのノード割当て 登録したスコープに 対応する OS のノードを割り当てます スコープへのノード割当ての詳細については 下記マニュアルを参照してください Hinemos ver4.0 ユーザマニュアル第 1.1 版 3.7.1 ノードの割当て 図 4, スコープ登録 ノード割当て時の例

Page 10 Section 4.2 HULFT の必須設定項目 4.2 HULFT の必須設定項目 まず HULFT をファイルの送信元と送信先にそれぞれインストールします インストールの詳細は 下記マニュアルをご参照ください Windows の場合 : HULFT7 Windows 導入マニュアル Linux の場合 : HULFT7 UNIX/Linux 導入マニュアル HULFT のインストール後 事前に設定が必要な項目は下記のとおりです 1. 操作ログ出力選択の設定 ファイル転送結果の取得時にコマンド実行ログ (huloplcmd.csv) を使用するため コマンド操作ログを出力する設定に変更する必要があります デフォルトの設定ではログは出力されません 操作ログ出力選択の詳細は 下記マニュアルをご参照ください Windows の場合 : HULFT7 Windows アドミニストレーション マニュアル 3.4 システム動作環境の設定について Linux の場合 : HULFT7 UNIX/Linux アドミニストレーション マニュアル 3.4 システム動作環境の設定について 2. 詳細ホスト情報登録 ファイルの送信元で 送信要求を受け付けるホスト ( ファイルの送信先 ) を登録します また ファイルの送信先で 送信要求を送るホスト ( ファイルの送信元 ) を登録します 詳細ホスト情登録の詳細は 下記マニュアルをご参照ください Windows の場合 : HULFT7 Windows オペレーション マニュアル 2.1.4 詳細ホスト情報 Linux の場合 : HULFT7 UNIX/Linux オペレーション マニュアル 2.1.4 詳細ホスト情報 3. 転送グループ登録 ファイルの送信元で ホストを指定して転送グループを登録します 登録した転送グループ ID は ファイルの送信元に配信管理情報を登録する際 利用します 転送グループ登録の詳細は 下記マニュアルをご参照ください Windows の場合 : HULFT7 Windows オペレーション マニュアル 2.1.5 転送グループ情報 Linux の場合 : HULFT7 UNIX/Linux オペレーション マニュアル 2.1.5 転送グループ情報 4. エラー定義ファイルの配置 ファイルの送信先が Windows の場合 ファイルの送信先で UNIX/Linux 版エラー定義ファイル (UX.dat) を任意のフォルダに配置します なお Windows 版では Windows 版用エラー定義ファイル (NT.dat) は インストール時にあらかじめ配置されています また ファイルの送信先が Linux の場合 ファイルの送信先で Windows 版用エラー定義ファイル (NT.dat) と UNIX/Linux 版エラー定義ファイル (UX.dat) の両方を任意のフォルダに配置します エラー定義ファイルは HULFT のエラーコードに対するエラーメッセージを格納したファイルです HULUFT の保守契約者様向けに公開しており 下記 HULFT 技術サポートサイト よりダウンロードいただけます https://tech.hulft.com/support/login/login.jsp なお HULFT の詳細ホスト情報のホスト名と Hinemos のノードのファシリティ ID は別物のため 同一の名称にしても互換性がない点を意識して命名する必要があります 4.3 その他の事前準備 その他 サンプルプログラムを使用する場合 事前に必要となる準備は下記のとおりです 1. サンプルプログラムの配置 ジョブ実行のため サンプルプログラムをコンパイルし 事前に配置します ファイルの送信元には HulftSend.clas s(windows の場合は HulftSend.bat も ) ファイルの送信先には HulftFileTransferJob.class(Windows の場合は HulftFileTransferJob.bat も ) を任意のフォルダに配置します

Section 5 連携シナリオ Page 11 5 連携シナリオ 5.1 シナリオの想定 本ドキュメントにおける シナリオの想定は下記のとおりです 図 5, シナリオの想定 シナリオの想定に沿うよう 下記 1~3 の具体的なシナリオで連携を実施します シナリオ 1: ファイル転送設定の登録 Hinemos のジョブ管理機能で ファイル転送のジョブユニットを登録し 毎日 4:00 に実行されるようスケジュールの登録をします シナリオ 2: ファイル転送結果の閲覧 スケジュールで実行されたファイル転送のジョブユニットについて 実行結果の確認をします シナリオ 3: ファイル転送失敗時の再配信指示 ファイル転送のジョブユニットの実行に失敗した場合 再配信指示をします シナリオ 1~3 について 次章以降説明していきます

Page 12 Section 5.2 シナリオ 1: ファイル転送設定の登録 5.2 シナリオ 1: ファイル転送設定の登録 5.2.1 シナリオ概要 シナリオ 1: ファイル転送設定の登録では ファイル転送のジョブユニットを登録し 毎日 4:00 に実行されるようスケジュールの登録をします 図 6, シナリオ1: ファイル転送設定の登録 Hinemosジョブ管理機能による設定手順は 下記のとおりです 手順 1: ファイル転送ジョブユニットの登録 手順 2: マスタファイル作成ジョブ ( 図中のジョブ1) の登録 手順 3: 配信管理情報登録ジョブ ( 図中のジョブ2) の登録 手順 4: ファイル転送ジョブ ( 図中のジョブ3) の登録 手順 5: スケジュールの登録手順 1~4 終了時のファイル転送ジョブユニットは下記となります 各設定手順は 次節以降をご覧ください 図 7, ファイル転送ジョブユニット

Section 5.2.2 手順 1: ファイル転送ジョブユニットの登録 Page 13 5.2.2 手順 1: ファイル転送ジョブユニットの登録 ファイル転送ジョブユニットの作成 登録をします ジョブユニット作成の詳細については 下記マニュアルを参照してください Hinemos ver4.0 ユーザマニュアル第 1.1 版 9.4.1 ジョブユニットの作成 変更 図 8, ファイル転送ジョブユニットの例 5.2.3 手順 2: マスタファイル作成ジョブの登録 ファイル転送ジョブユニット配下に 配信するマスタファイルを作成する マスタファイル作成ジョブの作成 登録をします ジョブ作成時の注意点は下記のとおりです スコープは マスタファイルを作成するノード ( バッチサーバ ) を指定します 起動コマンドは マスタファイルを作成するコマンドまたはスクリプトを指定します なお マスタファイル作成スクリプトは 必要に応じて各プロジェクトにてご用意ください ここでは バッチサーバが Windows の場合は C:hulft _testtest02.txt Linux の場合は /root/hulft_test/test01.txt を作成したと仮定して 手順 3 以降を進めていきます ジョブ作成の詳細については 下記マニュアルを参照してください Hinemos ver4.0 ユーザマニュアル第 1.1 版 9.4.3 ジョブの作成 変更 5.2.4 手順 3: 配信管理情報登録ジョブの登録 ファイル転送ジョブユニット配下に 配信管理情報登録ジョブの作成 登録をします

Page 14 Section 5.2.2 手順 1: ファイル転送ジョブユニットの登録 ジョブ作成に際して 以下の処理を行うプログラムを用意します マスタファイルを作成したノード ( バッチサーバ ) に HULFT の配信管理情報のパラメータファイルを作成する マスタファイルを作成したノード ( バッチサーバ ) に HULFT の配信管理情報を登録する サンプルプログラムを使用したジョブ作成時の注意点は下記のとおりです 待ち条件は マスタファイル作成ジョブが終了状態 正常 で終了した場合を指定します スコープは マスタファイルを作成したノード ( バッチサーバ ) を指定します 起動コマンドは 下記のとおり指定します バッチサーバが Windows の場合 [HulftSend.bat のパス ] [ 登録するファイル ID] [ マスタファイルのパス ] [ 転送グループ ID] ( 例 ) C:hulft_testjobsHulftSend.bat FILE02 C:hulft_testtest02.txt HINEMOS2 バッチサーバが Linux の場合 [HulftSend の実行コマンド ] [ 登録するファイル ID] [ マスタファイルのパス ] [ 転送グループ ID] ( 例 ) /usr/bin/java -cp /root/hulft_test/jobs/ HulftSend FILE01 /root/hulft_test/test01.txt HINE MOS1 ジョブ作成の詳細については 下記マニュアルを参照してください Hinemos ver4.0 ユーザマニュアル第 1.1 版 9.4.3 ジョブの作成 変更

Section 5.2.5 手順 4: ファイル転送ジョブの登録 Page 15 図 9, 配信管理情報登録ジョブの例 5.2.5 手順 4: ファイル転送ジョブの登録 ファイル転送ジョブユニット配下に ファイル転送ジョブの作成 登録をします ジョブ作成に際して 以下の処理を行うプログラムを用意します ファイルの送信先に HULFTの集信管理情報のパラメータファイルを作成する ファイルの送信先に HULFTの集信管理情報を登録する ファイルの送信先で バッチサーバに対し 送信要求コマンドの実行をする ファイル転送に失敗した場合 ファイルの送信先でエラーコードの取得 表示をするサンプルプログラムを使用したジョブ作成時の注意点は下記のとおりです

Page 16 Section 5.2.5 手順 4: ファイル転送ジョブの登録 待ち条件は 配信管理情報登録ジョブが終了状態 正常 で終了した場合を指定します スコープは ファイルの送信先となるスコープを指定します 起動コマンドは 下記のとおり指定します ファイルの送信先が Windows の場合 [HulftFileTransferJob.bat のパス ] [ 登録したファイル ID] [ 配置先のファイル名 ] [ 送信元のホスト名 ] ( 例 ) C:hulft_testjobsHulftFileTransferJob.bat FILE01 C:hulft_test$SNDFILE master_win_server ファイルの送信先が Linux の場合 [HulftFileTransferJob の実行コマンド ] [ 登録したファイル ID] [ 配置先のファイル名 ] [ 送信元のホスト名 ] ( 例 ) /usr/bin/java -cp /root/hulft_test/jobs/ HulftFileTransferJob FILE02 /root/hulft_test/'$sn DFILE' master_linux_server ジョブ作成の詳細については 下記マニュアルを参照してください Hinemos ver4.0 ユーザマニュアル第 1.1 版 9.4.3 ジョブの作成 変更 図 10, ファイル転送ジョブの例

Section 5.2.6 手順 5: スケジュールの登録 Page 17 5.2.6 手順 5: スケジュールの登録 ファイル転送ジョブユニットに対して スケジュールの作成 登録をします スケジュールの設定例を下記に記載します ジョブIDは ファイル転送ジョブユニットを指定します スケジュールは 月 日 は空欄のまま 04 時 00 分 を指定します スケジュール作成の詳細については 下記マニュアルを参照してください Hinemos ver4.0 ユーザマニュアル第 1.1 版 9.6.3 ジョブのスケジュール実行 図 11, スケジュールの例

Page 18 Section 5.3 シナリオ 2: ファイル転送結果の閲覧 5.3 シナリオ 2: ファイル転送結果の閲覧 5.3.1 シナリオ概要 シナリオ 2: ファイル転送結果の閲覧では スケジュールで実行されたファイル転送のジョブユニット ( 図中のジョブ 1~3) の実行結果を確認します 図 12, シナリオ 2: ファイル転送結果の閲覧 ファイル転送に成功した場合と失敗した場合について 実行結果の確認方法を見ていきます 5.3.2 ファイル転送に成功した場合 Hinemos クライアントのジョブマップビューアパースペクティブより ジョブ [ 履歴 ] ビュー ジョブマップ [ 履歴 ] ビュー ジョブ [ ノード詳細ビュー ] を確認します ファイル転送に成功した場合 ファイル転送のジョブユニットは終了状態 正常 で終了します ( 本連携では ジョブユニット ジョブの終了状態にデフォルト値を使用しています )

Section 5.3 シナリオ 2: ファイル転送結果の閲覧 Page 19 図 13, ファイル転送に成功した場合 サンプルプログラムを使用した場合 配信管理情報登録ジョブ ファイル転送ジョブのジョブ [ ノード詳細ビュー ] の戻り値は 0 となります メッセージは下記のとおりです 配信管理情報登録ジョブのメッセージ マスタファイル作成ノード ( バッチサーバ ) が Windows の場合 配信管理情報の登録が完了しました マスタファイル作成ノード ( バッチサーバ ) が Linux の場合 配信管理情報の登録が完了しました Picked up _JAVA_OPTIONS: -XX:OnOutOfMemoryError='/usr/bin/jmap -F -histo %p >> /opt/hinemo s_agent/var/log/agent_outofmemory_histgram.log' ファイル転送ジョブのメッセージ マスタファイル作成ノード ( バッチサーバ ) が Windows の場合 集信管理情報の登録が完了しました ファイルの転送が完了しました マスタファイル作成ノード ( バッチサーバ ) が Linux の場合 集信管理情報の登録が完了しました ファイルの転送が完了しました Picked up _JAVA_OPTIONS: -XX:OnOutOfMemoryError='/usr/bin/jmap -F -histo %p >> /opt/hinemo s_agent/var/log/agent_outofmemory_histgram.log' なお マスタファイル作成ジョブの戻り値 メッセージは ファイル作成のスクリプト内でプロジェクトの要件に合わせて設定する必要があります 本連携では 戻り値 0 の場合 ジョブの終了状態が 正常 となるよう設定しています

Page 20 Section 5.3.3 ファイル転送に失敗した場合 5.3.3 ファイル転送に失敗した場合 Hinemos クライアントのジョブマップビューアパースペクティブより ジョブ [ 履歴 ] ビュー ジョブマップ [ 履歴 ] ビュー ジョブ [ ノード詳細ビュー ] を確認します サンプルプログラムを使用した場合 ファイル転送に失敗した場合は ファイル転送のジョブユニットは終了状態 警告 または 異常 で終了します ( 本連携では ジョブユニット ジョブの終了状態にデフォルト値を使用しています ) エラーメッセージは ジョブ [ ノード詳細ビュー ] のメッセージから確認します 図 14, ファイル転送に失敗した場合 ( ファイル転送ジョブの実行に失敗した例 ) 配信管理情報登録ジョブの実行に失敗した場合の実行結果は以下のとおりです ジョブマップ [ 履歴 ] ビューのジョブの実行状態は 異常 となります ジョブ [ ノード詳細ビュー ] の戻り値には リターンコード 2 が入ります ジョブ [ ノード詳細ビュー ] のメッセージで エラーメッセージを確認します サンプルプログラムを使用した場合 ファイル転送ジョブの実行に失敗するパターンとして 集信管理情報の登録の失敗した場合 送信要求の実行に失敗した場合の 2 パターンが考えられます 実行結果は以下のとおりです 集信管理情報の登録の失敗した場合 ジョブマップ [ 履歴 ] ビューのジョブの実行状態は 異常 となります ジョブ [ ノード詳細ビュー ] の戻り値には リターンコード 2 が入ります ジョブ [ ノード詳細ビュー ] のメッセージで エラーメッセージを確認します 送信要求の実行に失敗した場合

Section 5.3.3 ファイル転送に失敗した場合 Page 21 ジョブマップ [ 履歴 ] ビューのジョブの実行状態は 警告 となります ジョブ [ ノード詳細ビュー ] の戻り値には リターンコード 1 が入ります ジョブ [ ノード詳細ビュー ] のメッセージで エラーメッセージを確認します 以下に例を挙げます ファイルの配信先スコープが Windows の場合の例 集信管理情報の登録が完了しました utlrecv: 要求先ホストでエラーが発生しました ホスト名 =hulft_rhel6232 要求先エラーコート =21 utlrecv: 送信要求処理に失敗しました 戻り値 :17 ファイルの転送に失敗しました エラー詳細 1 レコードのデータ長が最大値を超えています テキスト転送の場合 1 レコード ( 改行まで ) の最大値は 32768 バイトです 配信ファイルを確認してください ファイルの配信先スコープが Linux の場合の例 集信管理情報の登録が完了しました utlrecv:all queue error. (synchronized) 戻り値 :21 ファイルの転送に失敗しました エラー詳細 テキストファイルの 1 レコードの長さが 32767 を超えました 1 レコード長が 32767 バイトを超えるファイルは配信できません レコードを分割するなどの処置を行って 再度実行してください Picked up _JAVA_OPTIONS: -XX:OnOutOfMemoryError='/usr/bin/jmap -F -histo %p >> /opt/hinemo s_agent/var/log/agent_outofmemory_histgram.log' なお マスタファイル作成ジョブの戻り値 メッセージは ファイル作成のスクリプト内でプロジェクトの要件に合わせて設定する必要があります

Page 22 Section 5.4 シナリオ 3: ファイル転送失敗時の再配信指示 5.4 シナリオ 3: ファイル転送失敗時の再配信指示 5.4.1 シナリオ概要 シナリオ 3: ファイル転送失敗時の再配信指示では シナリオ 2 でファイル転送に失敗した場合 失敗した原因を取り除いた後 対象のジョブを手動で実行します 図 15, シナリオ 3: ファイル転送失敗時の再配信指示 5.4.2 再配信指示 ジョブの再配信指示は 失敗した原因を取り除いた後 ジョブマップ [ 履歴 ] ビューまたはジョブ [ ノード詳細 ] ビューから手動で再実行をします

Section 5.4 シナリオ 3: ファイル転送失敗時の再配信指示 Page 23 図 16, 実行に失敗したジョブに再配信指示を行う場合の例 実行に失敗したジョブに再配信指示を行う場合は ジョブマップ [ 履歴 ] ビューで対象のジョブを右クリックし 開始 [ 即時 ] を行います また 実行に失敗したジョブのうち 特定のノードのみに再配信指示を行う場合は ジョブ [ ノード詳細 ] ビューで対象のジョブを右クリックし 開始 [ 即時 ] を行います

Page 24 Section 6 付録 A 6 付録 A 6.1 サンプルプログラムの構成 本連携では 下記 2 つのサンプルプログラムを用意しています HulftSend.java 配信管理情報を登録するサンプルプログラムです シナリオ 1: ファイル転送設定の登録で 手順 3: 配信管理情報登録ジョブの登録に使用しています HulftFileTransferJob.java 集信管理情報の登録 送信要求の実行をするサンプルプログラムです シナリオ 1: ファイル転送設定の登録で 手順 4: ファイル転送ジョブの登録に使用しています なお プログラムの実行環境が Windows の場合 ジョブ作成時の起動コマンドに "Program Files" などの空白を含むファイルパスを指定できないため バッチファイルを起動コマンドで指定し バッチファイルからサンプルプログラムを呼び出す必要があります 下記に HulftSend.java を呼び出す HulftSend.bat と HulftFileTransferJob.java を呼び出す HulftFileTransferJob.bat を記載します HulftSend.bat @echo off "C:\Program Files (x86)\hinemos\agent4.0.0\jre6\bin\java.exe" -cp C:\hulft_test\jobs HulftSend %1 %2 %3 HulftFileTransferJob.bat @echo off "C:\Program Files (x86)\hinemos\agent4.0.0\jre6\bin\java.exe" -cp C:\hulft_test\jobs HulftFileTransferJob %1 %2 %3

Section 6.2 サンプルプログラムで使用する HULFT のエラーコード ファイル Page 25 6.2 サンプルプログラムで使用する HULFT のエラーコード ファイル 6.2.1 HULFT のエラーコード 本連携のサンプルプログラム中で エラーメッセージ取得時に使用する HULFT の履歴情報のエラーコードは 完了コードと詳細コードで構成されています Windows の場合 完了コード 6 桁 ( 下 3 桁のみ参照 ) と 詳細コード 5 桁で構成されます 000000(00000)( 完了コード ( 詳細コード )) エラーコードの詳細は 下記マニュアルをご参照ください HULFT7 Windows エラーコード メッセージ 1.1 履歴情報エラーコード概要 Linux の場合 完了コード 4 桁と 詳細コード 4 桁で構成されます 0000-0000( 完了コード - 詳細コード ) エラーコードの詳細は 下記マニュアルをご参照ください HULFT7 UNIX/Linux エラーコード メッセージ 1.1 履歴情報エラーコード概要

Page 26 Section 6.2.2 HULFT のファイル 6.2.2 HULFT のファイル 本連携のサンプルプログラム中で エラーメッセージ取得時に使用する HULFT のファイルは下記のとおりです コマンド実行ログ (Windows/Linux 共通 :huloplcmd.csv) コマンド実行ログは HULFT の操作コマンド実行履歴が記載されるログファイルです 送信要求コマンドを実行後 コマンド実行に紐付く処理識別子を取得するために使用します ファイルの詳細は 下記マニュアルをご参照ください Windows の場合 HULFT7 Windows アドミニストレーション マニュアル付 1.1 操作ログファイルフォーマット Linux の場合 HULFT7 UNIX/Linux アドミニストレーション マニュアル付 1.1 操作ログファイルフォーマット 集信履歴ファイル (Windows の場合 :hulrcvlg.dat / Linux の場合 :hulrcvlog.dat) 集信履歴ファイルは ファイル集信時のファイル ID 時刻 エラーコード ( 完了コード 詳細エラーコード ) などの履歴情報が記載されるファイルです コマンド実行ログから取得した処理識別子と一致する行を探し エラーコード取得するために使用します ファイルの詳細は 下記マニュアルをご参照ください Windows の場合 HULFT7 Windows オペレーション マニュアル付 1.1.2 集信履歴ファイル (hulrcvlg.dat) のフォーマット Linux の場合 HULFT7 UNIX/Linux オペレーション マニュアル付 1.1.2 集信履歴ファイル (hulrcvlg.dat) のフォーマット エラー定義ファイル (Windows の場合 :NT.dat / Linux の場合 :UX.dat) エラー定義ファイルは HULFT のエラーコードに対するエラーメッセージを格納したファイルです 集信履歴ファイルから取得したエラーコードと一致する行を探し エラーメッセージを取得するために使用します エラーコードは N T.dat の場合は完了コードのみ UX.dat の場合は完了コードと詳細コードの両方を使用します ファイルの詳細は 本ドキュメントの HULFT の必須設定項目 をご参照ください

Section 6.3 HulftSend.java Page 27 6.3 HulftSend.java 6.3.1 プログラム概要 配信管理情報を登録するサンプルプログラムです package com.sample; import java.io.*; public class HulftSend { /** * 配信管理情報の登録 */ public static final String[] pre_env = { "HULEXEP=/usr/local/HULFT/bin","PATH=/usr/local/HULFT/bin:$PATH", "HULPATH=/usr/local/HULFT/etc" ;//HULFT の環境変数 public static void main(string[] args) { String os = oscheck();// 実行環境の OS をチェック makefile(os, args[0], args[1], args[2]);// 配信管理情報のパラメータファイルを作成 addsendinfo(os);// 配信管理情報の登録 // 実行環境の OS をチェック public static String oscheck() { String osname = System.getProperty("os.name"); return osname; // 配信管理情報のパラメータファイルを作成 public static void makefile(string os, String fileid, String filename, String groupid) { FileWriter fw = null; try { String newline = "";// 改行 if (os.indexof("windows")!= -1) {//Windows の場合 newline = "\r\n"; else {//Linux の場合 newline = "\n"; String [] snd = {"SNDFILE="+fileid, "FILENAME="+filename, "INTERVAL=0", "BLOCKLEN=4096", "BLOCKCNT=3", "COMP=NO", "COMPSIZE=0", "TRANSPRTY=50", "TRANSTYPE=TEXT", "CODESET=A", "KJCHNGE=S", "SHIFTTRANSACT=Y", "CLEAR=K", "GRPID="+groupid, "END";// 配信管理情報のパラメータ File fl = new File("./hulftsnd.txt");// パラメータファイル fl.createnewfile();// ファイルが存在しない場合 ファイルを生成 fw = new FileWriter(fl); for (int i = 0; i < snd.length; i++) {// ファイルにパラメータを書き込む fw.write(snd[i] + newline);// 各項目のパラメータ + 改行 catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace(); finally { try{ fw.close(); catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace();

Page 28 Section 6.3.2 配信管理情報のパラメータファイル作成 // 配信管理情報の登録 public static void addsendinfo(string os) { try { String command = "";// 実行コマンド if (os.indexof("windows")!= -1) { command = "\"C:\\HULFT Family\\hulft7\\binnt\\utliupdt.exe\" -f./hulftsnd.txt -r";// 配信管理情報登録コマンド Runtime rt = Runtime.getRuntime(); Process process = rt.exec(command);// コマンドの実行 checkerror(process);// コマンドの実行結果をチェック else { String[] env = pre_env;//hulft の環境変数 command = "/usr/local/hulft/bin/utliupdt -f./hulftsnd.txt -r";// 配信管理情報登録コマンド Runtime rt = Runtime.getRuntime(); Process process = rt.exec(command, env);// コマンドの実行 checkerror(process);// コマンドの実行結果をチェック System.out.println(" 配信管理情報の登録が完了しました "); catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace(); // 標準エラー出力と戻り値を表示 public static void checkerror(process process) { InputStream stream = null; BufferedReader br = null; try { int ret = process.waitfor();// コマンドの戻り値 stream = process.getinputstream(); br = new BufferedReader(new InputStreamReader(stream)); if (ret!= 0) {// コマンドの戻り値が 0 でない場合 String line; while ((line = br.readline())!= null) {// 標準エラーがある限り読み込む System.out.println(line);// 標準エラーの出力 System.out.println(" 戻り値 :" + ret);// 戻り値の出力 System.out.println(" 配信管理情報の登録に失敗しました "); System.exit(2);// リターンコード 2 で終了 catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace(); catch (InterruptedException e) { System.out.println(e.getMessage()); e.printstacktrace(); finally { try{ stream.close(); br.close(); catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace(); プログラムの処理については次節以降をご覧ください 6.3.2 配信管理情報のパラメータファイル作成 配信管理情報の登録に必要なパラメータファイルを作成します 配信管理情報登録ジョブの起動コマンドで引数に指定した値に応じて SNDFILE にはファイル ID FILENAME には転送するファイル名 GRPID には転送グループ ID が入力されます

Section 6.3.3 配信管理情報の登録 Page 29 6.3.3 配信管理情報の登録 作成した配信管理情報のパラメータファイルから 配信管理情報を登録します このとき utliupdt コマンドを使用しますが コマンドの戻り値が 0 以外の場合 標準エラーと戻り値を出力し リターンコード 2 で終了します

Page 30 Section 6.4 HulftFileTransferJob.java 6.4 HulftFileTransferJob.java 6.4.1 プログラム概要 集信管理情報の登録 送信要求の実行をするサンプルプログラムです package com.sample; import java.io.*; import java.util.*; public class HulftFileTransferJob { /** * 集信管理情報の登録 ファイル転送の実行 */ public static final String[] pre_env = { "HULEXEP=/usr/local/HULFT/bin","PATH=/usr/local/HULFT/bin:$PATH", "HULPATH=/usr/local/HULFT/etc" ;//HULFT の環境変数 public static final String pre_win_huloplcmd_path = "C:\\HULFT Family\\hulft7\\etc\\opl\\huloplcmd.csv";//Windows のコマンド実行ログのパス public static final String pre_win_hulrcvlog_path = "C:\\HULFT Family\\hulft7\\etc\\hulrcvlg.dat";//Windows の集信履歴ファイルのパス public static final String pre_linux_huloplcmd_path = "/usr/local/hulft/etc/opl/huloplcmd.csv";//linux のコマンド実行ログのパス public static final String pre_linux_hulrcvlog_path = "/usr/local/hulft/etc/hulrcvlog.dat";//linux の集信履歴ファイルのパス public static final String pre_win_nt ="C:\\HULFT Family\\hulft7\\etc\\errfile\\NT.dat";//Windows の NT.dat のパス public static final String pre_win_ux ="C:\\HULFT Family\\hulft7\\etc\\errfile\\UX.dat";//Windows の UX.dat のパス public static final String pre_linux_nt ="/root/hulft_test/jobs/nt.dat";//linux の NT.dat のパス public static final String pre_linux_ux ="/root/hulft_test/jobs/ux.dat";//linux の UX.dat のパス public static void main(string[] args) { String os = oscheck();// 実行環境の OS をチェック makefile(os, args[0], args[1]);// 集信管理情報のパラメータファイルを作成 addreceiveinfo(os);// 集信管理情報の登録 filetransferjob(os, args[0], args[2]);// 送信要求コマンドの実行 String error = geterrorcode(os);// エラーコードを取得 getmessage(os, error);// 詳細メッセージを表示 // 実行環境の OS をチェック public static String oscheck() { String osname = System.getProperty("os.name"); return osname; // 集信管理情報のパラメータファイルを作成 public static void makefile(string os, String fileid, String filename) { FileWriter fw = null; try { String newline = "";// 改行 if (os.indexof("windows")!= -1) {//Windows の場合 newline = "\r\n"; else {//Linux の場合 newline = "\n"; String[] rcv = { "RCVFILE=" + fileid, "FILENAME=" + filename, "OWNER=root", "GROUP=root", "PERM=777", "CODESET=A", "TRANSMODE=REP", "ABNORMAL=KEEP", "RCVTYPE=S", "GENCTL=NO", "JOBWAIT=T", "DATAVERIFY=0", "END" ;// 集信管理情報のパラメータ File fl = new File("./hulftrcv.txt");// パラメータファイル fl.createnewfile();// ファイルが存在しない場合 ファイルを生成 fw = new FileWriter(fl); for (int i = 0; i < rcv.length; i++) {// ファイルにパラメータを書き込む fw.write(rcv[i] + newline);// 各項目のパラメータ + 改行 catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace(); finally { try{ fw.close(); catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace();

Section 6.4 HulftFileTransferJob.java Page 31 // 集信管理情報の登録 public static void addreceiveinfo(string os) { try { String command = "";// 実行コマンド int ret = 0;// コマンドの戻り値 if (os.indexof("windows")!= -1) { command = "\"C:\\HULFT Family\\hulft7\\binnt\\utliupdt.exe\" -f./hulftrcv.txt -r";// 集信管理情報登録コマンド Runtime rt = Runtime.getRuntime(); Process process = rt.exec(command);// コマンドの実行 ret = checkerror(process);// コマンドの実行結果をチェック else { String[] env = pre_env;//hulft の環境変数 command = "/usr/local/hulft/bin/utliupdt -f./hulftrcv.txt -r";// 集信管理情報登録コマンド Runtime rt = Runtime.getRuntime(); Process process = rt.exec(command, env);// コマンドの実行 ret = checkerror(process);// コマンドの実行結果をチェック if (ret!= 0) { System.out.println(" 集信管理情報の登録に失敗しました "); System.exit(2);// リターンコード 2 で終了 else { System.out.println(" 集信管理情報の登録が完了しました "); catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace(); // 送信要求コマンドの実行 public static void filetransferjob(string os, String fileid, String hostname) { try { String command = "";// 実行コマンド int ret = 0;// コマンドの戻り値 if (os.indexof("windows")!= -1) {// 送信先が Windows の場合 command = "\"C:\\HULFT Family\\hulft7\\binnt\\utlrecv.exe\" -f " + fileid + " -h " + hostname + " -sync";// 送信要求コマンド Runtime rt = Runtime.getRuntime(); Process process = rt.exec(command);// コマンドの実行 ret = checkerror(process);// コマンドの実行結果をチェック else {// 送信先が Linux の場合 String[] env = pre_env;//hulft の環境変数 command = "/usr/local/hulft/bin/utlrecv -f " + fileid + " -h " + hostname + " -sync";// 送信要求コマンド Runtime rt = Runtime.getRuntime(); Process process = rt.exec(command, env);// コマンドの実行 ret = checkerror(process);// コマンドの実行結果をチェック if (ret!= 0) { System.out.println(" ファイルの転送に失敗しました "); else{ System.out.println(" ファイルの転送が完了しました "); System.exit(0);// リターンコード 0 で終了 catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace(); // エラーコードを取得 public static String geterrorcode(string os) { String error= "";// エラーコード BufferedReader br = null; FileInputStream fis = null; BufferedInputStream bis = null;

Page 32 Section 6.4 HulftFileTransferJob.java try { String huloplcmd_path = "";// コマンド実行ログのパス String hulrcvlog_path = "";// 集信履歴ファイルのパス String line = "";// 該当ファイルの 1 行分 String lastline = "";// 該当行 String id = "";// 処理識別子 byte[] buf;//1 行を 1 バイトずつ格納 if (os.indexof("windows")!= -1) { huloplcmd_path = pre_win_huloplcmd_path; hulrcvlog_path = pre_win_hulrcvlog_path; buf = new byte[1280];// 集信履歴ファイルの 1 行あたりのバイト数 else { huloplcmd_path = pre_linux_huloplcmd_path; hulrcvlog_path = pre_linux_hulrcvlog_path; buf = new byte[1088];// 集信履歴ファイルの 1 行あたりのバイト数 File csv = new File(huloplcmd_path); br = new BufferedReader(new FileReader(csv));// コマンド実行ログを読み込む while ((line = br.readline())!= null) {//1 行ずつ最終行まで読み込む lastline = line; StringTokenizer st = new StringTokenizer(lastline, "\",\"");// 最終行を "," で区切る int i = 0; while (st.hasmoretokens()) { id = st.nexttoken(); if (i == 7) {//8 番目のトークンである処理識別子を取得 break; i++; fis = new FileInputStream(hulrcvlog_path); bis = new BufferedInputStream(fis);// 集信履歴ファイルを読み込む int len = bis.read(buf); String matchline; String [] errorcode = new String [8]; while ( ( len = bis.read(buf) )!= -1 ) {//1 行ずつ読み込み 処理識別子と一致するか確認 matchline = new String(buf, 0, len);// 読み込んだ行を文字列に変換 if(matchline.indexof(id)!= -1){// 処理識別子と一致したら終了 break; if (os.indexof("windows")!= -1) {//Windows の場合 for (i = 161; i <= 166; i++) {//16 進数で 161~164 バイト目を取得 errorcode[i-161] = String.format("%1$x ", buf[i-1]); errorcode[i-161] = errorcode[i-161].length() == 2? "0" + errorcode[i-161] : errorcode[i-161]; errorcode[6] = errorcode[3].trim() + errorcode[2].trim() + errorcode[1].trim() + errorcode[0].trim(); errorcode[7] = errorcode[5].trim() + errorcode[4].trim();// 詳細コード int errorcode1 = Integer.parseInt(errorcode[6], 16);//10 進数に変換 int errorcode2 = Integer.parseInt(errorcode[7], 16);//10 進数に変換 errorcode1 = errorcode1%1000;// 完了コード errorcode[6] = String.format("%03d", errorcode1);//3 桁に整形 errorcode[7] = String.format("%05d", errorcode2);//5 桁に整形 error = errorcode[6] + errorcode[7];// 完了コード + 詳細コード else { for (i = 161; i <= 164; i++) {//16 進数で 161~164 バイト目を取得 errorcode[i-161] = String.format("%1$x ", buf[i-1]); errorcode[i-161] = errorcode[i-161].length() == 2? "0" + errorcode[i-161] : errorcode[i-161]; errorcode[4] = errorcode[1].trim() + errorcode[0].trim();// 完了コード errorcode[5] = errorcode[3].trim() + errorcode[2].trim();// 詳細コード int errorcode1 = Integer.parseInt(errorcode[4], 16);//10 進数に変換 int errorcode2 = Integer.parseInt(errorcode[5], 16);//10 進数に変換

Section 6.4 HulftFileTransferJob.java Page 33 errorcode[4] = String.format("%04d", errorcode1);//4 桁に整形 errorcode[5] = String.format("%04d", errorcode2);//4 桁に整形 error = errorcode[4] + errorcode[5];// 完了コード+ 詳細コード catch (FileNotFoundException e) { System.out.println(e.getMessage()); e.printstacktrace(); catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace(); finally { try{ br.close(); fis.close(); bis.close(); catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace(); return error; // 標準エラー出力と戻り値を表示 public static int checkerror(process process) { int ret = 0;// コマンドの戻り値 InputStream stream = null; BufferedReader br = null; try { ret = process.waitfor(); stream = process.getinputstream(); br = new BufferedReader(new InputStreamReader(stream)); if (ret!= 0) {// コマンドの戻り値が 0 でない場合 String line; while ((line = br.readline())!= null) {// 標準エラーがある限り読み込む System.out.println(line);// 標準エラーの出力 System.out.println(" 戻り値 :" + ret);// 戻り値の出力 catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace(); catch (InterruptedException e) { System.out.println(e.getMessage()); e.printstacktrace(); finally { try{ stream.close(); br.close(); catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace(); return ret; // 詳細メッセージを表示 public static void getmessage(string os, String errorcode){ String [] filepath = new String[2];// エラーファイルのパス String fileerrorcode = "";// エラーファイルと一致させるエラーコード if(os.indexof("windows")!=-1){// 送信先が Windows の場合 filepath[0] =pre_win_nt;//nt.dat のパス filepath[1] =pre_win_ux;//ux.dat のパス

Page 34 Section 6.4 HulftFileTransferJob.java int winerrorcode = Integer.parseInt(errorcode); if((winerrorcode/100000)==406){// 完了コードが xxx406(00xxx) の場合 fileerrorcode = Integer.toString(winerrorcode%1000); searcherrorcode(filepath[0], fileerrorcode);// 送信元が WIndows の場合メッセージを出力 fileerrorcode = "0" + Integer.toString(winerrorcode%1000); searcherrorcode(filepath[1], fileerrorcode);// 送信元が Linux の場合メッセージを出力 else{// 完了コードが xxx406(00xxx) 以外の場合 fileerrorcode = Integer.toString(winerrorcode/100000); searcherrorcode(filepath[0], fileerrorcode); else {// 送信先が Linux の場合 filepath[0] =pre_linux_ux;//ux.dat のパス filepath[1] =pre_linux_nt;//nt.dat のパス int linuxerrorcode = Integer.parseInt(errorcode); if((linuxerrorcode/10000)==209){// 完了コードが 02090xxx の場合 fileerrorcode = Integer.toString(linuxerrorcode%1000); searcherrorcode(filepath[1], fileerrorcode);// 送信元が WIndows の場合メッセージを出力 fileerrorcode = "0" + Integer.toString(linuxerrorcode%1000); searcherrorcode(filepath[0], fileerrorcode);// 送信元が Linux の場合メッセージを出力 else{// 完了コードが 02090xxx 以外の場合 fileerrorcode = errorcode; searcherrorcode(filepath[0], fileerrorcode); System.exit(1);// リターンコード 1 で終了 // エラーファイルを探索 出力 public static void searcherrorcode(string filepath, String errorcode) { BufferedReader br = null; try { String line = "";// 該当ファイルの 1 行分 String matchline = "";// 該当行 String message = "";// エラー詳細 int errorcount = 0;// エラー表示件数 File fp = new File(filepath); br = new BufferedReader(new FileReader(fp)); while ((line = br.readline())!= null) {// 最終行まで読み込む matchline = line; StringTokenizer st = new StringTokenizer(matchline, ",");// 読み込んだ行を, で区切る int i = 0; while (st.hasmoretokens()) { message = st.nexttoken(); if (i == 1){ if(message.startswith(errorcode)) {// 2 番目のトークンがエラーコードと前方一致した場合 errorcount++; System.out.println(); System.out.println(" エラー詳細 "); else{// 2 番目のトークンがエラーコードと一致しなかった場合終了 次の行に進む break; else if(i>1){// エラーメッセージを表示 System.out.println(message); i++; if(errorcount >= 2){// エラー表示件数が 2 件以上の場合 System.out.println(); System.out.println(" 上記エラー詳細のいずれかが 原因として考えられます "); catch (FileNotFoundException e) { System.out.println(e.getMessage()); e.printstacktrace();

Section 6.4.2 集信管理情報のパラメータファイル作成 Page 35 catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace(); finally { try{ br.close(); catch (IOException e) { System.out.println(e.getMessage()); e.printstacktrace(); プログラムの処理については次節以降をご覧ください 6.4.2 集信管理情報のパラメータファイル作成 集信管理情報の登録に必要なパラメータファイルを作成します ファイル転送ジョブの起動コマンドで引数に指定した値に応じて RCVFILE には登録したファイル ID FILENAME には配置先のファイル名が入力されます 6.4.3 集信管理情報の登録 作成した集信管理情報のパラメータファイルから 集信管理情報を登録します このとき utliupdt コマンドを使用しますが コマンドの戻り値が 0 以外の場合 標準エラーと戻り値を出力し リターンコード 2 で終了します 6.4.4 送信要求コマンドの実行 ファイル転送ジョブの起動コマンドで引数に指定したファイル ID 送信元のホスト名を引数として送信要求を実行します 送信先が Linux の場合は コマンド実行時に HULFT の環境変数を渡します コマンドの戻り値が 0 の場合 リターンコード 0 で終了します 6.4.5 エラーコードを取得 送信要求コマンドの実行に失敗した場合 エラーコード ( 完了コード + 詳細コード ) を取得します コマンド実行ログ (huloplcmd.c sv) の最終行から処理識別子を取得します 次に 集信履歴ファイル (hulrcvlog.dat) で取得した処理識別子に一致する行を探索し 完了コードと詳細コードを取得します 最終的には ファイルの転送先が Windows の場合は 000( 完了コード )+00000( 詳細コード ) Linux の場合は 0000( 完了コード )+0000( 詳細コード ) の形で いずれも 8 桁の文字列として整形します 6.4.6 詳細メッセージの表示 取得したエラーコード ( 完了コード + 詳細コード ) に応じて エラー定義ファイル (NT.dat UX.dat) より エラーメッセージを取得し 詳細メッセージとして出力します 詳細メッセージ出力後は リターンコード 1 で終了します エラーコードの構成については 本ドキュメントの サンプルプログラムで使用する HULFT のエラーコード ファイル をご参照ください エラーコードによる振り分け方法は 下記の図をご覧ください

Page 36 Section 6.4.2 集信管理情報のパラメータファイル作成 図 17, エラーコードによる振り分け方法

Section 7 付録 B Page 37 7 付録 B 7.1 連携にあたっての検討内容 本連携では HULFT のファイル転送時に送信元から送信先に対して 配信要求 を実行するのではなく 送信先から送信元に対して 送信要求 を実行しています 配信要求を選択した場合 ジョブは送信元に対して実行することになります この場合 ジョブ作成時のスコープには送信元のマスタサーバを指定するため 送信先の Web サーバを指定するには 配信要求時に指定したファイル ID の配信管理情報と紐付いた転送グループ ID を利用する必要があります また ジョブの実行結果も送信元のサーバに集約するため 送信先それぞれの結果を確認することが困難となります 図 18, 配信要求を選択した場合

Page 38 Section 7 付録 B 一方 送信要求を選択した場合 ジョブは送信先に対して実行することになります この場合 ジョブ作成時のスコープには Hinemos のスコープを利用して送信先の Web サーバ群を指定できます 送信要求コマンド utlrecv の引数に送信元ホスト名を記載することで 送信元のマスタサーバも指定可能です また ジョブの実行結果も送信先それぞれの結果を確認することが可能となります 図 19, 送信要求を選択した場合 配信要求と送信要求を検討した結果 本連携では 1 サーバから複数のサーバにファイルを配布するシナリオに適応できる送信要求を選択しました

Section 7 付録 B Page 39 Hinemos HULFT 連携ノウハウと適用例公開日 :2012/11/5 非売品 - 禁無断複製 - 禁無断転載 - 禁無断再配布 Hinemos は ( 株 )NTT データの登録商標です Linux は Linus Torvalds 氏の米国およびその他の国における登録商標または商標です その他 本書に記載されている会社名 製品名は 各社の登録商標または商標です なお 本文中には TM R マークは表記しておりません