我在DB中有连接Timeout。我已经将连接Timeout设置为' 60sec'在DB中。我得到了以下错误。与DB人联系后,发现了。以下错误不是查询命令超时,主要是建立Mule到DB超时的连接。我有个疑问 这里连接时间= 60秒(表示一旦达到DB,等待执行查询的时间)。这是对的。
但是如何增加连接超时?,通过链接 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>
提前致谢。
答案 0 :(得分:1)
maxWaitMillis属性是客户端调用getConnection()等待在池耗尽时签入或获取Connection的毫秒数。零意味着无限期地等待。
另一个超时值是连接超时,它是指超时之前数据库连接在非使用期间保持安全活动的时间,并要求再次登录。
以下链接: http://www.mulesoft.org/documentation/display/current/Database+Connector+Reference
查询超时在旧的jdbc连接器中可用(我假设它将设置JDBC语句queryTimeout属性)但我在新的db连接器中找不到。
http://www.mulesoft.org/documentation/display/current/JDBC+Transport+Reference