<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    tomcat/resin使用全局數據庫連接池資源

      我比較傾向于直接在web應用中配置數據庫連接,例如使用struts或者是Hibernate的連接池,這樣的好處是無需了解不同的應用服務器在配置數據源的差別,應用實施的時候比較簡單。
      所以我最近的一些項目都是采用這種架構,但是這種方式有一些不足的就是當應用服務器配置了多個應用,而這些應用使用同一個數據庫,這就會導致不必要的資源浪費,也就是同一個應用服務器中存在針對同一個數據庫的多個連接池。
      也就是說我們希望每個應用服務器只有一個連接池的實例,在這個應用服務器上運行的所有項目都可以使用這個連接池,下面介紹這種方式在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");
      其他的應用服務器的配置可以按照這個思路參考它的手冊進行配置。應該說不管是采用何種方式,性能上不會有太大的區別,如何選擇就在于你整個服務器的項目結構。
      另外從上面Tomcat和Resin的配置來看,盡管Resin的配置要簡單于Tomcat,但是靈活性和擴展性就相對要差一些

    posted on 2013-09-29 09:50 順其自然EVO 閱讀(332) 評論(0)  編輯  收藏 所屬分類: jmeter and badboy

    <2013年9月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产亚洲av人片在线观看| 免费一级特黄特色大片在线观看| 亚洲午夜无码久久久久| 四虎精品免费永久免费视频| 日韩免费观看一级毛片看看| 日韩亚洲人成在线| 国内自产少妇自拍区免费| 亚洲av乱码中文一区二区三区| 日本高清免费中文字幕不卡| 青娱乐在线视频免费观看| 四虎影视精品永久免费| yellow视频免费在线观看| 精品亚洲成a人在线观看| 青青久在线视频免费观看| 亚洲人成在线精品| 国内自产少妇自拍区免费| 337p日本欧洲亚洲大胆人人 | 成年女人永久免费观看片| 亚洲高清国产拍精品熟女| 亚洲第一页日韩专区| a级片在线免费看| 亚洲精品美女视频| 美女黄网站人色视频免费国产| 精品久久久久久久久亚洲偷窥女厕| 亚洲成人一区二区| 午夜免费啪视频在线观看| 亚洲av无码电影网| 亚洲国产成人精品女人久久久| 丝袜足液精子免费视频| 亚洲国产精品久久久久秋霞影院 | 亚洲色偷偷偷综合网| 亚洲成a人片在线观看老师| 国产综合免费精品久久久| 亚洲国产模特在线播放| 国产jizzjizz视频免费看| 国产一精品一AV一免费| 亚洲中文字幕无码中文| 国产国拍亚洲精品福利| 亚洲成年人免费网站| 日日狠狠久久偷偷色综合免费| 亚洲最新永久在线观看|