通过 DB2 目录视图纵览整个 IBM i 环境

反馈系统信息的全新目录视图

过去,IBM DB2® for i 目录视图仅仅提供有关现有数据库对象的元数据。如今,一组全新的目录视图还能为您提供有关 IBM i 系统环境的信息。具体来说,这些视图使您更易于访问与 DB2 for i 数据库相关的 Group PTF 和 TCP/IP 网络连接信息。

Kent Milligan, 高级认证 IT 专家, IBM

Kent Milligan 是 IBM i 平台的 IBM ISV Solutions Enablement 的 DB2 for i 高级认证 IT 专家。他在 IBM 工作的前 8 年是纽约州罗契斯特市的 DB2 开发团队成员,目前他定期撰写一些关于 DB2 for i 关系数据库的文章并发表相关演讲。



2012 年 10 月 30 日

概述

程序员常常要引用 DB2 for i 数据库目录数据来访问与其 DB2 对象有关的数据。DB2 数据库目录使程序员能够更轻松、更好地理解数据库。数据库目录提供了与数据库相关问题的答案,例如:数据库中有多少列使用某种特定的数据类型,数据库中有多少列以 “CARD_NUMBER” 作为列名,或索引中存在多少个唯一键值。

全新系统目录视图

IBM 近来添加了两种新的目录视图 TCPIP_INFO 和 GROUP_PTF_INFO,拓展了常规数据库目录的功能,并提供了有关 IBM i 系统环境的信息。可想而知,这些新视图分别提供了有关当前主机连接的 TCP/IP 属性和 IBM i 操作系统各种 Group PTF 的信息。

随着 SQL 在 IBM i 中的应用日益普及,越来越多的开发人员需要利用 SQL 检索 IBM i 系统信息。某些应用程序可能要求在系统中安装特定级别的 Group PTF,以保证应用程序正常工作。在这种情况下,新增的 GROUP_PTF_INFO 目录视图使应用程序能够轻而易举地通过编程的方式验证当前系统的 Group PTF 级别。

部分 IBM i 应用程序开发人员也会发现,即便不通过 SQL 以编程方式验证系统环境,这些新增目录视图也是非常有价值的。开发人员越来越多地在 IBM i 上使用 SQL,很多时候都需要在 IBM System i Navigator 中使用各种 SQL 工具,例如 Run SQL Script 实用工具。在编辑和运行 SQL 语句的过程中,很少人希望启动 5250 模拟会话窗口来检查 Group PTF 或者 TCP/IP 设置。TCPIP_INFO 和 GROUP_PTF_INFO 目录视图使开发人员能够利用 SQL 访问这些设置。

安装目录视图

既然您已经了解了这些目录视图的用途,下一个步骤自然是学习如何将其安装到您的系统之中。与其他许多 DB2 for i 新增功能一样,只需安装 IBM i 6.1 和 IBM i 7.1 的最新版数据库 Group PTF,即可在您的系统中添加这些新的目录视图。

如果您希望确认哪些数据库 group PTF 级别包含这两个目录视图,则可参阅 DB2 for i Technology Updates WikiIBM i developerWorks 网站 中提供了该维基的链接。IBM 每次在数据库 Group PTF 中发布重要的 DB2 新功能时都会更新该维基。

在访问 DB2 技术更新维基时,您可以在 DB2 for i 管理增强目录 中找到有关这两个目录视图的详细信息。对 GROUP_PTF_INFO 和 TCPIP_INFO 的支持最初是在 IBM i 6.1 数据库 group PTF 的 level 19 和 IBM i 7.1 数据库 group PTF 的 level 6 中提供的。IBM i 6.1 数据库 group PTF 的第 21 个级别和 IBM i 7.1 数据库 group PTF 的第 10 个级别对 TCPIP_INFO 视图进行了增强。

探索 GROUP_PTF_INFO 视图

GROUP_PTF_INFO 视图所返回的数据类似于使用 PTF GROUP (WRKPTFGRP) 系统命令时返回的输出。Group PTF 视图将为各 IBM i group PTF 返回以下列:

  • COLLECTED_TIME
  • PTF_GROUP_NAME
  • PTF_GROUP_DESCRIPTION
  • PTF_GROUP_LEVEL
  • PTF_GROUP_TARGET_RELEASE
  • PTF_GROUP_STATUS

除了 COLLECTED_TIME 列之外,其他属性相对来说较为直观,容易理解。COLLECTED_TIME 列包含一个时间戳值,动态地设置为目录视图从系统中检索 Group PTF 信息的时间和日期。

下面来看几个有关此目录视图的查询样例,以便更好地理解如何利用此视图返回的数据。以下查询将检索当前系统中安装的全部 IBM i Group PTF 的名称、描述和级别。

清单 1. 返回当前已安装 Group PTF 列表的查询样例
Select PTF_GROUP_NAME, PTF_GROUP_DESCRIPTION, PTF_GROUP_LEVEL
 From QSYS2.GROUP_PTF_INFO
 Where PTF_GROUP_STATUS = 'INSTALLED'

