使用 WebSphere MQ File Transfer Edition 进行 “一对多” 文件传输

本文展示如何设置 WebSphere MQ File Transfer Edition,以便执行 “一对多” 文件传输。在此过程中,您将用到队列监控、“文件到消息” 功能和 “消息到文件” 功能,这些都是 V7.0.3 的新特性。

Paul Cullen, 软件工程师, WebSphere MQ File Transfer Edition, IBM

Paul Cullen 的照片Paul Cullen 是位于英国 Hursley 的 IBM 软件开发实验室的 WebSphere MQ File Transfer Edition Development Team 的一名软件工程师。



2011 年 7 月 11 日

简介

本文描述如何设置 WebSphere MQ File Transfer Edition 来执行 “一对多” 文件传输,其间,您将用到队列监控、“文件到消息” 和 “消息到文件” 功能等 V7.0.3 新特性。

IBM® WebSphere® MQ File Transfer Edition V7.0.3(以下简称 FTE)的一个新特性允许执行单源传输:将一个文件发送到多个目标代理。在 V7.0.3 之前,您可以执行一个 “一对多” 文件分发:构造一个包含所有单独传输的 Ant 脚本,然后作为传输命令的一部分执行脚本。本文展示 V7.0.3 中的新特性如何极大地简化 “一对多” 文件传输:只需运行单个文件传输,即可将多个文件发送多个目标。

本文展示如何设置 “文件到消息” 功能,以便使用一个 WebSphere MQ 别名队列将一个文件发送到一个 WebSphere MQ 发布/订阅主题。您需要设置一些订阅这个主题的订阅者,然后,发布到该主题的消息将被写到本地订阅队列。然后,您需要使用 FTE 队列监控特性来监控订阅填充的队列。如果新消息在每个监控间隔期间出现在队列上,就会触发一个 “消息到文件” 传输,将原始文件交付关联远程代理。您还需要使用元数据,以便传输捕获原始传输 ID、文件名和源代理。这样,原始单一 “文件到消息” 传输就能链接到所有生成的 “消息到文件” 传输。这很有用 — 如果您正在一个数据库日志程序中记录传输的话。

有经验的 WebSphere MQ 系统管理员可能更乐意使用这样一个环境,因为它构建于队列、主题以及发布/订阅等 WebSphere MQ 组件之上,与编写复杂的 Ant 脚本相比,系统管理员可能更熟悉这些组件。

场景和解决方案概览

位于纽约的一个管理部门想将大量文件发送给世界各地的办公室。他们希望能够将这些文件放置到他们的服务器上的一个目录中,然后在白天按照一定的时间间隔将这些文件自动传输到多个远程办公室。

本文展示如何设置一个环境,通过使用目录监控、“文件到消息” 传输、WebSphere MQ 发布/订阅,队列监控以及 “消息到文件” 传输功能实现上述目标。您需要首先创建一个 WebSphere MQ 主题,然后订阅到该主题。初始 “文件到消息” 传输将使用消息内容填充主题,然后,当新消息出现在主题上时,每个订阅将填充一个本地队列。队列监控器将用于监控订阅队列,并启动到它们的关联远程代理的 “消息到文件” 传输。

要了解关于 WebSphere MQ 发布/订阅设置的详细信息,请参阅 WebSphere MQ V7 信息中心主题 配置发布/订阅消息传递

本文演示使用一个源和两个目标代理的技术。您可以使用本文描述的概念来执行到大量目标的传输 — 只需对想要集成到设置中的任何新代理重复相应步骤。

先决条件

