tomcat/resin中怎么利用全局数据库连接池资源

52次阅读
没有评论

共计 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 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计2539字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)