В MySQL утечка соединения не происходит согласно коду JSP.
Сервер: JBoss 7
Версия MySQL: 5.7
MySQL-connector-java-5.1.18.jar
Чтобы обеспечить утечку соединения из кода Java, я получаю следующую ошибку в файле server.log:
[org.jboss.jca.core.api.connectionmanager.ccm.CachedConnectionManager] (http- / 0.0.0.0: 80-7) IJ000100: Закрытие соединения для вас. Пожалуйста, закройте их самостоятельно: org.jboss.jca.adapters.jdbc.jdk6.WrappedConnectionJDK6@73a1aa: java.lang.Throwable: STACKTRACE
JSP code:
Statement st = null;
ResultSet rs = null;
Connection conn = null;
DataSource dataSource = null;
try{
dataSource = (DataSource) new InitialContext().lookup("java:/MySql");
conn = dataSource.getConnection();
st = conn.createStatement();
rs=st.executeQuery("select * from test.users");
} catch (Exception e) {
}
standalone.xml code
<datasource jta="true" jndi-name="java:/MySql" pool-name="MySql" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:mysql://localhost:3306/test?zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&autoReconnect=true</connection-url>
<driver>com.mysql</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>web</user-name>
<password>123</password>
</security>
<timeout>
<idle-timeout-minutes>5</idle-timeout-minutes>
</timeout>
<statement>
<prepared-statement-cache-size>32</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
</datasource>
Я заходил на вышеуказанную страницу JSP 50 раз, и в списке процессов MySQL должно быть 50 спящих соединений. Но этого не происходит. Ниже приведены результаты:
Я выполнил следующий запрос в браузере запросов MySQL, чтобы определить утечку соединения:
выберите идентификатор, хост, команду, время, информацию из INFORMATION_SCHEMA.processlist, где user = 'web';
Фактический результат: отображаются только 7 спящих соединений
Ожидаемый результат: должно быть 50 спальных соединений
Пожалуйста, помогите мне понять поведение и исправить его, если я ошибаюсь.
Заранее спасибо