进行 V7.0.3 设置之前,需要定义以下 FTE 环境:

  1. 在一个服务器上,定义和安装以下组件。一个 Microsoft® Windows® 服务器用作 “纽约” 管理服务器。
    1. 安装 WebSphere MQ V7.0.1 或更高版本,包括 WebSphere MQ Explorer。
    2. 定义一个 WebSphere MQ 队列管理器 CENTRAL.ADMIN,它将被用作协调、命令和代理队列管理器。
    3. 在一个未使用的端口上定义一个监听器并启动这个监听器。远程代理将使用这个监听器。
    4. 安装 WebSphere MQ FTE V7.0.3 Server Edition。
    5. 作为服务器安装的一部分,定义一个代理 CENTRAL.AG1。由于它对于队列管理器而言是一个本地代理,因此可以定义为一个绑定连接代理。定义后,该代理必须针对 “文件到消息” 传输启用,方法是编辑 agent.properties 文件并添加 enableQueueInputOutput=true。编辑文件后,重新启动代理。
    6. 从 Remote Tools and Documentation 安装 WebSphere MQ FTE V7.0.3 WebSphere MQ Explorer 插件。
  2. 在两个充当远程存储的服务器(Paris 和 London)上,安装 WebSphere MQ FTE Server 或 Client Edition 并定义以下项目:
    1. 每个服务器上一个客户端连接代理。一个服务器应该拥有一个名为 PARIS.AGENT 的代理,另一个拥有 LONDON.AGENT。这些代理应该被定义到连接到 CENTRAL.ADMIN 队列管理器的客户端连接,使用此前定义的监听器所监听的端口;它们应该使用 CENTRAL.ADMIN 队列管理器作为它们的代理、命令和协调队列管理器。
    2. 定义后,代理必须针对 “文件到消息” 传输启用,方法是编辑 agent.properties 文件并添加 enableQueueInputOutput=true。编辑文件后,重新启动代理。

如果您是 FTE 新手,需要了解 FTE 设置信息,请参阅文章 WebSphere MQ File Transfer Edition walkthrough。基本设置完成后,就可以开始定义用于单个文件到多个目标的传输的新组件了。

定义一个主题

创建打算使用消息填充的主题,从 CENTRAL.ADMIN 队列管理器的一个 runmqsc 会话运行以下命令:

清单 1. 定义主题命令
C:\>runmqsc CENTRAL.ADMIN 
5724-H72 (C) Copyright IBM Corp. 1994, 2009. ALL RIGHTS RESERVED. 
Starting MQSC for queue manager CENTRAL.ADMIN. 
DEFINE TOPIC(DAILY.PRICING.INFO) TOPICSTR(DAILY.PRICING.INFO)

在 WebSphere MQ V7 中,可以定义一个指向一个主题的别名队列。使用新的 “文件到消息” 功能发送一条未编组的单一消息到这个别名队列并使用这条消息的内容填充主题。然后,您可以使用 WebSphere MQ 发布/订阅功能将这条消息分发给订阅主题的人。由于 WebSphere MQ 限制,不能向主题发送一组消息,这意味着不能使用 –qs、-dqdt 或 –dqdb 选项分割源文件。

创建别名队列

创建一个别名队列以指向这个主题,从 CENTRAL.ADMIN 队列管理器的一个 runmqsc 会话运行以下命令:

清单 2. 定义别名队列命令
C:\>runmqsc CENTRAL.ADMIN 
5724-H72 (C) Copyright IBM Corp. 1994, 2009. ALL RIGHTS RESERVED. 
Starting MQSC for queue manager CENTRAL.ADMIN. 
DEFINE QALIAS(PRICING.QUEUE) TARGTYPE(TOPIC) TARGET(DAILY.PRICING.INFO) +
DEFPSIST(YES)

定义订阅

下面,创建对这个主题的本地订阅。这个示例设置两个订阅。您可以根据需要多次使用这个过程,设置针对任意数量的队列的订阅。对于 London 存储:

1. 创建一个名为 LONDON.PRICING.INFO 的本地队列。

清单 3. 定义本地队列
C:\>runmqsc CENTRAL.ADMIN 5724-H72 (C) 
Copyright IBM Corp. 1994, 2009. ALL RIGHTS RESERVED. Starting MQSC for queue 
manager CENTRAL.ADMIN. 
DEFINE QLOCAL(LONDON.PRICING.INFO)

