Just started using Tomcat 6.0.26 connected to MySQL 5.1. The MySql server
contains a database for each organization. Each user that logs in,
specifies an organization and is directed to the corresponding DB. I would
like to employ connection pooling, with a small pool allocated to each
database. The application authenticates users, users are not authenticated
at the database level. Here is the current setup in context.xml:
<Resource name="jdbc/DB"
auth="Container"
type="javax.sql.DataSource"
maxActive="10"
maxIdle="5"
maxWait="10000"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306" />
Notice no username or password entry exists. Here's the code to get a
connection:
Context ctx = new InitialContext();
org.apache.tomcat.dbcp.dbcp.BasicDataSource ds =
(org.apache.tomcat.dbcp.dbcp.BasicDataSource)ctx.lookup(
"java:comp/env/jdbc/DB" );
// These must be set before the call to getConnection(), since getConnection
actually creates the pool.
ds.setDefaultCatalog( orgID );
ds.setUsername( orgID );
ds.setPassword( orgID );
try{ connection = ds.getConnection(); }
catch( SQLException e ) ...
My question is, does this accomplish the goal of an efficient connection
pooling mechanism using multiple databases? Are there glaring errors in the
above config? Is there a better method?
Best Regards,
Andrew