0

このソフトウェア スタックで 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

Scala アプリをシャットダウンした後も、MySQL への接続が開いたままになる理由がわかりません。唯一の正しい側面は、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 */

スコープに入るときにプールから接続を取得し、スコープの外で解放します

このソフトウェア スタックでの接続プールの使用に関して何か間違ったことをしたのでしょうか?

4

1 に答える 1