Проблема горячего развертывания в Tomcat с Proxool и Oracle - PullRequest
0 голосов
/ 08 мая 2009

У меня проблема с проксулом и драйвером оракула в Tomcat.

Веб-приложение, которое я использую, содержит файл jar веб-службы, использующий metro и сервлет для инициализации / запуска пула proxool. Пул Proxool настроен с оракулом. Когда служба вызывается, она выбирает соединение из пула, выполняет инструкцию и возвращает. После этого я закрываю набор результатов, оператор и соединение в методе обслуживания.

Когда я сейчас пытаюсь выполнить горячую отмену развертывания веб-приложения, сервлет останавливает пул ProxoolFacade.shutdown (); в методе уничтожения.

Проблема в том, что горячее развертывание не может быть завершено, поскольку драйвер Oracle ojdbc5.jar нельзя удалить из папки извлеченного веб-приложения.

Попытка сделать то же самое с базой данных сервера SQL и драйвером jtds работает без этой проблемы.

Используемые версии: Apache Tomcat 6.0.18 Oracle 11g JDBC драйвер 11.1.0.6.0 Proxool 0,9,1

У кого-нибудь есть идея?

С уважением, Тимо

1 Ответ

0 голосов
/ 08 мая 2009

Необходимо добавить драйвер Oracle к экземпляру Tomcat и настроить Tomcat JNDI с данными Oracle .

Таким образом, драйвер останется в живых, когда приложение будет завершено, а Tomcat будет контролировать пул соединений с БД. Причиной вашей проблемы является то, что некоторые драйверы БД «подключаются» к ВМ. Это означает, что Tomcat не может выгрузить классы во время повторного развертывания - вокруг все еще есть ссылки.

Я бы даже посоветовал попытаться переместить проксула на сервер Tomcat, и Tomcat будет управлять пулами за вас. Это сделало бы горячее развертывание намного быстрее и надежнее, даже если вы пропускаете соединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...