Hi Dave
Sorry for my long absence - I was away from my computer for while.
I think Doug's last message just about says it all in respect of connection
pools. Follow his advice to use the Tomcat How-Tos exactly as they are, and
you should be okay.
I looked through your code - the stuff you originally posted following my
suggestion to do so - and I did spot one crucial mistake.
This line in your test JSP:
DataSource ds = ( DataSource ) ctx.lookup("java:comp/env/jdbc/MyDS" );
Should read:
DataSource ds = ( DataSource ) ctx.lookup("java:comp/env/jdbc/mysql" );
Spot the difference? :-)
The "jdbc/mysql" context refers to the name given to the resource in the
context.xml:
Resource name="jdbc/mysql"
type="com.mysql.jdbc.jdbc2..."
auth="Container"/>
I would also urge you to go back to using the Commons DBCP resources, and
specifying the "jdbc/mysql" resource as in the Tomcat How-To - namely, this
definition:
<Resource
name="jdbc/mysql"
type="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"
auth="Container"/>
Should read:
<Resource
name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"/>
And this ResourceParams element:
<parameter>
<name>factory</name>
<value>
com.mysql.jdbc.jdbc2.optional.MysqlDataSourceFactory
</value>
</parameter>
Should read:
<parameter>
<name>factory</name>
<value>
org.apache.commons.dbcp.BasicDataSourceFactory
</value>
</parameter>
Stick to the Tomcat How-Tos, using the Commons DBCP package, at least until
you get the thing working, and then you can switch if you want.
Finally, just a suggestion, but I would specify the minimum possible for the
'url' attribute:
<parameter>
<name>url</name>
<value>
jdbc:mysql://localhost:3306/DATABASE
</value>
</parameter>
Keep it simple, to start with :-) because it could just be one of those
non-essential parameters is causing the thing to break.
Good luck!
Harry
>> Despite my posting - and I really hope someone chips in concerning the
>> question I raised about the <resource-ref> being redundant in the deployment
>> descriptor (!) - the first thing to say is, have faith!
>>
>> Connection pooling works, and it is actually quite simple, so do not give up
>> on it.
>
> Cheers for the advice Harry... here's where I'm at....
>
> I have no choice on the giving up side of things, need to implement it
> for some client code I'm working on
>
> ;-)
>
> I've been doing a lot of googling to try and get answers so I may have
> got crossed wires, I had a version working (or thinking it was working)
> with the info in $JAKARTA_HOME/conf/server.xml but I wasn't happy with
> this solution (preferring to have the connection defined in
> $JAKARTA_HOME/conf/Catalina/localhost/<app_name>.xml for good reasons...
>
> so I'm basically restarting and I now have the following config
>
> $JAKARTA_HOME/conf/Catalina/localhost/<app_name>.xml
>
> <?xml version='1.0' encoding='utf-8'?>
> <Context docBase="dev-sstl" path="/dev-sstl" reloadable="true"
> useNaming="false">
>
> <Resource
> name="jdbc/mysql"
> type="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"
> auth="Container"/>
> <ResourceParams name="jdbc/mysql">
> <parameter>
> <name>factory</name>
> <value>com.mysql.jdbc.jdbc2.optional.MysqlDataSourceFactory</value>
> </parameter>
> <parameter>
> <name>port</name>
> <value>3306</value>
> </parameter>
> <parameter>
> <name>user</name>
> <value>USERNAME</value>
> </parameter>
> <parameter>
> <name>password</name>
> <value>PASSWORD</value>
> </parameter>
> <parameter>
> <name>serverName</name>
> <value>localhost</value>
> </parameter>
> <parameter>
> <name>databaseName</name>
> <value>DATABASE</value>
> </parameter>
> <parameter>
> <name>explicitUrl</name>
> <value>true</value>
> </parameter>
> <parameter>
> <name>url</name>
> <value>jdbc:mysql://localhost:3306/DATABASE?autoReconnect=true&useUnicode=
> true&characterEncoding=UTF8&max-connections=50&min-connections=2&a
> mp;inactivity-timeout=30&wait-timeout=30</value>
> </parameter>
> </ResourceParams>
> </Context>
>
> The info for the above i gleaned from
> http://www.russellbeattie.com/notebook/1006529.html
>
> Then in <web_app>/WEB-INF/web.xml I have
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
>
> <resource-ref>
> <description>DB connection</description>
> <res-ref-name>jdbc/mysql</res-ref-name>
> <res-type>javax.sql.DataSource</res-type>
> <res-auth>Container</res-auth>
> </resource-ref>
> </web-app>
>
> Then in my test JSP I have
> try {
> Context ctx = new InitialContext();
> DataSource ds = ( DataSource ) ctx.lookup("java:comp/env/jdbc/MyDS" );
> Connection conn = ds.getConnection();
> ...
>
> And the error I get is
>
> javax.servlet.ServletException: Name java:comp is not bound in this
> Context
>
> Which is an error I've managed to hit several times, I know the whole
> connection pooling is the right way to go about this, just surprised at
> how long it is taking me to get going (I dread to think what it will be
> like installing this live with the client, but I'll save that happy
> thought for later)
>
> As ever any help much appreciated... (and if the person who helps me to
> get this working is ever in London I'll stand them a beer or 3)
>
> ;-)
>
> TIA
> Dave
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]