fte: filecopy Ant 任务
fte:filecopy 任务在 Managed File Transfer 代理程序之间复制文件。 该文件不会从源代理删除。
属性
- cmdqm
- 可选。 请求提交到的命令队列管理器。 按以下格式指定此信息:
qmgrname@host@port@channel,其中:qmgrname是队列管理器的名称host是正在运行队列管理器的系统的可选主机名port是队列管理器正在侦听的可选端口号channel是要使用的可选 SVRCONN 通道
host、port或channel信息,那么会使用 command.properties 文件中指定的连接信息。注意: 如果没有为以下对象指定值:- host 变量,使用绑定方式
- port 变量,使用值 1414
- channel 变量, SYSTEM.DEF.SVRCONN 。
但是,不能跳过中间的属性,例如
qmgrname@host@@channel。 例如,您可以具有qmgrname@host,qmgrname@host@port或qmgrname@hostport@@channel。MFT 使用
@定界符拆分给定属性。 根据找到的令牌数,它采用第一个令牌作为 qmgrname,第二个令牌作为 host,第三个令牌作为 port ,最后采用 channel。 - dst
- 必需。 指定复制操作的目标代理。 按以下格式指定此信息:
agentname@qmgrname,其中agentname是目标代理的名称,qmgrname是该代理直接连接到的队列管理器的名称。 - idproperty
- 除非您已指定
outcome为defer,否则可选。 指定传输标识要分配到的属性的名称。 在提交传输请求时会生成传输标识,您可以使用传输标识来跟踪传输进展、诊断传输问题以及取消传输。 - 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属性。
await。 - priority
- 可选。 指定与复制请求关联的优先级。 一般,优先级较高的传输请求的优先顺序高于优先级较低的请求。 优先级值必须在 0 - 9(含 0 和 9)的范围内。 优先级值 0 是最低的优先级,优先级值 9 是最高的优先级。 如果您不指定
priority属性,那么传输会缺省使用优先级值 0。 - 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 和出口不返回成功状态,那么按如下顺序指定规则:
- 运行源起点出口。 如果源起点出口失败,那么传输失败,并且不再继续运行。
- 运行前期源调用(如果存在)。 如果前期源调用失败,那么传输失败,并且不再继续运行。
- 运行目标起点出口。 如果目标起点出口失败,那么传输失败,并且不再运行。
- 运行前期目标调用(如果存在)。 如果前期目标调用失败,那么传输失败,并且不再继续运行。
- 执行文件传输。
- 运行目标端出口。 针对这些出口没有失败状态。
- 如果传输成功(只要某些文件传输成功,该传输就视为成功),请运行目标后调用(如果存在)。 如果目标后调用失败,那么传输将失败。
- 运行源端出口。 针对这些出口没有失败状态。
- 如果传输成功,请运行源后调用(如果存在)。 如果源后调用失败,那么传输将失败。
示例
该示例展示了
agent1 与 agent2 之间的基本文件传输。 将使用客户机传输方式连接将用于启动文件传输的命令发送到名为 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>