fte: filecopy Ant 任务

fte:filecopy 任务在 Managed File Transfer 代理程序之间复制文件。 该文件不会从源代理删除。

属性

cmdqm
可选。 请求提交到的命令队列管理器。 按以下格式指定此信息:qmgrname@host@port@channel,其中:
  • qmgrname 是队列管理器的名称
  • host 是正在运行队列管理器的系统的可选主机名
  • port 是队列管理器正在侦听的可选端口号
  • channel 是要使用的可选 SVRCONN 通道
如果省略命令队列管理器的 hostportchannel 信息,那么会使用 command.properties 文件中指定的连接信息。
注意: 如果没有为以下对象指定值:
  • host 变量,使用绑定方式
  • port 变量,使用值 1414
  • channel 变量, SYSTEM.DEF.SVRCONN 。
请参阅 MFT command.properties 文件 以获取更多信息。

但是,不能跳过中间的属性,例如 qmgrname@host@@channel。 例如,您可以具有 qmgrname@hostqmgrname@host@portqmgrname@hostport@@channel

MFT 使用 @ 定界符拆分给定属性。 根据找到的令牌数,它采用第一个令牌作为 qmgrname,第二个令牌作为 host,第三个令牌作为 port ,最后采用 channel

有关更多信息,请参阅 MFT command.properties 文件
您可以使用 com.ibm.wmqfte.propertySet 属性指定要使用的 command.properties 文件。 有关更多信息,请参阅 com.ibm.wmqfte.propertySet
如果您不使用 cmdqm 属性,那么该任务会缺省使用 com.ibm.wmqfte.ant.commandQueueManager 属性(如果已设置该属性)。 如果未设置 com.ibm.wmqfte.ant.commandQueueManager 属性,会尝试连接至 command.properties 文件中定义的缺省队列管理器。 com.ibm.wmqfte.ant.commandQueueManager 属性的格式与 cmdqm 属性的相同,即 qmgrname@host@port@channel
dst
必需。 指定复制操作的目标代理。 按以下格式指定此信息:agentname@qmgrname,其中 agentname 是目标代理的名称,qmgrname 是该代理直接连接到的队列管理器的名称。
idproperty
除非您已指定 outcomedefer,否则可选。 指定传输标识要分配到的属性的名称。 在提交传输请求时会生成传输标识,您可以使用传输标识来跟踪传输进展、诊断传输问题以及取消传输。
如果您还指定了 ignoreoutcome 属性,那么不能指定该属性。 但是,如果您已将 outcome 属性指定为 defer,那么还必须指定 idproperty
jobname
可选。 将作业名分配到复制请求。 您可以使用作业名来创建传输的逻辑组。 使用 fte: uuid Ant 任务 任务来生成伪唯一作业名。 如果您不使用 jobname 属性,那么该任务缺省使用 com.ibm.wmqfte.ant.jobName 属性值(如果已设置该属性)。 如果您不设置该属性,没有作业名会与复制请求相关联。
origuser
可选。 指定与复制请求关联的始发用户标识。 如果不使用 origuser 属性,那么该任务将缺省使用用于运行 Ant 脚本的用户标识。
outcome
可选。 确定在将控制权返回给 Ant 脚本之前,任务是否等待复制操作完成。 指定以下某个选项:
await
该任务等待复制操作完成后再返回。 如果将 outcome 指定为 await,那么 idproperty 属性为可选。
defer
一旦提交了复制请求,该任务就会立即返回,并假定稍后将使用 fte: await结局 Ant 任务fte: ignore结局 Ant 任务 任务来处理复制操作的结果。 如果将 outcome 指定为 defer,那么 idproperty 属性是必需的。
ignore
如果复制操作的结果不重要,那么可以将值指定为 ignore。 随后,一旦提交复制请求,该任务会立即返回,而不会分配任何资源用于跟踪传输的结果。 如果将 outcome 指定为 ignore,那么不能指定 idproperty 属性。
如果您不指定 outcome 属性,那么该任务会缺省使用值 await
priority
可选。 指定与复制请求关联的优先级。 一般,优先级较高的传输请求的优先顺序高于优先级较低的请求。 优先级值必须在 0 - 9(含 0 和 9)的范围内。 优先级值 0 是最低的优先级,优先级值 9 是最高的优先级。 如果您不指定 priority 属性,那么传输会缺省使用优先级值 0。
rcproperty
可选。 指定复制请求的结果代码要分配到的属性的名称。 结果代码反映了复制请求的总体结果。
如果您已将 outcome 属性指定为 ignoredefer,那么无法指定该属性。 但是如果您将 outcome 指定为 await,那么必须指定 rcproperty
transferRecoveryTimeout
可选。 设置时间量(以秒为单位),在此期间,源代理会一直尝试恢复停止的文件传输。 指定以下某个选项:
-1
代理继续尝试恢复停止的传输,直至传输完成。 使用此选项相当于未设置属性时代理的缺省行为。
0
一旦进入恢复,代理将停止文件传输。
>0
在由指定正整数值设置的时间量(以秒为单位)内,代理继续尝试恢复停止的传输。 例如
<fte:filecopy cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN" 
              src="agent1@qm1" dst="agent2@qm2"
              rcproperty="copy.result" transferRecoveryTimeout="21600">    
                
	<fte:filespec srcfilespec="/home/fteuser1/file.bin" dstfile="/home/fteuser2/file.bin"/>

