Когда вы получаете источник данных через поиск JNDI, это общий ресурс, настроенный в вашем контейнере. Он управляется контейнером, а не приложением, поэтому закрывать его не требуется (нет способа).

ление: по-видимому, Tomcat, начиная с 7.0.11, закрывает для вас DataSource, поэтому он не доступен в contextDestroyed веб-приложения. Видеть:https://issues.apache.org/bugzilla/show_bug.cgi?id=25060

Здравствуй,

Я использую Spring 3.0 и Java 1.6.

Если я получу источник данных таким образом:

<bean id="dataSource" class="my.data.Source" destroy-method="close">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:home"/>
    <property name="username" value="user"/>
    <property name="password" value="pw"/>
</bean>

затем источник данных закрывается при уничтожении компонента.

Если я получу источник данных, как это:

<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/db" />

тогда я должен явно закрыть источник данных в моем слушателе contextDestroyed?

Спасибо,

Павел

Ответы на вопрос(3)

Ваш ответ на вопрос