表 1 包含这个查询的输出。如您所见,测试系统中共有 11 个状态为 INSTALLED 的 Group PTF。

表 1. GROUP_PTF_INFO 视图输出样例
PTF_GROUP_NAMEPTF_GROUP_DESCRIPTIONPTF_GROUP_LEVEL
SF99145PERFORMANCE TOOLS2
SF99359WEBSPHERE MQ FOR I5/OS - V7.0.15
SF99362710 BACKUP RECOVERY SOLUTIONS5
SF99363WEBSPHERE APP SERVER V7.06
SF99368IBM HTTP SERVER FOR I10
SF99572JAVA6
SF99701DB2 FOR IBM I11
SF99637DB2 WEB QUERY FOR IBM I V1.1.23
SF99708GROUP SECURITY9
SF99707TECHNOLOGY REFRESH2
SF99707TECHNOLOGY REFRESH1

下一个示例查询验证系统中是否已经安装了提供 TCPIP_INFO 视图最新增强的 IBM i 7.1 数据库 group PTF。

清单 2. 确定是否已安装所需数据库 Group PTF 的查询样例
Select PTF_GROUP_STATUS
From  QSYS2.PTF_GROUP_INFO
Where PTF_GROUP_NAME='SF99701' 
    And PTF_GROUP_LEVEL >= 6
    And PTF_GROUP_DESCRIPTION = 'DB2 FOR IBM I'

此查询返回 INSTALLED 值,验证系统中是否已经加载了 IBM i 7.1 数据库 Group PTF 的正确级别。

探索 TCPIP_INFO 视图

TCPIP_INFO 视图整合了有关所访问的主机 IBM i 系统的数据,以及客户端的相关属性。

  • COLLECTED_TIME
  • LOCAL_HOST_NAME
  • CLIENT_IP_ADDRESS_TYPE
  • CLIENT_IP_ADDRESS
  • CLIENT_PORT_NUMBER
  • SERVER_IP_ADDRESS_TYPE(仅在 IBM i 7.1 中可用)
  • SERVER_IP_ADDRESS(仅在 IBM i 7.1 中可用)
  • SERVER_PORT_NUMBER
  • HOST_VERSION

GROUP_PTF_INFO 视图返回多行信息,相比之下,TCPIP_INFO 目录视图仅返回一行数据。只需观察对该视图运行查询时返回的数据样例,即可很好地理解这些数据。

以下查询提供了如何从 TCPIP_INFO 目录视图中检索数据的示例。

清单 3. 从 TCPIP_INFO 视图返回网络信息的查询样例
Select  Client_IP_Address, Client_Port_Number, LOCAL_HOST_NAME, 
  SERVER_IP_ADDRESS, SERVER_IP_ADDRESS_TYPE, SERVER_PORT_NUMBER
From QSYS2.TCPIP_INFO

表 2 包含这个查询的输出。Client IP Address 和 Port information 是对 TCPIP_INFO 目录视图运行查询的客户端系统的对应值。Local_Host_Name column 列包含目录视图所在服务器的 TCP/IP 主机名。相应地,Server Address 和 Server Address Type 包含该服务器的 TCP/IP 地址。结果集中的最后一列 Server_Port_Number 提供了服务器上接收 SQL 语句请求的端口数量。

表 2. TCPIP_INFO 目录视图输出样例
Client_IP_AddressClient_Port_NumberLocal_Host_NameServer_IP_AddressServer_IP_Address_TypeServer_Port_Number
9.10.84.1442134DB271.RCHLAN.COM9.5.168.119IPV48471

即便未从客户端直接建立 SQL 连接,TCPIP_INFO 目录视图也能返回客户端 TCP/IP 信息。考虑这样一个场景,某 PC 客户端启动了一个 5250 模拟会话。在这个 5250 会话中,一名用户使用 STRSQL 命令对视图运行查询。在本场景中,尽管发起 5250 会话的 PC 客户端并无与 IBM i 服务器之间的活动 SQL 连接,但 TCPIP_INFO 视图仍将返回此客户端的 IP 地址和端口。这种功能也意味着可在 EXIT POINT 或触发器程序中使用 TCIP_INFO 视图,以记录有关访问系统或数据库的用户的更多详细信息,以备审计时使用。

Telnet 客户端

使用 telnet 命令建立连接时,您需要特别考虑 TCPIP_INFO 目录视图所返回的客户端和服务器地址。在这种情况下,一个线程检索到的客户端和服务器地址的值应视为建议值,而非绝对值。原因在于这样的事实:地址的设置以线程执行最后一项操作时使用的套接字为依据,而线程可能同时具备与不同客户端或服务器之间的多个活动套接字连接。

结束语

希望您能通过这篇文章了解如何利用新增的两种 DB2 目录视图 TCPIP_INFO 和 GROUP_PTF_INFO 探索新的系统领域。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Java technology, Open source, IBM i
ArticleID=838116
ArticleTitle=通过 DB2 目录视图纵览整个 IBM i 环境
publish-date=10302012