fteCreateTemplate(创建新的文件传输模板)
fteCreateTemplate 命令创建文件传输模板,您可以保留该模板以供将来使用。 唯一必需参数是 -tn template_name 参数。 其他所有参数都是可选的,但如果指定源文件,还必须提供目标文件。 类似地,如果指定目标文件,还必须指定源文件规范。
用途
使用 fteCreateTemplate 命令可创建文件传输模板来存储您的传输详细信息,以供您将来某天使用之需。 使用传输模板来存储重复或复杂传输的公共文件传输设置。 创建传输模板后,使用 IBM® MQ Explorer提交该模板。 您不能从命令行提交传输模板。使用 fteCreateTemplate 命令创建的传输模板与使用 fteCreateTransfer 命令上的 -gt 参数创建的 XML 消息不同。 您不能交换使用两种不同类型的模板。
您可以从可以连接到 IBM MQ 网络的任何系统运行 fteCreateTemplate 命令,然后路由到协调队列管理器。 具体而言,要运行该命令,必须已在此系统上安装 Managed File Transfer ,并且必须已在此系统上配置 Managed File Transfer 组件以与 IBM MQ 网络进行通信。
从 IBM MQ 9.3.0开始,此命令使用 coordination.properties 文件来连接到 Managed File Transfer 拓扑的协调队列管理器。 如果 coordination.properties 文件包含 coordinationQMgrHost 属性,那么该命令将使用 CLIENT 传输连接到协调队列管理器。 否则,该命令将使用 BINDINGS 传输连接到协调队列管理器。 有关更多信息,请参阅 MFT corodination.properties 文件。
您可以为一个文件传输指定多个源文件,但是只能指定一个目标代理;不支持将一个文件传输到多个目标代理。 但是,您可以将多个源文件传输到单个目标代理上的多个目标文件。
有关如何传输文件的指导信息,请参阅 传输文件的准则。
特殊字符
使用包含特殊字符的参数时,请谨慎操作,以免命令 shell 错误地解释这些字符。
例如,包含单引号的标准数据集名称和包含星号字符的源规范可能由命令 shell 解释,而不是在传输请求中传递。为了避免命令 shell 解释字符,请将整个参数括在双引号中,如最后两个示例 示例中所示。 或者使用命令 shell 的转义序列对特殊字符进行转义。
相对路径
和 z/OS® UNIX System Services 路径被视为相对于运行代理程序的用户的主目录。 要更改与路径名称相对的目录,请在 agent.properties 文件中设置 transferRoot 属性。 该文件位于 MQ_DATA_PATH/mqft/config/coordination_qmgr/agents/agent_name 目录。 将以下行添加到该文件:transferRoot=directory_name您必须转义 Windows 路径或以 UNIX 格式书写。 例如,将 C:\TransferRoot 指定为 C:\\TransferRoot 或 C:/TransferRoot。
在 z/OS上,缺省情况下,代理程序当前运行所使用的用户名将作为高级限定符前缀添加到尚未完全限定的数据集规范。 例如://ABC.DEF。 要更改作为前缀添加到数据集名称的值,请在 agent.properties 文件中设置 transferRootHLQ 属性。 该文件位于 MQ_DATA_PATH/mqft/config/coordination_qmgr/agents/agent_name 目录。 将以下行添加到该文件:transferRootHLQ=prepend_value
但是,对于涉及 z/OS 系统上的 Connect:Direct® 节点的传输,数据集规范将解释为标准名称。 不会向数据集名称添加任何高级限定符。Syntax
参数
- -sa 源代理名称
- 可选。 从中传输源文件的代理程序的名称。 如果创建模板时没有指定此代理程序名称,那么在使用模板时必须指定源代理程序名称。
- -sm source_agent_qmgr_name
- 可选。 源代理连接到的队列管理器的名称。
- -da 目标代理名称
- 可选。 文件传输到的代理程序的名称。 如果创建模板时没有指定目标代理程序名称,那么在使用模板时必须指定目标代理程序名称。
- -dm 目的地代理 QMgr_name
- 可选。 目标代理连接到的队列管理器的名称。
- -td 转送定义文件
- 可选。 XML 文档的名称,该文档定义传输的一个或多个源和目标文件规范。
- -df 目标文件
- 可选。 目标文件的名称。 指定目标代理程序运行所在的系统上有效的文件名。
如果目标代理是 Connect:Direct 网桥代理,那么将以 connect_direct_node_name:file_path格式指定目标文件。 Connect:Direct 网桥代理仅接受以此格式指定的文件路径。
如果目标代理是 Connect:Direct 网桥代理,并且目标是 PDS 成员,那么还必须使用覆盖值指定 -de 参数。 - -dd 目标目录
- 可选。 要将文件传输到的目录的名称。 指定目标代理程序运行所在的系统上有效的目录名称。
如果目标代理是 Connect:Direct 网桥代理,那么将以 connect_direct_node_name:directory_path格式指定目标目录。 如果目标代理是 Connect:Direct 网桥代理,而目标是 PDS ,那么还必须使用覆盖值指定 -de 参数。
-ds 目的地连续数据集- 仅适用于 z/OS。 可选。 要将文件传输到的顺序数据集或 PDS 成员的名称。 指定连续数据集名称或分区数据集成员。
-dp 目标分区数据集- 仅适用于 z/OS。 可选。 要将文件传输到的目标 PDS 的名称。 指定分区数据集名称。 如果创建 PDS 作为传输的结果,那么缺省情况下将创建该 PDS 作为 PDSE。 您可以通过指定 DSNTYPE=PDS 来覆盖缺省值。
- -du 目的地用户
- 可选。 要将文件传输到其目标文件空间的用户的名称。
- -dq 目标队列
- 可选。 要将文件传输到的目标队列的名称。 您可以选择使用 QUEUE@QUEUEMANAGER 格式将队列管理器名称包含在此规范中。 如果未指定队列管理器名称,并且未将 enableClusterQueueInputOutput 代理属性设置为 true,那么将使用目标代理队列管理器名称。 如果将enableClusterQueueInputOutput代理属性设为 true,目标代理就会使用标准的 "IBM MQ解析程序来确定队列的位置。 必须指定队列管理器上已存在的有效队列名称。
- -dqp 持久
- 可选。 指定写入目标队列的消息是否持久。 有效选项如下:
- true
- 将持久消息写入目标队列。 这是缺省值。
- false
- 将非持久性消息写入目标队列。
- qdef
- 从目标队列的 DefPersistence 属性获取持久性值。
- -qmp 布尔值
- 可选。 指定传输写入目标队列的第一条消息是否设置了 IBM MQ 消息属性。 有效选项如下:
- true
- 在传输创建的第一条消息上设置消息属性。
- false
- 不在传输创建的第一条消息上设置消息属性。 这是缺省值。
- -qs 消息大小
- 可选。 指定是否将文件分割为多条固定长度的消息。 所有消息都具有相同的 IBM MQ 组标识; 该组中的最后一条消息设置了 IBM MQ LAST_MSG_IN_GROUP 标志。 消息的大小由 message_size 的值指定。 message_size 的格式是 长度单位,其中长度是正整数值,而单位是以下某个值:
B- 字节。 允许的最小值是目标消息的代码页的最大“每个字符的字节数”值的两倍。
K- 等于 1024 字节。
M- 这等于 1048576 字节。
- -dqdb 十六进制定界符
- 可选。 指定将二进制文件分割为多条消息时使用十六进制定界符。 所有消息都具有相同的 IBM MQ 组标识; 该组中的最后一条消息设置了 IBM MQ LAST_MSG_IN_GROUP 标志。 指定十六进制字节作为定界符的格式为
xNN,其中,N是0-9或a-f范围内的一个字符。 您可以通过指定十六进制字节的逗号分隔列表(例如:x3e,x20,x20,xbf),将一系列十六进制字节指定为定界符。 - -dqdt 模式
- 可选。 指定将文本文件分割为多条消息时要使用的正则表达式。 所有消息都具有相同的 IBM MQ 组标识; 该组中的最后一条消息设置了 IBM MQ LAST_MSG_IN_GROUP 标志。 用于将正则表达式指定为定界符的格式是括在括号
(regular_expression)中的正则表达式。 此参数的值将作为 Java 正则表达式进行求值。 有关更多信息,请参阅 MFT 使用的正则表达式。 - -dqdp
- 可选。 指定在分割文件时目标文本和二进制定界符的预期位置。 仅当同时指定了 -dqdt 和 -dqdb 参数之一时,才能指定 -dqdp 参数。
- -qi
- 可选。 指定用于将文件分割为多条消息的定界符是否要包括在消息中。 如果指定了 -qi,那么在包含定界符之前的文件数据的消息中,将在末尾包括定界符。 缺省情况下,消息中不包含定界符。
- -de 目的地文件行为
- 可选。 指定在目标系统上已存在目标文件时执行的操作。 有效选项如下:
- 错误
- 报告错误并且不传输文件。 这是缺省值。
- overwrite
- 覆盖现有目标文件。
- -sd source_file_处置
- 可选。 指定在将源文件成功传输到其目标时要对源文件执行的操作。 有效选项如下:
- leave
- 源文件将保持不变。 这是缺省值。
- delete
- 在成功传输源文件后,将从源系统删除源文件。
在 z/OS上,如果源是磁带数据集,并且指定了 delete 选项,那么将重新安装磁带以删除数据集。 该行为是由于系统环境的行为。如果源是队列,并且指定 leave 选项,那么命令返回一个错误且不请求传输。
如果源代理是 Connect:Direct 网桥代理,并且您指定了 delete 选项,那么行为与通常的源处置行为不同。 将出现以下某种情况:- 如果 Connect:Direct 使用 Managed File Transfer 生成的进程从源中移动文件或数据集,那么指定 delete 选项会导致传输失败。 要指定删除源文件,必须提交用户定义的 Connect:Direct 进程。 有关更多信息,请参阅 从文件传输请求提交用户定义的 Connect:Direct 进程。
- 如果 Connect:Direct 使用用户定义的进程从源中移动文件或数据集,那么此参数将通过 %FTEFDISP 内部符号变量传递到该进程。 用户定义的进程确定是否删除源。 传输返回的结果取决于用户定义的进程返回的结果。
- -pr transfer_priority
- 可选。 指定传输的优先级。 优先级为 0-9 之间的一个值,其中 0 为最低优先级。 缺省优先级为 0,并且缺省情况下,传输使用源代理的优先级。
- -rt 传输恢复超时
- 可选。 设置时间量(以秒为单位),在此期间,源代理会一直尝试恢复停止的文件传输。 指定以下某个选项:
-1- 代理继续尝试恢复停止的传输,直至传输完成。 使用此选项相当于未设置属性时代理的缺省行为。
0- 一旦进入恢复,代理将停止文件传输。
>0- 在由指定正整数值设置的时间量(以秒为单位)内,代理继续尝试恢复停止的传输。 例如
表示代理会在进入恢复后六小时内一直尝试恢复传输。 此参数的最大值为-rt 21600999999999。
- --p 配置选项
- 可选。 此参数确定用于创建传输模板的配置选项集。 使用非缺省协调队列管理器的名称作为该参数的输入。 然后,命令使用与此非缺省协调队列管理器相关联的属性文件集。
- -r
- 可选。 当 source_specification 包含通配符时,那么将以递归方式传输子目录中的文件。 当向 Managed File Transfer 提供通配符作为 source_specification时,仅当指定了 -r 参数时,才会传输与通配符匹配的任何目录。 当 source_specification 与子目录匹配时,该目录及其子目录中的所有文件(包括隐藏文件)总是会被传输。
- -t
- 可选。 指定文件传输的类型:二进制方式或文本方式。
- 二进制
- 文件中的数据将在不经任何转换的情况下进行传输。 这是缺省值。
- 文本
- 将转换文件的代码页和行尾字符。 执行的确切转换取决于源代理程序和目标代理程序的操作系统。
- -cs
- 可选。 指定是否针对文件传输数据运行校验和算法,以检查所传输文件的完整性。 指定以下某个选项:
- MD5
- 计算数据的 MD5 校验和。 针对源和目标文件生成的校验和将写入传输日志以供验证之用。 缺省情况下, Managed File Transfer 计算所有文件传输的 MD5 校验和。
- none
- 不会为文件传输数据计算 MD5 校验和。 传输日志记录校验和设置为 none,并且校验和值为空。 例如:
如果使用 none 选项,那么可能会提高文件传输性能,这取决于环境。 然而,选择该选项意味着不会验证源或目标文件。<checksum method="none"></checksum>
- -tr
- 可选。 指定为执行此文件传输所必须满足的条件。 如果不满足该条件,那么根据源代理,将废弃该文件传输,不会执行任何传输。 指定以下格式:
其中条件是以下某个值:condition,namelist- file=exist
- 名称列表中至少有一个文件存在。 即,如果存在名称列表中的任何文件,那么就满足条件。
- file!=exist
- 名称列表中至少有一个文件不存在。 也就是说,如果命名列表中的任何文件不存在,则条件为真。
- filesize> =大小
- 至少存在名称列表中的一个文件,并且最小大小为 size 指定的大小。 size 的值是一个整数,其大小单位可选为 KB、MB 或 GB。 例如,
filesize">"=10KB。 如果未指定大小单位,大小将假定以字节为单位。 在所有操作系统上,在命令行中指定 filesize 选项时,必须用双引号括住大于号 (>),如本例所示。
- -tl
- 可选。 指定是否记录触发器失败情况。 指定以下某个选项:
- yes
- 为失败的触发传输创建日志条目。 这是缺省行为,即使未指定 -tl 参数。
- False
- 不为失败的触发传输创建日志条目。
- -md
- 可选。 指定传递到代理出口点的用户定义的元数据。 -md 参数可以采用以逗号分隔的一个或多个名称/值对。 每个名称对由 name=value 组成。 您可以在一个命令中多次使用 -md 参数。
- -tb
- 可选。 指定想要用于已安排的文件传输的时基。 即,想要使用系统时间还是全球标准时间 (UTC)。 该参数只能与 -ss 参数一起使用。 指定以下某个选项:
- admin
- 用于调度的传输的开始时间和结束时间基于管理员使用的系统的时间和日期。 这是缺省值。
- 源
- 用于调度的传输的开始时间和结束时间基于源代理所在系统的日期和时间。
- UTC
- 用于调度的传输的开始时间和结束时间基于全球标准时间 (UTC)。
- -jn 作业名
- 可选。 传输开始时添加到日志消息的用户定义的作业名标识。
- -ss 计划开始时间
- 可选。 指定您希望调度的传输开始执行的时间和日期。 请使用以下某种格式来指定时间和日期。 使用 24 小时制指定时间:
yyyy-MM-ddThh:mm hh:mm - -oi
- 可选。 指定调度的传输出现的时间间隔。 该参数只能与 -ss 参数一起使用。 指定以下某个选项:
- 分钟
- 小时
- days
- weeks
- months
- years
- -的发生频率
- 可选。 指定调度的传输出现的频率。 例如,每 5 周或每 2 个月。 该参数只能与 -oi 和 -ss 参数一起指定。 如果未指定该参数,那么将使用缺省值 1。
- -oc 实例计数
- 可选。 指定您希望此调度的传输发生的次数。 达到发生计数之后,将删除调度的传输。
- -es 计划结束时间
- 可选。 重复的调度传输结束的日期和时间。
- -tn 模板名称
- 必需。 要创建的模板的名称。 请使用描述性字符串,这样您可以在将来某天为传输选择正确的模板。 对此字符串的长度没有特定限制,但是请注意,在某些用户界面上可能无法正确显示过长的名称。
- -sqgi
- 可选。 指定按 IBM MQ 组标识对消息进行分组。 第一个完整组将写入目标文件。 如果不指定此参数,那么源队列上的所有消息将写入目标文件。
- -sqdt 文本定界符
- 可选。 指定一个文本序列,以在将多条消息追加到文本文件时作为定界符插入。 可将字符串字面值的 Java 转义序列包含在定界符中。 例如,
-sqdt \u007d\n。 - -sqdb 十六进制定界符
- 可选。 指定一个或多个字节的值,以在将多条消息追加到二进制文件时作为定界符插入。 每个值都必须指定为两个十六进制数字,范围为
00-FF,前缀为x。 多个字节必须以逗号分隔。 例如,-sqdb x08,xA4。 - -sqdp
- 可选。 指定源文本和二进制定界符的插入位置。 仅当同时指定了 -sqdt 和 -sqdb 参数之一时,才能指定 -sqdp 参数。
- -sqwt 等待时间
- 可选。 指定等待以下某个条件得以满足的时间(秒):
- 有新消息放在队列上
- 如果指定了 -sqgi 参数,有完整组放在队列上
- -sq
- 可选。 指定传输的源是队列。
- -mquserid user_id
- 可选。 指定通过协调队列管理器进行认证时所使用的用户标识。
- -mqpassword 密码
- 可选。 指定通过协调队列管理器进行认证时所使用的密码。
![[MQ 9.3.0 2022 年 6 月]](ng930cd.gif)
-nolpw- 可选。 如果命令连接到不支持长度超过 12 个字符的密码的队列管理器,请指定此参数。
- source_specification
- 如果指定了 -df、-dd、-dp、-dp 或 -ds 参数之一,那么为必需。 如果指定 -td 参数,请勿指定 source_specification。
- 如果尚未指定 -sq 参数,那么 source_specification 是用于确定文件传输的源的一个或多个文件规范。 文件规范以空格定界。 文件规范可采用五种格式之一,并且可包含通配符。 有关 WMQFTE 中通配符的更多信息,请参阅 将通配符用于 MFT。 您可以在文件规范中使用两个星号字符 (**) 来转义属于文件规范的星号。要传输其文件名中包含空格的文件,请将包含空格的文件名括在双引号内。 例如,要将文件每个文件规范必须采用以下某种格式:
a b.txt传输到文件c d.txt,请在 fteCreateTemplate 命令中指定以下文本:-df "c d.txt" "a b.txt"- 文件名称
- 文件的名称,使用源代理程序运行所在系统的相应表示法来表示。 将文件名指定为源文件规范时,将复制该文件的内容。
- 目录
- 目录的名称,使用源代理程序运行所在系统的相应表示法来表示。 当目录指定为源文件规范时,将复制目录的内容。 更准确来说,将复制目录及其所有子目录中的所有文件,包括隐藏的文件。
连续数据集- (仅限 z/OS)。 顺序数据集或分区数据集成员的名称。 通过在数据集名称之前加上两个正斜杠字符 (//) 来表示数据集。
分区数据集- (仅限 z/OS)。 分区数据集的名称。 通过在数据集名称之前加上两个正斜杠字符 (//) 来表示数据集名称。
- Connect:Direct 节点上的文件名或目录
- (仅限Connect:Direct 网桥代理)。 Connect:Direct 节点的名称,冒号字符 (:) 以及托管 Connect:Direct 节点的系统上的文件或目录路径。 例如,connect_direct_node_name:file_path。
如果源代理是 Connect:Direct 网桥代理,那么它将仅接受此格式的源规范。
注: 当源代理是 Connect:Direct 网桥代理时,文件路径中不支持通配符。
- 如果指定了 -sq 参数,那么 source_specificatio 是源代理队列管理器上本地队列的名称。 您只能指定一个源队列。 采用以下格式指定源队列:
源队列规范中未包含队列管理器名称,因为队列管理器必须与源代理队列管理器相同。QUEUE_NAME
- 如果尚未指定 -sq 参数,那么 source_specification 是用于确定文件传输的源的一个或多个文件规范。 文件规范以空格定界。 文件规范可采用五种格式之一,并且可包含通配符。 有关 WMQFTE 中通配符的更多信息,请参阅 将通配符用于 MFT。 您可以在文件规范中使用两个星号字符 (**) 来转义属于文件规范的星号。
- -或-h
- 可选。 显示命令语法。
示例
payroll accounts monthly report
template 的传输模板。 提交时,此模板将指定的目录中扩展名为 .xls 的任何文件从代理程序 PAYROLL1 传输到代理程序 ACCOUNTS:fteCreateTemplate -tn "payroll accounts monthly report template" -sa PAYROLL -sm QM_PAYROLL1 -da ACCOUNTS
-dm QM_ACCOUNTS -df C:\payroll_reports\*.xls C:\out\*.xls jupiter_neptune_sched_template 的传输模板。 提交时,模板将文件 originalfile.txt 从 QM_JUPITER 所在的系统传输到 QM_NEPTUNE 所在的系统。 文件传输调度为 09:00(基于源代理程序所在系统的系统时间)执行,并且每两个小时执行四次:fteCreateTemplate -tn jupiter_neptune_sched_template -sa AGENT1 -sm QM_JUPITER -da AGENT2 -dm QM_NEPTUNE
-tb source -ss 09:00 -oi hours -of 2 -oc 4
-df C:\import\transferredfile.txt C:\export\originalfile.txt jupiter neptune trigger template 的传输模板。 提交模板时,文件 originalfile.txt 将从 AGENT1 传输到 AGENT2,条件是文件 A.txt 在 AGENT1 上存在:fteCreateTemplate -tn "jupiter neptune trigger template" -sa AGENT1 -sm QM_JUPITER -da AGENT2 -dm QM_NEPTUNE
-tr file=exist,C:\export\A.txt -df C:\import\transferredfile.txt C:\export\originalfile.txt
在此示例中,将创建名为 ascii_ebcidic_template 的模板。 提交模板时,文件 originalfile.txt 将从 AGENT1 所在系统传输到 AGENT2 所在系统上的数据集 //'USERID.TRANS.FILE.TXT'。 已选择文本方式来将数据从 ASCII 转换到 EBCDIC。fteCreateTemplate -tn ascii_ebcidic_template -t text -sa AGENT1 -da AGENT2
-ds "//TRANS.FILE.TXT;RECFM(V,B);BLKSIZE(6144);LRECL(1028);
SPACE(5,1)" C:\export\originalfile.txt
在此示例中,将创建名为 ebcidic_ascii_template 的模板。 提交模板时,AGENT1 所在系统上的标准数据集的成员将传输到 AGENT2 所在系统上的文件。 已选择文本方式来将文件从 EBCDIC 转换到 ASCII。fteCreateTemplate -tn ebcidic_ascii_template -t text -sa AGENT1 -da AGENT2 -df /tmp/IEEUJV.txt "//'SYS1.SAMPLIB(IEEUJV)'"
返回码
| 返回码 | 描述 |
|---|---|
| 0 | 命令成功完成。 |
| 1 | 命令结束但未成功。 |

在