文件传输日志消息格式

文件传输日志消息发布在主题字符串为 Log/agent_name/transfer_ID 的 SYSTEM.FTE 主题内。 这些消息符合模式 TransferLog.xsd,该模式位于 Managed File Transfer 安装的 MQ_INSTALLATION_PATH/mqft/samples/schema 目录中。

如果要监视文件传输或收集有关它们的数据,请设置一个针对您感兴趣的传输而定制的通配符主题预订。 例如:
Log/# 
或者,
Log/FTEAGENT/# 
该预订可以是持久或非持久的。 持久预订在预订应用程序与队列管理器之间的连接关闭后继续存在。 非持久预订只有在预订应用程序与队列管理器之间的连接处于打开状态时才存在。

模式

以下模式描述在传输日志 XML 消息中有效的元素。

<xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema">

    <xsd:include schemaLocation="fteutils.xsd"/>
 
    <xsd:element name="transaction">         
        <xsd:complexType>         	
            <xsd:sequence>         	    
                <xsd:element name="action"                type="actionType"          
                             maxOccurs="1"                minOccurs="0"/>         		
                <xsd:element name="sourceAgent"           type="agentExitStatusType"
                             maxOccurs="1"                minOccurs="0"/>         		
                <xsd:element name="sourceWebGateway"      type="webGatewayType"      
                             maxOccurs="1"                minOccurs="0"/>         		
                <xsd:element name="sourceWebUser"         type="webUserType"         
                             maxOccurs="1"                minOccurs="0"/>         		
                <xsd:element name="destinationAgent"      type="agentExitStatusType" 
                             maxOccurs="1"                minOccurs="0"/>         		
                <xsd:element name="destinationWebGateway" type="webGatewayType"         
                             maxOccurs="1"                minOccurs="0"/>         		
                <xsd:element name="destinationWebUser"    type="webUserType"         
                             maxOccurs="1"                minOccurs="0"/>         		
                <xsd:element name="agent"                 type="agentExitStatusType" 
                             maxOccurs="1"                minOccurs="0"/> 	        	
                <xsd:element name="originator"            type="origRequestType"     
                             maxOccurs="1"                minOccurs="1"/>         		
                <xsd:element name="status"                type="statusType"          
                             maxOccurs="1"                minOccurs="0"/>         		
                <xsd:element name="trigger"               type="triggerType"         
                             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:element name="scheduleLog"           type="scheduleLogType"     
                             maxOccurs="1"                minOccurs="0"/>         		
                <xsd:element name="statistics"            type="statisticsType"     
                             maxOccurs="1"                minOccurs="0"/>         	
            </xsd:sequence>         	
            <xsd:attribute name="version"   type="versionType"   	use="required"/> 			
            <xsd:attribute name="ID"        type="IDType"	    	use="required"/> 			
            <xsd:attribute name="relatedID" type="IDType"	    	use="optional"/> 			
            <xsd:attribute name="agentRole" type="agentRoleType"	use="optional"/>         
        </xsd:complexType>     
    </xsd:element>         

    <xsd:complexType name="agentExitStatusType">     	
        <xsd:complexContent> 			
            <xsd:extension base="agentType"> 				
                <xsd:sequence> 					
                    <xsd:element name="startExits" type="exitGroupType" minOccurs="0" maxOccurs="1"/> 					
                    <xsd:element name="endExits"   type="exitGroupType" minOccurs="0" maxOccurs="1"/> 					
                    <xsd:element name="systemInfo" type="systemInfoType" minOccurs="0" maxOccurs="1"/> 				
                </xsd:sequence> 	    	
            </xsd:extension>     	
        </xsd:complexContent>     
    </xsd:complexType>            

    <xsd:complexType name="transferSetType"> 		
        <xsd:sequence> 			
            <xsd:element name="metaDataSet"          type="metaDataSetType" 
                         maxOccurs="1"               minOccurs="0" /> 			
            <xsd:element name="call"                 type="callGroupType" 
                         maxOccurs="1"               minOccurs="0"/> 			
            <xsd:element name="preSourceCall"        type="callGroupType" 
                         maxOccurs="1"               minOccurs="0"/> 			
            <xsd:element name="postSourceCall"       type="callGroupType" 
                         maxOccurs="1"               minOccurs="0"/> 			
            <xsd:element name="preDestinationCall"   type="callGroupType" 
                         maxOccurs="1"               minOccurs="0"/> 			
            <xsd:element name="postDestinationCall"  type="callGroupType" 
                         maxOccurs="1"               minOccurs="0"/>             
            <xsd:element name="item"                 type="itemType" 
                         maxOccurs="unbounded"       minOccurs="0"/> 		
        </xsd:sequence> 		
        <xsd:attribute name="index"     type="xsd:nonNegativeInteger" use="optional" /> 		
        <xsd:attribute name="size"      type="xsd:nonNegativeInteger" use="optional" /> 		
        <xsd:attribute name="startTime" type="xsd:dateTime"           use="required" /> 		
        <xsd:attribute name="total"     type="xsd:nonNegativeInteger" use="required" /> 		
        <xsd:attribute name="bytesSent" type="xsd:nonNegativeInteger" use="required" />     
    </xsd:complexType>        

    <xsd:complexType name="itemType"> 		
        <xsd:sequence> 			
            <xsd:element name="source"      type="fileSourceChecksumType"		
                         maxOccurs="1"      minOccurs="1" /> 			
            <xsd:element name="destination" type="fileDestinationChecksumType"	
                         maxOccurs="1"      minOccurs="1" /> 			
            <xsd:element name="status"      type="statusType"       			
                         maxOccurs="1"      minOccurs="1" /> 		
        </xsd:sequence> 		
        <xsd:attribute name="mode" type="modeType" use="required" /> 	
    </xsd:complexType> 	 	   

    <xsd:complexType name="fileSourceChecksumType">     	
        <xsd:complexContent> 			
            <xsd:extension base="fileSourceType"> 				
                <xsd:sequence> 					
                    <xsd:element name="checksum" type="checksumType" minOccurs="0" maxOccurs="1"/> 				
                </xsd:sequence> 	    
            </xsd:extension>     	
        </xsd:complexContent>     
    </xsd:complexType>	      

    <xsd:complexType name="fileDestinationChecksumType">     	
        <xsd:complexContent> 			
            <xsd:extension base="fileDestinationType"> 				
                <xsd:sequence> 					
                    <xsd:element name="checksum" type="checksumType" 
                                 minOccurs="0"   maxOccurs="1"/> 				
                </xsd:sequence> 	    	
            </xsd:extension>     	
        </xsd:complexContent>     
    </xsd:complexType>	        

    <xsd:complexType name="actionType">         
        <xsd:simpleContent>     		
            <xsd:extension base="actionEnumType">         		
                <xsd:attribute name="time" type="xsd:dateTime" use="required" />         
            </xsd:extension>         
        </xsd:simpleContent>     
    </xsd:complexType>   

    <xsd:simpleType name="actionEnumType">     	
        <xsd:restriction base="xsd:token">     		
            <xsd:enumeration value="cancelled"/>     		
            <xsd:enumeration value="started"/>     		
            <xsd:enumeration value="progress"/>     		
            <xsd:enumeration value="completed"/>     		
            <xsd:enumeration value="malformed"/>     		
            <xsd:enumeration value="notAuthorized"/>     		
            <xsd:enumeration value="deleted"/>        	
        </xsd:restriction>     
    </xsd:simpleType>           

    <xsd:complexType name="systemInfoType">         
        <xsd:attribute name="architecture" type="xsd:string" use="required"/>         
        <xsd:attribute name="name"         type="xsd:string" use="required"/>         
        <xsd:attribute name="version"      type="xsd:string" use="required"/>     
    </xsd:complexType>          

    <xsd:element name="malformed">         
        <xsd:complexType>
            <xsd:sequence>         	    
                <xsd:element name="action"  type="actionType" 
                             maxOccurs="1"  minOccurs="1"/> 				
                <xsd:element name="agent"   type="agentExitStatusType"
                             maxOccurs="1"  minOccurs="0"/>         		
                <xsd:element name="status"  type="statusType" 
                             maxOccurs="1"  minOccurs="1"/>         	
            </xsd:sequence>         	
            <xsd:attribute name="version"   type="versionType"     use="required"/> 			
            <xsd:attribute name="ID"        type="IDType"          use="required"/> 			
            <xsd:attribute name="agentRole" type="agentRoleType"   use="required"/>         
        </xsd:complexType>     
    </xsd:element>         

    <xsd:element name="notAuthorized">         
        <xsd:complexType>         	
            <xsd:sequence>         	    
                <xsd:element name="action"      type="actionType" 
                             maxOccurs="1"      minOccurs="1"/>         	    
                <xsd:element name="originator"  type="origRequestType" 
                             maxOccurs="1"      minOccurs="1"/>         	    
                <xsd:element name="authority"   type="xsd:string" 
                             minOccurs="1"      maxOccurs="1"/>         		
                <xsd:element name="status"      type="statusType" 
                             maxOccurs="1"      minOccurs="1"/>         	
            </xsd:sequence>         	
            <xsd:attribute name="version"   type="versionType"    use="required"/> 			
            <xsd:attribute name="ID"        type="IDType"         use="required"/> 			
            <xsd:attribute name="agentRole" type="agentRoleType"  use="required"/>         
        </xsd:complexType>     
    </xsd:element>               

    <xsd:complexType name="statisticsType">         
        <xsd:sequence>                 
            <xsd:element name="actualStartTime" type="xsd:dateTime"           
                         maxOccurs="1"          minOccurs="0"/>                 
            <xsd:element name="retryCount"      type="xsd:nonNegativeInteger" 
                         maxOccurs="1"          minOccurs="1"/>                 
            <xsd:element name="numFileFailures" type="xsd:nonNegativeInteger" 
                         maxOccurs="1"          minOccurs="1"/>                 
            <xsd:element name="numFileWarnings" type="xsd:nonNegativeInteger" 
                         maxOccurs="1"          minOccurs="1"/>         
        </xsd:sequence>     
    </xsd:complexType>     

    <xsd:complexType name="webGatewayType"> 		
        <xsd:attribute name="webGatewayName"      type="xsd:string" use="optional" /> 		
        <xsd:attribute name="webGatewayAgentName" type="xsd:string" use="optional" /> 		
        <xsd:attribute name="webGatewayAgentQMgr" type="xsd:string" use="optional" /> 
    </xsd:complexType> 	 	

    <xsd:complexType name="webUserType"> 		
        <xsd:attribute name="webGatewayName"      type="xsd:string" use="required" /> 		
        <xsd:attribute name="webGatewayAgentName" type="xsd:string" use="optional" /> 		
        <xsd:attribute name="webGatewayAgentQMgr" type="xsd:string" use="optional" />        	 	
    </xsd:complexType>

