Techie:Techie Main/Java/Tomcat/Connection Pool

From FFL Wiki
Jump to navigation Jump to search

Install MySQL drivers

Copy drivers (e.g. mysql-connector-java-5.0.7-bin.jar) to tomcat's lib directory (e.g. /opt/apache-tomcat-6.0.26/lib/)

Define pool in <tomcat_install>/conf/context.xml

<Resource name="jdbc/FantacyDS"
       auth="Container"
       type="javax.sql.DataSource"
       maxActive="10"
       maxIdle="3"
       maxWait="10000"
       username="xxxx"
       password="yyyy"
       driverClassName="com.mysql.jdbc.Driver"
       validationQuery="SELECT 1"
       url="jdbc:mysql://localhost/fantacy?autoReconnect=true"/>
  • ValidationQuery is required. Without it stale connections cause application errors.
  • Not 100% sure if the autoReconnect=true is required, but seems to be suggested on a lot of web pages

Create a datasource in the application's web.xml

        <!-- DataSource resource -->
        <resource-ref>
                <description>FFL DataSource</description>
                <res-ref-name>jdbc/FantacyDS</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
        </resource-ref>
  • Resouce name and res-ref-name must match
  • Connection pool datasource now available using JNDI at 'java:comp/env/jdbc/FantacyDS'