Пул соединений JDBC для сервлетов - PullRequest
0 голосов
/ 10 февраля 2012

В настоящее время я использую отдельный класс DBConnectionManager для обработки своего пула соединений, но я также понял, что это неправильный путь, поскольку сервлет не вызывал один и тот же пул каждый раз, когда выполняется doGet (). *

  1. Может кто-нибудь объяснить мне, почему происходит вышеизложенное?
  2. Является ли JNDI подходом для использования сервлетов Java с tomcat для правильного создания пула соединений?

У меня есть ссылки на 2 статьи, это правильный способ реализации пула соединений с сервлетами?

http://www.javaranch.com/journal/200601/JDBCConnectionPooling.html

http://onjava.com/onjava/2006/04/19/database-connection-pooling-with-tomcat.html

Можно ли сохранить объект db manager в контексте следующим образом:

mtdb = (MTDbManager) context.getAttribute("MTDBMANAGER");
if (mtdb == null) {
            System.out
                    .println("MTDbManager is null, reinitialize MTDbManager");              

            initMTDB(config);
            context.setAttribute("MTDBMANAGER", mtdb);
        }

А затем я вызываю mtdb.getInstance (). GetConnection (), и он всегда будет ссылаться на этот объект.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 10 февраля 2012

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

0 голосов
/ 10 февраля 2012

Взгляните и используйте C3P0 вместо того, чтобы использовать свое собственное решение: http://sourceforge.net/projects/c3p0/

...