Получение сведений о системной среде IBM i с помощью представлений каталога DB2

Новые представления каталога возвращают системную информацию

Традиционно, представления каталога СУБД IBM DB2® for i обеспечивали получение только метаданных о существующих объектах базы данных. Новый набор представлений каталога помимо этого предоставляет информацию о системной среде IBM i. В частности, эти представления упрощают доступ к информации об исправлениях типа Group PTF (группа временных исправлений программы) и о сетевых TCP/IP-соединениях, имеющих отношение к базе данных DB2 for i.

Кент Миллиган, старший сертифицированный ИТ-специалист, IBM

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



13.06.2012

Обзор

Обычно программисты обращаются к данным объектов в каталоге 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_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

В следующем примере запрос проверяет, установлена ли в системе группа исправлений 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_AddressClient_Port_NumberLocal_Host_NameServer_IP_AddressServer_IP_Address_TypeServer_Port_Number
9.10.84.1442134DB271.RCHLAN.COM9.5.168.119IPV48471

Представление каталога TCPIP_INFO способно возвратить TCP/IP-информацию клиента даже в том случае, когда с этим клиентом не установлено непосредственного SQL-соединения. Рассмотрим сценарий, в котором ПК-клиент запустил сеанс эмуляции 5250. В этом 5250-сеансе пользователь задействует команду STRSQL для исполнения запроса к представлению. В описываемом сценарии представление TCPIP_INFO возвращает IP-адрес и номер порта ПК-клиента, инициировавшего 5250-сеанс, несмотря на то, что этот ПК-клиент не имеет активного SQL-соединения с сервером IBM i. Эта возможность также означает, что представление TCIP_INFO может использоваться точками выхода или переключателями программ для аудиторской регистрации дополнительных подробностей о пользователе, обращающемся к системе или к базе данных.

Клиент Telnet

При использовании команды telnet для установления соединения необходимо уделить особое внимание адресам клиента и сервера, которые возвращает представление каталога TCPIP_INFO. В этой ситуации значения адресов клиента и сервера, извлеченные потоком, следует рассматривать как "консультативные", а не как абсолютные значения. Это является следствием того, что эти адреса определятся исходя из сокета, с которым поток выполнял какую-либо операцию последний раз, а поток может одновременно иметь несколько активных сокетных соединения с разными клиентами или серверами.

Заключение

Надеюсь, теперь вы хорошо понимаете, каким образом можно расширить свои знания о системе с помощью двух новых представлений каталога DB2: TCPIP_INFO и GROUP_PTF_INFO.

Ресурсы

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Технология Java, Open source
ArticleID=821047
ArticleTitle=Получение сведений о системной среде IBM i с помощью представлений каталога DB2
publish-date=06132012