Подключение к базе данных для подготовленных заявлений - PullRequest
1 голос
/ 04 февраля 2010

При использовании соединения ODBC с базой данных mysql время ожидания соединения истекает через 8 часов (по умолчанию).

Чтобы мое приложение было устойчивым, оно должно заново создать это соединение для выдачизапрос подготовленного оператора.

Можно ли создать новое соединение с базой данных для подготовленного оператора?

Имеет ли это смысл?

Похоже, что подготовленные операторы создаются на основе соединения.

Текущее решение:

  1. Повторное подключение
  2. Повторная подготовка запросов
  3. Выполнить запрос

Ответы [ 2 ]

0 голосов
/ 05 февраля 2010

Я думаю, что открывать соединение с базой данных SQL в течение 8 часов - плохая практика. У вас есть длительная операция, которая требует так много времени? Затем подумайте о наличии в вашей базе данных хранимой процедуры, которая должна записывать результаты во временную таблицу, которую вы можете проверить позже.

Но обычно приложение должно освободить соединение (и, ах, все подготовленные операторы с ним) как можно скорее. Чтобы ускорить открытие соединения, вы можете использовать пул соединений (он должен существовать и для ODBC). Пул соединений проверит, что соединение «живое», прежде чем возвращать его приложению, например, см. Параметр validationQuery для Java DBCP .

0 голосов
/ 04 февраля 2010

Нет, подготовленные заявления привязаны к соединению, а не наоборот. Ваш текущий способ обработки тайм-аут соединения в порядке.

...