2. 从 CENTRAL.ADMIN 队列管理器的一个 runmqsc 会话定义一个订阅:

清单 4. 定义订阅命令
C:\>runmqsc CENTRAL.ADMIN 5724-H72 (C) 
Copyright IBM Corp. 1994, 2009. ALL RIGHTS RESERVED. Starting MQSC for queue 
manager CENTRAL.ADMIN. 
DEFINE SUB(LONDON.PRICING.SUB) TOPICSTR('DAILY.PRICING.INFO/#') +
    TOPICOBJ(DAILY.PRICING.INFO) DEST(LONDON.PRICING.INFO) +
    DESTCLAS(PROVIDED) DESTQMGR(CENTRAL.ADMIN)

对 Paris 订阅重复上述步骤,将 LONDON.PRICING.INFO 替换为 PARIS.PRICING.INFO。

验证设置

要确认设置正确,使用 amqsput MQ 样例程序发送一条消息到别名队列。这应该导致两条完全一致的消息分别发送到 LONDON.PRICING.INFO 和 PARIS.PRICING.INFO 队列。运行 amqsput 程序,使用 QUEUE 和 QUEUE MANAGER 作为参数,输入一些文本,然后按 Enter 键发送消息。再次按 Enter 结束对样例程序的输入。

清单 5. 发送一条测试消息到别名队列的命令
C:\WMQFTE\bin>amqsput PRICING.QUEUE CENTRAL.ADMIN
Sample AMQSPUT0 start
target queue is PRICING.QUEUE
This is my test publication
Sample AMQSPUT0 end

使用 WebSphere MQ 样例程序 amqsget 排空队列,确认消息已经到达:

清单 6. 排空两个订阅队列的示例命令
C:\>amqsget LONDON.PRICING.INFO CENTRAL.ADMIN
Sample AMQSGET0 start
<this is my test publication> 
C:\>amqsget PARIS.PRICING.INFO CENTRAL.ADMIN
Sample AMQSGET0 start message 
<this is my test publication>

创建队列监控器

下一步是设置两个监控器来监控由订阅填充的队列,将队列内容发送到远程 FTE 代理上的文件。可以使用 “消息到文件” 特性完成上述任务,并使用 FTE 队列监控功能监控队列上的新消息到达。本文将解释进行上述设置的方法,以及如何将对这个主题的初始 “文件到消息” 文件发布链接到第二个 “消息到文件” 传输,这对于识别一个文件的来源以便进行审计和跟踪很有用。

创建 “消息到文件” 任务 XML

使用命令行 fteCreateTransfer 工具创建两个任务 XML 文件:一个代理一个。不能使用 WebSphere MQ Explorer 插件创建监控器,因为使用 MQ Explorer 插件的任务生成没有公开通过 groupId 从一个队列选择消息的选项。即使您不在发布端使用编组的消息,也必须在接收端启用 groupId 选择器,以便接收多条消息并将其写入多个文件。使用以下选项创建任务 XML:

参数解释
-saCENTRAL.AG1源代理
-daLONDON.AGENT目标代理
-df/pricingInfo/${WMQFTEFileName{token=-1}{separator=/}}–df 值可以使用变量替换创建一个惟一文件名。可以从消息读取的 WebSphere MQ 属性中的元数据读取值,并使用它们在目标上创建一个文件名,该文件名基于在初始 “文件到消息” 传输中传输的文件的名称。

在本例中,发送到主题的消息的 WebSphere MQ 属性中拥有元数据,其中包括一个名为 WMQFTEFileName 的头部,这是原始源文件的名称。您可以使用它确定消息数据写入的目标文件的名称。通过将这个文件定义为

/pricingInfo/${WMQFTEFileName{token=-1}{separator=/}}

