Dear all,
I am using the commons-dbcp BasicDataSource with Tomcat 5.5 configured via 
JNDI.

I use a Data class as a datasource manager to retrieve the datasource from a 
static method.

The datasource (instance of BasicDataSource) is a static class-variable of the 
Data class.

See Code below:

[code]
public class Data {
 
    private static BasicDataSource ds = null;
   
 
    public static DataSource getDataSource() throws SQLException {
        if (ds == null) {
            try {
                final Context initContext = new InitialContext();
                ds = 
(BasicDataSource)initContext.lookup("java:/comp/env/jdbc/myDB");
                initContext.close();
                return ds;
            } catch (final NamingException e) {
                e.printStackTrace();
                throw new RuntimeException("Java naming exception when getting 
connection from tomcat pool: " + e.getMessage());
            }
        } else {

            return ds;
        }
  }
[/code]

Question:

1. Is it thread safe to have the datasource (ds) as a static class variable

Or if I create a new datasource for each method call as below:

[code]
public class Data {
 
    public static DataSource getDataSource() throws SQLException {

            try {
                final Context initContext = new InitialContext();
                final BasicDataSource ds = 
(BasicDataSource)initContext.lookup("java:/comp/env/jdbc/myDB");
                initContext.close();
                return ds;
            } catch (final NamingException e) {
                e.printStackTrace();
                throw new RuntimeException("Java naming exception when getting 
connection from tomcat pool: " + e.getMessage());
            }

  }
[/code]

Does that mean I am creating a new pool for each method call?

Thanks for any help!
_________________________________________________________________
Win New York holidays with Kellogg’s & Live Search
http://clk.atdmt.com/UKM/go/111354033/direct/01/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to