Разъяснение пула подключений - PullRequest
1 голос
/ 06 марта 2012

Я использую пул соединений со следующими значениями:

Минимальные соединения = 1, политика очистки = весь пул, время ожидания = 0.

У меня есть следующие запросы:

  1. Если у меня 5 соединений и соединения должны быть очищены, то все 5 из них будут очищены или 1 соединение будет сохранено (поскольку минимальное соединение установлено на 1)?
  2. Еслинеобходимо поддерживать минимальное соединение, тогда какое соединение будет выбрано, т.е. будет использовано самое новое, самое старое или любое другое соединение?
  3. Есть ли способ, с помощью которого я могу явно вернуть соединение логически обратно в пул (скажем, используязаявления типа connection.close () или использование похожих операторов)?
  4. Есть ли способ узнать тип пула подключений, который я использую?

1 Ответ

1 голос
/ 06 марта 2012
  1. Политика очистки обычно относится к устаревшим соединениям. «Чистка пула» означает, когда Обнаружено разорванное соединение, очистите пул, а не только разорванное connnection. Если очистить все соединения, он очистит пул, а затем создаст 1 новое. Любой, кто ожидает подключения, будет блокироваться до тех пор, пока соединение не будет создано в пуле.
  2. Никто в переполнении стека, вероятно, не мог ответить на это вопрос ... а разве это имеет значение? Зачем вам когда-либо "знать" это?
  3. Да, завершите текущую транзакцию, вернувшись из ваш метод, и пусть он фиксирует или откат. Если вы используете XA (глобальные) транзакции, вы должны будете сделать с глобальным сделка.
  4. Определить "тип"? Какие у нас варианты?

РЕДАКТИРОВАТЬ 4: Если вы находитесь в контейнере приложения (который звучит так, как вы), вы не можете определить «Тип». Контейнер предоставляет собственную реализацию. Например, IBM Websphere предоставляет реализацию IBM, которая является собственностью IBM. (Бывает и сосать)

...