程序调用嵌套元素
可使用五个嵌套元素中的一个来启动程序:fte:presrc
、fte:predst
、fte:postdst
、fte:postsrc
和 fte:command
。 这些嵌套元素指示代理作为其处理过程的一部分来调用外部程序。 必须先确保命令位于运行该命令的代理程序的 agent.properties 文件中由 commandPath 属性指定的位置,然后才能启动程序。
即使每个程序调用元素的名称不同,它们也可共享同一组属性和同一组嵌套元素。 可通过 fte:filecopy、fte:filemove 和 fte:command Ant 任务启动程序。 如果已配置 Web 网关以允许将文件上载至代理,请通过指定 x-fte-postdest
头或在 HTTP 请求中使用 postdest
格式字段来配置 fte:postdst
程序调用。
不能从 Connect:Direct® 网桥代理调用程序。
可调用程序的 Ant 任务:
- fte: filecopy 任务使用
fte:predst
,fte:postdst
,fte:presrc
和fte:postsrc
嵌套元素嵌套程序调用参数。 - fte: filemove 任务使用
fte:predst
,fte:postdst
,fte:presrc
和fte:postsrc
嵌套元素嵌套程序调用参数。 - fte: call 任务嵌套使用
fte:command
嵌套元素的程序调用参数。
属性
- 命令
- 必需。 指定要调用的程序。 要使代理程序能够运行命令,该命令必须位于由代理程序的 agent.properties 文件中的 commandPath 属性指定的位置。 有关更多信息,请参阅 commandPath 属性。
command
属性中指定的所有路径信息视为相对于 commandPath 属性指定的位置。 如果type
为executable
,将期望可执行程序,否则将期望适合于调用类型的脚本。 - 重试计数
- 可选。 在程序未返回成功返回码时重试调用程序的次数。 由
command
属性指定的程序最多可调用此数目的次数。 为该属性指定的值必须为非负数。 如果未指定retrycount
属性,那么将使用缺省值 0。 - retrywait
- 可选。 重新尝试调用程序之前,要等待的秒数。 如果
command
属性指定的程序未返回成功返回码,并且retrycount
属性指定非零值,那么该参数可确定重试之间等待的时间。 为该属性指定的值必须为非负数。 如果未指定retrywait
属性,那么将使用缺省值 0。 - 成功原因码
- 可选。 该属性的值用于确定程序调用成功运行的时间。 该表达式用于对命令的进程返回码进行求值。 The value can be composed of one or more expressions combined with a vertical bar character (|) to signify Boolean 或, or an ampersand (&) character to signify Boolean 与. 每个表达式可以是以下类型之一:
- 指示进程返回码和数字间的等同性测试的数字。
- 以
>
字符为前缀的数字,用于指示数字与进程返回码之间的大于检验。 - 以
<
字符为前缀的数字,用于指示数字与进程返回码之间的 "小于" 测试。 - 以
!
为前缀的数字 字符为前缀的数字,指示该数字和进程返回码间的“不等于”测试。
>2&<7&!5|0|14
解释为以下成功的返回码:0、3、4、6 和 14。 所有其他返回码都解释为不成功。 如果未指定successrc
属性,那么将使用缺省值 0。 这表示当且仅当该命令返回码为 0 时,才会“判定”该命令运行成功。 - 优先权
- 可选(仅限 os4690background)。 要分配给 IBM® 4690 系统上的后台任务的优先级。 缺省值为 5,有效值范围为 1 - 9。
- 消息
- 可选(仅限 os4690background)。 要在已执行命令的 IBM 4690 系统后台控制屏幕上显示的状态消息。
- 类型
- 可选。 该属性的值指定正在调用的程序的类型。 指定以下某个选项:
- executable
- 该任务调用可执行程序。 可使用 arg 嵌套元素指定其他自变量。 可在 commandPath 上访问该程序,并在适用情况下具有执行许可权集。 只要指定 shell 程序 (例如, shell 脚本文件的第一行为:
#!/bin/sh
) ,就可以调用 UNIX 脚本。 写入 stderr 或 stdout 的命令输出将发送到调用的 IBM WebSphere MQ File Transfer Edition 日志。 然而,数据输出量受代理配置的限制。 缺省值为 10KB 数据,但可使用代理属性 maxCommandOutput 覆盖此缺省值。 - antscript
- 该任务使用 fteAnt 命令运行指定的 Ant 脚本。 可使用 property 嵌套元素指定属性。 可使用 target 嵌套元素指定 Ant 目标。 应在 commandPath 上访问 Ant 脚本。 写入 stderr 或 stdout 的 Ant 输出将发送到调用的 WebSphere MQ Managed File Transfer 日志。 然而,数据输出量受代理配置的限制。 缺省值为 10KB 数据,但可使用代理属性 maxCommandOutput 覆盖此缺省值。
- os4690background
- 该任务调用 OS4690BACKGROUND 程序。 可以在后台运行 IBM 4690 系统上的传输程序调用。 这些调用类型支持运行本机 IBM 4690 应用程序和批处理命令脚本。 如果您运行批处理脚本,那么将带有 -C 选项的 COMMAND.286 应用程序作为应用程序使用,将该批处理脚本和任何指定自变量作为参数传递。
指定为嵌套元素的参数
- fte:arg
- 只有在
type
属性值为 executable 时才有效。 使用嵌套fte:arg
元素,为作为程序调用的一部分而调用的程序指定自变量。 程序自变量以遇到fte:arg
元素的顺序从fte:arg
元素指定的值构建。 您可以选择指定零个或更多的fte:arg
元素作为程序调用的嵌套元素。 - fte:property
- 只有在
type
属性值为 antscript 时才有效。 使用嵌套fte:property
元素的name
和value
属性,以名称值对传递到 Ant 脚本。 您可以选择指定零个或更多的fte:property
元素作为程序调用的嵌套元素。 - fte:target
- 只有在
type
属性值为 antscript 时才有效。 指定要调用的 Ant 脚本中的目标。 您可以选择指定零个或更多的fte:target
元素作为程序调用的嵌套元素。
Arg 属性
- 值
- 必需。 要传递到正在调用的程序的自变量的值。
属性
- name
- 必需。 传递到 Ant 脚本的属性的名称。
- 值
- 必需。 与正在传递到 Ant 脚本的属性名相关联的值。
示例
此示例显示了作为 fte: filecopy 任务的一部分指定的fte:postsrc
程序调用。 程序调用适用于名为 post.sh 的程序,并且提供了 /home/fteuser2/file.bin. 的单个自变量<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:postsrc command="post.sh" successrc=1
>
<fte:arg value="/home/fteuser2/file.bin"/>
</fte:postsrc>
</fte:filecopy>
此示例显示了将 fte:command
程序调用指定为 fte: call 任务的一部分。 程序调用针对名为 command.sh 的可执行文件进行,该文件未传递任何命令行自变量。 如果 command.sh 未返回成功返回码 1,那么会在 30 秒后重试该命令。<fte:call cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
agent="agent1@qm1"
rcproperty="call.rc"
origuser="bob"
jobname="${job.id}">
<fte:command command="command.sh" successrc=1
retrycount="5" retrywait="30"/>
</fte:call>
此示例显示了将 fte:command
程序调用指定为 fte: call 任务的一部分。 程序调用针对名为 script.xml 的 Ant 脚本中的复制和压缩目标进行,该脚本可传递两个属性。<fte:call cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
agent="agent1@qm1"
rcproperty="call.rc"
origuser="bob"
jobname="${job.id}">
<fte:command command="script.xml" type="antscript">
<property name="src" value="AGENT5@QM5"/>
<property name="dst" value="AGENT3@QM3"/>
<target name="copy"/>
<target name="compress"/>
</fte:command>
</fte:call>