0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM MQ Managed File Transfer(MFT)の覚え書き

Last updated at Posted at 2025-08-04

MFTとは?

IBM MQ MFTは、IBM MQの信頼性やセキュリティなどを活かして安全かつ確実にファイルを転送する機能であり、使用にはIBM MQ Advancedライセンスが必要になります。

MFTの詳細はマニュアル:Managed File Transfer を参照してください。

主な特徴

項目 説明
MQベースのファイル転送 IBM MQの信頼性の高いメッセージング基盤を活用して、ファイルをMQメッセージに変換して転送
セキュアな転送 MQのセキュリティ(暗号化、認証、アクセス制御)を利用して、安全にファイルを送信可能
障害時の自動再転送、リスタート MQチャネルの自動再接続、障害回復後、チェックサムによりファイルの整合性をチェックし、未送信部分から再送
コーディング不要 コマンド/REST API/GUIによるファイル転送可能
転送の自動化 スケジューリング(日時指定、設定間隔での繰返し)やイベントをトリガーとしてファイル転送を起動(ファイルの作成/ファイル容量など)することが可能

MFTを構成する主要なコンポーネント

コンポーネント名 概要・役割
調整キュー・マネージャー MFT全体を管理するキュー・マネージャー(転送指示、エージェント登録などの処理/監査ログ、転送ログやファイル転送状況の管理)
コマンド・キュー・マネージャー 主にファイル転送用のコマンド・メッセージを適切なエージェントに送信するキュー・マネージャー
エージェント・キュー・マネージャー エージェントがファイル転送を行うために接続(ローカル/クライント)するキュー・マネージャー
エージェント ファイルの送受信を行う常駐のJavaアプリケーション
ロガー 構成における転送アクティビティーに関する履歴情報と監査情報を保持するためのファイル・ロガー、または、データベース・ロガー

ファイル転送実行方法

方法 説明
CLIコマンド
ex) fteCreateTransfer
コマンドラインからファイル転送を制御可能
REST API エージェントやファイル転送を制御可能なHTTPベースのAPI
スケジューリング テンプレートや定義済み設定を使ってスケジュール実行や定型転送を実施
転送トリガー トリガー条件(ex. ファイルの有無、ファイルのサイズ)を指定して、ファイル転送可能
MQ Explorer          GUIから転送ジョブを定義・実行・監視可能

導入

環境

Windows 2022
IBM MQ V9.4.0.10
IBM MQ Explorer 9.4.3.0

MFT

IBM MQのインストールと合わせて、以下4つのフィーチャーをインストール

  • Managed File Transfer Service
  • Managed File Transfer Logger
  • Managed File Transfer Agent
  • Managed File Transfer Tools

参考:Windows システムの IBM MQ フィーチャー

MQ Explorer

ここでは転送ジョブを定義・実行・監視のためにMQ Explorerを使用するため、マニュアル:Linux および Windows でのスタンドアロン・アプリケーションとしての IBM MQ Explorer のインストールおよびアンインストールを参考にMQ Explorerをインストール

構成

以下の構成でシンプルなファイル転送をテストします。
ここでは同一OSに複数のキュー・マネージャーを構築、MFTを構成して、テストを実施しています。

簡易構成イメージ

  • 調整キュー・マネージャー/コマンド・キュー・マネージャー:QM03(Port:9414)
  • エージェント・キュー・マネージャー #1:QM01(Port:9415)
  • エージェント・キュー・マネージャー #2:QM02(Port:9416)
  • エージェント #1:QM01.AG1
  • エージェント #2:QM02.AG1
  • 送受信チャネル
    • <送信元キュー・マネージャー>.<送信先キュー・マネージャー>
  • XMITQは送信先キュー・マネージャー名
  • サーバー接続チャネル
    • QM03.CLT = 調整キュー・マネージャー/コマンド・キュー・マネージャーへのチャネル
    • QM01.CLT = エージェント・キュー・マネージャー #1へのチャネル
    • QM02.CLT = エージェント・キュー・マネージャー #2へのチャネル

スクリーンショット 2025-07-28 14.54.47.png

キュー・マネージャーの作成/起動(QM01/QM02/QM03)

# キュー・マネージャーを作成
>crtmqm QM0x  # x=1,2,3

# キュー・マネージャーを起動
>strmqm QM0x 

リスナーの作成/起動(QM01/QM02/QM03)

runmqscコマンドを使用して MQSC コマンドを実行します。

QM01

# ポート番号:9415をListenするリスナーを作成
DEFINE LISTENER(LISTENER9415) TRPTYPE(TCP) PORT(9415) CONTROL(QMGR)

