You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Ondrej Tisler (JIRA)" <ji...@apache.org> on 2009/12/02 14:06:22 UTC
[jira] Commented: (DBCP-309) First example for FSContext is invalid
[ https://issues.apache.org/jira/browse/DBCP-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12784807#action_12784807 ]
Ondrej Tisler commented on DBCP-309:
------------------------------------
I use this code for registring JNDI inFSContext:
// JNDI with datasource
InitialContext ic = new InitialContext();
// Construct BasicDataSource reference
Configuration poolConfig = dbConfig.subset("datasource");
DriverAdapterCPDS cpds = new DriverAdapterCPDS();
cpds.setDriver(poolConfig.getString("driver.driverClassName"));
cpds.setUrl(poolConfig.getString("driver.url"));
cpds.setUser(poolConfig.getString("driver.username"));
cpds.setPassword(CryptPass.encryptPass(poolConfig.getString("driver.password")));
SharedPoolDataSource ds = new SharedPoolDataSource();
ds.setConnectionPoolDataSource(cpds);
ds.setDefaultAutoCommit(poolConfig.getBoolean("connection.defaultAutoCommit", true));
ds.setValidationQuery(poolConfig.getString("validation.validationQuery"));
ic.rebind(poolConfig.getString("[@jndi]"), ds);
log.info("JNDI datasource is inicialized");
next you can normaly use JNDI lookup:
InitialContext ic2 = new InitialContext();
ds = (DataSource) ic2.lookup(poolConfig.getString("[@jndi]"));
conn = ds.getConnection();
> First example for FSContext is invalid
> --------------------------------------
>
> Key: DBCP-309
> URL: https://issues.apache.org/jira/browse/DBCP-309
> Project: Commons Dbcp
> Issue Type: Bug
> Affects Versions: 1.2.2
> Reporter: Ondrej Tisler
> Priority: Trivial
>
> First example on page http://commons.apache.org/dbcp/guide/jndi-howto.html is invalid, with this code every call of
> InitialContext ic2 = new InitialContext();
> DataSource ds = (DataSource) ic2.lookup("jdbc/basic");
> Connection conn = ds.getConnection();
> conn.close();
> ends with new datasource with unclosed connection in it becase new Reference("javax.sql.DataSource", "org.apache.commons.dbcp.BasicDataSourceFactory", null); reference creates new DataSource instead using created one while calling ic2.lookup("jdbc/basic").
> At the end it ends with many opened connections to DB until JVM is ended.
> Second example I didn't test, i use direct aproach with manualy creating SharedPoolDataSource and registring it in FSContext JNDI itself.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.