MFT 用户出口的元数据

可以向 Managed File Transfer的用户出口例程提供三种不同类型的元数据: 环境,传输和文件元数据。 此元数据表示为 Java 键值对的映射。

环境元数据

环境元数据传递到所有用户出口例程,并描述从中调用用户出口例程的代理运行时环境。 该元数据是只读数据,不能由任何用户出口例程更新。
表 1. 环境元数据
密钥 描述
AGENT_CONFIGURATION_DIRECTORY_KEY 包含代理配置信息的目录的名称。
AGENT_PRODUCT_DIRECTORY_KEY 已在其中安装了代理代码的目录的名称。
AGENT_VERSION_KEY 调用出口例程的代理运行时的版本号。

表 1 中提供的键名和值名是 EnvironmentMetaDataConstants 接口中定义的常量。

传输元数据

传输元数据传递到所有用户出口例程。 元数据包括系统提供的值和用户提供的值。 如果更改任何系统提供的值,那么将忽略这些更改。 最初由用户为源传输启动用户出口提供的值是基于在定义传输时提供的值。 源代理可作为处理源传输启动用户出口的一部分来更改用户提供的值。 在启动整个文件传输前将调用此用户出口。 这些更改将在后续调用与此传输相关的其他出口例程时使用。 传输元数据应用于整个传输。

虽然所有用户出口可从传输元数据读取值,但只有源传输启动用户出口才能更改传输元数据

不能使用传输元数据在不同的文件传输间传播信息。

表 2 中详细描述了系统提供的传输元数据:
表 2. 传输元数据
密钥 描述
DESTINATION_AGENT_KEY 作为传输目标的代理的名称。
JOB_NAME_KEY 与传输请求相关联的作业名
MQMD_USER_KEY 用于提交传输请求的消息的 MQMD 用户字段
ORIGINATING_HOST_KEY 传输请求中指定为始发主机名的主机名
ORIGINATING_USER_KEY 传输请求中指定为始发用户标识的用户名
SOURCE_AGENT_KEY 作为传输的源的代理名称
TRANSFER_ID_KEY 传输标识
表 2 中提供的键名和值名是 TransferMetaDataConstants 接口中定义的常量。

文件元数据

文件元数据作为文件规范的一部分而传递到源传输启动出口。 源和目标文件存在独立的文件元数据。

不能使用文件元数据在不同的文件传输间传送信息。

表 3. 文件元数据
密钥 允许的值 描述
CONVERT_LINE_SEPARATORS   用于文本传输的键值,指示是否将源数据中的 CRLF(回车-换行符)或 LF(换行符)行分隔符序列转换为目标中的行分隔符序列。
DELIMITER_KEY   用于定义定界符的键值,将面向记录的数据传输至常规文件时,该定界符用于分隔记录数据。

也用于消息到文件和文件到消息传输。

