You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by hicham ABASSI <h....@datapresse.fr> on 2003/06/04 09:36:21 UTC
Questions about jdbc2pooldatasource and cpdsadapter
Hy,
I have a JDBC driver v1.0. It doesn't implement the Datasource interface.
This is a Centura SQLBase DB.
I failout to create a JNDI Datasource in Tomcat because this driver doesn't provide Datasource object.
I need to create a Datasource to using it in JSTL sql tags. (<sql:query... )
i can create datasource in a servletcontextlistener with theses the packages :
a.. org.apache.commons.dbcp.cpdsadapter
b.. org.apache.commons.dbcp.jdbc2pool
Here is the theory code :
----------------------------------------------------------------------------------------------
package com.lc.rm.servlets;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.*;
import org.apache.commons.dbcp.*;
import org.apache.commons.dbcp.jdbc2pool.*;
import org.apache.commons.dbcp.cpdsadapter.*;
import javax.servlet.jsp.jstl.core.*;
public class ResourceManagerListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce) {
ServletContext application = sce.getServletContext( );
DataSource ds = null;
try {
DriverAdapterCPDS cpds = new DriverAdapterCPDS();
cpds.setDriver(<JdbcDriverClassName>);
cpds.setUrl(<jdbcUrl>);
cpds.setUser(<username>);
cpds.setPassword(<password>);
Jdbc2PoolDataSource tds = new Jdbc2PoolDataSource();
tds.setConnectionPoolDataSource(cpds);
tds.setDefaultMaxActive(10);
tds.setDefaultMaxWait(5);
tds.setDefaultAutoCommit(false);
tds.setDefaultMaxIdle(1);
ds = tds;
}
catch (Exception e) {
application.log("Error creating connection pool: ", e);
}
// Assign this datasource to the default JSTL Datasource
Config.set(application, Config.SQL_DATASOURCE, ds);
}
public void contextDestroyed(ServletContextEvent sce) {
ServletContext application = sce.getServletContext( );
}
}
------------------------------------------------------------------------------------
But these packages are not released in the 1.0.
Are they stable ?
If not, how to do this with org.apache.commons.dbcp package ?
I need a Datasource, not a driver.
The examples show how to create a PoolDatasource or a PoolDriver.
I regret that i can't create a PoolDatasource with JOCL. is it correct ?
i see that only PoolDriver can read JOCL file.
a.. tomcat 4.1.24
b.. commons-dbcp
c.. SQLBase 7
d.. Windows2000
e.. jdk1.4.1_02
Thanks.
Re: Questions about jdbc2pooldatasource and cpdsadapter
Posted by John McNally <jm...@collab.net>.
I do not plan any api changes that would affect your usage and I do use
the DataSource and backing ConnectionPoolDataSource in a manner similar
to your example and always connecting as the single user. I have not
noticed any problems.
BasicDataSource uses a Driver to supply the physical connections as
well, so you should be able to use that if you wish.
john mcnally
On Wed, 2003-06-04 at 00:36, hicham ABASSI wrote:
> Hy,
>
> I have a JDBC driver v1.0. It doesn't implement the Datasource interface.
> This is a Centura SQLBase DB.
> I failout to create a JNDI Datasource in Tomcat because this driver doesn't provide Datasource object.
> I need to create a Datasource to using it in JSTL sql tags. (<sql:query... )
>
> i can create datasource in a servletcontextlistener with theses the packages :
> a.. org.apache.commons.dbcp.cpdsadapter
> b.. org.apache.commons.dbcp.jdbc2pool
>
>
> Here is the theory code :
>
> ----------------------------------------------------------------------------------------------
> package com.lc.rm.servlets;
>
> import javax.servlet.*;
> import javax.servlet.http.*;
> import javax.sql.*;
> import org.apache.commons.dbcp.*;
> import org.apache.commons.dbcp.jdbc2pool.*;
> import org.apache.commons.dbcp.cpdsadapter.*;
> import javax.servlet.jsp.jstl.core.*;
>
> public class ResourceManagerListener implements ServletContextListener {
>
> public void contextInitialized(ServletContextEvent sce) {
>
> ServletContext application = sce.getServletContext( );
>
> DataSource ds = null;
>
> try {
> DriverAdapterCPDS cpds = new DriverAdapterCPDS();
> cpds.setDriver(<JdbcDriverClassName>);
> cpds.setUrl(<jdbcUrl>);
> cpds.setUser(<username>);
> cpds.setPassword(<password>);
>
> Jdbc2PoolDataSource tds = new Jdbc2PoolDataSource();
> tds.setConnectionPoolDataSource(cpds);
> tds.setDefaultMaxActive(10);
> tds.setDefaultMaxWait(5);
> tds.setDefaultAutoCommit(false);
> tds.setDefaultMaxIdle(1);
>
> ds = tds;
> }
> catch (Exception e) {
> application.log("Error creating connection pool: ", e);
> }
> // Assign this datasource to the default JSTL Datasource
> Config.set(application, Config.SQL_DATASOURCE, ds);
> }
> public void contextDestroyed(ServletContextEvent sce) {
> ServletContext application = sce.getServletContext( );
> }
> }
> ------------------------------------------------------------------------------------
>
> But these packages are not released in the 1.0.
>
> Are they stable ?
> If not, how to do this with org.apache.commons.dbcp package ?
>
> I need a Datasource, not a driver.
> The examples show how to create a PoolDatasource or a PoolDriver.
>
> I regret that i can't create a PoolDatasource with JOCL. is it correct ?
> i see that only PoolDriver can read JOCL file.
>
>
> a.. tomcat 4.1.24
> b.. commons-dbcp
> c.. SQLBase 7
> d.. Windows2000
> e.. jdk1.4.1_02
>
>
> Thanks.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org