- - PR -
tomcatの指定で、Oracleの暗黙的接続キャッシュを有効にする方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-07-16 10:06
tomcat5.5のDB接続プールで、Oracleの暗黙的接続キャッシュ(※)を有効にする方法に関して、質問させて頂きます。
※:http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/java.102/B19275-03/concache.htm spring−iBATISを経由して、Oracleをアクセスしますが、BLOB型を使用するため、server.xmlにおいて、以下のようなResourceの指定をしております。 <Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" factory="oracle.jdbc.pool.OracleDataSourceFactory" MaxLimit="2" maxIdle="2" maxWait="-1" name="TerasolunaDataSourceG" password="pass" type="oracle.jdbc.pool.OracleDataSource" url="jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:XE" user="user"/> それで、Oracleの暗黙的接続キャッシュを有効にするためには、OracleDataSourceでsetConnectionCachingEnabled(true)をコールする必要があるのですが、springでは、これがコールされていないようで、DBコネクションがプールされていません。 これは、ServletContextListenerを作成して、データソースをlookup後、OracleDataSource.setConnectionCachingEnabled(true)をコールする事で、Oracleの暗黙的接続キャッシュを有効にできました。 しかし、データソースはtomcat全体のものですので、Webアプリのlistenerで暗黙的接続キャッシを有効にするのは、ちょっと違和感を感じております。 ですので、tomcat5.5の指定により、Oracleの暗黙的接続キャッシュを有効にできないかを伺いたく、投稿させて頂きました。よろしくお願い致します。 なお、MaxLimit,maxIdle,maxWaitの指定についても、web.xmlのResource要素の指定が効いておらず、ServletContextListenerで設定できるのは、同様で、やはり、tomcat5.5の指定で有効にできないかと、考えております。 |
1