文件传输请求消息格式
文件传输由到达代理命令队列的 XML 消息启动,通常是由于用户发出文件传输命令或使用 IBM® MQ Explorer。 The transfer request XML must conform to the FileTransfer.xsd schema and have the <request> element as the root element. FileTransfer.xsd 模式文档位于 MQ_INSTALLATION_PATH/mqft/samples/schema 目录中。 FileTransfer.xsd 模式导入相同目录中的 fteutils.xsd。
- <request> - 用于新文件传输请求、受管调用请求或删除暂挂的调度传输
- <cancel> - 用于取消正在进行的文件传输
- <transferSpecifications> ——用于指定多个传输文件组,由 fteCreateTransfer 命令使用
有关使用 transferSpecifications 元素指定多个传输组的信息,请参阅 使用传输定义文件。
模式
以下模式描述在传输请求 XML 消息中有效的元素。
<xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="fteutils.xsd"/>
<!--
Defines the request of a managed transfer and version number
<request version="1.00" ...
<managedTransfer>
...
</managedTransfer>
</request>
-->
<xsd:element name="request">
<xsd:complexType>
<xsd:choice>
<xsd:element name="managedTransfer" type="managedTransferType"/>
<xsd:element name="deleteScheduledTransfer" type="deleteScheduledTransferType" />
<xsd:element name="managedCall" type="managedCallType"/>
</xsd:choice>
<xsd:attribute name="version" type="versionType" use="required" />
</xsd:complexType>
</xsd:element>
<!--
Defines the cancel request of a managed transfer and version number
<cancel version="1.00"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FileTransfer.xsd">
<originator>
<hostName>myMachine</hostName>
<userID>myUserId</userID>
</originator> - Delete a scheduled transfer.
<transfer>
Transfer ID to Cancel
</transfer>
</cancel>
-->
<xsd:element name="cancel">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="originator" type="hostUserIDType" maxOccurs="1" minOccurs="1" />
<xsd:choice>
<xsd:element name="transfer" type="IDType" maxOccurs="1" minOccurs="1" />
<xsd:element name="call" type="IDType" maxOccurs="1" minOccurs="1" />
</xsd:choice>
<xsd:element name="reply" type="replyType" maxOccurs="1" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="version" type="versionType" use="required" />
</xsd:complexType>
</xsd:element>
<!--
Defines the transfer definition element structure.
<transferSpecifications>
<item ...
<item ...
</transferSpecifications>
-->
<xsd:element name="transferSpecifications">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="item" type="itemType" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--
Define a managed transfer of an instigator and request
<managedTransfer>
<originator>
...
</originator>
<schedule>
<submit timebase="source"|"UTC">2008-12-07T16:07"</submit>
<repeat>
<frequency interval="hours">2</frequency>
<expireTime>2008-12-0816:07</expireTime>
</repeat>
</schedule>
<sourceAgent agent="here" QMgr="near" />
<destinationAgent agent="there" QMgr="far" />
<trigger>
...
</trigger>
<transferSet>
...
</transferSet>
</managedTransfer>
-->
<xsd:complexType name="managedTransferType">
<xsd:sequence>
<xsd:element name="originator" type="origTransferRequestType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="schedule" type="scheduleType" maxOccurs="1" minOccurs="0"/>
<xsd:element name="sourceAgent" type="agentType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="destinationAgent" type="agentClientType" maxOccurs="1" minOccurs="1" />
<xsd:element name="trigger" type="triggerType" maxOccurs="1" minOccurs="0" />
<xsd:element name="reply" type="replyType" maxOccurs="1" minOccurs="0" />
<xsd:element name="transferSet" type="transferSetType" maxOccurs="1" minOccurs="1" />
<xsd:element name="job" type="jobType" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<!--
This is a modified form of origRequestType which is used on a managed transfer request.
The hostName and userID are mandatory attributes in this case.
-->
<xsd:complexType name="origTransferRequestType">
<xsd:sequence>
<xsd:element name="hostName" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="userID" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="mqmdUserID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="webBrowser" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="webUserID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<!--
Defines the transferset of source and destination agent and one or more files
<transferset priority="1">
<metaDataSet>
<metaData key="keyname">keyvalue</metaData>
<metaData key="keyname">keyvalue</metaData>
</metaDataSet>
<item>
...
</item>
</transferset>
-->
<xsd:complexType name="transferSetType">
<xsd:sequence>
<xsd:element name="metaDataSet" type="metaDataSetType" maxOccurs="1" minOccurs="0" />
<xsd:element name="preSourceCall" type="commandActionType" maxOccurs="1" minOccurs="0" />
<xsd:element name="postSourceCall" type="commandActionType" maxOccurs="1" minOccurs="0" />
<xsd:element name="preDestinationCall" type="commandActionType" maxOccurs="1" minOccurs="0" />
<xsd:element name="postDestinationCall" type="commandActionType" maxOccurs="1" minOccurs="0" />
<xsd:element name="item" type="itemType" maxOccurs="unbounded" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="priority" type="priorityType" use="optional" />
</xsd:complexType>
<!--
Define a file pair with source and destination
<item mode=[binary|text]>
<source recursive="false" disposition="leave">
<file>filename</file>
</source>
<destination type="file" exist="error">
<file>filename</file>
</destination>
</item>
-->
<xsd:complexType name="itemType">
<xsd:sequence>
<xsd:element name="source" type="fileSourceType" maxOccurs="1" minOccurs="1" />
<xsd:element name="destination" type="fileDestinationType" maxOccurs="1" minOccurs="1" />
</xsd:sequence>
<xsd:attribute name="mode" type="modeType" use="required" />
<xsd:attribute name="checksumMethod" type="checkSumMethod" use="required" />
</xsd:complexType>
<!--
Defines the request to delete scheduled file transfer.
<deleteScheduledTransfer>
<originator>
<delete>
<hostName>myMachine</hostName>
<userID>myUserId</userID>
</delete>
</originator>
<ID>56</ID>
</deleteScheduledTransfer>
-->
<xsd:complexType name ="deleteScheduledTransferType">
<xsd:sequence>
<xsd:element name="originator" type="origDeleteType" maxOccurs="1" minOccurs="1" />
<xsd:element name="ID" type="idType" maxOccurs="1" minOccurs="1" />
<xsd:element name="reply" type="replyType" maxOccurs="1" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="managedCallType">
<xsd:sequence>
<xsd:element name="originator" type="origRequestType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="agent" type="agentType" maxOccurs="1" minOccurs="1"/>
<xsd:element name="reply" type="replyType" maxOccurs="1" minOccurs="0" />
<xsd:element name="transferSet" type="callTransferSetType" maxOccurs="1" minOccurs="1" />
<xsd:element name="job" type="jobType" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="callTransferSetType">
<xsd:sequence>
<xsd:element name="metaDataSet" type="metaDataSetType" maxOccurs="1" minOccurs="0" />
<xsd:element name="call" type="commandActionType" maxOccurs="1" minOccurs="1" />
</xsd:sequence>
<xsd:attribute name="priority" type="priorityType" use="optional" />
</xsd:complexType>
</xsd:schema>
了解传输请求消息
以下列表描述了在传输请求消息中使用的元素和属性:元素描述
- <request>
- 包含指定文件传输请求所需的所有元素的组元素。
属性 描述 版本 指定 Managed File Transfer提供的此元素的版本。 - <managedTransfer>
- 包含单个文件传输或一组文件传输所需的所有元素的组元素。
- <deleteScheduledTransfer>
- 包含发起方和标识信息以供取消调度传输的组元素。
- <managedCall>
- 包含程序或可执行文件的单个受管调用所需的所有元素的组元素。
- <ID>
- 指定要从暂挂的调度传输列表删除的传输请求的唯一标识。
- <originator>
- 包含指定请求发起方的元素的组元素。
- <hostName>
- 源文件所在系统的主机名。
- <userID>
- 发起文件传输的用户标识。
- <mqmdUserID>
- 可选。 消息描述符 (MQMD) 中提供的 IBM MQ 用户标识。
- <schedule>
- 描述文件传输的调度时间、重复行为以及下一次出现的到期时间的组元素。
- <submit>
- 指定已调度传输应启动的日期和时间。
属性 描述 timebase 指定要使用的时区。 此属性可以具有下列其中一个值: - source - 使用源代理的时区
- admin - 使用发出命令的管理员的时区
- UTC - 使用全球标准时间
timezone 依据 timebase 值的时区描述 - <repeat>
- 包含有关已调度传输重复频率、已调度传输重复次数以及已调度传输何时停止重复的详细信息的组元素。
- <frequency>
- 重复传输之前必须等待的时间段。
属性 描述 interval 时间间隔单位,必须是以下值之一: - 分钟
- 小时
- days
- weeks
- months
- years
- <expireTime>
- 指定重复的已调度传输停止的日期和时间的可选元素。 该元素与 <expireCount> 元素互斥。
- <expireCount>
- 指定在停止前发生已调度文件传输的次数的可选元素。 该元素与 <expireTime> 元素互斥。
- <sourceAgent>
- 指定源文件所在系统上的代理的名称。
属性 描述 代理 指定代理的名称。 QMgr 代理队列管理器的名称。 - <destinationAgent>
- 指定您要向其传输文件的系统上代理的名称。
属性 描述 代理 指定代理的名称。 QMgr 代理队列管理器的名称。 hostName 代理队列管理器的主机名或 IP 地址。 portNumber 用于到目标代理队列管理器的客户机连接的端口号。 通道 用于连接到目标代理队列管理器的通道名称。 - <trigger>
- 指定在文件传输发生时必须满足的条件的可选元素。
属性 描述 日志 指示是否记录触发失败的标志。 有效值如下: - yes - 为失败的已触发传输创建日志条目
- no - 不为失败的已触发传输来创建日志条目
- <fileExist>
- 指定位于与源代理相同系统上的文件名的以逗号分隔的列表。 如果此名称列表中的文件满足触发器条件,那么将发生传输。 该元素与 <fileSize> 元素互斥。
属性 描述 comparison 指示如何针对名称列表对源文件名求值。 有效值如下: - = 名称列表中必须至少有一个文件名匹配
- != 名称列表中至少有一个文件不存在
值 指示比较类型: - exist: 文件必须存在
- <fileSize>
- 指定位于与源代理相同系统上的文件名的以逗号分隔的列表。 如果此名称列表中的文件满足触发器条件,那么将发生传输。 该元素与 <fileExist> 元素互斥。
属性 描述 comparison 指示如何针对名称列表对源文件名求值。 有效值如下: - >= 名称列表中存在一个文件名,并且至少为值属性中指定的最小大小
值 指定为整数值的文件大小,带有指定为以下之一的单位: - B - 字节
- KB - 千字节
- MB - 兆字节
- GB - 千兆字节
- <reply>
- 指定为同步文件传输生成的临时应答队列的名称(在命令行上使用 -w 参数指定)。 队列的名称由 command.properties 配置文件中的键 dynamicQueuePrefix 或缺省值 WMQFTE.* 定义。 (如果未指定)。
属性 描述 详细信息 回复消息中是否需要详细传输结果信息。 可以针对每个传输生成多条回复消息。 有效值如下: - true - 需要详细回复信息。 信息的格式与进度消息中发布到传输日志的相同,即 <transferSet> 元素。 有关更多信息,请参阅 文件传输日志消息格式。 仅当传输源代理的 enableDetailedReplyMessages 属性设置为 true 时,才会显示详细回复信息。
- false - 不需要详细回复信息。
QMGR 在其上生成临时动态队列以接收应答的命令队列管理器的名称。 persistent 写入应答队列的消息是否为持久性消息。 有效值如下: - true - 消息持久
- false - 消息不持久
- qdef - 消息的持久性由应答队列的属性定义
- <transferSet>
- 指定想要一起执行的一组文件传输或想要一起执行的一组受管调用。 在传输期间,<transferSet> 是包含 <item> 元素的组元素。
属性 描述 priority 传输的优先级。 优先级为 0-9 之间的一个值,其中 0 为最低优先级。 缺省优先级为 0,并且缺省情况下,传输使用源代理的优先级。 - <metaDataSet>
- 包含一个或多个元数据项的可选组元素。
- <metaData>
- 指定将传递给代理调用的出口点的用户定义的元数据。 元素包含元数据值作为字符串。
属性 描述 key 作为字符串的元数据名称 - <call>
- 包含指定要调用的程序或可执行文件的 <command> 元素的组元素。
- <command>
- 指定要调用的程序或可执行文件。 命令必须位于代理命令路径上。 有关更多信息,请参阅 高级代理程序属性。 该元素可以包含可选的 <argument> 元素。
属性 描述 名称 命令的名称。 successRC 该命令返回的成功返回码。 缺省值为 0。 retryCount 命令失败时将重试的次数。 retryWait 命令重试之间等待的时间(秒)。 类型 要调用的程序的类型。 有效值为 antscript、jcl 或 executable。 - <argument>
- 指定要传递给命令的参数。
- <item>
- 包含指定源和目标文件名和位置的元素的组元素。
属性 描述 mode 指定传输方式为二进制还是文本。 checksumMethod 指定生成消息摘要以创建数字签名的散列算法的类型。 有效值为 MD5 或 none。 - <source>
- 指定源系统上的文件以及在传输完成后是否移除这些文件的组元素
属性 描述 recursive 指定当 <source> 元素为目录或包含通配符时,以递归方式传输子目录中的文件。 disposition 指定在 <source> 已成功传输到其目标时要在 <source> 元素上执行的操作。 有效值如下: - leave - 源文件保持不变。
- delete - 在成功传输源文件后将源文件从源系统中删除。
- <file>
- 指定传输源。
对于多平台,传输源可以是文件或目录名称。对于 z/OS 平台,传输源可以是文件、目录、数据集或 PDS 名称。 使用与操作系统格式一致的标准路径,例如 C:/from/here.txt。 请勿使用文件 URI。属性 描述 别名 指定源文件的别名。 该别名是源文件的名称,不包括针对传输指定的任何目录路径。 EOL 指定文本传输的行尾标记符。 有效值包括: - LF - 仅限换行字符
- CRLF - 回车符和换行符序列
编码 文本文件传输的源文件编码。
delimiter
指定在面向记录的源文件 (例如, z/OS® 数据集) 中的记录之间包含的定界符。 将定界符值指定为 00-FF 范围内的两个十六进制数字,前缀为 x。 例如, x12 或 x03,x7F。delimiterType 指定目标文件中包含的位于单条消息数据之后的定界符类型。 有效值如下: - binary - 十六进制定界符
仅当启用了 V7.0.4.1 功能时,该属性才可用。
delimiterPosition 指定在将面向记录的源文件记录写入常规文件时插入定界符的位置。 有效值如下: - prefix - 定界符将插入目标文件中,在每条面向源记录的文件记录中的数据之前。
- postfix - 定界符将插入目标文件中,在每条面向源记录的文件记录的数据之后。
includeDelimiterInFile 指定是否在面向记录的源文件中的记录之间包含定界符。
keepTrailingSpaces
指定在文本方式传输过程中是否保留从固定长度格式的数据集读取的源记录上的尾部空格。 缺省值为除去尾部空格。 有效值如下:- true - 在从固定长度格式的数据集读取的源记录上保留尾部空格
- false - 除去从固定长度格式的数据集读取的源记录上的尾部空格
- <queue>
- 在用于 <source> 元素时,指定作为传输源的队列的名称,这必须位于源代理队列管理器上。 使用格式 QUEUE。 请勿包含队列管理器名称,队列必须位于源代理队列管理器上。 如果已经在 <destination> 元素中使用 <queue> 元素,那么将无法在 <source> 元素中使用该元素。
属性 描述 useGroups 指定是传输源队列上的所有消息,还是传输完整消息组或不在组中的个别消息。 有效值如下:- true-仅传输第一个完整的消息组或不在组中的第一个单独消息。
- false - 传输源队列上的所有消息
groupId 指定要从源队列读取的完整消息组的组标识或不在组中的单个消息的消息标识。 仅当 useGroups 属性的值为 true 时,该属性才有效。
messageInGroup 指定 groupId 属性中的标识是表示消息组,还是表示不在组中的个别消息。 仅当 useGroups 属性的值为 true 时,该属性才有效。 有效值如下:- true- groupId 属性中的标识表示组标识。
- false- groupId 属性中的标识表示消息标识。
delimiterType 指定目标文件中包含的位于单条消息数据之后的定界符类型。 有效值如下:- text - 文本或 Java 字面值定界符
- binary - 十六进制定界符
delimiter 指定在目标文件的单条消息数据之间包含的定界符。
delimiterPosition 指定目标文件包含的定界符是位于单个消息数据之前还是之后。 有效值如下:- prefix - 定界符包含在数据之前
- postfix - 定界符包含在数据之后
编码 指定源队列编码。
waitTime 指定源代理等待以下一个条件的时间(秒):- 在源队列上出现一条消息(如果队列为空或已变为空)
- 在源队列上出现一个完整组(如果 useGroups 属性已设置为 true)
- <destination>
- 指定文件位于目标代理上时的目标和行为的组元素。
只能指定 <file> 和 <queue> 之一作为目标的子元素。
属性 描述 类型 目标的类型。 有效值如下:- file - 将文件指定为目标
- directory - 将目录指定为目标
数据集 -将 z/OS 数据集指定为目标
pds -指定 z/OS 分区数据集作为目标- queue -指定 IBM MQ 队列作为目标
- filespace - 将文件空间指定为目标
仅当 <destination> 元素的子元素为 <queue>时,值 队列 才有效。
仅当 <destination> 元素的子元素为 <filespace>时,值 文件空间 才有效。
仅当 <destination> 元素具有子元素 <file>时,其他值才有效。
exist 指定在目标系统上已存在目标文件时执行的操作。 有效值如下:- error - 报告一个错误,并且未传输文件。
- overwrite - 覆盖现有的目标文件。
如果 <destination> 元素具有子元素 <queue> 或 <filespace>,那么此属性无效。
- <file>
- 指定先前描述的 <destination> 元素的其他设置。 使用与操作系统格式一致的标准路径,例如
C:/from/here.txt。 请勿使用文件 URI。属性 描述 别名 指定 <destination> 文件的别名。 该别名是源文件的名称,不包括针对传输指定的任何目录路径。 编码 用于文本文件传输的 <destination> 文件的编码。 EOL 指定文本传输的行尾标记符。 有效值包括: - LF - 仅限换行字符
- CRLF - 回车符和换行符序列
truncateRecords
可选。 指定截断长于 LRECL 数据集属性的 <destination> 记录。- True - 截断记录
- False - 合并记录
- <queue>
- 与 <destination> 元素配合使用时,指定要传输到的队列的名称,该队列可以位于连接到目标代理队列管理器的任何队列管理器上。 使用格式 QUEUE@QM,其中 QUEUE 是要放置消息的队列的名称,QM 是队列所在的队列管理器。 如果已经在 <source> 元素中使用 <queue> 元素,那么将无法在 <destination> 元素中使用该元素。
属性 描述 delimiter 将文件拆分为多条消息的定界符。 delimiterType 指定定界符的类型。 有效值如下: - text - Java 正则表达式
- binary - 十六进制字节序列
- size - 字节、千字节或兆字节数。 例如,1 B、1 K 或 1 M。
delimiterPosition 指定期望定界符位于要在单条消息中包含的数据之前还是之后。 有效选项如下:- prefix - 期望定界符在数据之前
- postfix - 期望定界符在数据之后
includeDelimiterInMessage 指定是否要在消息尾部包含用于将文件拆分为多条消息的定界符的布尔值。 编码 指定目标队列编码。 persistent 指定消息是否持久。 有效值如下: - true - 消息持久
- false - 消息不持久
- qdef - 消息的持久性值由目标队列上的设置定义
setMqProps 一个布尔值,用于指定是否在文件中的第一条消息上设置 IBM MQ 消息属性,以及发生错误时写入队列的任何消息。 unrecognisedCodePage 指定在目标队列管理器无法识别数据代码页时,文本方式传输将失败还是执行转换。 有效值如下: - fail - 传输报告失败
- binary-将数据转换为目标代码页,并将描述数据格式的 IBM MQ 消息头设置为 MQFMT_NONE。
- <filespace>
- 指定要传输到的文件空间名称的组元素。
- <name>
- 在和 <filespace> 元素一起使用时,该元素的值指定文件空间的名称。
- <preSourceCall>
- 指定在传输开始前要在传输源处调用的命令的组元素。
- <postSourceCall>
- 指定在传输完成后要在传输源调用的命令的组元素。
- <preDestinationCall>
- 指定在传输开始前要在传输目标处调用的命令的组元素。
- <postDestinationCall>
- 指定在传输完成后要在传输目标处调用的命令的组元素。
- <command>
- 在和 <preSourceCall>、<postSourceCall>、<preDestinationCall> 或 <postDestinationCall> 元素一起使用时,该元素指定要调用的命令。 命令必须位于代理命令路径上。 有关更多信息,请参阅 高级代理程序属性。
属性 描述 名称 要运行的命令的名称。 successRC 在命令成功运行时期望的返回码。 - <argument>
- 在和 <command> 元素一起使用时,该元素指定要传递到命令的参数。 您可以在 <command> 元素中使用任意数量的 <argument> 元素。
- <job>
- Optional group element containing job information for the entire transfer specification. <job> is a user-defined job name identifier that is added to the log message when the transfer has started. This <job> element is the same as the <job> element that appears in the transfer log message, which is described in the following topic: 文件传输日志消息格式.
- <name>
- 在和 <job> 元素一起使用时,该元素的值可指定作业名称。
- <transferSpecifications>
- 包含多个传输组的 <item> 元素的组元素。 有关如何使用此元素的更多详细信息,请参阅 使用传输定义文件 。
- <cancel>
- 包含取消正在进行的文件传输所需的所有元素的组元素。
属性 描述 版本 指定 Managed File Transfer提供的此元素的版本。 - <transfer>
- 在和 <cancel> 元素一起使用时,该元素的值指定要取消的传输请求标识。
- <job>
- 包含作业信息的组元素。
- <jobName>
- 指定逻辑作业标识。
文件传输取消消息格式
文件传输请求返回一个标识特定代理的传输的 48 字符标识。 该标识用于取消传输。
了解传输取消消息
描述传输取消消息中使用的元素和属性:- <cancel>
- 包含取消正在进行的文件传输所需的所有元素的组元素。
属性 描述 版本 指定 Managed File Transfer提供的此元素的版本。 - <originator>
- 包含指定请求发起方的元素的组元素。
- <hostName>
- 源文件所在系统的主机名。
- <userID>
- 发起文件传输的用户标识。
- <mqmdUserID>
- 可选。 消息描述符 (MQMD) 中提供的 IBM MQ 用户标识。
- <transfer>
- 在和 <cancel> 元素一起使用时,该元素的值指定要取消的传输请求标识。
- <job>
- 可选。 包含作业信息的组元素。
- <jobName>
- 指定逻辑作业标识。