创建 IBM MQ 文件传输结构

您可以根据连接到同一机器上的队列管理器的单个代理程序来配置 Managed File Transfer 结构。

关于本任务

MFT 配置存储在代理所在机器 IBM® MQ DataPath, 下的文件结构中。

以下样本配置适用于 IBM MQ 8.0 队列管理器中名为 SAMPLECOORD (已禁用安全性) 的 MFT 以及名为 SAMPLEAGENT的单个 MFT 代理程序:
 +--- config
              +--- SAMPLECOORD
                              +--- command.properties
                              +--- coordination.properties
                              +--- SAMPLECOORD.mqsc
                              +--- agents
                                              +--- SAMPLEAGENT
                                                              +--- agent.properties
                                                              +--- SAMPLEAGENT_create.mqsc
                                                              +--- SAMPLEAGENT_delete.mqsc
  
 +---logs
              +--- SAMPLECOORD
                              +--- agents
                                              +--- SAMPLEAGENT
                                                              +--- logs
此示例假定队列管理器安全性已禁用。 以下命令(在 runmqsc 中运行)将在重新启动队列管理器后禁用安全性:
runmqsc queue manager
 alter qmgr CONNAUTH(NONE);
 alter qmgr CHLAUTH(DISABLED);
 end;
对于在 IBM MQ 8.0 或更高版本的 MFT 中启用了安全性的配置, CONNAUTH 需要所有与队列管理器连接的 MFT 命令来提供用户标识和密码凭证。 您可以为每个命令额外应用参数 -mquserid-mqpassword,或者定义 MQMFTCredentials.xml 文件。 以下样本凭证文件定义 fteuser的用户标识,在连接到队列管理器 SAMPLECOORD时将使用该用户标识的 MyPassword 密码:
<tns:mqmftCredentials xmlns:tns="http://wmqfte.ibm.com/MQMFTCredentials" 
        xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://wmqfte.ibm.com/MQMFTCredentials MQMFTCredentials.xsd">
    <tns:qmgr mqPassword="MyPassword" MyUserId="fteuser" name="SAMPELCOORD"/>
</tns:mqmftCredentials>

有关更多信息,请参阅 MFTIBM MQ 连接认证

注:
  • 要找到 MFT 配置目录,请使用 fteDisplayVersion -v 命令。
  • [z/OS]对于 z/OS® 用户, MQMFTCredential.xml 文件可作为可变记录格式 (RECFM=V) 或未定义记录格式 (RECFM=U) 的分区数据集中的一个成员。
  • 对于启用了安全性的配置,请将以下参数添加到以下步骤以将凭证与相关队列管理器相关联: -F full_credential_file_path
  • MQMFTCredential.xml 中的明文密码可以使用以下命令进行加密:
    fteObfuscate -f full_file_path_to_MQMFTCredentials.xml

过程

  1. 创建协调队列管理器。
    协调队列管理器是一个队列管理器,用于接收来自其代理的所有传输日志和状态信息。 运行以下命令:
    fteSetupCoordination -coordinationQMgr coordination_qmgr_name
    这将创建基本顶级配置,并创建要调用 coordination_qmgr_name.mqscIBM MQ 脚本文件。
    然后,需要通过运行以下 IBM MQ 命令将配置装入到队列管理器中:
    runmqsc queue manager name < coordination_qmgr_name.mqsc
    注: 对于与队列管理器的 TCP 客户机连接,可以使用:
    fteSetupCoordination -coordinationQMgr coordination_qmgr_name 
    -coordinationQMgrHost coordination_qmgr_host -coordinationQMgrPort coordination_qmgr_port  
    -coordinationQMgrChannel coordination_qmgr_channel
    对于已创建的 coordination_qmgr_name.mqsc,您将需要在协调队列管理器运行的同一台机器上运行 runmqsc 命令。
  2. 创建命令队列管理器。
    命令队列管理器是已预先配置的单个队列管理器,以便 IBM MQ 基础结构可以将 MFT 请求路由到相关代理程序。 运行以下命令:
    fteSetupCommands -connectionQMgr Command QM Name -p Coordination QM Name 
    这将在协调目录中创建 command.properties 文件。 请注意,-p 是可选的,如果针对缺省协调设置了命令,那么将不需要该选项。
    注: 对于与队列管理器的 TCP 客户机连接,可以使用:
    fteSetupCommands -p coordination_qmgr_name -commandQMgr connection_qmgr_name  
    -commandQMgrHost connection_qmgr_host -commandQMgrPort connection_qmgr_port  
    -commandQMgrChannel connection_qmgr_channel
  3. 创建代理。
    代理是用于发送和接收文件的应用程序。 运行以下命令:
    fteCreateAgent -p coordination_qmgr_name -agentName agent_name -agentQMgr agent_qmgr_name
    这将在协调下创建代理程序配置,并创建 IBM MQ 脚本文件以在代理程序的配置目录中调用 agent_name.mqsc
    运行以下 IBM MQ 命令以将 IBM MQ 脚本文件装入到队列管理器中:
    runmqsc agent_qmgr_name < agent_name_create.mqsc file
    注: 对于与队列管理器的 TCP 客户机连接,可以使用:
    fteCreateAgent -p coordination_qmgr_name -agentName agent_name -agentQMgr agent_qmgr_name
    -agentQMgrHost agent_qmgr_host -agentQMgrPort agent_qmgr_port -agentQMgrChannel agent_qmgr_channel
  4. 启动代理程序。
    运行以下命令:
    fteStartAgent -p coordination_qmgr_name agentName
    代理将在后台启动,并返回命令提示符。 要检查代理是否正在运行,请运行以下命令:
    fteListAgents -p coordination_qmgr_name
    这将显示代理的状态。 如果代理成功运行,那么该代理将报告为处于“就绪”状态。

结果

基本 MFT 基础结构可供使用,现在可以使用 fteCreateTransfer 命令来请求传输。 或者,如果 IBM MQ Explorer 可用,请使用 MFT 插件来创建和监视传输。

通过重复步骤 3:创建代理,可向配置添加更多代理。 如果使用了 TCP 客户机连接,那么这些代理可以位于不同机器上。 对于不同机器,必须对每台机器重复 fteSetupCoordinationfteSetupCommands 命令,但是,不需要再运行 mqsc 脚本。

较复杂的配置的坐标和每个代理可能有独立的队列管理器。 在这些情况中,需要将各种队列管理器连接起来。