Должен ли я явно уничтожить пул соединений, используемый в качестве ресурса в Tomcat? - PullRequest
1 голос
/ 10 октября 2011

Мой проект заключается в создании веб-службы, которая будет подключаться к серверу XMPP и служить мостом для отправки сообщений клиентам XMPP (вызовы WS -> сообщения XMPP).Недавно я подумал о создании единого соединения, которое было бы общим для всех запросов (-> мой предыдущий вопрос).

Но мне сказали создать что-то более масштабируемое и подумать о пуле соединений,Я нашел очень полезный кусок кода здесь .Но я боюсь утечек памяти в контейнере Tomcat - я слишком много об этом читал;) Здесь у меня есть несколько вопросов:

  1. Если я укажу эту библиотеку как ресурс, онаавтоматически создается во время инициализации контекста.Как насчет утечек памяти, например, после выключения сервера?Они не уничтожаются автоматически?Я понимаю, что я должен уничтожить его вручную, создав ContextListener, но как мне его назвать?
  2. Если я добавлю в определение ресурса

     removeAbandoned="true" removeAbandonedTimeout="60"
    

    , это поможет уничтожить соединения зомбииз бассейна?Это правильное решение или просто своего рода восстановление после катастрофы?

Любая помощь будет высоко ценится, большое спасибо!

1 Ответ

0 голосов
/ 10 октября 2011

Если вы выключаете сервер, то вы выключаете JVM, и утечки ресурсов не будут иметь значения.Единственные утечки памяти, о которых вы, вероятно, читали в связи с Tomcat, - это проблема PermGen , которая мешает разработке веб-приложений в целом.Не беспокойтесь о пуле соединений.Это позаботится о себе.

...