Россия, Омск |
Использование интеграции с DB2 для улучшения приложения ITSO Electronics
2.4 Работа с интегрированными данными DB2
До этого пункта мы занимались обсуждением Query Views, отображающих данные Lotus Domino путем выборки из DB2 Access View. Однако можно создать Query Views, способные отображать любые данные, видимые базе данных DB2, используя DB2 federation – мощный компонент интеграционной архитектуры DB2 и Domino. Интегрированные данные – это данные, которые хранятся в базах данных, не являющихся базами данных Lotus Domino (например, Oracle, Microsoft SQL или другие базы данных DB2). Их можно сделать видимыми для Lotus Domino, изменив конфигурацию базы данных Lotus Domino, включив в ней поддержку интеграции. Впоследствии вы можете создать Query Views, отображающие только данные Lotus Domino, либо только интегрированные данные, либо и то, и другое вместе.
2.4.1 Включение поддержки интеграции для базы данных
При изменении конфигурации базы данных Lotus Domino в DB2 с целью включения в ней поддержки интеграции, позволяющей получать доступ к объектам, находящимся вне текущей базы данных (база данных определена в закладке DB2 серверного документа, находящегося в директории Domino), вы можете создавать так называемые "интегрированные объекты" (federated objects). Эти интегрированные объекты DB2 позволяют не только получать доступ к другим таблицам DB2, которые находятся в других базах данных DB2, но также и к другим системам управления базами данных (СУБД).
В приложении ITSO Electronics нам необходимо создать новый интегрированный Query View, который будет обращаться к информации отдельной базы данных DB2, принадлежащей отделу кадров и содержащей данные о персонале. В приведенной ниже последовательности действий показано, как изменить конфигурацию сервера DB2 для включения поддержки интеграции.
- Установите переменную окружения DB2_ALLOW_SETAUTH_WITH_REMOTECONNECT, чтобы Query View смог работать. Используйте следующие путь и команду:где –i определяет имя вашего экземпляра DB2 (который обычно, как и в нашем сценарии, называется DB2 ).
C:\Program Files\IBM\SQLLIB\BIN>db2set -i DB2 DB2_ALLOW_SETAUTH_WITH_REMOTECONNECT=1
- Перезапустите DB2 для того, чтобы переменная окружения начала работать. Обратите внимание на то, что с помощью приведенного ниже пути и команды можно обновить конфигурацию DB2 Database Manager, для того чтобы активировать интеграцию в DB2:
C:\Program Files\IBM\SQLLIB\BIN>db2 update dbm cfg using FEDERATED YES
- Подключитесь к вашей базе данных Lotus Domino в DB2 Control Center (центре управления DB2). Убедитесь в том, что в базе данных Lotus Domino включена поддержка интеграции. Для этого щелкните правой кнопкой мыши по вашему экземпляру DB2 и выберите из контекстного меню Configure Parameters (Изменить параметры). Откроется окно DBM Configuration (см. рис. 2.15). Прокрутите это окно вниз до раздела Environment. Найдите ключевое слово FEDERATED и убедитесь, что в поле Value стоит значение Yes. Если же в поле Value стоит No, однако в поле Pending Value стоит Yes, и вы выполнили команду db2set, которую мы рассматривали на этапе 1, необходимо перезапустить DB2, чтобы в поле Value ключевого слова FEDERATED появилось слово Yes.
- Для того чтобы создать интеграционную оболочку в DB2 для внешней базы данных DB2 (в нашем сценарии это база данных DB2 отдела кадров), необходимо вернуться в DB2 Control Center и для базы данных Lotus Domino перейти к папке Federated Database Objects. Далее щелкните по Create New Wrapper (Создание новой оболочки), см. рис. 2.16.
- В результате откроется окно Create Wrapper (см.
рис.
2.17). На закладке Wrapper из выпадающего списка Data source выберите источник данных, в качестве которого в нашем сценарии мы будем использовать DB2 UDB. Введите название оболочки в поле Wrapper name ; в нашем случае мы использовали DB2WRAP. Щелкните по кнопке ОК.
Замечание Для получения дополнительной информации, касающейся оболочек, а также включения поддержки интегрированных данных в DB2, посетите Информационный центр DB2, который находится по следующему адресу: http://publib.boulder.ibm.com/infocenter/db2help/index.jsp
- После того как вы создадите оболочку, она появится в папке Federated Database Objects в DB2 Control Center ( рис. 2.18). Выберите папку Server Definitions (Описания сервера) и щелкните по командной кнопке Create New Server Definition (Создать новое описание сервера). Откроется окно Create Server Definitions, представленное на рис. 2.19.
- В окне Create Server Definitions щелкните по кнопке Discover (Найти). Появится список объектов. Выберите подходящий объект, которым в нашем сценарии является база данных SAMPLE (так называется база данных DB2 отдела кадров), см. рис. 2.19.
- Щелкните по кнопке Properties (Свойства), откроется окно Server Definition Properties (Свойства описания сервера), которое показано на рис. 2.20. Введите соответствующие значения во все поля закладки Server Definition, которая представлена на рис. 2.20. Все введенные в эти поля данные соответствуют нашему сценарию. Для поля Type (Тип) из выпадающего списка выберите DB2/UDB. Для поля Version (Версия) из выпадающего списка выберите 8.2, а в полях User ID (Идентификатор пользователя) и Password (Пароль) используйте соответствующие данные пользователя DB2 (или администратора DB2), у которого есть доступ к внешней базе данных DB2 (в нашем случае это база данных DB2 отдела кадров).
- Перейдите к закладке Settings (Параметры) (см. рис. 2.21) и введите название базы данных DB2 в поле Value (Значение) для параметра DBNAME. В нашем сценарии это название базы данных отдела кадров – SAMPLE. Кнопка ОК станет доступной. Щелкните по ней.
- Теперь нам надо добавить привязку пользователей к этой интеграционной оболочке, присваивая пользователя сервера Lotus Domino к имени и паролю пользователя удаленного соединения. В нашем сценарии в качестве пользователя сервера Lotus Domino мы взяли DB2DOMINO. В DB2 Control Center под созданным описанием сервера для базы данных SAMPLE щелкните по кнопке Create New User Mapping (Создать новую привязку пользователя), как показано на рис. 2.22.
- Откроется окно Create New User Mapping ( рис. 2.23). На закладке Users (Пользователи) выберите один или несколько идентификаторов (ID) локальных пользователей, которые необходимо связать с удаленным идентификатором. В нашем сценарии мы выбрали ID пользователя DB2DOMINO.
- Перейдите к закладке Settings и введите соответствующие значения в столбцы Value параметров REMOTE_AUTHID и REMOTE_PASSWORD. В нашем сценарии мы использовали значения DB2DOMINO и DB2DOMINO соответственно, для того чтобы появились параметры, представленные на
рис.
2.24. (На нашем сервере DB2 также есть ID пользователя DB2DOMINO, мы применяли его для реализации привязки пользователя.) Тем не менее, привязка между ID пользователя, с помощью которого Domino подключается к DB2 (в нашем примере в качестве него использован DB2DOMINO), и ID пользователя, который зарегистрирован на удаленном компьютере DB2 (параметры REMOTE_AUTHID и REMOTE_PASSWORD ), может быть сделана с использованием идентификаторов пользователей). После этого станет доступной кнопка ОК. Щелкните по ней.
Замечание Если вы столкнетесь с какими-либо проблемами при установке и настройке привязки пользователей, вернитесь в DB2 Control Center, выберите базу данных, к которой хотите подключиться, щелкните по ней правой кнопкой мыши из контекстного меню, выберите пункт Connect (Подключиться), после чего введите ID пользователя и пароль. В приложении, использованном в нашем сценарии, мы применяли ID пользователя базы данных DB2DOMINO и его пароль.
- В DB2 Control Center создайте псевдоним, связывающий локальный объект с внешним объектом. Псевдоним используется в SQL-выражении Query View. Выберите папку Nicknames (Псевдонимы) и щелкните по командной кнопке Create New Nickname (Создать новый псевдоним), как показано на рис. 2.25.
- Откроется окно Create Nicknames (Создание псевдонимов). Щелкните по кнопке Discover, после чего откроется окно Discover, которое представлено на рис. 2.26. Щелкните по кнопке ОК.
- Затем окно Create Nicknames заполнится объектами, которым можно присвоить псевдонимы. В приложении ITSO Electronics для достижения поставленных целей необходимо нажать на кнопку Uncheck All (Снять все), а затем поставить флажок в столбце Create (Создать) для псевдонима EMPLOYEE, как видно из рис. 2.27. Щелкните по кнопке ОК.
- После этого будет создан псевдоним EMPLOYEE, в этом можно убедиться в DB2 Command Center. Дважды щелкните по псевдониму, чтобы отобразить интегрированную таблицу EMPLOYEE, представленную на рис. 2.28.
- Завершающий этап состоит в присвоении привилегий объекту псевдонима, необходимость которых объясняется тем, что из всех пользователей DB2 нужно выбрать тех, которым вы хотите разрешить доступ к интегрированной таблице. В нашем сценарии мы хотим предоставить доступ пользователю с идентификатором MANNYSANTANNA. Чтобы завершить этот этап, выполните приведенную ниже последовательность действий из командной строки или из DB2 Command Editor (Редактор команд DB2). Войдите в вашу базу данных в качестве пользователя сервера Lotus Domino или же в качестве другого администратора. Затем выполните одно из приведенных ниже действий:
- из командной строки выполните приведенную ниже команду, чтобы предоставить привилегии доступа какому-либо пользователю, в данном случае мы присвоили эти привилегии пользователю MANNYSANTANNA:
GRANT SELECT ON DB2DOMINO.EMPLOYEE TO MANNYSANTANA
- выполните эту же команду из DB2 Command Editor (см. рис. 2.29).
- из командной строки выполните приведенную ниже команду, чтобы предоставить привилегии доступа какому-либо пользователю, в данном случае мы присвоили эти привилегии пользователю MANNYSANTANNA:
Теперь вы можете создавать Query Views с интегрированными данными, благодаря чему ваше приложение Lotus Domino получает расширенные возможности доступа к данным.