Как увеличить таймаут подключения к БД

У меня время ожидания соединения в БД. Я уже установил тайм-аут подключения на «60 секунд» в БД. Я получил ошибку ниже. После подключения к БД люди обнаружили это. Приведенная ниже ошибка не является тайм-аутом команды запроса, а в основном связана с установкой соединения Mule с тайм-аутом БД. Я сомневаюсь, что здесь время подключения = 60 секунд (означает, что, когда он достиг БД, время ждать, чтобы выполнить запрос). Это правильно?

Но как тогда увеличить время ожидания подключения?, Перейдя по ссылке http://www.mulesoft.org/documentation/display/current/Database+Connector+Examples.

Мыслили предоставить maxWaitMillis = 20000, как показано ниже. Но не уверен, что это правильно (потому что в документе говорится об опросе соединений и кешировании, но я не хочу, чтобы кеш был здесь повсюду).

Это нормально, без указания другого значения внутри опроса соединения. Просто указание тайм-аута maxWaitMilli правильно для моего случая, или я ошибаюсь. Все, что мне нужно, это устранить ошибку, указанную ниже. Пожалуйста, предложите.

   Error:java.sql.SQLException: Cannot get connection for URL jdbc:sqlserver://c01.company.com;database=**;user=***;password=***** :    The TCP/IP connection to the host 01.company.com, port 022 has failed. Error: "connect timed out. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.". (org.mule.module.db.internal.domain.connection.ConnectionCreationException). Message payload is of type: String        


  <db:generic-config name="DB" url="${db}"
    driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
    doc:name="Generic Database Configuration" connectionTimeout="60">
    <db:pooling-profile maxWaitMillis="20000"/>
</db:generic-config>

 <db:stored-procedure config-ref="DB" doc:name="GetOrderXML">
        <db:parameterized-query><![CDATA[{call GetDetailXML('10', ?)}]]></db:parameterized-query>
        <db:in-param name="ln" type="CHAR" value="#[flowVars['ID']]"/>

    </db:stored-procedure>

Заранее спасибо.


person star    schedule 30.04.2015    source источник


Ответы (1)


Атрибут maxWaitMillis в профиле пула db - это количество миллисекунд, в течение которого клиент, вызывающий getConnection (), будет ждать регистрации или получения соединения, когда пул исчерпан. Ноль означает ждать бесконечно.

Другое значение тайм-аута - это тайм-аут соединения, в течение которого соединение с базой данных остается надежно активным в течение периода неиспользования перед тайм-аутом и требованием повторного входа в систему.

Оба по ссылке ниже: http://www.mulesoft.org/documentation/display/current/Database+Connector+Reference

Тайм-аут запроса был доступен в старом соединителе jdbc (который, как я предполагаю, установит атрибут queryTimeout оператора JDBC), но я не могу найти в новом соединителе db.

http://www.mulesoft.org/documentation/display/current/JDBC+Transport+Reference

person Alaa Abed    schedule 30.04.2015
comment
Спасибо за подробности. Не могли бы вы взглянуть на мой stackoverflow.com/questions/29979925/. Мне нужно повторить попытку БД, так как у меня версия 3.5.1, у меня нет стратегии переподключения. Как я могу выжить. - person star; 01.05.2015