2

JNDIコンテキストを使用して、Tomcatのcontext.xmlファイルにJDBCドライバーのデータソースを次のように作成します。

<Resource name="db/test" 
          type="javax.sql.DataSource" 
          driverClassName="com.test.jdbc.Driver"
          url="jdbc:fastdb://localhost:3306/session_db?autoReconnect=true&amp;connectTimeout=5000&amp;socketTimeout=5000"
          zeroDateTimeBehavior="convertToNull"
          username="dbuser"
          password="password"
          maxActive="100"
          maxWait="2"
          removeAbandoned="true"
          removeAbandonedTimeout="60"
          logAbandoned="true" />

デフォルトでは、TomcatはDBCPデータソースファクトリと作成されたプーリングデータソースを使用します。私たちが使用する特定のデータベースとドライバーは、すでに下位レベルでのプーリングをサポートしており、余分なプーリングは実際にパフォーマンスを低下させます。このようなJNDIリソースを使用して(プールせずに)基本的なデータソースを作成して、最小限の構成変更で異なるデータベースを切り替えることができるようにする方法はありますか?

独自のデータソースファクトリを作成することも、他のドライバのファクトリを使用してこれを実現することもできますが、より簡単なソリューションを探しています。

4

4 に答える 4

2

これがあなたを満足させるものであるかどうかはよくわかりませんが、Tomcat によって管理されるデータソースを使用せずに、いつでもSpring JDBC サポートを使用できます。

于 2009-08-04T22:15:13.040 に答える
0

使用している JDBC ドライバーは、 の実装、javax.naming.spi.ObjectFactoryまたは を使用して構成できるその他の接続オブジェクトを提供しますorg.apache.naming.factory.BeanFactoryか? これらのソリューションのいずれでも、カスタム コードを記述したり、サード パーティのライブラリを追加したりする必要はありません。

于 2009-08-05T19:24:01.447 に答える
0

次のように、プールされていないOracle接続に対してそれを行いました。

<Resource
        name="jdbc/aqds"
        auth="Container"
        type="oracle.jdbc.pool.OracleDataSource"
        factory="oracle.jdbc.pool.OracleDataSourceFactory"
        url="jdbc:oracle:thin:@localhost:1521:XE"
        user="MYUSER"
        password="MYPASSWORD" />
于 2016-03-02T12:15:28.550 に答える