QM02

DEFINE LISTENER(LISTENER9416) TRPTYPE(TCP) PORT(9416) CONTROL(QMGR)

QM03

DEFINE LISTENER(LISTENER9414) TRPTYPE(TCP) PORT(9414) CONTROL(QMGR)

認証系オフ(QM01/QM02/QM03)

検証のためMQの認証は使用しないので、認証周りの設定は無効化しています。

ALTER QMGR CHLAUTH(DISABLED) CONNAUTH(' ')

調整キュー・マネージャーのセットアップ(QM03)

  • fteSetupCoordinationコマンドを実行して、調整キュー・マネージャーとするキュー・マネージャーを指定
>fteSetupCoordination -coordinationQMgr QM03 -coordinationQMgrHost localhost -coordinationQMgrPort 9414 -coordinationQMgrChannel QM03.CLT

5724-H72 Copyright IBM Corp.  2008, 2025.  ALL RIGHTS RESERVED
BFGCM0242I: Direct the following MQSC definitions for your coordination queue manager 'QM03' to an MQSC session if you have not already done so.

DEFINE TOPIC('SYSTEM.FTE') TOPICSTR('SYSTEM.FTE') REPLACE
ALTER TOPIC('SYSTEM.FTE') NPMSGDLV(ALLAVAIL) PMSGDLV(ALLAVAIL)
DEFINE QLOCAL(SYSTEM.FTE) LIKE(SYSTEM.BROKER.DEFAULT.STREAM) REPLACE
ALTER QLOCAL(SYSTEM.FTE) DESCR('Stream for MQMFT Pub/Sub interface')
* Altering namelist: SYSTEM.QPUBSUB.QUEUE.NAMELIST
* Value prior to alteration:
DISPLAY NAMELIST(SYSTEM.QPUBSUB.QUEUE.NAMELIST)
ALTER NAMELIST(SYSTEM.QPUBSUB.QUEUE.NAMELIST) +
 NAMES(SYSTEM.BROKER.DEFAULT.STREAM+
 ,SYSTEM.BROKER.ADMIN.STREAM,SYSTEM.FTE)
* Altering PSMODE.  Value prior to alteration:
DISPLAY QMGR PSMODE
ALTER QMGR PSMODE(ENABLED)


BFGCM0243I: A file has been created that contains the MQSC definitions for your coordination queue manager. The file can be found here: 'C:\ProgramData\IBM\MQ\mqft\config\QM03\QM03.mqsc'.
  • fteSetupCoordinationコマンド実行すると、調整キュー・マネージャーに必要なMQオブジェクト定義用のmqscファイルが出力されるため、それを使用してMQオブジェクトを作成
>runmqsc -f C:\ProgramData\IBM\MQ\mqft\config\QM03\QM03.mqsc QM03

コマンド・キュー・マネージャーのセットアップ(QM03)

  • fteSetupCommandsコマンドを実行して、コマンド・キュー・マネージャーとするキュー・マネージャーを指定(今回は調整キュー・マネージャーと同じキュー・マネージャーを指定)
>fteSetupCommands -connectionQMgr QM03 -connectionQMgrHost localhost -connectionQMgrPort 9414 -connectionQMgrChannel QM03.CLT -p QM03

5724-H72 Copyright IBM Corp.  2008, 2025.  ALL RIGHTS RESERVED
BFGCL0245I: The file 'C:\ProgramData\IBM\MQ\mqft\config\QM03\command.properties' has been created successfully.

MQオブジェクトの作成(QM01/QM02/QM03)

キュー・マネージャー間接続には、「宛先キュー・マネージャーと同名のトランスミッション・キュー」と「MQチャネル(SDR/RCVR)」、エージェントやGUIとのやり取りには「サーバー接続チャネル(SVRCONN)」を使用するため、簡易構成イメージに記載のネーミングで必要なMQオブジェクトを作成します。

QM01

# 受信チャネルの作成
DEFINE CHANNEL(QM02.QM01) CHLTYPE(RCVR) TRPTYPE(TCP)
DEFINE CHANNEL(QM03.QM01) CHLTYPE(RCVR) TRPTYPE(TCP)

# 送信チャネルの作成
DEFINE CHANNEL(QM01.QM02) CHLTYPE(SDR) CONNAME('LOCALHOST(9416)') XMITQ(QM02)
DEFINE CHANNEL(QM01.QM03) CHLTYPE(SDR) CONNAME('LOCALHOST(9414)') XMITQ(QM03)

