Tomcat使用JNDI Resource来配|各U资源,包括数据库连接池。这些Resource有两U运行范_W一个就是ContextU别Q也是说ContextҎ?ResourceQ该Resource只能被其所属的Context讉KQ显然这不是我们所要的?br />另外一U就是定义全局命名资源Q然后在Context中进行引用,下面是一个配|的例子(server.xml)Q?/p>
<Server port="8005" shutdown="SHUTDOWN">
<GlobalNamingResources>
<!-- 全局有效的JDBC资源 -->
<Resource name="jdbc/dlog" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" defaultTransactionIsolation="1" defaultAutoCommit="false"
poolPreparedStatements="true" maxOpenPreparedStatements="1000" initialSize="1"
username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/dlogcn?autoReconnect=true"/>
</GlobalNamingResources>
<!-- Define the Tomcat Stand-Alone Service -->
<Service name="Catalina">
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<!-- Define the top level container in our container hierarchy -->
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps">
<Context path="" docBase="C:\PROJECTS\JAVA\DLOG4J_V3\webapp" reloadable="true">
<!-- 在Context引用全局JDBC资源 -->
<ResourceLink name="jdbc/dlog" global="jdbc/dlog"/>
</Context>
</Host>
</Engine>
</Service>
</Server>
相比较Tomcat来说QResin更ؓ单,在Resin2中连接池的配|如?/p>
<caucho.com>
<http-server>
<http port='80'/>
<servlet-mapping url-pattern='*.xtp' servlet-name='xtp'/>
<servlet-mapping url-pattern='*.jsp' servlet-name='jsp'/>
<resource-ref res-ref-name="java:/comp/env/jdbc/dlog" res-type="javax.sql.DataSource">
<init-param driver-name="com.mysql.jdbc.Driver"/>
<init-param url="jdbc:mysql://localhost:3306/dlogcn?autoReconnect=true"/>
<init-param user="root"/>
<init-param password="moabc"/>
<init-param maxConnections="100"/>
</resource-ref>
<!-- default host if no other host matches -->
<host id=''>
<web-app id='' app-dir='C:\PROJECTS\JAVA\DLOG4J_V3\webapp' />
</host>
</http-server>
</caucho.com>
你可以把q段配置攑֜web-app中,则该q接池只有对应的webapp才能讉KQ放?lt;host>则,host中的所有web-app都可以访问,攑֜<http-server>中,则整个resin的所有webapp都可以访问?br />(实验q程中发现resin2的文有误,如果res-ref-name写ؓjdbc/dlogQ则webapp怎么都找不到q个资源Q改成java:/comp/env/jdbc/dlog卛_?
接下来我们就可以在应用中使用如下代码来获取连接池的DataSource实例
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/dlog");
其他的应用服务器的配|可以按照这个思\参考它的手册进行配|。应该说不管是采用何U方式,性能上不会有太大的区别,如何选择在于你整个服务器的目l构?/p>
另外从上面Tomcat和Resin的配|来看,管Resin的配|要单于TomcatQ但是灵zL和扩展性就相对要差一些?/p>