</xsd:schema>
注:IBM® MQ 9.0开始, Managed File Transfer 不支持 Web 网关或 Web 代理程序。

了解传输日志消息

<transaction>
用于指定一组要一起执行的传输的组元素。
属性 描述
版本 指定此元素的版本,如 Managed File Transfer所详述。
标识 指定唯一事务标识。 该标识最多可包含 48 个字母数字字符。
relatedID 可选。 如果事务是从文件空间中删除或下载文件,那么 relatedID 指定将该文件上载到该文件空间中的传输的事务标识。
agentRole 可选。 指定关注的代理是否在源或目标系统上
xmlns:xsi 名称空间声明。 指示此模式中使用的元素和数据类型派生自 "https://www.w3.org/2001/XMLSchema-instance" 名称空间。
xsi:noNamespaceSchemaLocation 指定 XML 模式文档的名称和位置,以在没有名称空间声明的情况下验证该消息。 为此属性指定的值必须引用 Managed File Transfer TransferLog.xsd 文档。
<action>
描述在 time 属性记录的时间,文件传输的状态。 状态可以是以下某个值:
  • 已启动
  • 正在进行
  • 已完成
  • 已取消
  • malformed(指示无法解释文件传输请求消息的内容)
  • notAuthorized
  • deleted
属性 描述
时间 捕获传输状态的时间,以 UTC 格式表示。
<sourceAgent>
指定源文件所在系统上的代理的名称。 只能指定 "<sourceAgent>或 "<sourceWebUser>。
<startExits>
包含一个或多个用户出口元素的组元素。 该元素只能出现一次。
<endExits>
包含一个或多个用户出口元素的组元素。 该元素只能出现一次。
<systemInfo>
描述系统体系结构、名称和版本。 该元素只能出现一次。
属性 描述
客服 源系统上的代理的名称。
QMgr 源系统上的队列管理器的名称。
agentType 代理的类型。 有效值包括:
  • STANDARD - 一般代理
  • BRIDGE - 协议网桥代理
  • CD_BRIDGE- Connect:Direct® 网桥代理
  • EMBEDDED - 嵌入式代理
  • SFG - Sterling File Gateway 嵌入式代理