# トランスミッション・キューの作成
DEFINE QLOCAL(QM02) USAGE(XMITQ)
DEFINE QLOCAL(QM03) USAGE(XMITQ)

# サーバー接続チャネルの作成
DEFINE CHANNEL(QM01.CLT) CHLTYPE(SVRCONN) TRPTYPE(TCP)

QM02

DEFINE CHANNEL(QM01.QM02) CHLTYPE(RCVR) TRPTYPE(TCP)
DEFINE CHANNEL(QM03.QM02) CHLTYPE(RCVR) TRPTYPE(TCP)

DEFINE CHANNEL(QM02.QM01) CHLTYPE(SDR) CONNAME('LOCALHOST(9415)') XMITQ(QM01)
DEFINE CHANNEL(QM02.QM03) CHLTYPE(SDR) CONNAME('LOCALHOST(9414)') XMITQ(QM03)

DEFINE QLOCAL(QM01) USAGE(XMITQ)
DEFINE QLOCAL(QM03) USAGE(XMITQ)

DEFINE CHANNEL(QM02.CLT) CHLTYPE(SVRCONN) TRPTYPE(TCP)

QM03

DEFINE CHANNEL(QM01.QM03) CHLTYPE(RCVR) TRPTYPE(TCP)
DEFINE CHANNEL(QM02.QM03) CHLTYPE(RCVR) TRPTYPE(TCP)

DEFINE CHANNEL(QM03.QM01) CHLTYPE(SDR) CONNAME('LOCALHOST(9415)') XMITQ(QM01)
DEFINE CHANNEL(QM03.QM02) CHLTYPE(SDR) CONNAME('LOCALHOST(9416)') XMITQ(QM02)

DEFINE QLOCAL(QM01) USAGE(XMITQ)
DEFINE QLOCAL(QM02) USAGE(XMITQ)

DEF CHL(QM03.CLT) CHLTYPE(SVRCONN) TRPTYPE(TCP)

リスナー/送信チャネルの起動(QM01/QM02/QM03)

ファイル転送実施前には必ず各リスナー/チャネルを起動しておきます。

QM01

# リスナーを起動
START LISTENER(LISTENER9415)

# 送信チャネルを起動
START CHANNEL(QM01.QM02) 
START CHANNEL(QM01.QM03) 

QM02

START LISTENER(LISTENER9416)
START CHANNEL(QM02.QM01) 
START CHANNEL(QM02.QM03) 

QM03

START LISTENER(LISTENER9414)
START CHANNEL(QM03.QM01) 
START CHANNEL(QM03.QM02) 

エージェントの作成(QM01/QM02)

QM01

  • fteCreateAgentコマンドを実行して、エージェントを作成
>fteCreateAgent -agentName QM01.AG1 -agentQMgr QM01 -agentQMgrChannel QM01.CLT -p QM03

5724-H72 Copyright IBM Corp.  2008, 2025.  ALL RIGHTS RESERVED
BFGCM0238I: Direct the following MQSC definitions for agent 'QM01.AG1' to queue manager 'QM01'.

DEFINE QLOCAL(SYSTEM.FTE.COMMAND.QM01.AG1) +
 DEFPRTY(0) +
 DEFSOPT(SHARED) +
 GET(ENABLED) +
 MAXDEPTH(5000) +
 MAXMSGL(4194304) +
 MSGDLVSQ(PRIORITY) +
 PUT(ENABLED) +
 RETINTVL(999999999) +
 SHARE +
 NOTRIGGER +
 USAGE(NORMAL) +
 REPLACE
DEFINE QLOCAL(SYSTEM.FTE.DATA.QM01.AG1) +
 DEFPRTY(0) +
 DEFSOPT(SHARED) +
 GET(ENABLED) +
 MAXDEPTH(5000) +
 MAXMSGL(4194304) +
 MSGDLVSQ(PRIORITY) +
 PUT(ENABLED) +
 RETINTVL(999999999) +
 SHARE +
 NOTRIGGER +
 USAGE(NORMAL) +
 REPLACE
DEFINE QLOCAL(SYSTEM.FTE.REPLY.QM01.AG1) +
 DEFPRTY(0) +
 DEFSOPT(SHARED) +
 GET(ENABLED) +
 MAXDEPTH(5000) +
 MAXMSGL(4194304) +
 MSGDLVSQ(PRIORITY) +
 PUT(ENABLED) +
 RETINTVL(999999999) +
 SHARE +
 NOTRIGGER +
 USAGE(NORMAL) +
 REPLACE