将触发传输的消息中的数据写入 pricingInfo 目录中的一个文件,并根据文件名而不是原始源文件的完整路径写入一个文件。因此,如果源文件为 /menus/pricing/Christmas.txt,则目标将是 /pricingInfo/Christmas.txt。正斜杠分隔符适用于 Windows,因为所有目录分隔符在 FTE 中都视为正斜杠。
-ttext消息从队列传输到文件使用的模式。可以设置为 “binary” 或 “text”。
-gtc:\transferXML\london.xml写入传输 XML 文件的位置
-deerror如果设置了覆盖,且已存在与目标文件名称相同的文件,则目标文件将被覆盖。如果设置了错误且目标文件存在,那么传输将失败,并显示消息:
“BFGIO0006E: File “<FULL FILE PATH>" already exists.”
-sqgi-sqgi 选项告知监控器只处理完整的消息组:一次一组。如果使用这个选项,即使不在目标队列上放置消息组,单独的未编组消息也将视为单个消息组,因此被单独处理。如果省略这个选项,那么传输将默认从队列读取所有消息并将它们写入目标文件,这些消息可能包括其他组中包含的消息、来自不完整的组的消息、以及触发传输的组中的消息。
-mdOriginatingSourceAgent=${WMQFTESourceAgent},
OriginatingTransferId=${WMQFTETransferId},
OriginatingFileName=${WMQFTEFileName},
OriginatingTransferMode=${WMQFTETransferMode}
可以将其他元数据传输到传输命令。这些元数据将永久记录到传输 XML 中,可以使用它们链接 “文件到消息” 传输和生成的 “消息到文件” 传输。如果使用下面的值,则可以记录原始代理、原始源文件、原始传输 ID、原始传输模式细节,这对于识别文件的源很有用。
-sqLONDON.PRICING.INFO从中读取消息的队列
清单 7. 带有选项的示例 fteCreateTransfer 命令
fteCreateTransfer -sa CENTRAL.AG1 
    –da LONDON.AGENT 
    -df “/pricingInfo/${WMQFTEFileName{token=-1}{separator=/}}" 
    -t text 
    –gt c:\transferXML\london.xml 
    –de error 
    –sqgi 
    –md OriginatingSourceAgent=${WMQFTESourceAgent}, 
     OriginatingTransferId=${WMQFTETransferId}, 
     OriginatingFileName=${WMQFTEFileName}, 
     OriginatingTransferMode=${WMQFTETransferMode} 
    –sq LONDON.PRICING.INFO

针对 Paris 传输重复创建过程

对于到 Paris 代理的传输,重复传输 XML 文件的创建过程,将 LONDON.PRICING.INFO 替换为 PARIS.PRICING.INFO,将目标代理名称替换为 PARIS.AGENT。

更新传输 XML 文件

在将 XML 文件包含到监控器中之前,必须编辑它们以包含一个从命令行无法获取的选项。为了在监控器触发传输之后处理正确的消息,必须编辑上面的步骤创建的传输 XML。监控器必须将导致其触发的消息的 groupId 传递到该监控器正在执行的传输定义。

将 groupId=”${groupId}” 添加到队列元素能确保触发监控器的消息就是生成的 “消息到文件” 传输读取的消息。如果没有将其添加到传输模板 XML 中,那么生成的 “消息到文件” 传输将不读取触发监控器的消息,而是从队列的起始处读取队列上的第一条消息,而该消息可能不是您打算使用的消息。

编辑您刚刚创建的 XML 文件,更改下面这行:

清单 8. XML 更改
From:     <queue useGroups="true">LONDON.PRICING.INFO</queue>  
To:          <queue useGroups="true" groupId="${groupId}">LONDON.PRICING.INFO</queue>

针对 PARIS 监控器传输 XML 文件重复上述操作。

定义监控器

使用 fteCreateMonitor 命令行脚本定义监控器。这个 WebSphere MQ Explorer 插件不允许引用此前创建的 XML 文件。一个队列需要一个监控器,因此需要创建两个监控器,一个监控 LONDON.PRICING.INFO 队列,一个监控 PARIS.PRICING.INFO 队列。使用 fteCreateMonitor 命令行工具,使用以下选项设置监控器:

