Mysql 5 に接続する Tomcat 6 で接続プールを利用する方法について、いくつかの適切な手順を探していましたが、完全なリファレンスはないようです。明確な全体像を得るために、さまざまなチュートリアルをつなぎ合わせるのに苦労しています。
私はTomcatとその構成を扱う初心者です。
Mysql 5 に接続する Tomcat 6 で接続プールを利用する方法について、いくつかの適切な手順を探していましたが、完全なリファレンスはないようです。明確な全体像を得るために、さまざまなチュートリアルをつなぎ合わせるのに苦労しています。
私はTomcatとその構成を扱う初心者です。
MySQL ドライバーの jar ファイルを $TOMCAT_HOME/lib/ に配置します。
webapp に META_INF/context.xml ファイルを作成します (META_INF/ フォルダーは WEB_INF/ フォルダーと同じレベルにあります)。たとえば、次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/tomcattest" docBase="tomcattest" reloadable="true" crossContext="true">
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="10" maxIdle="5"
username="mysqluser" password="mysqlpasswd"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.1.30:3306/databasename?autoReconnect=true" />
</Context>
おそらく、path="/tomcattest" docBase="tomcattest" も Web アプリケーションに合わせて置き換える必要があります。
WEB_INF/web.xml にも少し追加する必要があります -以下に示すresource-refセクション。たとえば、次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
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">
<display-name>tomcattest</display-name>
<servlet>
<description>
</description>
<display-name>MyServlet</display-name>
<servlet-name>MyServlet</servlet-name>
<servlet-class>MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet/*</url-pattern>
</servlet-mapping>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
これで、サーブレットは次のようにしてプールから接続を取得できます。
Context initContext = new InitialContext();
DataSource ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/TestDB");
Connection conn = ds.getConnection();
//use conn
conn.close();
詳細はこちら