DELIMITER_POSITION_KEY DELIMITER_POSITION_PREFIX_VALUE DELIMITER_POSITION_POSTFIX_VALUE 与 DELIMITER_KEY 一起使用,定义定界符的位置;前缀或后缀。
DELIMITER_TYPE_KEY
DELIMITER_TYPE_BINARY_VALUE
DELIMITER_TYPE_TEXT_VALUE
DELIMITER_TYPE_SIZE_VALUE
与 DELIMITER_KEY 一起使用,定义定界符的类型。
DESTINATION_EXIST_KEY DESTINATION_EXIST_KEY_ERROR_VALUE DESTINATION_EXIST_KEY_OVERWRITE_VALUE 确定目标文件存在时的文件传输行为。
FILE_ALIAS_KEY   用于为正在传输的文件定义别名的键值。
FILE_CHECKSUM_METHOD_KEY FILE_CHECKSUM_METHOD_NONE_VALUE FILE_CHECKSUM_METHOD_MD5_VALUE 确定传输文件时要使用的校验和方法。
FILE_CONVERSION_KEY FILE_CONVERSION_TEXT_VALUE FILE_CONVERSION_BINARY_VALUE 确定应用于文件内容的转换的类型。
FILE_ENCODING_KEY   确定用于文本文件的编码。
FILE_END_OF_LINE_KEY FILE_END_OF_LINE_LF_VALUE FILE_END_OF_LINE_CRLF_VALUE 确定表示行尾的字符序列:<LF> 或 <CR><LF>。
FILE_SPACE_ALIAS   确定文件空间中文件的别名。
注: 仅当 FILE_TYPE_KEY 为 FILE_TYPE_FILE_SPACE_VALUE 时,才能使用此元数据
FILE_SPACE_NAME   确定文件空间的名称。
注: 仅当 FILE_TYPE_KEY 为 FILE_TYPE_FILE_SPACE_VALUE 时,才能使用此元数据
FILE_TYPE_KEY FILE_TYPE_FILE_VALUE FILE_TYPE_DIRECTORY_VALUE FILE_TYPE_DATASET_VALUE FILE_TYPE_PDS_VALUE FILE_TYPE_QUEUE_VALUE FILE_TYPE_FILE_SPACE_VALUE 确定目标文件、队列或文件空间规范。
GROUP_ID_KEY   用于消息到文件传输的键值,确定要从源队列读取的消息组。 仅当 USE_GROUPS_KEY 的值为 USE_GROUPS_TRUE_VALUE 时,该属性才有效。
INCLUDE_DELIMITER_IN_MESSAGE_KEY INCLUDE_DELIMITER_IN_MESSAGE_TRUE_VALUE INCLUDE_DELIMITER_IN_MESSAGE_FALSE_VALUE 用于文件到消息传输的键值,确定是否要在消息尾部包含用于将文件拆分为多条消息的定界符。 仅当 DELIMITER_TYPE_KEY 的值为 DELIMITER_TYPE_BINARY_VALUE DELIMITER_TYPE_TEXT_VALUE 时,该属性才有效。
INSERT_RECORD_LINE_SEPARATOR_KEY   用于来自面向记录文件的文本传输的键值,指定是否在每条记录后将行分隔符插入数据。
KEEP_TRAILING_SPACES_KEY KEEP_TRAILING_SPACES_TRUE_VALUE KEEP_TRAILING_SPACES_FALSE_VALUE 用于确定是否从固定长度格式数据集读取的记录中除去结尾空格的键值。
NEW_RECORD_ON_LINE_SEPARATOR_KEY   用于至面向记录文件的文本传输的键值,指定将数据中的行分隔符与记录数据包含在一起,还是生成新记录(且不写入)。
PERSISTENT_KEY
PERSISTENT_TRUE_VALUE
PERSISTENT_FALSE_VALUE
PERSISTENT_QDEF_VALUE
用于文件到消息传输的键值,确定消息是否为持久消息。
SET_MQ_PROPS_KEY
SET_MQ_PROPS_TRUE_VALUE
SET_MQ_PROPS_FALSE_VALUE
用于文件到消息传输的键值,用于确定是否在文件中的第一条消息上设置 IBM® MQ 消息属性,以及发生错误时写入队列的任何消息。
UNRECOGNISED_CODE_PAGE_KEY UNRECOGNISED_CODE_PAGE_FAIL_VALUE UNRECOGNISED_CODE_PAGE_BINARY_VALUE 用于文件到消息传输的键值,确定在目标队列管理器无法识别数据代码页时,文本方式传输将失败还是执行转换。
USE_GROUPS_KEY USE_GROUPS_TRUE_VALUE USE_GROUPS_FALSE_VALUE 用于消息到文件传输的键值,确定是否仅传输源队列中的一个完整消息组。
WAIT_TIME_KEY   用于消息到文件传输的键值,确定源代理等待满足以下某个条件的时间(秒):
  • 在源队列上出现一条消息(前提是队列为空或已变为空,并且 USE_GROUPS_KEY 的值为 FALSE)。
  • 在源队列上出现一个完整组(前提是 USE_GROUPS_KEY 的值为 TRUE)。

表 3 中提供的键名和值名是 FileMetaDataConstants 接口中定义的常量。