Hi:
We tried to set the login timeout value of the basic data source but got the exception. Is this feature (Login timeout is not supported.)? We want the connection pool not to wait forever if the database is too busy. Any ideas? Thanks.
In the code:
BasicDataSource bds = new BasicDataSource();
bds.setDriverClassName("oracle.jdbc.driver.OracleDriver");
bds.setUsername("my username");
bds.setPassword("my password");
bds.setUrl("jdbc:oracle:thin:@mrhost:1521:test");
bds.setMaxActive(2);
bds.setLoginTimeout(5);
Result:
Exception in thread "main" java.lang.UnsupportedOperationException: Login timeout is not supported.
Marking as 1.3 fix version. Javadoc (or enhancement) patches welcome.
If what you want is for the datasource to timeout rather than waiting indefinitely on a connection when all connections in the pool are busy, you can set the maxWait property, which is a pool property that controls how long the pool will wait for a an object to become available to return to the client. If what you really want is for the driver to timeout when the pool uses it to open a physical connection, you could try setting the loginTimeout in the connection URL provided to setUrl. It looks like the Oracle driver supports that, though I have not tried this.