На самом деле я не могу понять, почему это происходит. Я запускаю некоторые корпоративные программы, от EJB до веб-приложения. Мой EJB использует MyBatis
с моей почтой Postgres, в то время как он развернут с моим веб-приложением на примере JBoss-AS 7
. на самом деле JBoss падает из-за сбоев соединений из пула, который я настроил на моем источнике данных JNDI в standalone.xml
.MyBatis JNDI с JBoss не закрывает соединения
Мой источник данных сконфигурирован, как это в standalone.xml
:
<datasource jndi-name="java:jboss/datasources/MyDBName" pool-name="MyDBName" enabled="true" use-java-context="true">
<connection-url>jdbc:postgresql://localhost:5432/My_DB</connection-url>
<driver>postgresql-driver</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>username</user-name>
<password>password</password>
</security>
</datasource>
Я настроил мой источник данных, как это в mybatis-config.xml:
<transactionManager type="MANAGED">
<property name="closeConnection" value="false"/>
</transactionManager>
<dataSource type="JNDI">
<property name="data_source" value="java:jboss/datasources/MyDBName"/>
</dataSource>
Я также попытался вручную закрывайте SQLSession в моем DAO каждый раз, когда я его использую, но ничего не произошло.
Любое предложение?
Итак, ваше предложение - отслеживать как jboss, так и mybatis и видеть, кто собирается «с ума»? – abierto
Я решил несколько проблем с помощью удаленной отладки. Код не так уж трудно понять, особенно если это вызвано большой болью :) –