使用 MFT 传输 I/O 用户出口
您可以使用 Managed File Transfer 传输 I/O 用户出口来配置定制代码,以执行 Managed File Transfer 传输的底层文件系统 I/O 工作。
通常,对于 MFT 传输,代理从其中一个内置 I/O 提供程序中进行选择,以便与传输的相应文件系统进行交互。 内置 I/O 提供程序支持以下类型的文件系统:
- 常规 UNIX 类型和 Windows 类型文件系统
"z/OS®顺序和分区数据集(仅在 "z/OS上)
、"IBM® i"本地保存文件(仅限 "IBM i)- IBM MQ 队列
- 远程 FTP 和 SFTP 协议服务器(仅用于协议网桥代理)
- 远程 "Connect:Direct®节点(仅适用于 "Connect:Direct桥接代理)
对于不受支持的文件系统或者其中需要定制 I/O 行为的文件系统,那么您可以编写一个传输 I/O 用户出口。
传输 I/O 用户出口将现有基础结构用于用户出口。 但是,这些传输 I/O 用户出口与其他用户出口不同,因为在整个传输中,将对每个文件多次访问这些传输 I/O 用户出口的功能。
使用代理属性 IOExitClasses(在 agent.properties 文件中)指定要装入的 I/O 出口类。 用逗号来分隔每个出口类,例如:
IOExitClasses=testExits.TestExit1,testExits.testExit2传输 I/O 用户出口的 Java 接口如下所示:
- IOExit
- 主入口点,用以确定是否使用 I/O 出口。 此实例负责生成 IOExitPath 实例。
您只需为代理属性 IOExitClasses 指定 IOExit I/O 出口接口。
- IOExitPath
- 表示一个抽象接口;例如,某个数据容器或者表示一组数据容器的通配符。 您无法创建实现此接口的类实例。 该接口允许对路径进行检查并列出派生的路径。 IOExitResourcePath 和 IOExitWildcardPath 接口扩展了 IOExitPath。
- IOExitChannel
- 使数据可以在 IOExitPath 资源上读取和写入。
- IOExitRecordChannel
- 为面向记录的 IOExitPath 资源扩展 IOExitChannel 接口,这使得能够在多个记录中的 IOExitPath 资源上读取和写入数据。
- IOExitLock
- 表示对 IOExitPath 资源的锁定以进行共享或互斥存取。
IOExitRecordResourcePath- 扩展 IOExitResourcePath 接口以表示面向记录的文件的数据容器;例如,z/OS 数据集。 您可以使用该接口来查找数据,从而为读/写操作创建 IOExitRecordChannel 实例。
- IOExitResourcePath
- 扩展 IOExitPath 接口以表示数据容器;例如,文件或目录。 您可以使用此接口来查找数据。 如果此接口表示目录,那么您可以使用 listPaths 方法来返回路径的列表。
- IOExitWildcardPath
- 扩展 IOExitPath 接口以表示指示通配符的路径。 您可以使用此接口来匹配多个 IOExitResourcePaths。
- IOExitProperties
- 指定用于确定 Managed File Transfer 如何处理某些 I/O 方面的 IOExitPath 的属性。 例如,是否使用中间文件,或是否在重新启动传输时从开始重新读取资源。