共计 2539 个字符,预计需要花费 7 分钟才能阅读完成。
这期内容当中丸趣 TV 小编将会给大家带来有关 tomcat/resin 中怎么利用全局数据库连接池资源,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
Tomcat 使用 JNDI Resource 来配置各种资源,包括数据库连接池。这些 Resource 有两种运行范围,第一个就是 Context 级别,也就是说 Context 特有的 Resource,该 Resource 只能被其所属的 Context 访问,显然这不是我们所要的。
另外一种就是定义全局命名资源,然后在 Context 中进行引用,下面是一个配置的例子 (server.xml):
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 来说,Resin 更为简单,在 Resin2 中连接池的配置如下
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
你可以把这段配置放在 web-app 中,则该连接池只有对应的 webapp 才能访问,放在 host 则,host 中的所有 web-app 都可以访问,放在 http-server 中,则整个 resin 的所有 webapp 都可以访问。
(实验过程中发现 resin2 的文档有误,如果 res-ref-name 写为 jdbc/dlog,则 webapp 怎么都找不到这个资源,改成 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
其他的应用服务器的配置可以按照这个思路参考它的手册进行配置。应该说不管是采用何种方式,性能上不会有太大的区别,如何选择就在于你整个服务器的项目结构。
上述就是丸趣 TV 小编为大家分享的 tomcat/resin 中怎么利用全局数据库连接池资源了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。