Проблема с дескриптором подключения к базе данных

В настоящее время я тестирую Google Search Appliance (GSA) для обхода базы данных и создал коннектор для обработки запросов к базе данных и прочего.

У GSA есть интервал сканирования, что означает, что он будет многократно сканировать базу данных для обновления. Итак, мой вопрос:

  • Должен ли я создавать соединение и закрывать его каждый раз, когда GSA сканирует базу данных? (Скорость сканирования очень высока, что означает, что соединение будет неоднократно создаваться и часто закрываться).

  • Или я должен просто создать соединение и позволить ему запрашивать базу данных для каждого обхода? Проблема в том, что мне все равно не закрыть соединение при завершении работы системы.

Или другой лучший вариант?


person MikeNQ    schedule 26.11.2012    source источник


Ответы (2)


Используйте пул соединений, как сказал Викдор, но я бы посоветовал вам использовать BoneCP, так как это лучше производительности . Установите количество соединений в пуле, и тогда вам не придется беспокоиться об открытии и закрытии или сохранении соединения.

person Shamis Shukoor    schedule 26.11.2012

Вам следует использовать простую библиотеку пула подключений, например C3P0, и настроить количество подключений в соответствии с вашими требованиями. . Управление жизненным циклом соединения будет осуществляться библиотекой, и вы будете освобождены от установления соединения, разрыва его в периоды неактивности, повторного установления при необходимости и т. д.,

person Vikdor    schedule 26.11.2012