Подключение приложений Db2
Общие сведения и состав пакетов драйверов
Подключение приложений к серверам DB2 осуществляется с помощью программного обеспечения, входящего в состав клиента IBM Data Server. Клиенты IBM Data Server могут также подключаться к другим серверам данных семейства IBM (например, Informix). Этим объясняется использование общего названия «Клиент IBM Data Server», а не более конкретного «Клиент DB2».
Сервер DB2 поставляется с интегрированным компонентом клиента и может служить клиентом для подключения к другому серверу DB2.
Основные варианты взаимодействия приложений с сервером DB2 включают в себя:
- использование интерфейса CLI (Call Level Interface, интерфейс уровня вызовов) либо стандартного интерфейса ODBC, реализованного CLI-драйвером DB2 - типовой вариант для программ на языках C и C++, а также для разработки драйверов доступа для других языков и сред программирования (PHP, Python, Perl, Ruby);
- использование интерфейса JDBC, реализованного Java-драйвером DB2 - применяется программами на Java и других языках программирования, исполняемыми в среде виртуальной машины Java (JVM);
- работа через интерфейс OLE DB / ADO - используется приложениями, функционирующими на платформе Microsoft Windows и использующими стандартный для этой операционной системы стек технологий (включая приложения на платформе .NET);
- разработку хранимых процедур на встроенных языках, поддерживаемых сервером DB2: SQL PL, PL/SQL;
- разработку «внешних» хранимых процедур в виде динамических библиотек, загружаемых сервером СУБД и использующих интерфейс CLI;
- разработку приложений с использованием «встраиваемого» SQL на языках C и C++ (C Embedded SQL, SQC), а также Java (в варианте SQLJ).
Клиент IBM Data Server включает всю необходимую функциональность для подключения к серверу DB2, однако необходимость в установке полного пакета IBM Data Server возникает не всегда. К примеру, приложениям, использующим драйвер JDBC Type 4 для подключения к серверу DB2, требуется только установка драйвера JDBC.
Доступно несколько разновидностей клиентов и драйверов DB2:
- клиент «IBM Data Server Client»: наиболее полный клиент, включает инструменты графического интерфейса пользователя и все виды драйверов;
- клиент «IBM Data Server Runtime Client»: облегченный клиент с базовой функциональностью и драйверами;
- пакет модулей «DB2 Runtime Client Merge Modules for Windows»: используется для внедрения клиента DB2 в состав процедуры установки других приложений в Windows;
- драйвер «IBM Data Server Driver for JDBC and SQLJ»: позволяет приложениям Java™ подключаться к серверам DB2 без установки полного клиента;
- драйвер «IBM Data Server Driver for ODBC and CLI»: позволяет приложениям, использующим интерфейсы ODBC и CLI, подключаться к серверу DB2 без установки полного клиента;
- пакет драйверов «IBM Data Server Driver Package»: включает специальный драйвер для Windows с поддержкой среды .NET, в дополнение к ODBC и CLI. Ранее, этот драйвер был известен как драйвер «IBM Data Server for ODBC, CLI and .NET».
Все виды и все версии клиентов Db2 доступны для загрузки на специальной странице сайта IBM Support.
Настройки подключения к базам данных
Настройки подключения к базам данных для среды Java определяются комплектом свойств, задаваемых в так называемой строке подключения и дополнительно поддерживаемых параметрах. Синтаксис строки подключения JDBC и состав дополнительно поддерживаемых свойств описан в документации на JDBC-драйвер DB2.
Пример строки подключения для драйвера типа 4:
jdbc:db2://server-name.domain.com:50000/dbname
Имя пользователя и пароль для подключения обычно передаются в
отдельных параметрах метода DriverManager.getConnection()
,
либо в виде свойств user
и password
.
Настройка подключений к серверам DB2 для приложений, построенных на платформе Java 2 Enterprise Edition (J2EE), чаще всего осуществляется с использованием пула соединений, управляемого сервером приложений J2EE. При настройке пула соединений указывается используемый JDBC-драйвер, строка подключения, а также свойства подключения, включая имя пользователя и пароль.
Настройки подключений к серверам и базам данных для приложений, использующих интерфейсы ODBC и CLI (см. далее раздел с описанием этих интерфейсов), хранятся в так называемых каталогах DB2 (DB2 directory). Каталоги DB2 — это двоичные файлы, в которых хранится информация о том, к каким базам данных можно подключиться с компьютера. Существует четыре каталога:
- каталог системных баз данных (system database directory);
- каталог локальных баз данных (local database directory);
- каталог узлов (node directory);
- каталог DCS (DCS directory).
Каталог системных баз данных содержит ссылки на все базы данных
(как локальные, так и удаленные), к которым можно подключиться. Для
локальных баз данных отображается указатель на каталог локальных баз
данных. Для удаленных баз данных отображается указатель на запись в
Каталоге узлов. Для просмотра содержимого каталога системных баз
данных используйте команду LIST DB DIRECTORY
.
Каталог локальных баз данных содержит информацию о базах данных,
хранящихся на локальном компьютере, к которым можно
подключиться. Чтобы просмотреть содержимое этого каталога, используйте
команду LIST DB DIRECTORY ON ПутьКБазамДанных
.
В каталоге узлов содержится информация о способах подключения к
удаленным серверам баз данных. К примеру, если используется протокол
TCP/IP, в записи узла TCP/IP будет указан IP-адрес сервера, на котором
хранится база данных DB2, к которой устанавливается подключение, а
также порт экземпляра, который содержит эту базу данных. Чтобы
просмотреть содержимое этого каталога, используйте команду
LIST NODE DIRECTORY
.
Каталог DCS содержит дополнительные параметры подключения к базам данных DB2 for z/OS, DB2 for i и DB2 for VM/VSE. Каталог DCS используется только продуктом DB2 Connect для обеспечения подключений к соответствующим типам баз данных.
Настройка подключения к базам данных осуществляется путем создания записей в соответствующих каталогах. Для локальных баз данных записи каталогов создаются и удаляются автоматически при создании и удалении соответствующих баз данных, ручное управление такими записями обычно не требуется. Для баз данных на других серверах настройка подключения обычно осуществляется в два этапа:
- Создается элемент каталога узлов, содержащий параметры сетевого
соединения с сервером баз данных. Для узлов, доступных по протоколу
TCP/IP, данная операция выполняется командой
CATALOG TCPIP NODE
. - Создается элемент каталога системных баз данных, содержащий ссылку
на каталог узлов и имя базы данных, обслуживаемой соответствующим
сервером, с помощью команды
CATALOG DATABASE
.
Приложения, использующие интерфейсы ODBC и CLI, передают данные аутентификации (чаще всего имя пользователя и пароль) непосредственно в программные функции установления соединения. Настройка различных параметров соединений, транзакций и операторов также выполняется путём вызова специальных программных функций.
В дополнение к передаче логина и пароля, Db2 поддерживает альтернативные методы аутентификации, включая аутентификацию по протоколу Kerberos и аутентификацию с использованием жетонов JSON Web Tokens (JWT).
Примечание. Большинство серверов приложений J2EE (включая
продукты семейства IBM WebSphere) по умолчанию используют уровень
изоляции Read Stability (RS), задаваемый константой
TRANSACTION_REPEATABLE_READ
.
Запросы к DB2, выполняемые на изоляции RS, захватывают блокировки на
все прочитанные записи, что может приводить к снижению возможностей
конкурентной модификации данных и увеличению затрат вычислительных
ресурсов из-за необходимости обработки блокировок. Поэтому в среде
J2EE рекомендуется явно устанавливать желаемый уровень изоляции для
соединений к серверам DB2. Чаще всего приложениями используется
уровень изоляции Cursor Stability (CS), задаваемый константой
TRANSACTION_READ_COMMITTED
.
Дополнительная информация по настройке уровней изоляции приведена в документе «Determining and changing the isolation level».