Прорваться через пул соединений JNDI (настроить пул соединений через интерфейс управления под Tomcat5.5)
Автор:Eve Cole
Время обновления:2009-07-03 16:56:20
Разрыв пула соединений JNDI - -
После нескольких дней упорной работы я наконец-то могу подключиться к пулу соединений. Я уже ссылался на многие посты героев по этому поводу. Теперь запишу сюда несколько проблем, возникших за последние несколько дней:
1. Поместите три драйвера jdbc (обязательно) в папку tomcat_homecommon, которые можно загрузить с веб-сайта Microsoft. Имя пользователя установленного SQLSERVER2k по умолчанию — sa, а пароль пуст, но не имеет значения, пуст ли пароль. Это означает, что пароль отсутствует, поэтому вы должны указать имя пользователя и пароль в своем URL-адресе. Если есть ошибка, которую нельзя указать в кавычках, обычно это связано с тем, что путь указан неправильно. Путь tomcat — tomcat_homewebapps, но используйте 5.5 .x, просто следуйте приведенному ниже методу. Нет необходимости настраивать путь и нет необходимости настраивать ссылку в youwebappWEB-INFweb.xml. Файл конфигурации server.xml версии tomcat5.5.x отличается от конфигурации tomcat5.0, ниже приведены три метода настройки в tomcat5.5.x. Если конфигурация неверна, javax.naming.NameNotFoundException: Name. не привязан в этом методе контекстной ошибки 1. Глобальный пул подключений к базе данных
1. Настройте пул соединений через интерфейс управления или добавьте его напрямую в GlobalNamingResources в tomcatconfserver.xml.
<Resource name="jdbc/mydb" type="javax.sql.DataSource" пароль="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
2. Добавьте следующее в контекст tomcatwebappsmyappMETA-INFcontext.xml:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
Вот и все.
Способ 2. Глобальный пул подключений к базе данных
1. То же, что и выше.
2. Добавьте следующее в контекст tomcatconfcontext.xml:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
Способ 3. Пул подключений к локальной базе данных необходимо добавить только в контекст tomcatwebappsmyappsMETA-INFcontext.xml:
<Resource name="jdbc/mydb" type="javax.sql.DataSource" пароль="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
Описание параметра:
driveClassName: полное имя класса драйвера JDBC;
maxActive: максимальное количество доступных экземпляров, которые можно выделить из пула соединений одновременно;
maxIdle: максимальное количество соединений, которые могут одновременно простаивать в пуле соединений;
maxWait: максимальный таймаут в миллисекундах;
пароль: пароль пользователя;
url: URL-соединение с JDBC;
пользователь: имя пользователя;
validationQuery: используется для запроса простаивающих соединений в пуле.
Все три вышеуказанных метода доступны в Tomcat 5.5.4. Кроме того, драйвер jdbc для сервера sql — это sql server jdbc (sp3), загруженный с веб-сайта Microsoft.
4. Ошибка org.apache.tomcat.dbcp.dbcp.SQLNestedException: невозможно создать PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Ошибка при установке сокета.) Это небольшая проблема, поскольку моя служба SQLSERVER2K была изменена на ручную, поэтому вам придется вручную запускать SQLSERVER2K после каждого запуска. Поскольку он запускался без запоминания, сообщается о некоторых ошибках, поэтому, если вы часто используете SQLSERVER2K, лучше не менять его на запуск вручную.