Управление подключениями MySQL с использованием HikariCP и Slick

Я запускаю приложение Scala в этом программном стеке:

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)

Странно то, что я всегда вижу, как количество открытых соединений с БД увеличивается из-за максимального количества открытых соединений, установленного в пуле соединений (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 */

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

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

1 ответ

Решение

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

Этот счетчик не количество текущих подключений - это Threads_connected,

Другие вопросы по тегам