Я бегу приложение Scala на этом стек программного обеспечения:Управление MySQL соединения с использованием HikariCP и Slick
Mac OS X 10.6.8 Snow Leopard
MySQL 5.1.46
Java 1.6.0_65
Scala 2.11.2
ConnectorJ 5.1.33
HikariCP 2.1.0
Slick 2.1.0
Я не могу получить, почему открытые соединения с MySQL держать остаются открытыми даже после закрытия приложения Scala вниз. Единственный правильный аспект заключается в том, что Threads_connected падает от 16 до 1 (то есть консоль, с которой я выполнение команды «Show Status».
mysql> show status like '%onn%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| Aborted_connects | 0 |
| Connections | 77 |
| Max_used_connections | 19 |
| Ssl_client_connects | 0 |
| Ssl_connect_renegotiates | 0 |
| Ssl_finished_connects | 0 |
| Threads_connected | 1 |
+--------------------------+-------+
7 rows in set (0.00 sec)
Странная вещь я всегда вижу открытые соединения с DB, растущий по максимальному количеству открытых подключений, установленных в пуле соединений (HikariCP maximumPoolSize) каждый раз, когда я запускаю приложение, поэтому могу утверждать, что соединения никогда не возвращаются в пул соединений для повторного использования.
Согласно Slick с использованием
db withSession { implicit session =>
/* entering the scope, getting 1 conn from the pool */
/*
do something within the session using the connection I've gotten
*/
}
/* here I'm out of the 'withSession' scope, and the
connection should be released */
будет принимать соединение из пула при вводе его объема и освободит его только из области действия
Я делаю что-то неправильно или я что-то не так понял о пуле соединений в этом стеке программного обеспечения?