Использование пула управляемых приложений приложений на сервере приложений Java EE - PullRequest
2 голосов
/ 23 июня 2010

Безопасно ли запускать пул соединений с базой данных (например, Commons DBCP или c3p0) как часть приложения, развернутого на сервере приложений, таком как Glassfish или Websphere? Существуют ли какие-либо дополнительные шаги по сравнению с автономным приложением, которые необходимо предпринять для обеспечения безопасности или производительности?


Обновление, уточнение причины - в моем случае использования могут потребоваться новые источники данных, которые должны быть определены опытными конечными пользователями во время выполнения - при желании изменение источников данных является частью функциональности приложения. Я не думаю, что смогу создавать и использовать пулы, управляемые контейнером, на лету?

Ответы [ 3 ]

1 голос
/ 23 июня 2010

AFAIK это работает, но это, конечно, ускользнет от приложения. функции управления сервером.

Кроме того, я не совсем уверен, как происходит отключение или повторное развертывание и правильно ли расположены подключения. Но это может считаться незначительной деталью безопасности: при неправильной утилизации соединения, я полагаю, просто прекратят работу. Я также не совсем уверен, работает ли он для источника данных XA, который интегрируется с диспетчером распределенных транзакций.

Тем не менее, используя приложение. Пул серверов обычно заключается в настройке имени JNDI в файле конфигурации. Затем вы получаете мониторинг, настройку из консоли администратора, управление загрузкой и т. Д. Бесплатно.

1 голос
/ 23 июня 2010

Фактически, вы можете создавать управляемые контейнером источники данных в зависимости от того, какую AS вы используете.

Например, Weblogic имеет обширный API управления , который используется, например, их собственным WLST (Weblogic Shell) для настройки серверов с помощью сценариев. Это, конечно, Java API. У него есть методы для создания и настройки источников данных.

Другой маршрут - JMX-конфигурация . Все современные AS представляют себя как JMX-контейнеры. Вы также можете создавать источники данных через JMX.

Все, что вам нужно, это предоставить свои права администратора приложения (то есть предоставить имя пользователя / пароль).

Преимущество DS, управляемой контейнером, заключается в том, что она может быть кластеризована. Кроме того, им может управлять человек, использующий стандартный интерфейс AS.

Если это не работает для вас, то, конечно же, вы можете создавать управляемые приложениями DS в любое время и в любом количестве. Просто имейте в виду, что он будет привязан к определенному управляемому серверу (если вы не реализуете его кластеризацию вручную).

0 голосов
/ 23 июня 2010

Я не понимаю, почему вы хотите.Почему бы не использовать пул соединений, предоставленный вам сервером приложений?

Обновление: я не верю, что можно создавать новые пулы на лету без необходимости отказов сервера приложений, но я могу ошибаться.Если это правильно, я не верю, что Commons DBCP или C3P0 помогут.

...