Могу ли я установить параметры пула соединений Tomcat JNDI в своем приложении Spring-MyBatis?

Среда:
Tomcat 7
JNDI
Spring-MyBatis
Нет JTA — только общий пул

Проблема: не удается заставить пул соединений работать, как рекламируется. Я не могу найти ни одного примера этого, который не использует автономный диспетчер транзакций или который не ставит все настройки в войну, что делает JNDI бессмысленным. Мне сказали, что JTA является излишним для этого приложения и что мы должны придерживаться пула общих ресурсов. Это имеет смысл, но я не вижу способа настроить пул, если мы сделаем это таким образом.

Итак... как мне настроить пул соединений, не помещая настройки в военный файл И не используя автономный менеджер транзакций? Можно ли это сделать без полноценного сервера приложений Java EE? Мы просто переходим на Tomcat с другого продукта, который на самом деле является полноценной Java EE, поэтому я думаю, что это может быть Container vrs. Проблема с сервером приложений.

Странная часть заключается в том, что мы могли и использовали JNDI, но объединение определенно неправильно.

Вот один пример, который, вероятно, работает, но зачем возиться с JNDI, если настройки будут в META-INF/context.xml?:

Пример MyBatis JNDI


person user447607    schedule 15.11.2012    source источник
comment
Если JTA является излишним, то JNDI также является излишним.   -  person Adam Gent    schedule 16.11.2012
comment
...что не означает, что моим архитекторам это не нужно. ;-) Они переходят с полноценного JEE-сервера на Tomcat, но пока этого не понимают.   -  person user447607    schedule 07.12.2012


Ответы (1)


Даже с context.xml это по-прежнему настройка на уровне контейнера. Но это удобный способ развернуть все в одном устройстве, вместо того чтобы создавать пул соединений перед развертыванием файла WAR.

JNDI предназначен для сохранения общей конфигурации вашего приложения. Если вы возьмете свой WAR и развернете его, например, в WebSphere, он проигнорирует файл context.xml. Но WebSphere увидит, что у вас есть ссылка на ресурс JDNI в файле web.xml, и проведет вас через создание источника данных. Та же идея, что и у Tomcat, просто другой способ сделать это.

Если вы на 100 % уверены, что это приложение будет работать только в Tomcat, вам не обязательно использовать JNDI. Но это избавит вас от проблем позже, если вы перейдете в другой контейнер.

person AngerClown    schedule 30.11.2012
comment
Tomcat - это требование, поэтому Tomcat должен быть. ;-) - person user447607; 07.12.2012
comment
С тех пор я понял это. Проблема заключалась в том, что собственный пул MyBatis вызывает странные события, если вы не включаете файл конфигурации MyBatis. Наличие одного в конфигурации Spring нелогично, но, тем не менее, необходимо, если вам нужны пулы, управляемые контейнером. Мой почти пустой. - person user447607; 07.12.2012