bridgeURL 可选。 如果代理是协议网桥代理,那么是指托管协议服务器的系统的主机名称。
pnode 可选。 如果代理是 Connect:Direct 网桥代理,那么这是传输中涉及的 Connect:Direct 主节点的名称。
snode 可选。 如果代理是 Connect:Direct 网桥代理,那么这是传输中涉及的 Connect:Direct 辅助节点的名称。
bridgeNode 可选。 如果代理程序是 Connect:Direct 网桥代理,那么是属于 Connect:Direct 网桥的 Connect:Direct 节点的名称。 这与主节点或辅助节点是同一个节点。
<destinationAgent>
指定文件要传输到的系统上的代理的名称。 可以指定<destinationAgent>或<destinationWebUser>。
属性 描述
客服 目标系统上的代理的名称。
QMgr 目标系统上的队列管理器的名称。
agentType 代理的类型。 有效值包括:
  • STANDARD - 一般代理
  • BRIDGE - 协议网桥代理
  • CD_BRIDGE- Connect:Direct 网桥代理
  • EMBEDDED - 嵌入式代理
  • SFG - Sterling File Gateway 嵌入式代理
bridgeURL 可选。 如果代理是协议网桥代理,那么是指托管协议服务器的系统的主机名称。
pnode 可选。 如果代理是 Connect:Direct 网桥代理,那么这是传输中涉及的 Connect:Direct 主节点的名称。
snode 可选。 如果代理是 Connect:Direct 网桥代理,那么这是传输中涉及的 Connect:Direct 辅助节点的名称。
bridgeNode 可选。 如果代理程序是 Connect:Direct 网桥代理,那么是属于 Connect:Direct 网桥的 Connect:Direct 节点的名称。 这与主节点或辅助节点是同一个节点。
<startExits>
包含一个或多个用户出口元素的组元素。 该元素只能出现一次。
<endExits>
包含一个或多个用户出口元素的组元素。 该元素只能出现一次。
<systemInfo>
描述系统体系结构、名称和版本。 该元素只能出现一次。
<originator>
包含指定请求发起方的元素的组元素。
<hostName>
源文件所在系统的主机名。
<userID>
发起文件传输的用户标识。
<mqmdUserID>
消息描述符 (MQMD) 中提供的 IBM MQ 用户标识
<webUserID>
可选。 向提交传输请求的 Web 浏览器提供的用户标识。
<webBrowser>
可选。 提交传输请求的 Web 浏览器。
<status>
结果代码和补充消息。
<trigger>
包含在原始传输请求中定义的触发器元素的组元素。 这些元素可以是以下中的任何一个或所有:
<fileExist>
基于是否存在文件的触发条件
<fileSize>
基于文件是否满足或超出了指定大小的触发条件。
<transferSet>
指定一组要一起执行的文件传输。 在传输期间,<transferSet> 是包含 <item> 元素的组元素。
属性 描述
startTime 记录一组传输开始的时间,以 UTC 格式表示。
total 指定该传输集中的总项数。
索引 可选属性。 指定第一个项在传输集进度中的位置。 index 属性自零开始递增。 例如,如果将 index 设置为 1,那么进度消息则为两个项中的第二个。
size 可选属性。 指定进度报告中的项数。
priority 可选属性。 传输的优先级。 优先级为 0-9 之间的一个值,其中 0 为最低优先级。 缺省优先级为 0,并且缺省情况下,传输使用源代理的优先级。
<metaDataSet>
包含一个或多个以下属性的组元素:
<metaData>
属性 描述
key 元数据键值对中的键部分。 <metaData> 元素内容包含键值对的值部分。 例如,<metaData key="testkey1">testvalue1</metaData>
<job>
组元素,包含一个指定任务详细信息的元素。 <job> 是用户定义的任务名称标识符,传输开始后会添加到日志信息中。 This <job> element is the same as the <job> element that is included in the transfer request message, which is described in the following topic: 文件传输请求消息格式.
<name>
名称可以是任意字符串。
<scheduleLog>
包含指定源和目标文件名和位置的元素的组元素。
属性 描述
标识 如果传输为安排的传输,那么其与调度标识匹配。
<item>
包含指定源和目标文件名和位置的元素的组元素。
<source>
包含 <file> 元素或 <queue> 元素以及源系统上文件的 <checksum> 元素的组元素。
属性 描述
recursive 指定当 <source> 元素为目录或包含通配符时,以递归方式传输子目录中的文件。
disposition 指定在 <source> 已成功传输到其目标时要在 <source> 元素上执行的操作。 有效选项如下:
  • leave - 源文件保持不变。
  • delete - 在成功传输源文件后将源文件从源系统中删除。