参数解释
-maCENTRAL.AG1为其定义监控器的代理
-mqLONDON.PRICING.INFO要监控的队列
-mn"London Monitor"监控器的名称
-mtc:\transferXML\london.xml传输在前面的步骤中创建的 XML 文件的完整路径
-trcompleteGroups尽管消息组不会被送到别名队列,但必须将监控器设置为在完整组上触发。这个实例中的触发条件是 completeGroups,如果被监控的队列上存在一个完整的消息组,这个触发条件将只允许监控器触发传输 XML 文件。组中没有 WebSphere MQ 标志 Message 的单独消息被视为一个独特的消息组,单独处理。
-dvWMQFTEFileName="UNKNOWN_FILE_NAME",
WMQFTESourceAgent="UNKNOWN_SOURCE_AGENT",
WMQFTETransferId="UNKNOWN_ORIGINAL_TRANSFER_ID",
WMQFTETransferMode="UNKNOWN"
这个示例预期触发传输的组中的第一条消息的 WebSphere MQ 属性中的元数据。如果队列中出现的消息没有任何元数据,您可以使用 -dv 选项将默认值传递到传输请求,就像我们依赖 4 个设置好的值的示例中那样。这个示例期望得到以下元数据,当一个 “文件到消息” 传输通过 -qmp true 选项启动时,所有这些元数据将默认添加:

${WMQFTESourceAgent}
${WMQFTEFileName}
${WMQFTETransferId}
${WMQFTETransferMode}

因此,如果这些元数据没有出现,可以为它们设置默认值,这意味着如果包含第一条消息的 WebSphere MQ 属性中的元数据的消息出现,一个名为 UNKNOWN_FILE_NAME 的默认文件将被创建。
-puminutes轮询监控器的单位
-pi5轮询监控器的间隔,与 -pu 选项相关
启动 9. 带选项的示例 fteCreateMonitor 命令
fteCreateMonitor -ma CENTRAL.AG1 
    -mq LONDON.PRICING.INFO 
    -mn "London monitor" 
    -mt C:\transferXML\london.xml 
    -tr completeGroups –dv WMQFTEFileName="UNKNOWN_FILE_NAME", 
    WMQFTESourceAgent="UNKNOWN_SOURCE_AGENT",
    WMQFTETransferId="UNKNOWN_ORIGINAL_TRANSFER_ID",
    WMQFTETransferMode="UNKNOWN" 
    -pi 5 
    -pu minutes

对 Paris 队列监控器重复这个设置。监控器的创建应该针对 Paris 监控器重复,使用 PARIS.PRICING.INFO 队列并定义一个新的监控器名称。

设置一个目录监控器以触发 “文件到消息” 传输

创建传输 XML

要完成设置,需要创建一个目录监控器,将放置到一个目录中的任何文件传输到别名队列。使用命令行工具创建传输 XML 和将触发传输的目录监控器。首先,使用带以下选项的 fteCreateTransfer 命令创建传输 XML 文件:

参数解释
-saCENTRAL.AG1源代理名称
-daCENTRAL.AG1目标代理名称
-dqPRICING.QUEUE目标队列名称
-ttext传输模式
-gtc:\transferXML\outboundfiles.xml写入传输 XML 文件的位置
-qmptrue在消息上启用 WebSphere MQ 消息属性
${FilePath}要传输的文件可以设置到这个变量,这意味着,触发监控器的文件将被传递到 XML 且将被传输。
清单 10. 带选项的示例 fteCreateTransfer 命令
fteCreateTransfer -sa CENTRAL.AG1
    -da CENTRAL.AG1 
    -dq PRICING.QUEUE 
    -t text 
    -gt c:\transferXML\outboundfiles.xml 
    -qmp true 
    ${FilePath}

创建目录监控器

创建传输 XML 后,使用以下选项定义监控器任务:

