Tak, Tomcat domyślnie używa buforowania Apache DBCP dla źródeł danych zdefiniowanych jako zasoby kontekstu JNDI.
Z dokumentacją w http://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html#JDBC_Data_Sources
Uwaga - wsparcie domyślne źródło danych w Tomcat bazuje na puli połączeń DBCP z Commons projektu. Można jednak użyć innej puli połączeń niż , która implementuje javax.sql.DataSource, przez , pisząc własną fabrykę zasobów , zgodnie z opisem poniżej.
Kopanie Tomcat 6 źródła ujawniły, że uzyskują oni fabrykę połączeń w ten sposób (w przypadku, gdy nie określono „Fabryka” atrybut własne za pomocą kontekstowego):
ObjectFactory factory = (ObjectFactory)Class.forName(System.getProperty("javax.sql.DataSource.Factory", "org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory")).newInstance();
And org.apache.tomcat .dbcp.dbcp.BasicDataSourceFactory który implementuje javax.naming.spi.ObjectFactory dba o tworzenie instancji obiektu DataSource: http://www.jarvana.com/jarvana/view/org/apache/tomcat/tomcat-dbcp/7.0.2/tomcat-dbcp-7.0.2-sources.jar!/org/apache/tomcat/dbcp/dbcp/BasicDataSourceFactory.java?format=ok
widzę tworzą wystąpień org.apache.tomcat.dbcp.dbcp.BasicDataSource: http://www.jarvana.com/jarvana/view/org/apache/tomcat/tomcat-dbcp/7.0.2/tomcat-dbcp-7.0.2-sources.jar!/org/apache/tomcat/dbcp/dbcp/BasicDataSource.java?format=ok
Co dziwne, ta klasa nie implementuje ConnectionPoolDataSource się, ani nie org.apache.tomcat.dbcp.dbcp.PoolingDataSource, że wróciła wewnętrznie przez BasicDataSource http://www.jarvana.com/jarvana/view/org/apache/tomcat/tomcat-dbcp/7.0.2/tomcat-dbcp-7.0.2-sources.jar!/org/apache/tomcat/dbcp/dbcp/PoolingDataSource.java?format=ok
Więc przypuszczam po skonfigurowaniu DataSources jak javax.sql.ConnectionPoolDataSource użyłeś również pewnej niestandardowej fabryki (to tylko przypuszczenie, ale przypuszczam, że w przeciwnym razie miałbyś wyjątki odrzutu klasy w Tomcat, ponieważ ich łączenie w rzeczywistości nie zapewnia instancji javax.sql.ConnectionPoolDataSource, tylko javax.sql. Źródło danych).
W związku z tym, aby odpowiedzieć na pytania dotyczące zalet lub wad konkretnego przypadku, należy porównać system Apache DBCP z mechanizmem łączenia w fabryce DataSource, w zależności od tego, której używano.
Nigdy nie użyłem ConnectionPoolDataSource; to zawsze DataSource na Tomcat, WebLogic i JBOSS. – duffymo
Podobne: [Różnica między źródłem danych i źródłem danych ConnectionPool] (http://stackoverflow.com/q/16752904/642706) –