DEFINE QLOCAL(SYSTEM.FTE.STATE.QM01.AG1) +
 DEFPRTY(0) +
 DEFSOPT(SHARED) +
 GET(ENABLED) +
 MAXDEPTH(5000) +
 MAXMSGL(4194304) +
 MSGDLVSQ(PRIORITY) +
 PUT(ENABLED) +
 RETINTVL(999999999) +
 SHARE +
 NOTRIGGER +
 USAGE(NORMAL) +
 REPLACE
DEFINE QLOCAL(SYSTEM.FTE.EVENT.QM01.AG1) +
 DEFPRTY(0) +
 DEFSOPT(SHARED) +
 GET(ENABLED) +
 MAXDEPTH(5000) +
 MAXMSGL(4194304) +
 MSGDLVSQ(PRIORITY) +
 PUT(ENABLED) +
 RETINTVL(999999999) +
 SHARE +
 NOTRIGGER +
 USAGE(NORMAL) +
 REPLACE
DEFINE QLOCAL(SYSTEM.FTE.AUTHAGT1.QM01.AG1) +
 DEFPRTY(0) +
 DEFSOPT(SHARED) +
 GET(ENABLED) +
 MAXDEPTH(0) +
 MAXMSGL(0) +
 MSGDLVSQ(PRIORITY) +
 PUT(ENABLED) +
 RETINTVL(999999999) +
 SHARE +
 NOTRIGGER +
 USAGE(NORMAL) +
 REPLACE
DEFINE QLOCAL(SYSTEM.FTE.AUTHTRN1.QM01.AG1) +
 DEFPRTY(0) +
 DEFSOPT(SHARED) +
 GET(ENABLED) +
 MAXDEPTH(0) +
 MAXMSGL(0) +
 MSGDLVSQ(PRIORITY) +
 PUT(ENABLED) +
 RETINTVL(999999999) +
 SHARE +
 NOTRIGGER +
 USAGE(NORMAL) +
 REPLACE
DEFINE QLOCAL(SYSTEM.FTE.AUTHOPS1.QM01.AG1) +
 DEFPRTY(0) +
 DEFSOPT(SHARED) +
 GET(ENABLED) +
 MAXDEPTH(0) +
 MAXMSGL(0) +
 MSGDLVSQ(PRIORITY) +
 PUT(ENABLED) +
 RETINTVL(999999999) +
 SHARE +
 NOTRIGGER +
 USAGE(NORMAL) +
 REPLACE
DEFINE QLOCAL(SYSTEM.FTE.AUTHSCH1.QM01.AG1) +
 DEFPRTY(0) +
 DEFSOPT(SHARED) +
 GET(ENABLED) +
 MAXDEPTH(0) +
 MAXMSGL(0) +
 MSGDLVSQ(PRIORITY) +
 PUT(ENABLED) +
 RETINTVL(999999999) +
 SHARE +
 NOTRIGGER +
 USAGE(NORMAL) +
 REPLACE
DEFINE QLOCAL(SYSTEM.FTE.AUTHMON1.QM01.AG1) +
 DEFPRTY(0) +
 DEFSOPT(SHARED) +
 GET(ENABLED) +
 MAXDEPTH(0) +
 MAXMSGL(0) +
 MSGDLVSQ(PRIORITY) +
 PUT(ENABLED) +
 RETINTVL(999999999) +
 SHARE +
 NOTRIGGER +
 USAGE(NORMAL) +
 REPLACE
DEFINE QLOCAL(SYSTEM.FTE.AUTHADM1.QM01.AG1) +
 DEFPRTY(0) +
 DEFSOPT(SHARED) +
 GET(ENABLED) +
 MAXDEPTH(0) +
 MAXMSGL(0) +
 MSGDLVSQ(PRIORITY) +
 PUT(ENABLED) +
 RETINTVL(999999999) +
 SHARE +
 NOTRIGGER +
 USAGE(NORMAL) +
 REPLACE
DEFINE QLOCAL(SYSTEM.FTE.HA.QM01.AG1) +
 DEFPRTY(0) +
 DEFSOPT(SHARED) +
 GET(ENABLED) +
 MAXDEPTH(0) +
 MAXMSGL(0) +
 MSGDLVSQ(PRIORITY) +
 PUT(ENABLED) +
 RETINTVL(999999999) +
 SHARE +
 NOTRIGGER +
 USAGE(NORMAL) +
 REPLACE


