powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Oracle Application Server
12 сообщений из 12, страница 1 из 1
Oracle Application Server
    #33112300
albertislamov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Есть проблемка. Насколько я понимаю когда поднимается AS он автоматом подтягивает ряд библиотек, которые будут доступны все приложениям работающим под AS. Одна из них - JDBC драйвера для Oracle. Так вот, есть несколько приложений на этом AS - одни из них работают с одной версией БД другие с другой версией. Необходимо для разных приложений использовать различные версии JDBC драйверов. Как это сделать? И возможно ли это?
...
Рейтинг: 0 / 0
Oracle Application Server
    #33112333
Naug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понял вопрос: если приложения работают с разными версиями бд для них надо указываь разные версии драйвероы. В чём проблема?

За оракул не скажу, а на веблгике так:
общение с бд осуществляется посредством "источников данных" (DataSources), каждый источник подключен к пулу соединений (СonnectionPools) каждый из которых в свою очередь имеет такие параметры как: используемый драйвер, урл базы, логин/пароль.
...
Рейтинг: 0 / 0
Oracle Application Server
    #33112351
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
albertislamovДобрый день! Есть проблемка. Насколько я понимаю когда поднимается AS он автоматом подтягивает ряд библиотек, которые будут доступны все приложениям работающим под AS. Одна из них - JDBC драйвера для Oracle. Так вот, есть несколько приложений на этом AS - одни из них работают с одной версией БД другие с другой версией. Необходимо для разных приложений использовать различные версии JDBC драйверов. Как это сделать? И возможно ли это?См. http://www.oracle.com/technology/tech/java/oc4j/pdf/ClassLoadingInOC4J_WP.pdf
...
Рейтинг: 0 / 0
Oracle Application Server
    #33112367
albertislamov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NaugНе совсем понял вопрос: если приложения работают с разными версиями бд для них надо указываь разные версии драйвероы. В чём проблема?

За оракул не скажу, а на веблгике так:
общение с бд осуществляется посредством "источников данных" (DataSources), каждый источник подключен к пулу соединений (СonnectionPools) каждый из которых в свою очередь имеет такие параметры как: используемый драйвер, урл базы, логин/пароль.

проблема в том что для всех соединений используемый драйвер oracle.jdbc.driver.OracleDriver. Но для каждой версии БД есть свой драйвер, который с другой версией не работает, либо работает в некоторых случаях криво. А получается что ов всех приложениях используется один - который подятнулся во время старта AS.
...
Рейтинг: 0 / 0
Oracle Application Server
    #33112469
albertislamov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stdio albertislamovДобрый день! Есть проблемка. Насколько я понимаю когда поднимается AS он автоматом подтягивает ряд библиотек, которые будут доступны все приложениям работающим под AS. Одна из них - JDBC драйвера для Oracle. Так вот, есть несколько приложений на этом AS - одни из них работают с одной версией БД другие с другой версией. Необходимо для разных приложений использовать различные версии JDBC драйверов. Как это сделать? И возможно ли это?См. http://www.oracle.com/technology/tech/java/oc4j/pdf/ClassLoadingInOC4J_WP.pdf
Почитал. Все равно осталась проблема ведь ClassLoader образуют дерево ClassLoader'ов и как я понял, самый нижний ищет у себя в кэше класс, если не находит, передает запрос на поиск класса в кэше родителя, и так до тех пор пока он не будет найден. Если не найден, то самый нижний ищет класс в досутпных ему путях, если не находит то этот же запрос передает предку и т.д. пока класс не будет найден. Если он не найден то валим ClassNotFoundException. Так это все равно не решает проблему найдется левый класс в родительском ClassLoader, а класс из бибилотеки моего приложения не загрузится. Или я опять где-то ошибаюсь?
...
Рейтинг: 0 / 0
Oracle Application Server
    #33112480
albertislamov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stdio albertislamovДобрый день! Есть проблемка. Насколько я понимаю когда поднимается AS он автоматом подтягивает ряд библиотек, которые будут доступны все приложениям работающим под AS. Одна из них - JDBC драйвера для Oracle. Так вот, есть несколько приложений на этом AS - одни из них работают с одной версией БД другие с другой версией. Необходимо для разных приложений использовать различные версии JDBC драйверов. Как это сделать? И возможно ли это?См. http://www.oracle.com/technology/tech/java/oc4j/pdf/ClassLoadingInOC4J_WP.pdf
Такое впечаление что нужно написать свой classLoader который бы делал то что нужно.
...
Рейтинг: 0 / 0
Oracle Application Server
    #33112529
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
albertislamovТак это все равно не решает проблему найдется левый класс в родительском ClassLoader, а класс из бибилотеки моего приложения не загрузится. Или я опять где-то ошибаюсь?Что тебе мешает найти нужные классы JDBC "раньше"? Например, поместив их в ear.
...
Рейтинг: 0 / 0
Oracle Application Server
    #33112630
albertislamov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stdioЧто тебе мешает найти нужные классы JDBC "раньше"? Например, поместив их в ear.
Это на мой взгляд тоже не решает проблему. Ведь проблема заключается в том что class старой версии драйвера уже загружен в кэш родительского classLoader (например другим приложением) и соотвественно при поиске класса (ведь вначале идет иерархический поиск по кэшам, а уже потом идет поиск по другим файлам которые доступны classloader'у) он будет найден у родителя - т.е. старая версия и обращения к файлам уже не будет.
...
Рейтинг: 0 / 0
Oracle Application Server
    #33112700
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
albertislamovЭто на мой взгляд тоже не решает проблему. Ведь проблема заключается в том что class старой версии драйвера уже загружен в кэш родительского classLoader (например другим приложением) и соотвественно при поиске класса (ведь вначале идет иерархический поиск по кэшам, а уже потом идет поиск по другим файлам которые доступны classloader'у) он будет найден у родителя - т.е. старая версия и обращения к файлам уже не будет.1) Что такое кэш загрузчиков классов?
2) Читаем бумажку ещё раз.
...
Рейтинг: 0 / 0
Oracle Application Server
    #33112712
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала срабатывает загрузчик классов модуля - он в первую очередь будет искать JDBC библиотеку, пришедшую с EAR-архивом.
...
Рейтинг: 0 / 0
Oracle Application Server
    #33115899
albertislamov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо stdio, с подтянулись JDBC драйвера. Точнее сказать похоже подтянулись - т.к. начали валится ошибки.. :-((
Причем ошибки очень интересные делаю lookup как результат мне возвращается класс com.evermind.sql.OrionCMTDataSource, причем он при приведении к javax.sql.DataSource валит ClassCastException, хотя этот класс является наследником от класса который implements javax.sql.DataSource. Есть у кого-ниубдь идеи что за фигня?
...
Рейтинг: 0 / 0
Oracle Application Server
    #33115915
albertislamov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Причем если заменить jar'ы JDBC драйвера в {jdev_home}/jdbc то все отрабатывает на ура. если же их в ear цеплять то валится ошибка которая выше описана
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Oracle Application Server
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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