2011-01-24 5 views
4

私はtomcatのJNDIについて詳しく読んでいます。私は、複数のリソースから、工場の属性が必要であることを読みました。彼らはしばしば "org.apache.tomcat.jdbc.pool.DataSourceFactory"であると言います。しかし、ほとんどの場合、私はこのような何かを見ます -tomcatのserver.xmlのファクトリ属性は必須ですか?

<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" 
       maxActive="100" maxIdle="30" maxWait="10000" 
       username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver" 
       url="jdbc:mysql://localhost:3306/javatest"/> 

この場合、tomcatは何をしますか?デフォルトでは "org.apache.tomcat.jdbc.pool.DataSourceFactory"に設定されていますか?

+0

ps。ここにソースの一つですhttp://vigilbose.blogspot.com/2009/03/apache-commons-dbcp-and-tomcat-jdbc.html –

答えて

6

org.apache.tomcat.jdbc.pool.DataSourceFactoryはデフォルト工場ではありません。これはデフォルトのDBCPを置き換えると思われる新しいTomcat 7.0組み込みのhigh-performance connection poolです。

デフォルトの工場はorg.apache.tomcat.dbcp.dbcp.BasicDataSourceFactoryです。 JNDI resources HOW TOも参照してください。実際にはその属性は必須ではありません。

+0

ありがとうこれは私が探していた答えです。最後の質問ですが、接続プールの実装(プロダクション用ではなくホームプロジェクト用のもの)を作成して、どこから始めるのが適切なのでしょうか?私はtomcat-jdbc-poolのソースコードを調べることを考えていました。しかし、おそらくあなたはより良い場所を開こうとしているかもしれません。 –

+0

基本的なSun/Oracleチュートリアルの[こちら](http://java.sun.com/developer/onlineTraining/Programming/JDCBook/conpool.html)警告:実装例は非常に貧弱です。実際の生産には使用しないでください!たとえば、プールされた接続の最大量をチェックしたり制限したりしません。 – BalusC

+0

ええ、私はすでにそれを見た。そうではありません。私は、Javaで単純なBlackingArrayQueueを使用して、接続のプールを保持して、パフォーマンスがどのようになるかを確認しました。どこから始めたらよいか考えています。私はtomcat-jdbc-poolのソースを見つけることができませんか? –