我在配置使用连接池时建立与Oracle数据库的新连接时使用的超时时遇到问题。
我在Tomcat和XML中使用DBCP
来配置资源。
在源代码中,我得到一个DataSource
和这样的连接:
DataSource ds = (DataSource) envCtx.lookup("jdbc/anncDB");
Connection conn = ds.getConnection();
如果网址中指定的IP可用,则此方法可以正常工作。但如果它不可用,则在getConnection()
返回前需要3分钟。我需要将其配置为更小。
我已尝试setLoginTimeout()
,但这不起作用。在失败前做ds.setLoginTimeout()
需要3分钟。
有什么想法吗?
答案 0 :(得分:0)
您说您使用XML来声明资源。 所以我想你有类似的东西:
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/javatest"/>
在这种情况下,请观看maxWait属性。 在documentation中,它指定了等待数据库连接可用的最长时间(示例中为10秒)。
希望这个帮助