Tomcat 6データソース構成の詳細
TOMCAT 6を使うのはもうしばらく経ちましたが、これまでデータベースに接続するのは伝統的な方法でした.データ・ソースでデータベースに接続すると、パフォーマンスが向上するため、データ・ソースの構成方法を知っておく必要があります.以下はMYSQLデータベースのデータソースを構成し、ネット上で関連解決策を探し、その後、デバッグして以下のように解決する.
まず、以前のバージョンの構成を説明します.Tomcat 5のデータソース構成はTomcat 5.5のデータソース構成と多くの違いがあり、Tomcat 6のデータソース構成はTomcat 5.5の構成と基本的に同じです.従来のTomcat 5の構成はserver.xmlファイルで構成するか、conf/Catalina/localhostの下にある対応するコンテキストプロファイルで構成します.このような構成が不合理なのは、データベースが変更された場合、プログラマーがこれらのファイルを手動で修正する必要があり、チーム開発に不利であることです.また,この構成は一度に1つのWebアプリケーションにのみ適用され,多くのWebアプリケーションでは1つの構成が必要である.Tomcat 5.5とTomcat 6の構成は簡単です.すべてのWebアプリケーションのデータ・ソースを構成するには、%CATALINA_を変更するだけです.HOME%/conf/context.xmlファイル、次のコードを追加します.
1つのWebアプリケーションに対してデータソースを構成する場合、ウェブアプリケーションのルートディレクトリの下にMETA-INFのディレクトリ(存在しない場合)を新規作成し、そのディレクトリの下にcontextを作成することができる.xmlファイル、context.xmlファイルは、上記のコードを追加します.(もちろんこの時
WEB-INF/web.xml 不要)
または$CATALINA_HOME/conf/server.xmlファイルの ラベルの間には、次のContextコードが追加されます.
各要素の意味を説明する:nameは指定するjndi名(自分で勝手に取れる)authは認証方式を表し、一般的にContainertypeはデータソースタイプを表し、標準的なjavaxを用いる.sql.DataSourcemaxActiveは接続プールの中で最大のデータベース接続maxIdleは最大の空き接続数maxWaitプールのデータベース接続が占有されている場合、最大待ち時間logAbandonedは廃棄されたデータベース接続が記録されているかどうかを示し、追跡usernameデータベースユーザ名passwordデータベースユーザを表すパスワードdriverClassName JDBC DRIVERurlデータベースURLアドレスを表す
(dataBaseNameを自分のデータベース名に変更)
MYSQLドライバをTOMCATのlibディレクトリまたはあるWebアプリケーションのWEB-INF下のlibディレクトリにコピーする(
mysql-connector-java-5.1.6-binを使っています.jar)
従来のtomcatでは、自分のウェブアプリケーションのWEB-INFディレクトリの下のウェブが必要である.xmlは対応するresourceを指定し、tomcat 5.5以降のバージョンでは書かなくてもよい.コード:
>
>DB Connection
<
/description
>
>jdbc
/mysql
<
/res-ref-name
>
>javax.sql.DataSource
<
/res-type
>
>Container
<
/res-auth
>
<
/resource-ref
>
JAvaで接続されたコードは次のとおりです.
また、Context要素は、特定の仮想ホスト上で実行されるWebアプリケーションを表します.1つのHost要素に任意の複数のContext要素をネストできます.各Contextのパスはpathプロパティによって定義される唯一のパスでなければなりません.
また、conf/Catalina/localhostの下の対応するコンテキストプロファイルを構成する方法では、Contextをに断片化することができます.xmlは%CATALINA%/conf///ファイルの下に保存されます.例えば、私がURLでアクセスしたアプリケーションのパスはhttp://localhost/test/です.では、Contextのファイル名はtestです.xml.text.xmlは%CATALINA%/conf/Catalina/localhostの下に保存されます.次のようになります.%CATALINA%これはTomcatのルートディレクトリ です.はserver.xmlではタグのname属性で見ることができ、CatalinaはTomcatのデフォルト名 です. localhostは仮想ホストの名前です.これはserverです.xmlでも表示できます.
また、私たちが応用すべきwebもあります.xml(tomcatルートディレクトリのconf/web.xmlではない)にリソースリファレンスを追加します:(Tomcat 5.5以降のバージョンは追加しなくてもいいです.)
はい、各書類を貼ってください.
%CATALINA%/conf/Catalina/localhost/test.xml
この実験は上に公表した環境で通過できる.
まず、以前のバージョンの構成を説明します.Tomcat 5のデータソース構成はTomcat 5.5のデータソース構成と多くの違いがあり、Tomcat 6のデータソース構成はTomcat 5.5の構成と基本的に同じです.従来のTomcat 5の構成はserver.xmlファイルで構成するか、conf/Catalina/localhostの下にある対応するコンテキストプロファイルで構成します.このような構成が不合理なのは、データベースが変更された場合、プログラマーがこれらのファイルを手動で修正する必要があり、チーム開発に不利であることです.また,この構成は一度に1つのWebアプリケーションにのみ適用され,多くのWebアプリケーションでは1つの構成が必要である.Tomcat 5.5とTomcat 6の構成は簡単です.すべてのWebアプリケーションのデータ・ソースを構成するには、%CATALINA_を変更するだけです.HOME%/conf/context.xmlファイル、次のコードを追加します.
<Context reloadable="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" logAbandoned="true"
username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/dataBaseName"/>
</Context>
1つのWebアプリケーションに対してデータソースを構成する場合、ウェブアプリケーションのルートディレクトリの下にMETA-INFのディレクトリ(存在しない場合)を新規作成し、そのディレクトリの下にcontextを作成することができる.xmlファイル、context.xmlファイルは、上記のコードを追加します.(もちろんこの時
または$CATALINA_HOME/conf/server.xmlファイルの
<Context path="/path" docBase="systemPath" reloadable="true">
<Resource
name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/dataBaseName"/>
</Context>
各要素の意味を説明する:nameは指定するjndi名(自分で勝手に取れる)authは認証方式を表し、一般的にContainertypeはデータソースタイプを表し、標準的なjavaxを用いる.sql.DataSourcemaxActiveは接続プールの中で最大のデータベース接続maxIdleは最大の空き接続数maxWaitプールのデータベース接続が占有されている場合、最大待ち時間logAbandonedは廃棄されたデータベース接続が記録されているかどうかを示し、追跡usernameデータベースユーザ名passwordデータベースユーザを表すパスワードdriverClassName JDBC DRIVERurlデータベースURLアドレスを表す
(dataBaseNameを自分のデータベース名に変更)
MYSQLドライバをTOMCATのlibディレクトリまたはあるWebアプリケーションのWEB-INF下のlibディレクトリにコピーする(
mysql-connector-java-5.1.6-binを使っています.jar)
従来のtomcatでは、自分のウェブアプリケーションのWEB-INFディレクトリの下のウェブが必要である.xmlは対応するresourceを指定し、tomcat 5.5以降のバージョンでは書かなくてもよい.コード:
<
/description
>
/mysql
<
/res-ref-name
>
<
/res-type
>
<
/res-auth
>
<
/resource-ref
>
JAvaで接続されたコードは次のとおりです.
Context initCtx = new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource)initCtx.lookup("java:comp/env/jdbc/mysql");
Connection conn = ds.getConnection();
また、Context要素は、特定の仮想ホスト上で実行されるWebアプリケーションを表します.1つのHost要素に任意の複数のContext要素をネストできます.各Contextのパスはpathプロパティによって定義される唯一のパスでなければなりません.
また、conf/Catalina/localhostの下の対応するコンテキストプロファイルを構成する方法では、Contextを
また、私たちが応用すべきwebもあります.xml(tomcatルートディレクトリのconf/web.xmlではない)にリソースリファレンスを追加します:(Tomcat 5.5以降のバージョンは追加しなくてもいいです.)
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TomcatHibernate</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
はい、各書類を貼ってください.
%CATALINA%/webapps/test/WEB-INF/web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
|
%CATALINA%/conf/Catalina/localhost/test.xml
<Context>
|
%CATALINA%/webapps/test/test.jsp
<%@ page language="java" pageEncoding="GB2312"%>
<%@ page import="java.sql.*, javax.sql.*, javax.naming.*" %>
<%
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/hibernate";
String user = "root";
String password = "admin";
try {
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/TomcatHibernate");
conn = ds.getConnection();
if(conn != null) {
out.println(" jdbc/hibernate !");
}
} catch(Exception e) {
out.println(" jdbc/hibernate !" + e);
} finally {
if(conn != null)
conn.close();
}
%>
この実験は上に公表した環境で通過できる.
:Context , Tomcat server.xml context.xml 。