2014-11-01 5 views
0

Я бегу приложение 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 */ 

будет принимать соединение из пула при вводе его объема и освободит его только из области действия

Я делаю что-то неправильно или я что-то не так понял о пуле соединений в этом стеке программного обеспечения?

ответ

2

Connections - это счетчик количества попыток подключения с момента последнего запуска mysqld. Этот счетчик всегда увеличивается; он не уменьшается при завершении соединений.

Этот счетчик не является числом текущих соединений - это Threads_connected.