2014-01-05 7 views
1

Я делаю небольшую программу в java, которая будет запускаться на встроенном устройстве. Целью этого является сохранение некоторых значений (скажем, температуры) в базе данных, расположенной в облаке.Постоянное подключение к базе данных

  • Сценарий 1: получает данные сохраняются весь возможный цикл (подключение-магазин-магазин-магазин ... -Отсоедините)
  • Сценарий 2: получает данные сохраняется каждые 5 минут (подключение-магазин-ждать-магазин- подождите ... -Отсоедините)
  • Сценарий 3: получает данные хранятся каждый час

что лучше поддерживать постоянное соединение с базой данных или для подключения только в случае необходимости? Зачем?

Что произойдет, если будет установлено 100 из этих устройств (никогда не может быть достаточно данных о температуре)?

ответ

1

Если есть особые обстоятельства, почти всегда подключайте только при необходимости. Существует несколько преимуществ:

  • Ресурсы хранятся в кратчайшие сроки, максимально увеличивая их доступность.
  • Срок службы соединений контролируется в одной точке кода, что минимизирует вероятность утечки ресурсов.
  • Данные записываются часто, что сводит к минимуму потерю данных из-за сбоев.
  • Retry логика проще, так как состояние соединения локализованы в одной точке в коде

В общем: Открытые соединения как можно позже, а на короткое время, как это возможно, и закрыть как можно быстрее

(системы баз данных Многие реализации пула соединений, что делает этот процесс очень эффективно)

Why always close Database connection?

+0

в дополнение к @ Митча ответ, если вы продолжаете соединение, а затем он опустился, добавив всю логику для восстановления и повторения - это огромный PIA. –

+0

Спасибо за ваш ответ! Одна вещь, хотя, не постоянное соединение и разъединение также занимают ресурсы? Особенно в тех случаях, когда температура должна регистрироваться на секунду (или даже более высокие частоты)? – FoiaZoig

+0

Поиск пула соединений для вашей конкретной СУБД и среды выполнения. –

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