参数解释
-maCENTRAL.AG1定义监控器的代理
-mdc:\outboundFiles监控器目录
-mnOutbound files monitor监控器名称
-mtc:\transferXML\outboundfiles.xml在前面步骤中创建的传输 XML 文件的完整路径
-trmatch,*触发条件应该设置为匹配目录中的任何文件
清单 11. 带选项的示例 fteCreateMonitor 命令
fteCreateMonitor 
    -ma CENTRAL.AG1 
    -md c:\outboundFiles 
    -mn "Outbound files monitor" 
    -mt C:\transferXML\outboundfiles.xml 
    -tr match,*

验证设置

  1. 将一个文件放到正在受目录监控器监控的本地目录中。它应该在一分钟之后触发,文件将被发送到 PRICING.QUEUE,这是一个别名队列,将内容发送到它指向的 WebSphere MQ TOPIC。然后,每个订阅队列都会得到这个消息的一个副本。
  2. 针对队列监控器定义的轮询间隔结束后,订阅队列将被逐渐清空,每条消息都将作为一个新文件在目标上出现。
图 1. WebSphere MQ Explorer 中完成后的传输
WebSphere MQ Explorer 中完成后的传输

如果您检查传输的属性并查看与传输关联的元数据,就可以将其关联到原始 “文件到消息” 传输:

图 2. 与最终 “消息到文件” 传输关联的元数据
与最终 “消息到文件” 传输关联的元数据

常见问题

1. 为何要在要分发的文件上使用第一条消息的 WebSphere MQ 属性中的元数据,如果消息在队列上最终没有第一条消息的 WebSphere MQ 属性中的元数据会发生什么情况?

在本例中,如果元数据没有出现在第一条消息的 WebSphere MQ 属性中,那么将在它们的位置使用默认值替代变量(这些变量通过 -dv 选项在监控器中设置)。如果 “文件到消息” 传输创建的第一条消息的 WebSphere MQ 属性中没有元数据,那么当该消息触发监控器时,不会有任何细节被传递到生成的 “消息到文件” 传输,而是使用默认替代值替代。在本例中,这将导致在目标目录中生成一个名为 UNKNOWN_FILE_NAME 的文件。在 “消息到文件” 传输的 XML 中,这还意味着一个未知的原始传输、一个未知的原始代理和一个未知的原始源文件将被记录,且不可能将这个传输与原始 “文件到消息” 传输关联起来。使用元数据允许轻松关联原始源文件和传输 ID 与目标文件。

2. 如果目标文件已存在,会发生什么情况?目标文件会被覆盖吗?

答案取决于生成传输 XML 时使用的 -de 选项的值。如前所述,执行 fteCreateTransfer 命令来创建将被监控器任务驱动的传输定义文件时,可以使用 -de 选项来设置同名目标文件已存在时执行的操作。如果设置了覆盖且已存在同名目标文件,目标文件将被触发传输的消息中的新数据覆盖。如果指定了错误,那么传输将失败,显示消息:BFGIO0006E: File <FULL FILE PATH> already exists。如果传输失败,monitorGroupRetryLimit 变量确定传输重新尝试的次数。monitorGroupRetryLimit 需要在 agent.properties 文件中设置,以便代理启动 “消息到文件” 传输。默认情况下,如果 agent.properties 文件未包含这个值,则重新尝试限制将为 10。一旦达到这个重试限制,只要启动传输的代理被重新启动,传输将被再次触发。要更改 monitorGroupRetryLimit 的值,更新 agent.properties 文件并重新启动代理。

3. 示例传输的是文本文件,可以使用这个过程来传输二进制文件吗?