correlationBoolean 布尔关联值。 如果源是 Connect:Direct 网桥,那么这将指定 Connect:Direct 进程是否是用户定义的。
correlationString1 字符串关联值。 如果源是 Connect:Direct 网桥,那么这将指定在传输目标处发生的 Connect:Direct 进程的名称。
correlationNum1 数字相关值。 如果源是 Connect:Direct 网桥,那么这将指定在传输目标处发生的 Connect:Direct 进程的标识号。
<queue>
在与 <source> 元素一起使用时,指定从中读取所传输消息的队列名称,该队列位于源代理队列管理器上。
属性 描述
messageCount 从队列中读取的消息数目。
groupId 从队列中读取的消息的 IBM MQ 组标识。
<destination>
包含 <file> 元素或 <queue> 元素以及目标的 <checksum> 元素的组元素。
只有 <file> 和 <queue> 中的一个作为目标的子元素。
属性 描述
类型
目标的类型。 有效选项如下:
  • queue-将 IBM MQ 队列指定为目标
  • file - 将文件指定为目标
  • directory - 将目录指定为目标
  • [z/OS]dataset-将 z/OS® 数据集指定为目标
  • [z/OS]pds-指定 z/OS 分区数据集作为目标

仅当 <destination> 元素具有子元素 <queue>时,才能存在选项队列。 仅当 <destination> 元素具有子元素 <file>时,才能存在其他选项。

