
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
10.06.2005, 16:02
|
|||
|---|---|---|---|
|
|||
Oracle Application Server |
|||
|
#18+
Добрый день! Есть проблемка. Насколько я понимаю когда поднимается AS он автоматом подтягивает ряд библиотек, которые будут доступны все приложениям работающим под AS. Одна из них - JDBC драйвера для Oracle. Так вот, есть несколько приложений на этом AS - одни из них работают с одной версией БД другие с другой версией. Необходимо для разных приложений использовать различные версии JDBC драйверов. Как это сделать? И возможно ли это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2005, 16:12
|
|||
|---|---|---|---|
Oracle Application Server |
|||
|
#18+
Не совсем понял вопрос: если приложения работают с разными версиями бд для них надо указываь разные версии драйвероы. В чём проблема? За оракул не скажу, а на веблгике так: общение с бд осуществляется посредством "источников данных" (DataSources), каждый источник подключен к пулу соединений (СonnectionPools) каждый из которых в свою очередь имеет такие параметры как: используемый драйвер, урл базы, логин/пароль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2005, 16:18
|
|||
|---|---|---|---|
Oracle Application Server |
|||
|
#18+
albertislamovДобрый день! Есть проблемка. Насколько я понимаю когда поднимается AS он автоматом подтягивает ряд библиотек, которые будут доступны все приложениям работающим под AS. Одна из них - JDBC драйвера для Oracle. Так вот, есть несколько приложений на этом AS - одни из них работают с одной версией БД другие с другой версией. Необходимо для разных приложений использовать различные версии JDBC драйверов. Как это сделать? И возможно ли это?См. http://www.oracle.com/technology/tech/java/oc4j/pdf/ClassLoadingInOC4J_WP.pdf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2005, 16:25
|
|||
|---|---|---|---|
|
|||
Oracle Application Server |
|||
|
#18+
NaugНе совсем понял вопрос: если приложения работают с разными версиями бд для них надо указываь разные версии драйвероы. В чём проблема? За оракул не скажу, а на веблгике так: общение с бд осуществляется посредством "источников данных" (DataSources), каждый источник подключен к пулу соединений (СonnectionPools) каждый из которых в свою очередь имеет такие параметры как: используемый драйвер, урл базы, логин/пароль. проблема в том что для всех соединений используемый драйвер oracle.jdbc.driver.OracleDriver. Но для каждой версии БД есть свой драйвер, который с другой версией не работает, либо работает в некоторых случаях криво. А получается что ов всех приложениях используется один - который подятнулся во время старта AS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2005, 17:03
|
|||
|---|---|---|---|
|
|||
Oracle Application Server |
|||
|
#18+
stdio albertislamovДобрый день! Есть проблемка. Насколько я понимаю когда поднимается AS он автоматом подтягивает ряд библиотек, которые будут доступны все приложениям работающим под AS. Одна из них - JDBC драйвера для Oracle. Так вот, есть несколько приложений на этом AS - одни из них работают с одной версией БД другие с другой версией. Необходимо для разных приложений использовать различные версии JDBC драйверов. Как это сделать? И возможно ли это?См. http://www.oracle.com/technology/tech/java/oc4j/pdf/ClassLoadingInOC4J_WP.pdf Почитал. Все равно осталась проблема ведь ClassLoader образуют дерево ClassLoader'ов и как я понял, самый нижний ищет у себя в кэше класс, если не находит, передает запрос на поиск класса в кэше родителя, и так до тех пор пока он не будет найден. Если не найден, то самый нижний ищет класс в досутпных ему путях, если не находит то этот же запрос передает предку и т.д. пока класс не будет найден. Если он не найден то валим ClassNotFoundException. Так это все равно не решает проблему найдется левый класс в родительском ClassLoader, а класс из бибилотеки моего приложения не загрузится. Или я опять где-то ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2005, 17:08
|
|||
|---|---|---|---|
|
|||
Oracle Application Server |
|||
|
#18+
stdio albertislamovДобрый день! Есть проблемка. Насколько я понимаю когда поднимается AS он автоматом подтягивает ряд библиотек, которые будут доступны все приложениям работающим под AS. Одна из них - JDBC драйвера для Oracle. Так вот, есть несколько приложений на этом AS - одни из них работают с одной версией БД другие с другой версией. Необходимо для разных приложений использовать различные версии JDBC драйверов. Как это сделать? И возможно ли это?См. http://www.oracle.com/technology/tech/java/oc4j/pdf/ClassLoadingInOC4J_WP.pdf Такое впечаление что нужно написать свой classLoader который бы делал то что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2005, 17:25
|
|||
|---|---|---|---|
Oracle Application Server |
|||
|
#18+
albertislamovТак это все равно не решает проблему найдется левый класс в родительском ClassLoader, а класс из бибилотеки моего приложения не загрузится. Или я опять где-то ошибаюсь?Что тебе мешает найти нужные классы JDBC "раньше"? Например, поместив их в ear. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2005, 17:58
|
|||
|---|---|---|---|
|
|||
Oracle Application Server |
|||
|
#18+
stdioЧто тебе мешает найти нужные классы JDBC "раньше"? Например, поместив их в ear. Это на мой взгляд тоже не решает проблему. Ведь проблема заключается в том что class старой версии драйвера уже загружен в кэш родительского classLoader (например другим приложением) и соотвественно при поиске класса (ведь вначале идет иерархический поиск по кэшам, а уже потом идет поиск по другим файлам которые доступны classloader'у) он будет найден у родителя - т.е. старая версия и обращения к файлам уже не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2005, 18:31
|
|||
|---|---|---|---|
Oracle Application Server |
|||
|
#18+
albertislamovЭто на мой взгляд тоже не решает проблему. Ведь проблема заключается в том что class старой версии драйвера уже загружен в кэш родительского classLoader (например другим приложением) и соотвественно при поиске класса (ведь вначале идет иерархический поиск по кэшам, а уже потом идет поиск по другим файлам которые доступны classloader'у) он будет найден у родителя - т.е. старая версия и обращения к файлам уже не будет.1) Что такое кэш загрузчиков классов? 2) Читаем бумажку ещё раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2005, 18:38
|
|||
|---|---|---|---|
Oracle Application Server |
|||
|
#18+
Сначала срабатывает загрузчик классов модуля - он в первую очередь будет искать JDBC библиотеку, пришедшую с EAR-архивом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.06.2005, 15:31
|
|||
|---|---|---|---|
|
|||
Oracle Application Server |
|||
|
#18+
Спасибо stdio, с подтянулись JDBC драйвера. Точнее сказать похоже подтянулись - т.к. начали валится ошибки.. :-(( Причем ошибки очень интересные делаю lookup как результат мне возвращается класс com.evermind.sql.OrionCMTDataSource, причем он при приведении к javax.sql.DataSource валит ClassCastException, хотя этот класс является наследником от класса который implements javax.sql.DataSource. Есть у кого-ниубдь идеи что за фигня? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2152210]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 388ms |

| 0 / 0 |
