2015-03-22 2 views
2

Предпосылка: hostB не может быть подключенTomcat - База данных пула соединений проблема

При использовании context.xml (A), каждое соединение данных проверяется на Tomcat в запуске (бросание ошибки при инициализации соединения данных пула для hostB), тогда как с context.xml (B), кажется, ничего не проверяется без ошибок подключения к базе данных.

Кто-нибудь знает, почему это происходит?

Благодаря

↓ context.xml (A)

<Resource name="jdbc/AAA" 
        initialSize="8" 
        minIdle="8" 
        maxWait="300000" 
        removeAbandoned="true" 
        removeAbandonedTimeout="60" 
        auth="Container" 
        type="javax.sql.DataSource" 
        username="uname" 
        password="password" 
        driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
        url="jdbc:sqlserver://hostA:port;databaseName=sqlserverDB" /> 

<Resource name="jdbc/BBB" 
        initialSize="8" 
        minIdle="8" 
        maxWait="300000" 
        removeAbandoned="true" 
        removeAbandonedTimeout="60" 
        auth="Container" 
        type="javax.sql.DataSource" 
        username="uname" 
        password="password" 
        driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
        url="jdbc:sqlserver://hostB:port;databaseName=sqlserverDB" /> 

↓ context.xml (B)

<Resource name="jdbc/AAA" 
        auth="Container" 
        type="javax.sql.DataSource" 
        username="uname" 
        password="password" 
        driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
        url="jdbc:sqlserver://hostA:port;databaseName=sqlserverDB" /> 

<Resource name="jdbc/BBB" 
        auth="Container" 
        type="javax.sql.DataSource" 
        username="uname" 
        password="password" 
        driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
        url="jdbc:sqlserver://hostB:port;databaseName=sqlserverDB" /> 

ответ

2

Сначала надо initilsize установить и minIdle, поэтому кот будет пытаться открыть 8 соединений при инициализации. Второй сидит без дела, пока он не понадобится.

+0

Согласно [link] (https://tomcat.apache.org/tomcat-8.0-doc/jdbc-pool.html), через defalut, DBCP создает 10 подключений при запуске пула. Есть ли разница между явным определением атрибута initialSize и неявным использованием значения по умолчанию? –

+0

жаль, что я забыл упомянуть и о мини-юнке, и это главная причина в вашем случае. Первоначальный размер был равен 0 по defualt. – Zielu

+0

Основываясь на моем наблюдении, задано ли минимальное значение, если для параметра initialSize установлено значение 0, tomcat не будет пытаться открыть соединения db. DBCP: default initialSize = 0 Tomcat JDBC: default initialSize = 10 –

 Смежные вопросы

  • Нет связанных вопросов^_^