DRDA определяет типы функций системы управления распределенными базами данных. DB2 for MVS/ESA V2R3 поддерживает удаленные единицы работы. Удаленные единицы работы позволяют прикладной программе, работающей в одной системе, обращаться к данным удаленной СУБД, используя SQL, поддерживаемый этой удаленной СУБД. DB2 for MVS/ESA V3R1 поддерживает распределенные единицы работы. С их помощью прикладная программа, работающая в одной системе, может обращаться к данным нескольких удаленных СУБД, используя SQL, предоставляемый удаленными СУБД. Дополнительную информацию об определенных DRDA типах распределения смотрите в руководстве DRDA Connectivity Guide.
Как показано на Рис. 2, DB2 for MVS/ESA поддерживает три конфигурации соединений распределенных баз данных с использованием двух способов доступа:
[1] Доступ, управляемый системой, позволяет реквестеру DB2 for MVS/ESA связываться с одним или несколькими серверами DB2 for MVS/ESA. Соединение, установленное между реквестером DB2 for MVS/ESA и сервером, не наследует протоколы, определенные в DRDA и его невозможно использовать для подключения к DB2 for MVS/ESA других программных продуктов (не DB2 for MVS/ESA). Этот тип соединения устанавливается путем указания трехчастных имен или алиасов в коде прикладной программы.
[2] Доступ, управляемый программой, позволяет реквестеру DB2 for MVS/ESA или другой системы, например, DB2 Connect, связываться с одним или несколькими серверами прикладных программ DB2 for MVS/ESA или других систем, такими как DB2 Universal Database и DB2 Universal Database for AS/400, с использованием протоколов DRDA. Число серверов прикладных программ, которые могут быть связаны с реквестером прикладных программ одновременно, зависит от уровня DB2 for MVS/ESA реквестера прикладных программ. Если реквестер прикладных программ - DB2 for MVS/ESA V2R3, в каждый момент времени соединения могут быть установлены только с одним сервером. Эти соединения устанавливаются вызовом оператора SQL CONNECT из прикладной программы. Если реквестер прикладных программ - DB2 for MVS/ESA V3R1, одновременно может быть подключено несколько серверов прикладных программ.
[3]Для установления соединений программный и системный доступ могут быть использованы совместно.
Термин вторичный сервер описывает системы, работающие как серверы для сервера прикладных программ.
Если все системы в конфигурации поддерживают двухфазное принятие, поддерживаются распределенные единицы работы (с многоузловым чтением и многоузловой записью). Если не все системы поддерживают двухфазное принятие, изменения внутри единицы работы могут производиться либо на одном узле, не поддерживающем двухфазное принятие, либо на нескольких узлах, которые поддерживают двухфазное принятие.
Рис. 2. Распределенные соединения DB2 for MVS/ESA
В Табл. 1 сравниваются виды соединений распределенных баз данных DB2
for MVS/ESA.
Табл. 1. Сравнение соединений распределенных баз данных DB2 for MVS/ESA
[1] Системный доступ | [2] Программный доступ (со всеми системами, имеющими двухфазное принятие) | [3] Программный и системный доступ |
---|---|---|
Все партнеры должны быть системами DB2 for MVS/ESA | Может связать две любые системы DRDA | Реквестер прикладных программ может быть любой системой DRDA; серверы должны быть системами DB2 for MVS/ESA |
Может устанавливать прямые соединения с несколькими партнерами | Может устанавливать прямые соединения с несколькими партнерами | Реквестер прикладных программ связывается непосредственно с серверами прикладных программ; серверы прикладных программ могут связываться с несколькими вторичными серверами DB2 for MVS/ESA |
У каждой из прикладных программ SQL может быть несколько диалогов APPC с каждым сервером | У каждой из прикладных программ SQL с каждым из серверов есть один диалог APPC | У прикладной программы SQL с каждым из серверов есть один диалог APPC; сервер прикладных программ DB2 for MVS/ESA для этой прикладной программы может устанавливать несколько диалогов APPC с каждым из серверов |
Может иметь доступ как к локальным, так и к удаленным ресурсам в одной области принятия | Может иметь доступ как к локальным, так и к удаленным ресурсам в одной области принятия | Реквестер прикладных программ и сервер прикладных программ могут обращаться как к локальным, так и к удаленным данным |
Эффективнее для больших запросов или при большом количестве одновременных запросов | Эффективнее для операторов SQL, которые выполняются очень небольшое число раз в одной области принятия | Соединение реквестер прикладных программ-сервер прикладных программ ведет себя как [2]; соединения вторичного сервера ведут себя как [1] |
Может поддерживать статический или динамический SQL, однако сервер динамически связывает статический SQL, когда он исполняется первый раз в области принятия | Может вызывать статический или динамический SQL | Реквестер прикладных программ и Сервер прикладных программ могут вызывать статические или динамические команды SQL; вторичные серверы поддерживают статический или динамический SQL, однако динамически связывают статические операторы SQL при их первом выполнении в области принятия |
Ограничивается операторами SQL INSERT, DELETE и UPDATE, а также операторами, поддерживающими SELECT | Может использовать любой оператор, поддерживаемый исполняющей системой | Серверы прикладных программ поддерживают любой SQL; вторичные серверы поддерживают только DML SQL (например, CREATE или ALTER) |