如果您想传输二进制文件和文本文件,可以采用以下几种方法:

  • 您可以设置一个与文本传输环境一致的环境 — 一个别名队列指向一个主题,二进制文件在该主题中发布。您需要一个针对该主题的完整队列和订阅集,二进制文件正在该主题中发布。您还需要一个针对这些队列的队列监控器集并设置传输,以便以二进制模式执行一个 “消息到文件” 传输。
  • 或者,也可以使用第一条消息的 WebSphere MQ 属性中的元数据中的信息来确定文件输出模式。由于 FTE V7.0.3 中的一个缺陷,此产品不能实现这个步骤中的设置,但有一个临时修复程序可用于支持这个项目元素中的模式属性。

    当文件通过 “文件到消息” 传输特性发送到消息队列且消息头部被启用时,其中一个默认消息头部是 WMQFTETransferMode。XML 被创建后,在添加 groupId 选项的步骤中,mode="text" 可以被更改为 "${WMQFTETransferMode}"。

    例如,<item checksumMethod="MD5" mode="${WMQFTETransferMode}"> 导致生成的 “消息到文件” 传输将触发传输的消息中的元数据中的值插入传输 XML 中。这种方法允许将二进制文件和文本文件同时设置到别名队列,只要它们拥有第一条消息的 WebSphere MQ 属性中的元数据,就可以被 “消息到文件” 传输正确处理。

4. 在我尝试通过一个到别名队列的 “文件到消息” 传输来发布到主题时,收到一条错误消息:“BFGIO0197E: An attempt to write to a queue was rejected by the destination agent。The agent must have enableQueueInputOutput=true set in the agent.properties file to support transferring to a queue.”

“文件到消息” 和 “消息到文件” 需要启用,原因是它们是默认禁用的。要启用这个功能,必须在您代理的 agent.properties 文件中设置 enableQueueInputOutput=true。重新启动代理,以便更改生效。

5. 当我试图向主题发送文件时,“文件到消息” 传输失败,显示错误消息:“BFGIO0178E: A queue write failed due to a WMQApiException with message text cc=2 rc=2417 op=put - MQPUT to PRICING.QUEUE.”

MQ 返回码 “2417 MQRC_MSG_NOT_ALLOWED_IN_GROUP” 表示您试图放置消息的队列已经拒绝了您的请求,原因是您试图将一组消息放置到队列上。发布到一个主题时,作为一个组的一部分的消息将被拒绝。这个错误最常见的原因是您试图使用带 –qs、-dqdt 或 –dqdb 选项的 “文件到消息” 传输来分割源文件,这是向主题发送消息所不允许的。

限制

  • 只支持单个文件到单个消息传输,因为 WebSphere MQ V7 发布/订阅不支持消息组。因此不能使用 –qs、-dqdt 或 –dqdb 选项分割源文件。
  • 在一个默认 WebSphere MQ 网络中,最大消息大小为 4MB。因此,除非更改 MQ 设置,否则可以发送的文件的最大大小为 4MB。
  • “文件到消息” 传输必须使用 “–qmp true” 选项将元数据添加到消息的 WebSphere MQ 属性。
  • 设置只能接受一种传输模式:文本或二进制。要使用变量替代支持使用相同的队列传输两种文件类型,必须应用 IBM 临时修复程序。

