DataSource getConnection()使用jndi配置连接超时

时间:2015-09-29 13:31:05

标签: java database-connection jndi

我在配置使用连接池时建立与Oracle数据库的新连接时使用的超时时遇到问题。

我在Tomcat和XML中使用DBCP来配置资源。

在源代码中,我得到一个DataSource和这样的连接:

DataSource ds = (DataSource) envCtx.lookup("jdbc/anncDB");
Connection conn = ds.getConnection();

如果网址中指定的IP可用,则此方法可以正常工作。但如果它不可用,则在getConnection()返回前需要3分钟。我需要将其配置为更小。

我已尝试setLoginTimeout(),但这不起作用。在失败前做ds.setLoginTimeout()需要3分钟。

有什么想法吗?

1 个答案:

答案 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秒)。

希望这个帮助