2015-01-01 2 views
0

Я на стадии разработки приложения, и я не делаю много вызовов sql server \ cloud, но по некоторым причинам у меня в среднем 400 часов использования в месяц.google app engine cloud sql connection никогда не закрывается

Когда я смотрю на панель управления активными соединениями облаков sql, я вижу, что всегда есть хотя бы одно активное соединение, но в операциях read \ write обычно на 0, кроме случайных небольших ударов.

Я создаю новое соединение каждый раз, когда я делаю запрос на сервер \ облако sql и закрываю соединение каждый раз, когда возвращаю ответ.

код соединения (я следовал гостевому учебнику \ примера)

Class.forName("com.mysql.jdbc.GoogleDriver"); 
this.dbUrl = "jdbc:google:mysql://trivia9991:triviadb?user=root"; 
this.dbConn = DriverManager.getConnection(dbUrl); 

код соединение закрытия

this.dbConn.close(); 

Как это может держать соединение открытым в любое время ?

ответ

1

Если код закрытия соединения фактически запущен, это не должно быть проблемой. Вы должны убедиться, что соединение закрыто, даже если исключение происходит перед началом работы.

Возможно также, что соединение, которое вы создали с помощью клиента командной строки MySQL, все еще открыто.

Вы можете проверить, какие подключения открыты, подключив их с помощью клиента командной строки MySQL и выполнив инструкцию SHOW PROCESSLIST;.

+0

Благодаря @David, я добавлю закрывающее соединение, даже если возникает исключение. Но здесь это не так, я уверен, что команда закрытия соединения запущена (у меня есть отладочные распечатки), и все же у меня есть 3 активных соединения, когда нет запущенных запросов и только два подключения в списке процессов, один - это шоу запрос, а другой - в команде сна – Ido

Смежные вопросы