</fte:filecopy>
表示代理会在进入恢复后六小时内一直尝试恢复传输。 此属性的最大值为 999999999

通过这种方式指定传输恢复超时值是在每个传输的基础上进行设置。 要为 Managed File Transfer 网络中的所有传输设置全局值,可以向 传输恢复超时属性添加属性。 有关更多信息,请参阅 恢复中传输的超时选项

src
必需。 指定复制操作的源代理。 按以下格式指定此信息:agentname@qmgrname,其中 agentname 是源代理的名称,qmgrname 是该代理直接连接到的队列管理器的名称。

指定为嵌套元素的参数

fte:filespec
必需。 您必须至少指定一个文件规范以标识要复制的文件。 如果需要,您可以指定多个文件规范。 请参阅 fte: filespec Ant 嵌套元素 以获取更多信息。
fte:metadata
您可以指定要与复制操作关联的元数据。 此元数据附带于传输,并且在传输生成的日志消息中记录。 您只能将一个元数据块与一个给定传输元素相关联;但是,该块可包含多份元数据。 请参阅 fte: metadata 主题以获取更多信息。
fte:presrc
指定在传输启动前,在源代理处发生程序调用。 您只能将单个 fte:presrc 元素与一个给定传输相关联。 请参阅 程序调用 主题以获取更多信息。
fte:predst
指定在传输启动前,在目标代理处发生程序调用。 您只能将单个 fte:predst 元素与一个给定传输相关联。 请参阅 程序调用 主题以获取更多信息。
fte:postsrc
指定在传输完成后,在源代理处发生程序调用。 您只能将单个 fte:postsrc 元素与一个给定传输相关联。 请参阅 程序调用 主题以获取更多信息。
fte:postdst
指定在传输完成后,在目标代理处发生程序调用。 您只能将单个 fte:postdst 元素与一个给定传输相关联。 请参阅 程序调用 主题以获取更多信息。
如果 fte:presrc、fte:predst、fte:postsrc、fte:postdst 和出口不返回成功状态,那么按如下顺序指定规则:
  1. 运行源起点出口。 如果源起点出口失败,那么传输失败,并且不再继续运行。
  2. 运行前期源调用(如果存在)。 如果前期源调用失败,那么传输失败,并且不再继续运行。
  3. 运行目标起点出口。 如果目标起点出口失败,那么传输失败,并且不再运行。
  4. 运行前期目标调用(如果存在)。 如果前期目标调用失败,那么传输失败,并且不再继续运行。
  5. 执行文件传输。
  6. 运行目标端出口。 针对这些出口没有失败状态。
  7. 如果传输成功(只要某些文件传输成功,该传输就视为成功),请运行目标后调用(如果存在)。 如果目标后调用失败,那么传输将失败。
  8. 运行源端出口。 针对这些出口没有失败状态。
  9. 如果传输成功,请运行源后调用(如果存在)。 如果源后调用失败,那么传输将失败。

示例

该示例展示了 agent1agent2 之间的基本文件传输。 将使用客户机传输方式连接将用于启动文件传输的命令发送到名为 qm0, 的队列管理器。 文件传输操作的结果分配给称为 copy.result 的属性。
<fte:filecopy cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN" 
              src="agent1@qm1" dst="agent2@qm2"
              rcproperty="copy.result">
                    
	<fte:filespec srcfilespec="/home/fteuser1/file.bin" dstfile="/home/fteuser2/file.bin"/>

</fte:filecopy>
该示例展示了相同的文件传输,但是在传输完成后,添加了元数据,并且在源代理处启动程序。
<fte:filecopy cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN" 
              src="agent1@qm"1 dst="agent2@qm2"
              rcproperty="copy.result">
                    

	<fte:metadata>
			<fte:entry name="org.example.departId" value="ACCOUNTS"/>
			<fte:entry name="org.example.batchGroup" value="A1"/>
	</fte:metadata> 

	<fte:filespec srcfilespec="/home/fteuser1/file.bin" dstfile="/home/fteuser2/file.bin"/>

	<fte:postsrc command="/home/fteuser2/scripts/post.sh" successrc="1" >
			<fte:arg value="/home/fteuser2/file.bin"/> 
  </fte:postsrc>
</fte:filecopy>