На AS/400 поддержка реквестера прикладных программ DRDA включена в операционную систему OS/400. Поскольку поддержка реквестера прикладных программ - это часть операционной системы OS/400, она активна, если активна операционная система. Это относится и к поддержке сервера прикладных программ в DB2 Universal Database for AS/400.
Если DB2 Universal Database for AS/400 действует как реквестер прикладных программ, он может соединяться с любым сервером прикладных программ, поддерживающим DRDA. В случае реквестера прикладных программ DB2 Universal Database for AS/400 для обеспечения распределенного доступа к базам данных необходимо рассмотреть следующие вопросы:
Реквестер прикладных программ должен уметь принимать имя реляционной базы данных и преобразовывать его в сетевые параметры. Система AS/400 использует каталог реляционных баз данных для регистрации имен реляционных баз данных и соответствующих им сетевых параметров. Этот каталог позволяет реквестеру прикладных программ AS/400 передавать требуемую сетевую информацию для установки связи в сети распределенных баз данных.
Большая часть работы в среде распределенной базы данных требует обмена сообщениями с другими системами в сети. Чтобы в среде SNA эта обработка выполнялась правильно, надо сделать следующее:
Каждый реквестер прикладных программ в сети распределенных баз данных должен иметь в своем каталоге реляционных баз данных запись для локальной реляционной базы данных и по записи для каждой удаленной реляционной базы данных, к которой он будет обращаться. Если система AS/400 в сети распределенных баз данных действует только как сервер прикладных программ, в ее каталоге реляционных баз данных должна быть запись для локальной реляционной базы данных. Дополнительную информацию о каталоге реляционных баз данных смотрите в книге AS/400 Distributed Database Programming.
Чтобы определить локальную систему, надо дать имя локальной базе данных, добавив запись с именем удаленного положения *LOCAL в каталог реляционных баз данных. Для этого воспользуйтесь командой добавления записи в каталог реляционных баз данных ADDRDBDIRE (Add Relational Database Directory Entry). Ниже в примере показан синтаксис команды ADDRDBDIRE, где ROCHESTERDB - имя базы данных реквестера прикладных программ:
ADDRDBDIRE RDB(ROCHESTERDB) RMTLOCNAME(*LOCAL)
Подробные сведения о командах каталога реляционных баз данных смотрите в книге AS/400 Distributed Database Programming.
Прим.: | В последних версиях OS/400, если запись для имени локальной RDB (реляционной базы данных) необходима, но отсутствует, она должна создаваться автоматически. Имя системы в сетевых атрибутах будет использоваться как имя локальной RDB. |
Каждый сервер прикладных программ в сети распределенных баз данных должен также иметь локальную запись в своем каталоге RDB. Кроме того, в каталоге RDB каждого реквестера прикладных программ должна присутствовать запись для каждой удаленной базы данных. Для создания этих записей:
В большинстве случаев единственная требуемая информация - имя удаленной базы данных и имя удаленного положения 4 базы данных. Если указано только имя удаленного положения, для остальных параметров используются значения по умолчанию. Система выбирает описание устройства, используя имя удаленного положения.
Если в нескольких описаниях устройств имена удаленных положений совпадают, а требуется описание определенного устройства, значения имени локального положения и идентификатор удаленной сети в записи каталога реляционных баз данных должны соответствовать этим значениям в описании устройства. Если одно и то же имя удаленного положения используется в нескольких описаниях устройств, выбор описаний может оказаться сложным. Чтобы избежать путаницы, используйте в каждом описании устройства уникальное имя удаленного положения. По умолчанию в качестве имени программы транзакций удаленной базы данных используется имя программы транзакций DRDA по умолчанию X'07F6C4C2'.
Информация о связи в каталоге реляционных баз данных используется для установления диалога с удаленной системой.
Для соединений TCP/IP (поддерживаемых в DB2 Universal Database for AS/400, версия 4.2) требуются только имя удаленной базы данных и связанные с ним IP-адрес и порт. Смотрите раздел Соединения DB2 Universal Database for AS/400 в сети DRDA через TCP/IP.
В этом разделе описано конфигурирование связи в системе AS/400 с применением APPN (Advanced Peer-to-Peer Networking улучшенная одноранговая сеть). Система AS/400 также поддерживает конфигурации APPC, которые не обеспечивают поддержку сетевой маршрутизации. Распределенная база данных AS/400 работает с обеими конфигурациями. Дополнительную информацию о конфигурациях APPC смотрите в справочнике OS/400 Communications Configuration.
Поддержка AnyNet в AS/400 позволяет прикладным программам APPC работать в сетях TCP/IP. Примеры в следующих разделах включают DDM, Systems Network Architecture Distribution Services, Alerts и 5250 Display Station Pass-Through. Эти прикладные программы с некоторыми дополнительными настройками могут работать без изменений в сетях TCP/IP, как в DRDA. Чтобы задать поддержку AnyNet, укажите *ANYNW в параметре LINKTYPE команды CRTCTLAPPC.
Дополнительную информацию о APPC в сети TCP/IP смотрите в справочниках OS/400 Communications Configuration и OS/400 TCP/IP Configuration and Reference. (Обратите внимание на то, что в DB2 Universal Database for AS/400 Версии 4.2 есть собственная поддержка TCP/IP для связи DRDA. Смотрите раздел Соединения DB2 Universal Database for AS/400 в сети DRDA через TCP/IP.)
APPN обеспечивает сетевую поддержку, позволяющую системе AS/400 работать в сети и управлять сетью систем без традиционно используемой для этого системы мейнфрейма. Ниже описывается, как конфигурировать систему AS/400 для поддержки APPN.
Сетевые атрибуты - это:
Описание линии связи определяет соединение с физической линией связи и протокол канала передачи данных, которые используются между системой AS/400 и сетью. Для создания описаний линий связи используются следующие команды:
Описание контроллера описывает смежные системы сети. Укажите применение поддержки APPN, задав APPN(*YES) при создании описания контроллера. Для создания описаний контроллеров используются следующие команды:
Если параметр AUTOCRTCTL в описании линии связи Token Ring или Ethernet имеет значение *YES, описание контроллера создается автоматически, когда система получает требование начать сеанс по линии связи Token Ring или Ethernet.
Пользуйтесь описанием класса обслуживания для выбора маршрутов связи (групп передачи) и задания приоритета передачи. В систему включены описания пяти классов обслуживания:
Создание других описаний классов обслуживания с использованием команды Создать класс обслуживания (CRTCOSD).
Описание режима задает характеристики сеанса и число сеансов, которые можно использовать для согласования допустимых значений между локальным и удаленным адресами. Описание режима также указывает на класс обслуживания, используемый для диалога. В систему включены несколько предопределенных режимов:
Другие описания режимов можно создать с помощью команды Создать описание режима (CRTMODD).
Описание устройства задает характеристики логического соединения между локальной и удаленной системами. Не требуется вручную создавать описания устройств, если система AS/400 работает с системой хоста через APPN как независимое логическое устройство (LU). Система AS/400 автоматически создает описание устройства и подключает его к соответствующему описанию контроллера при установке сеанса. Если система AS/400 является зависимым LU, надо создать описание устройства вручную, воспользовавшись командой Создать описание устройства (CRTDEVAPPC). В описании устройства укажите APPN(*YES), чтобы задать применение APPN.
Если требуются дополнительные локальные положения (называемые на других системах LU) или особые характеристики удаленных положений для APPN, необходимо создать списки положений APPN. Имя локального положения - это имя точки управления, указанное в сетевых атрибутах. Если для системы AS/400 нужны дополнительные положения, требуется список локальных положений APPN. Пример, когда требуется особая характеристики удаленного положения - случай, когда удаленное и локальное положение находятся в разных сетях. В таком случае требуется список удаленных положений APPN. Создайте списки адресов APPN, воспользовавшись командой Создать список конфигураций (CRTCFGL).
Можно активировать описания связи, воспользовавшись одной из команд Изменить конфигурацию (VRYCFG) или Работать с состоянием конфигурации (WRKCFGSTS). Если описания линии связи активированы, соответствующие контроллеры и устройства, подключенные к этой линии, также будут активированы. Команда WRKCFGSTS полезна также для просмотра состояния каждого соединения.
Размеры RU и окна синхронизации управляются значениями, указанными в описании режима. При создании описания режима для размера RU и окна синхронизации принимаются значения по умолчанию. Эти значения по умолчанию - оценка AS/400 для большинства сред, включающих распределенную базу данных. Если для размера RU берется значение по умолчанию, система AS/400 оценивает лучшее значение для использования. Если система AS/400 связывается с другой системой, поддерживающей адаптивную синхронизацию, указываемые значения размера окна являются только начальными. При адаптивной синхронизации размер окна регулируется каждой системой в зависимости от ее способности перерабатывать получаемые данные. Для систем, не поддерживающих адаптивную синхронизацию, значения размера окна согласовываются при пуске сеанса и не меняются в течение всего сеанса. Дополнительную информацию смотрите в руководстве OS/400 Communications Configuration.
Примечания:
Дополнительную информацию о конфигурировании сетевой поддержки и работе со списками адресов смотрите в справочниках OS/400 Communications Configuration и APPN Support. Примеры использования команд CL для определения системных конфигураций смотрите в руководстве AS/400 Distributed Database Programming.
Когда удаленная система выполняет обработку распределенной базы данных для прикладной программы SQL, она должна удовлетворять требованиям защиты реквестера прикладных программ, сервера прикладных программ и соединяющей их сети. Эти требования относятся к одной или нескольким из нижеперечисленных категорий:
В системах AS/400 конечным пользователям присваиваются идентификаторы пользователей длиной от 1 до 10 символов, уникальные для данной системы, но не обязательно уникальные в пределах сети. Именно этот идентификатор передается удаленной системе в процессе установки соединения между двумя базами данных. Во избежание конфликтов между идентификаторами пользователей разных систем в пределах сети часто используется преобразование исходящего имени для изменения идентификатора пользователя, что позволяет разрешить конфликт до того, как идентификатор будет передан в сеть. Однако система AS/400 не обеспечивает преобразование исходящих имен для разрешения потенциальных конфликтов на сервере. Эти конфликты должны разрешаться на сервере прикладных программ, если в операторе SQL CONNECT для AS/400 не используются дополнительные условия USER и USING. USER задает допустимый идентификатор на сервере прикладных программ, а USING - соответствующий ему пароль пользователя.
После того, как реквестер прикладных программ выберет имена конечных пользователей для удаленной прикладной программы, он должен передать требуемую LU 6.2 информацию сетевой защиты. LU 6.2 позволяет использовать три главных механизма сетевой защиты:
Защита на уровне сеанса обеспечивается взаимной проверкой полномочий логических устройств. У каждого LU есть ключ, который должен соответствовать ключу на удаленном LU. Этот ключ задается в ключевом слове LOCPWD команды CRTDEVAPPC.
Поскольку сервер прикладных программ отвечает за управление ресурсами базы данных, он определяет, какие возможности сетевой защиты требуются от реквестера прикладных программ. Администратор защиты AS/400 должен проверить требования защиты каждого из серверов прикладных программ, чтобы они не потребовали больше, чем поддерживает реквестер прикладных программ AS/400.
Ниже перечислены возможные опции защиты диалога SNA:
Система AS/400 не имеет внешней подсистемы защиты. Вся защита осуществляется средствами операционной системы OS/400, которые обсуждаются в следующем разделе, Системная защита.
Операционная система OS/400 контролирует авторизацию для всех объектов системы, включая программы, пакеты, таблицы, производные таблицы и собрания.
Реквестер прикладных программ контролирует авторизацию для объектов, находящихся на реквестере прикладных программ. Защита объектов на сервере прикладных программ контролируется сервером прикладных программ на основе того, какой идентификатор пользователя получен от реквестера прикладных программ. Посылаемый серверу прикладных программ идентификатор пользователя связывается с пользователем реквестера прикладных программ AS/400 или идентификатором пользователя, заданном в условии USER оператора SQL CONNECT для AS/400. Например, CONNECT TO имя-rdb USER id-пользователя USING пароль.
Защитой объектов можно управлять с помощью команд CL полномочий объектов или с помощью операторов SQL GRANT и REVOKE. К командам CL полномочий объектов относятся Предоставить полномочия (Grant Object Authority, GRTOBJAUT) и Отозвать полномочия (Revoke Object Authority, RVKOBJAUT). Эти команды могут применяться для любого объекта системы. Операторы GRANT и REVOKE действуют только на объекты SQL: таблицы, производные таблицы и пакеты. Если нужно изменить полномочия других объектов, например, программ или собраний, пользуйтесь командами GRTOBJAUT и RVKOBJAUT.
Чтобы предоставить полномочия *USE пользователю USER1 для программы PGMA, введите в системе AS/400 следующую команду:
GRTOBJAUT OBJ(PGMA) OBJTYPE(*PGM) USER(USER1) AUT(*USE)
Команда отзыва тех же самых полномочий:
RVKOBJAUT OBJ(PGMA) OBJTYPE(*PGM) USER(USER1) AUT(*USE)
В этом примере *PGM указывает тип объекта - программа. *SQLPKG означает пакет, *LIB - совокупность, а *FILE - таблица.
GRTOBJAUT и RVKOBJAUT могут также применяться для того, чтобы не разрешить пользователям создавать программы и пакеты. Если полномочия отозваны любой из команд CRTSQLxxx (где xxx = RPG, C, CBL, FTN или PLI), используемых для создания программ, то пользователь не сможет создавать программы. Если полномочия отозваны командой CRTSQLPKG, пользователь не может создавать пакеты из реквестера прикладных программ или на сервере прикладных программ.
Например, чтобы предоставить полномочия *USER пользователю USER1 для команды CRTSQLPKG, введите в системе AS/400 следующую команду:
GRTOBJAUT OBJ(CRTSQLPKG) OBJTYPE(*CMD) USER(USER1) AUT(*USE)
Она действует на выполнение crtsqlpkg на реквестере прикладных программ. На сервере прикладных программ эта команда позволяет создавать пакеты.
Команда отзыва тех же самых полномочий:
RVKOBJAUT OBJ(CRTSQLPKG) OBJTYPE(*CMD) USER(USER1) AUT(*USE)
При создании объектов им даются полномочия по умолчанию. По умолчанию создатель таблицы, производной таблицы или программы получает все полномочия этих объектов. Также по умолчанию все пользователи (public) получают те же полномочия для этих объектов, которые имеют для библиотеки или собрания объектов.
Дополнительную информацию о системной защите смотрите в справочнике AS/400 Security - Reference.
Программы, поддерживающие DRDA, автоматически выполняют все необходимые преобразования на принимающей системе. Для этого значение CCSID реквестера прикладных программ должно поддерживаться программой преобразования принимающей системы.
В реквестере прикладных программ CCSID надо учитывать в следующих местах:
Поддержка управления работами OS/400 присваивает заданию CCSID, указанный в профиле его пользователя. Если в профиле пользователя указано значение CCSID *SYSVAL, CCSID берется из системного значения QCCSID. Системное значение QCCSID изначально равно 65535. Применение CCSID 65535 при попытке соединения со службами заданий DB2 Universal Database приведет к отклонению попытки соединения. Изменение системного значения QCCSID влияет на систему в целом, поэтому рекомендуется изменить CCSID в профиле пользователя, который выполняет задание сервера. Задайте соответствующее значение CCSID в профиле пользователя для данного задания. Например, для американского английского задайте CCSID 37. Обычно правильный выбор - это идентификатор по умолчанию CCSID для AS/400, с которым вы устанавливаете соединение.
CCSID задания можно изменить с помощью команды Изменить задание (Change Job, CHGJOB). Для нескольких последовательных заданий воспользуйтесь командой Изменить профиль пользователя (Change User Profile, CHGUSRPRF), чтобы изменить значение CCSID в профиле пользователя. Чтобы увидеть текущий CCSID задания, в программе CL воспользуйтесь командой Получить атрибуты задания (Retrieve Job Attributes, RTVJOBA). В интерактивном режиме введите команду Работа с заданием (Work with Job, WRKJOB) и в окне Work with Job выберите опцию 2 Display Job Definition Attributes (Показать атрибуты определения задания)
Для физических файлов баз данных, если CCSID не указан в явном виде в команде Создать физический файл (Create Physical File, CRTPF) или Создать исходный физический файл (Create Source Physical File, CRTSRCPF) при их создании по умолчанию устанавливается CCSID задания по умолчанию (который может отличаться от текущего CCSID задания), До появления DB2 for AS/400 V3R1 по умолчанию устанавливался текущий CCSID задания, часто имевший значение 65535, непригодное для использования DRDA. CCSID задания по умолчанию никогда не равен 65535, и, следовательно, лучше подходит для CCSID физических файлов, к которым происходит обращение через DRDA.
Для просмотра CCSID файла можно воспользоваться командой Показать описание файла (Display File Description, DSPFD), а для просмотра CCSID полей файла - Показать описание поля файла (Display File Field Description, DSPFFD).
Для изменения CCSID физического файла используйте команду Изменить физический файл (Change Physical File, CHGPF). Физический файл невозможно изменить, если выполнено хотя бы одно из следующих условий: