powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / О провайдерах источников данных WSAS
7 сообщений из 7, страница 1 из 1
О провайдерах источников данных WSAS
    #38126743
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте всем!

Ситуция: WSAS 7.0.0.21 и DB2 9.7.
Приложение работает с базой данных через jdbc-источник. Настроен провайдер источника, у кторого заданы

путь к классам:
Код: plaintext
1.
2.
3.
${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc.jar
${UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license_cu.jar
${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license_cisuz.jar

путь к встроенным библиотекам
Код: plaintext
${DB2UNIVERSAL_JDBC_DRIVER_NATIVEPATH}

Но DB2UNIVERSAL_JDBC_DRIVER_PATH и DB2UNIVERSAL_JDBC_DRIVER_NATIVEPATH не проинициализированы в переменых среды (значение = пусто).

Но приложение работает без проблем. Соединение к источнику данных проходит.

Вопрос. Через какой драйвер (из какой папки) работает провайдер, если не заданы значения переменных? Какая папка считается по умолчанию для драйвера?

С уважением, Семен Попов
...
Рейтинг: 0 / 0
О провайдерах источников данных WSAS
    #38127018
Semen Popov,

В WAS версии 7.0 драйвер нашелся в следующем каталоге:
C:\IBM\WebSphere\AppServer\deploytool\itp\plugins\com.ibm.datatools.db2_2.1.102.v20100709_0407\driver

А провайдер какой?

Для "DB2 Using IBM JCC Driver" (рекомендуемый для версии 7.0) используются другие переменные и пути:
Код: plaintext
1.
2.
${DB2_JCC_DRIVER_PATH}/db2jcc4.jar
${DB2_JCC_DRIVER_PATH}/db2jcc_license_cu.jar
${DB2_JCC_DRIVER_PATH}/db2jcc_license_cisuz.jar
...
Рейтинг: 0 / 0
О провайдерах источников данных WSAS
    #38127318
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Хабаров, провайдер DB2 Universal JDBC Driver Provider с классом реализации com.ibm.db2.jcc.DB2ConnectionPoolDataSource. Ещё не сказал, что при установке приложения инсталлятор копирует в папку AppServer\lib\ext драйверы из своих закромов (это - db2java.zip, db2jcc.jar, db2jcc_license_cu.jar, db2jcc4.jar). Но вопрос в том, использует ли их провайдер, если не заданы переменные WebSphere?
...
Рейтинг: 0 / 0
О провайдерах источников данных WSAS
    #38127416
Semen PopovЕвгений Хабаров, провайдер DB2 Universal JDBC Driver Provider с классом реализации com.ibm.db2.jcc.DB2ConnectionPoolDataSource. Ещё не сказал, что при установке приложения инсталлятор копирует в папку AppServer\lib\ext драйверы из своих закромов (это - db2java.zip, db2jcc.jar, db2jcc_license_cu.jar, db2jcc4.jar). Но вопрос в том, использует ли их провайдер, если не заданы переменные WebSphere?
lib\ext сервер приложений обязан использовать. Причем это весьма приоритетный каталог для поиска jar-архивов.
Вообще-то инсталлятору так поступать несколько "некрасиво", если этот сервер приложений используется не только для этого приложения.

Более подходящий (ИМХО) вариант - создавать отдельный провайдер с изолированным Classloader-ом, явно задав путь к классам драйвера. Это для случаев, когда на сервере может быть несколько провайдеров однотипной СУБД и для них могут понадобиться разные версии драйверов. Для изолированного драйвера раздел Native library path должен быть пустым.
...
Рейтинг: 0 / 0
О провайдерах источников данных WSAS
    #38127451
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Хабаров, большое спасибо. А если у провайдера пути к классам и путь к встроенным библиотекам заданы явно и ссылаются на "C:\Program Files\IBM\SQLLIB\java" (драйвер от DB2 Runtime client, который устанавливается параллельно), то переменные инициализировать не обязательно? И считается ли такой провайдер с изолированным Classloader-ом?
...
Рейтинг: 0 / 0
О провайдерах источников данных WSAS
    #38127587
Semen PopovЕвгений Хабаров, большое спасибо. А если у провайдера пути к классам и путь к встроенным библиотекам заданы явно и ссылаются на "C:\Program Files\IBM\SQLLIB\java" (драйвер от DB2 Runtime client, который устанавливается параллельно), то переменные инициализировать не обязательно? И считается ли такой провайдер с изолированным Classloader-ом?
Если путь к классам драйвера задан явно, то переменные инициализировать необязательно.

По умолчанию провайдеры создаются без изоляции загрузчика (Classloader).
Чтобы провайдер был с изолированным загрузчиком нужно поставить галку на странице его свойств (Isolate this resource provider).
Изолировать загрузчик нужно, если в разных провайдерах используются одинаковые классы/библиотеки, но разных версий, и они должны сосуществовать.
По умолчанию (без изолированного загрузчика) классы будут загружаться общим загрузчиком и, при совпадающих классах, возьмутся те, к которым будет раньше обращение, что может порождать неоднозначность.
В идеале желательно чтобы загружалась ровно одна копия классов, но бывает, что нужно грузить два драйвера разных версий.

PS: Возможно, что опция с изолированным ClassLoader появилась только в версии 7.0. Не помню была ли она в 6.1.
...
Рейтинг: 0 / 0
О провайдерах источников данных WSAS
    #38127675
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Хабаров, большое спасибо
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / О провайдерах источников данных WSAS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]