受管调用
Managed File Transfer (MFT) 代理程序通常用来传输文件或消息。 它们称为受管传输。 代理程序也可用于运行命令、脚本或 JCL,而无需传输文件或消息。 此功能称为受管调用。
- 使用 fte:call Ant 任务。
- 使用用于运行命令或脚本的任务 XML 配置资源监视器。 请参阅配置监视器任务以启动命令和脚本来获取更多信息。
- 直接将 XML 消息放入代理的命令队列中。 有关受管调用 XML 模式的更多详细信息,请参阅文件传输请求消息格式。
对于受管调用,必须在代理程序属性 commandPath 中指定包含要运行的命令或脚本的目录。
- 代理在启动时配置任何现有代理沙箱,以便将所有 commandPath 目录自动添加到已拒绝传输访问的目录列表中。
- 代理程序启动时,将更新任何现有用户沙箱,以便将所有 commandPath 目录 (及其子目录) 作为
<exclude>元素添加到<read>和<write>元素。 - 如果未将代理程序配置为使用代理程序沙箱或用户沙箱,那么在代理程序启动时将创建新的代理程序沙箱,并将 commandPath 目录指定为已拒绝的目录。
此外,您还可以对代理程序启用权限检查,以确保仅允许授权用户提交受管调用请求。 有关更多信息,请参阅限制针对 MFT 代理程序操作的用户权限。
作为受管调用的一部分调用的命令、脚本或 JCL 将作为外部进程运行,该进程由代理程序监视。 当进程退出时,受管调用将完成,并且来自进程的返回码可供调用 fte:call Ant 任务的代理程序或 Ant 脚本使用。
如果受管调用是由 fte:call Ant 任务启动的,那么 Ant 脚本可以检查返回码的值以确定受管调用是否成功。
受管调用和源传输插槽
代理程序包含多个源传输槽(由代理程序属性 maxSourceTransfers 指定)如高级代理程序属性:传输限制中所述。
每当运行受管调用或受管传输时,它们会占用源传输插槽。 该插槽在受管调用或受管传输完成时释放。
如果在代理程序收到新的受管调用或受管转移请求时所有源传输插槽都在使用中,则该请求将由代理程序排队,直到有可用插槽。
- 一个用于受管传输
- 一个用于受管调用
在此情况下,请务必注意,如果受管传输需要较长时间才能完成或进入恢复,那么将占用两个源传输插槽,直到受管传输完成,取消或由于 transferRecoveryTimeout而超时为止。 有关 transferRecoveryTimeout的详细信息,请参阅 传输恢复超时概念 。 这可能会限制代理程序可以处理的其他受管传输或受管调用的数量。
因此,您应该考虑受管调用的设计,以确保它在很长一段时间内不会占用源传输插槽。
将 REST API 与受管调用配合使用
HTTP GET 和 HTTP POST 命令支持启用托管调用,且仅适用于 REST API 的版本3。