使用 DataLinks

要使用 DataLinks, 就必须了解 DataLink 的处理环境。

可以将对 DataLink 数据类型的支持细分为以下不同组件:

  1. Db2® 数据库支持有一种名为 DATALINK 的数据类型。 这可以在 SQL 语句 (例如 CREATE TABLE 和 ALTER TABLE) 上指定。 该列不能具有除 NULL 以外的任何缺省值。 对数据的访问必须使用 SQL 接口。 这是因为 DataLink 本身与任何主变量类型都不兼容。 SQL 标量函数可用于检索字符格式的 DataLink 值。 必须在 SQL 中使用 DLVALUE 标量函数来插入和更新列中的值。
  2. DataLink File Manager (DLFM) 是一个组件,用于维护服务器上文件的链接状态并跟踪每个文件的元数据。 此代码处理链接,取消链接和落实控制问题。 DataLinks 的一个重要方面是, DLFM 不需要与包含 DataLink 列的 SQL 表位于同一物理系统上。 因此, SQL 表可以链接位于同一系统的集成文件系统或远程服务器的集成文件系统中的对象。
  3. 当文件系统尝试对指定为包含链接对象的目录中的文件执行操作时,必须运行 DataLink 过滤器。 此组件确定是否链接该文件,以及 (可选) 用户是否有权访问该文件。 如果文件名包含访问令牌,那么将验证该令牌。 由于此过滤器进程中存在额外的开销,因此仅当所访问的对象存在于 DataLink 前缀中的某个目录中时,才会运行此过滤器进程。 请参阅以下有关前缀的讨论。

在使用 DataLinks, 必须采取几个步骤来正确配置系统:

  • 必须在使用 DataLinks时要使用的任何系统上配置 TCP/IP。 这包括将在其中创建具有 DataLink 列的 SQL 表的系统,以及将包含要链接的对象的系统。 在大多数情况下,这将是同一个系统。 由于用于引用对象的 URL 包含 TCP/IP 服务器名称,因此该名称必须能被包含 DataLink 的系统识别。 命令 CFGTCP 可用于配置 TCP/IP 名称或注册 TCP/IP 名称服务器。
  • 包含 SQL 表的系统必须更新关系数据库目录以反映本地数据库系统以及任何可选远程系统。 可以使用命令 WRKRDBDIRE 来添加或修改此目录中的信息。 为了保持一致性,建议使用相同的名称作为 TCP/IP 服务器名称和关系数据库名称。
  • 必须在将包含要链接的对象的任何系统上启动 DLFM 服务器。 可以使用命令 STRTCPSVR *DLFM 来启动 DLFM 服务器。 可使用 CL 命令 ENDTCPSVR *DLFM 结束 DLFM 服务器。

启动 DLFM 后,需要执行一些步骤来配置 DLFM。 可通过可从 QShell 接口输入的可执行脚本来提供这些 DLFM 功能。 要到达交互式 shell 接口,请使用 CL 命令 QSH。 这将打开一个命令输入屏幕,您可以从该屏幕输入 DLFM 脚本命令。 脚本命令 dfmadmin -help 可用于显示帮助文本和语法图。 对于最常用的函数,还提供了 CL 命令。 通过使用 CL 命令,可以在不使用脚本接口的情况下完成大部分或全部 DLFM 配置。 根据您的首选项,您可以选择使用 QSH 命令输入屏幕中的脚本命令或 CL 命令输入屏幕中的 CL 命令。

由于这些功能适用于系统管理员或数据库管理员,因此它们都需要 *IOSYSCFG 特权。

添加前缀

前缀是将包含要链接的对象的路径或目录。 在系统上设置 Data Links File Manager (DLFM) 时,管理员必须添加将用于 DataLinks的任何前缀。 脚本命令 dfmadmin -add_prefix 用于添加前缀。 用于添加前缀的 CL 命令是 "将前缀添加到 DataLink File Manager " (ADDPFXDLFM) 命令。

例如,在服务器 TESTSYS1上,有一个名为 /mydir/datalinks/ 的目录包含将链接的对象。 管理员使用命令 ADDPFXDLFM PREFIX (' /mydir/datalinks/') 来添加前缀。 URL 的以下链接有效,因为其路径具有有效的前缀:

http://TESTSYS1/mydir/datalinks/videos/file1.mpg

or

file://TESTSYS1/mydir/datalinks/text/story1.txt  

还可以使用脚本命令 dfmadmin -del_prefix 除去前缀。 这不是常用的函数,因为只有在前缀名称中包含的目录结构中没有任何链接对象时,才能运行此函数。

注:
  1. 以下目录或其任何子目录不应用作 DataLinks: 的前缀
    • /QIBM
    • /QReclaim
    • /QSR
    • /QFPNWSSTG
  2. 此外,除非前缀是其中一个基本目录中的子目录,否则不应使用诸如以下的公共基本目录:
    • /home
    • /dev
    • /bin
    • /etc
    • /tmp
    • /usr
    • /lib

添加主机数据库

主机数据库是从其发出链接请求的关系数据库系统。 如果 DLFM 与将包含 DataLinks, 的 SQL 表位于同一系统,则只需添加本地数据库名称。 如果 DLFM 将具有来自远程系统的链接请求,那么它们的所有名称都必须向 DLFM 注册。 用于添加主机数据库的脚本命令为 dfmadmin -add_db , CL 命令为 "将主机数据库添加到 DataLink File Manager " (ADDHDBDLFM) 命令。 此函数还要求还注册包含 SQL 表的库。

例如,在已添加 /mydir/datalinks/ 前缀的服务器 TESTSYS1 上,希望允许 TESTDB 或 PRODDB 库中本地系统上的 SQL 表链接此服务器上的对象。 使用下列各项:
ADDHDBDLFM HOSTDBLIB((TESTDB) (PRODDB)) HOSTDB(TESTSYS1)
一旦 DLFM 启动,并且已注册前缀和主机数据库名称,您就可以开始链接文件系统中的对象。