参考资料

  • WebSphere MQ File Transfer Edition (FTE) 资源
    • WebSphere MQ FTE V7.0.3 信息中心
      一个可访问所有 WebSphere MQ FTE V7 文档的 Web 门户,包含关于安装、配置和使用您的 WebSphere MQ FTE V7.0.3 环境的概念、任务和参考信息。
    • WebSphere MQ FTE 试用下载
      一个功能齐全的 WebSphere MQ 和 WebSphere MQ FTE 免费试用版,试用期为 90 天。
    • WebSphere MQ FTE 论坛
      获取您的 WebSphere MQ FTE 技术问题的答案,与其他用户分享您的 WebSphere MQ FTE 知识。
    • WebSphere MQ FTE walkthrough
      一篇关于 WebSphere MQ FTE 的 developerWorks 简介文章。
    • WebSphere MQ File Transfer Edition 入门
      这篇文章向已经熟悉 WebSphere MQ 的读者介绍 WebSphere MQ FTE,展示如何在 AIX 和 Windows 上构建一个简单的 FTE 架构,包括如何使用代理、命令和协调队列管理器。
    • Securing WebSphere MQ FTE
      要保护 WebSphere MQ FTE 安全,需要理解 FTE 组件如何与文件系统和 WebSphere MQ 交互。本文描述了组件架构和一个用例,展示了加固一个 WebSphere MQ FTE 网络所需的网络设计和配置任务。
    • IBM Redbook: Getting started with WebSphere MQ FTE
      这份红皮书提供了一个产品技术概览,以及针对分布式和 z/OS 平台的安装、配置和管理指南。它还提供了一些场景,展示如何使用 WebSphere MQ FTE 创建托管的文件传输解决方案。
    • IBM Redguide: Managed file transfer for SOA using WebSphere MQ FTE
      WebSphere MQ FTE 提供一个企业级托管的文件传输功能,该功能既健壮又易于使用。它使用 WebSphere MQ 久经考验的可靠性和连通性跨广泛的平台和网络传输文件。这个 IBM Redguides 出版物提供了一个 WebSphere MQ FTE 业务概览。
  • WebSphere MQ 资源
    • WebSphere MQ 开发人员资源页面
      帮助您使用 WebSphere MQ 设计、开发和部署消息传递中间件,以将应用程序、Web 服务和事务集成到几乎任意平台上的技术资源。
    • WebSphere MQ 产品页面
      产品说明、产品新闻、培训信息、支持信息等。
    • WebSphere MQ 文档库
      WebSphere MQ 产品手册。
    • WebSphere MQ V7 信息中心
      一个可访问所有 WebSphere MQ V7 文档的 Web 门户,包含关于安装、配置和使用您的 WebSphere MQ 环境的概念、任务和参考信息。
    • IBM 红皮书:WebSphere MQ V7 特性和增强
      描述消息队列技术的基本概念和好处以及 V7 中的新特性,并提供一个业务场景来展示那些新特性的实际应用。
    • WebSphere MQ V7 试用版下载
      一个功能齐全的 WebSphere MQ V7.0 免费试用版,试用期为 90 天。
    • WebSphere MQ 支持页面
      一个支持问题及其解决方案的可搜索数据库,包含下载、修复程序、问题跟踪等。
    • WebSphere MQ 公共新闻组
      这不是一个 IBM 论坛,但您可以在此获得 WebSphere MQ 技术问题的答案,并与他人分享您的 WebSphere MQ 知识。
    • WebSphere MQ SupportPacs
      针对 WebSphere MQ 产品系列的可下载代码、文档和性能报告。
    • 在 Windows 和 UNIX 上配置和优化 WebSphere MQ 性能
      如果您的系统中的消息正在您的队列、集群和服务器上搞破坏,那么逛一趟动物园可能有助于您理解您的消息为何捣乱。与不同的动物类似,不同的消息类型需要一些独特的条件来使它们在您的环境中和谐相处。本文将帮助您识别并 “招待” 在您的消息传递王国中居住的 “动物”。
  • WebSphere 资源
  • developerWorks 资源
    • IBM 软件产品试用版下载
      免费下载 IBM® DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 产品试用版。
    • developerWorks 博客
      加入 developerWorks 用户和作者、IBM 编辑和开发人员的谈话。
    • developerWorks 网络广播
      由 IBM 专家主持的免费技术活动可以帮助您加快学习进度,在最困难的软件项目中取得成功。这些在世界各地举行的活动包括一小时的网络广播、半天到全天的真实活动等。
    • developerWorks 播客
      收听新颖有趣的软件创新者访谈和讨论。
    • Twitter 上的 developerWorks
      查看最近的 Twitter 消息和 URL。
    • IBM Education Assistant
      一个多媒体培训模块集合,帮助您更好地理解 IBM 软件产品,更有效地使用它们来满足您的业务需求。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=715554
ArticleTitle=使用 WebSphere MQ File Transfer Edition 进行 “一对多” 文件传输
publish-date=07112011