Ответ 1
Вам не нужно объединять источник данных, полученный из JNDI, поскольку он уже объединен:)
Единственная разница между наличием пула контейнера-менеджера v.s. пул приложений - это то, что в 1-м случае у вас есть возможность контролировать рабочую нагрузку в пуле с использованием стандартных интерфейсов (например, консоли JBoss). Затем администратор сервера приложений управляет решением об увеличении размера пула, если это необходимо. Он также может переключать приложения на другой сервер БД (например, планируемый переход от MySQL к Oracle). Недостатком является то, что вам нужно немного больше усилий, чтобы настроить исходный источник данных JNDI для ваших модульных тестов (см. здесь).
И во втором случае, да, вам нужно упаковать либо DBCP, либо c3p0 плюс драйвер JDBC вместе с вашим приложением. В этом случае собрать статистику о всех пулах для всего приложения, запущенного в Tomcat, не так-то просто. Кроме того, миграция на новый драйвер JDBC (MySQL 4 до MySQL 5) не может быть выполнена для всех приложений одновременно. И свойства подключения подключены к вашему приложению, даже если вы используете файл .property
(поэтому изменение требует повторной сборки и перераспределения проекта). Возможно, вам не нужно все это, так как у вас есть только приложение, одна БД и служебные накладные расходы.
Другие темы на эту тему:
- 10 пулов с 5 соединениями v.s. 1 пул с 50 подключением (это происходит, когда каждое приложение начинает использовать его собственный пул).
- DBCP vs C3P0
- Реализации пулов соединений
- Зачем использовать пул соединений?