exist
指定在目标系统上已存在目标文件时执行的操作。 有效选项如下:
  • error - 报告一个错误,并且未传输文件。
  • overwrite - 覆盖现有的目标文件。

如果 <destination> 元素具有子元素 <queue>,那么此属性不能存在。

correlationBoolean 布尔关联值。 如果目标是 Connect:Direct 网桥,那么这将指定 Connect:Direct 进程是否由用户定义。
correlationString1 字符串关联值。 如果目标是 Connect:Direct 网桥,那么这将指定在传输目标处发生的 Connect:Direct 进程的名称。
correlationNum1 数字相关值。 如果目标是 Connect:Direct 网桥,那么这将指定在传输目标处发生的 Connect:Direct 进程的标识号。
<file>
指定传输的文件的绝对路径(在源和目标上的路径)。 标准路径与操作系统的格式一致,例如 C:/from/here.txt。 文件 URI 未使用。
<queue>
在与 <destination> 元素一起使用时,指定传输到的队列名称,该队列位于与目标代理队列管理器连接的任何队列管理器上。
属性 描述
messageCount 写入队列的消息数目。
messageLength 写入队列的消息的长度。
groupId 如果传输请求指定将文件拆分为多条消息,那么此属性的值是写入队列的消息的 IBM MQ 组标识。
messageId 如果传输请求未指定将文件拆分为多条消息,那么此属性的值是写入队列的消息的 IBM MQ 消息标识。
<checksum>
可选元素。
指定生成消息摘要以创建数字签名的散列算法的类型。 目前, Managed File Transfer 仅支持消息摘要算法 5 (MD5)。 校验和提供一种方法来确认传输文件的完整性。
<malformed>
表示格式错误的消息的组元素。
属性 描述
版本
标识  
agentRole 源代理或目标代理
<statistics>
表示所传输的统计信息(如果可用)的组元素。
<actualStartTime>
代理开始运行传输的实际时间。 通常,该时间与记录的传输启动时间相同(或非常接近)。 然而,当代理忙碌时,提交的传输可能需要排队,直到代理有能力运行传输。
<retryCount>
传输进入恢复状态并由代理程序重试的次数。 传输可能会进入恢复状态,因为源和目标代理由于 IBM MQ 网络错误或由于它们在一段时间内未接收数据或应答消息而导致通信丢失。 该时间段由以下代理程序属性确定:transferAckTimeout 和 transferAckTimeoutRetries。
<numFileFailures>
传输失败的 transferSet 中的文件数。
<numFileWarnings>
传输期间出生警告但却成功传输的 transferSet 中的文件数。