Обычно программисты обращаются к данным объектов в каталоге DB2 for i с целью получения информации о своих объектах DB2. Объекты каталога DB2 помогают программисту улучшить понимание своей базы данных. Они предоставляют ответы на различные вопросы о базе данных, например, сколько столбцов в некоторой базе данных используют определенный тип данных, сколько столбцов в базе данных имеют имя "CARD_NUMBER", сколько различающихся значений ключа имеется в индексе и т. д.
Новые системные представления каталога
Недавно IBM добавила два новых представления каталога, TCPIP_INFO и GROUP_PTF_INFO, которые по своей функциональности выходят за рамки обычного каталога базы данных — они предоставляют информацию о системной среде IBM i. А именно, эти новые представления предоставляют информацию о TCP/IP-атрибутах для текущего соединения с хостом и о разнообразных группах исправлений (Group PTF) для операционной системы IBM i.
По мере расширения масштабов использования SQL на платформе IBM i все больше разработчиков осознают, что им необходима возможность для извлечения системной информации IBM i с помощью SQL. Для работы некоторых приложений может потребоваться установка в системе определенного уровня группы исправлений. В этом случае новое представление каталога GROUP_PTF_INFO позволяет приложению программным способом подтвердить уровень соответствующей группы исправлений в системе, в которой исполняется это приложение.
Кроме того, некоторые разработчики для платформы IBM i найдут эти новые представления каталога полезными не только для удовлетворения потребности в программной верификации системной среды с помощью SQL. Поскольку разработчики все шире используют SQL на платформе IBM i, они тратят все больше своего времени на работу с такими SQL-инструментами, как компонент Run SQL Script из состава IBM System i Navigator. В процессе редактирования и исполнения SQL-операторов никто из разработчиков не хочет запускать сессию эмуляции 5250, чтобы просмотреть установленные группы исправлений group PTF или настройки TCP/IP. Представления каталога TCPIP_INFO и GROUP_PTF_INFO позволяют разработчику получить доступ к этой информации с помощью SQL.
Установка представлений каталога
Итак, теперь вы понимаете, каким образом можно использовать эти представления каталога. Следующий логический шаг — как сделать так, чтобы они были загружены на вашей системе. Как и в случае многих других усовершенствований продукта DB2 for i, для добавления описываемых представлений каталога к вашей системе достаточно установить последнюю версию группы исправлений типа database group PTF (группа временных исправлений СУБД) для выпусков IBM i 6.1 и IBM i 7.1.
Если вы желаете узнать, какой уровень исправлений database group PTF содержит эти два представления каталога, необходимо обратиться к ресурсу DB2 for i Technology Updates Wiki, который связан с сайтом IBM i developerWorks site. IBM обновляет этот Wiki-ресурс при каждом выпуске новых важных функций DB2, реализованных в виде исправлений типа database group PTF.
На ресурсе DB2 Technology Update Wiki подробные сведения по этим двум представлениям каталога размещены в категории DB2 for i Management Enhancements (Усовершенствования DB2 for I в области управления). Поддержка представлений GROUP_PTF_INFO и TCPIP_INFO впервые появилась в исправлениях level 19 of the IBM i 6.1 database group PTF (уровень 19 группы временных исправлений СУБД для выпуска IBM i 6.1) и в исправлениях level 6 of the IBM i 7.1 database group PTF (уровень 6 группы временных исправлений СУБД для выпуска IBM i 7.1). Представление TCPIP_INFO было усовершенствовано в исправлениях level 21 of the IBM i 6.1 database group PTF и в исправлениях level 10 of the IBM i 7.1 database group PTF.
Знакомство с представлением GROUP_PTF_INFO
Представление GROUP_PTF_INFO возвращает такие же данные, что и системная команда WRKPTFGRP (work with PTF groups). Представление GROUP_PTF_INFO возвращает следующие столбцы для каждой группы исправлений IBM i group PTF:
- COLLECTED_TIME
- PTF_GROUP_NAME
- PTF_GROUP_DESCRIPTION
- PTF_GROUP_LEVEL
- PTF_GROUP_TARGET_RELEASE
- PTF_GROUP_STATUS
Эти атрибуты сравнительно просты для понимания, за исключением столбца COLLECTED_TIME. Этот столбец содержит значение переменной timestamp, которой динамически присваивается время и дата момента, когда представление каталога извлекает из системы информацию о группах 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 (установлена).
Таблица 1. Пример выходной информации представления GROUP_PTF_INFO
| PTF_GROUP_NAME | PTF_GROUP_DESCRIPTION | PTF_GROUP_LEVEL |
|---|---|---|
| SF99145 | PERFORMANCE TOOLS | 2 |
| SF99359 | WEBSPHERE MQ FOR I5/OS - V7.0.1 | 5 |
| SF99362 | 710 BACKUP RECOVERY SOLUTIONS | 5 |
| SF99363 | WEBSPHERE APP SERVER V7.0 | 6 |
| SF99368 | IBM HTTP SERVER FOR I | 10 |
| SF99572 | JAVA | 6 |
| SF99701 | DB2 FOR IBM I | 11 |
| SF99637 | DB2 WEB QUERY FOR IBM I V1.1.2 | 3 |
| SF99708 | GROUP SECURITY | 9 |
| SF99707 | TECHNOLOGY REFRESH | 2 |
| SF99707 | TECHNOLOGY REFRESH | 1 |
В следующем примере запрос проверяет, установлена ли в системе группа исправлений IBM i 7.1 database group PTF, которая содержит самые последние усовершенствования для представления TCPIP_INFO.
Листинг 2. Пример запроса для определения того, установлена ли требуемая группа исправлений
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 database 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 и Client_Port_Number — это значения для клиентской системы, которая инициировала запрос к представлению каталога TCPIP_INFO. Столбец Local_Host_Name содержит имя хоста для сервера в TCP/IP-сети, на котором размещается представление каталога. Соответственно, столбец Server_IP_Address содержит TCP/IP-адрес этого сервера, а столбец Server_IP_Address_Type указывает тип этого адреса. Последний столбец в наборе результатов, Server_Port_Number, содержит номер порта на этом сервере, который получил SQL-запрос.
Таблица 2. Пример выходной информации, полученной из представления каталога TCPIP_INFO
| Client_IP_Address | Client_Port_Number | Local_Host_Name | Server_IP_Address | Server_IP_Address_Type | Server_Port_Number |
|---|---|---|---|---|---|
| 9.10.84.144 | 2134 | DB271.RCHLAN.COM | 9.5.168.119 | IPV4 | 8471 |
Представление каталога TCPIP_INFO способно возвратить TCP/IP-информацию клиента даже в том случае, когда с этим клиентом не установлено непосредственного SQL-соединения. Рассмотрим сценарий, в котором ПК-клиент запустил сеанс эмуляции 5250. В этом 5250-сеансе пользователь задействует команду STRSQL для исполнения запроса к представлению. В описываемом сценарии представление TCPIP_INFO возвращает IP-адрес и номер порта ПК-клиента, инициировавшего 5250-сеанс, несмотря на то, что этот ПК-клиент не имеет активного SQL-соединения с сервером IBM i. Эта возможность также означает, что представление TCIP_INFO может использоваться точками выхода или переключателями программ для аудиторской регистрации дополнительных подробностей о пользователе, обращающемся к системе или к базе данных.
При использовании команды telnet для установления соединения необходимо уделить особое внимание адресам клиента и сервера, которые возвращает представление каталога TCPIP_INFO. В этой ситуации значения адресов клиента и сервера, извлеченные потоком, следует рассматривать как "консультативные", а не как абсолютные значения. Это является следствием того, что эти адреса определятся исходя из сокета, с которым поток выполнял какую-либо операцию последний раз, а поток может одновременно иметь несколько активных сокетных соединения с разными клиентами или серверами.
Надеюсь, теперь вы хорошо понимаете, каким образом можно расширить свои знания о системе с помощью двух новых представлений каталога DB2: TCPIP_INFO и GROUP_PTF_INFO.
- Примите участие в обсуждении материала на форуме.
- Оригинал статьи: Get a picture of your IBM i environment with DB2 catalog views.
- Документация информационного центра IBM. Раздел DB2 for i Catalog Views (Представления каталога DB2 for i)
-
Wiki-ресурс IBM i Technology Updates указывает дорогу — статья содержит дополнительную вводную информацию по Wiki-ресурсу IBM i Technology Updates

Кент Миллиган (Kent Milligan), старший сертифицированный ИТ-специалист по продукту DB2 for i, работает в группе внедрения решений IBM и независимых поставщиков ПО для платформы IBM i. На протяжении первых восьми лет свой работы в IBM он входил в состав группы по разработке для DB2 (Рочестер, шт. Миннесота). К. Миллиган регулярно выступает с докладами и пишет статьи на различные темы, связанные с реляционными базами данных DB2 для платформы i. Контактный адрес электронной почты: kmill@us.ibm.com