除了其他多數(shù)連接池能夠提供的功能外,Tomcat 連接池還提供了一些附加功能:
在Tomcat JDBC 文檔中,Tomcat 連接池被配置為一個(gè)資源。唯一的區(qū)別在于,你必須指定 factory 屬性,并將其值設(shè)為 org.apache.tomcat.jdbc.pool.DataSourceFactory。
連接池只有一個(gè)從屬文件,tomcat-juli.jar。要想在使用 bean 實(shí)例化的單一項(xiàng)目中使用池,實(shí)例化的 Bean 為org.apache.tomcat.jdbc.pool.DataSource。下文講到將連接池配置為 JNDI 資源時(shí)會(huì)涉及到同一屬性,也是用來(lái)將數(shù)據(jù)源配置成 bean 的。
連接池對(duì)象暴露了一個(gè)可以被注冊(cè)的 MBean。為了讓連接池對(duì)象創(chuàng)建 MBean,jmxEnabled 標(biāo)志必須設(shè)為 true。這并不是說(shuō)連接池會(huì)注冊(cè)到 MBean 服務(wù)器。在像 Tomcat 這樣的容器中,Tomcat 本身注冊(cè)就在 MBean 服務(wù)器上注冊(cè)了 DataSource。org.apache.tomcat.jdbc.pool.DataSource 對(duì)象會(huì)注冊(cè)實(shí)際的連接池 MBean。如果你在容器外運(yùn)行,可以將 DataSource 注冊(cè)在任何你指定的對(duì)象名下,然后將這種注冊(cè)傳播到底層池。要想這樣做,你必須調(diào)用 mBeanServer.registerMBean(dataSource.getPool().getJmxPool(),objectname)。在調(diào)用之前,一定要保證通過(guò)調(diào)用 dataSource.createPool() 創(chuàng)建了池。