BFGCM0239I: A file has been created containing the MQSC definitions to define the agent QM01.AG1. The file can be found here: 'C:\ProgramData\IBM\MQ\mqft\config\QM03\agents\QM01.AG1\QM01.AG1_create.mqsc'.
BFGCM0241I: A file has been created containing the MQSC definitions to delete the agent QM01.AG1. The file can be found here: 'C:\ProgramData\IBM\MQ\mqft\config\QM03\agents\QM01.AG1\QM01.AG1_delete.mqsc'.
BFGPR0127W: No credentials file has been specified to connect to IBM MQ. Therefore, the assumption is that IBM MQ authentication has been disabled.
BFGCL0053I: Agent configured and registered successfully.

コマンドを実行するとエージェントのディレクトリとエージェント用キューの作成/削除用mqscファイルが作成されます。

  • エージェント用キュー作成のmqscファイルを実行して、エージェント用キューを作成
>runmqsc QM01 < C:\ProgramData\IBM\MQ\mqft\config\QM03\agents\QM01.AG1\QM01.AG1_create.mqsc

QM02

  • エージェントを作成
> fteCreateAgent -agentName QM02.AG1 -agentQMgr QM02 -agentQMgrChannel QM02.CLT -p QM03

<QM01と同様のため省略>
  • エージェント用キュー作成のmqscファイルを実行して、エージェント用キューを作成
>runmqsc QM02 < C:\ProgramData\IBM\MQ\mqft\config\QM03\agents\QM02.AG1\QM02.AG1_create.mqsc

エージェントの開始

  • fteStartAgentコマンドを実行して、エージェントを開始

QM01

>fteStartAgent QM01.AG1 -p QM03

QM02

>fteStartAgent QM02.AG1 -p QM03

開始したエージェントのステータスがREADYであることを確認

>fteListAgents

5724-H72 Copyright IBM Corp.  2008, 2025.  ALL RIGHTS RESERVED
BFGPR0127W: No credentials file has been specified to connect to IBM MQ. Therefore, the assumption is that IBM MQ authentication has been disabled.

Command executed at 2025-05-12 04:38:56 CDT

Coordination queue manager time 2025-05-12 09:38:56 UTC

Agent Name:             Queue Manager Name:     Status:     Status Age:
QM01.AG1              QM01                  READY           0:01:07
QM02.AG1              QM02                  READY           0:00:16

MQ Explorerを使用したファイル転送

(チャネルが正常に起動していることを確認)

  • ファイルをやり取りするエージェント・キュー・マネージャー間
  • 調整キュー・マネージャーとエージェント・キュー・マネージャー間

ex) QM01

DISPLAY CHSTATUS(*)
     1 : DISPLAY CHSTATUS(*)
AMQ8417I: Display Channel Status details.
   CHANNEL(QM01.QM03)                  CHLTYPE(SDR)
   CONNAME(127.0.0.1(9414))                CURRENT
   RQMNAME(QM03)                         STATUS(RUNNING)
   SUBSTATE(MQGET)                         XMITQ(QM03)
AMQ8417I: Display Channel Status details.
   CHANNEL(QM01.QM02)                  CHLTYPE(SDR)
   CONNAME(127.0.0.1(9416))                CURRENT
   RQMNAME(QM02)                         STATUS(RUNNING)
   SUBSTATE(MQGET)                         XMITQ(QM02)
AMQ8417I: Display Channel Status details.
   CHANNEL(QM03.QM01)                  CHLTYPE(RCVR)
   CONNAME(127.0.0.1)                      CURRENT
   RQMNAME(QM03)                         STATUS(RUNNING)
   SUBSTATE(RECEIVE)
AMQ8417I: Display Channel Status details.
   CHANNEL(QM02.QM01)                  CHLTYPE(RCVR)
   CONNAME(127.0.0.1)                      CURRENT
   RQMNAME(QM02)                         STATUS(RUNNING)
   SUBSTATE(RECEIVE)

単一ファイルの転送

MQ Explorerからファイル転送指示を出して、Sourceファイル(C:\Users\Administrator.VSI-xxx-MQ-WIN\temp\source\source.txt)を宛先ディレクトリ(C:\Users\Administrator.VSI-xxx-MQ-WIN\temp\dist)に転送してみます。

  • MQ Explorerのナビゲーションメニュー > 「Managed File Transfer」を右クリックして、「New Transfer...」をクリック

png1.tiff

  • 送信側のエージェントと宛先側のエージェントを指定して、「Next」をクリック

png2.png

  • 「Add」をクリックして、ファイル転送形式(Mode)や転送ファイル(Source)、宛先情報(Destination)を指定して、「OK」をクリック

png3.png

  • 画面が戻り、「Finish」をクリックするとファイル転送が開始

  • 実行結果の確認は転送ログで確認可能

png4.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?