亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB服務 > 正文

Tomcat數據庫連接池的配置方法總結

2020-05-27 13:44:00
字體:
來源:轉載
供稿:網友

 數據庫連接是一種關鍵的有限的昂貴的資源,這在多用戶網頁應用程序中體現的尤為突出.對數據庫連接的管理能顯著影響到整個應用程序的伸縮性和健壯性,影響到程序的性能指標,數據庫連接池正是針對這個問題提出的.

數據庫連接池負責分配,管理和釋放數據庫連接,它允許應用程序重復使用一個現有的數據庫連接,而不是再重新建立一個;釋放空閑時間超過最大空閑時間的數據庫連接來避免因為沒有釋放數據庫連接而引起的數據庫連接遺漏,這樣可以明顯提高對數據庫操作的性能.

數據庫連接池在初始化的時將創建一定數量的數據庫連接放到連接池中,這些數據庫連接的數量是又最小數據庫連接數來設定的,無論這些數據庫連接是否被使用,連接池都將一直保證至少擁有這么多的連接數,當應用程序向連接池請求的連接數超過最大連接數量時,這些請求將被加入到等待隊列中.

數據庫連接池的最小連接數和最大連接數的設置要考慮到下列幾個因素:

1.最小連接數是連接池一直保持的數據庫連接,所以如果應用程序對數據庫連接的使用量不大,將會有大量的數據庫連接資源被浪費.

2.最大連接數是連接池申請的最大連接數,如果數據庫連接請求超過次數,后面的數據庫連接請求將被加入到等待對了中,這回影響之后的數據庫操作

如果最小連接數與最大連接數相差太大,那么最先的連接請求將會獲利,之后超過最小連接數量的連接請求等價于建立一個新的數據庫連接,不過,這些小于最小連接數的數據庫連接在使用完不會馬上被釋放,它將被放到連接池中等待重復使用或是空閑超時被釋放.

實例使用的Tomcat版本為6.0

方法一: 在Tomcat的conf/context.xml中配置在Tomcatapache-tomcat-6.0.33conf目錄下的context.xml文件中配置默認值如下:

<?xml version=1.0 encoding=utf-8?><Context> <WatchedResource>WEB-INF/web.xml</WatchedResource></Context>

配置連接池:

<?xml version=1.0 encoding=utf-8?> 

<Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> <!--配置oracle數據庫的連接池--> <Resource name="jdbc/oracleds" author="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="scott" password="tiger" driverClassName="oracle.jdbc.dirver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:ora9" /> <!--配置mysql數據庫的連接池, 需要做的額外步驟是將mysql的Java驅動類放到tomcat的lib目錄下 maxIdle 連接池中最多可空閑maxIdle個連接 minIdle 連接池中最少空閑maxIdle個連接 initialSize 初始化連接數目 maxWait 連接池中連接用完時,新的請求等待時間,毫秒 username 數據庫用戶名 password 數據庫密碼 --> <Resource name="jdbc/mysqlds" auth="Container" type="javax.sql.DataSource" username="root" password="root" maxIdle="30" maxWait="10000" maxActive="100" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/db_blog" /></Context>

配置好后需要注意的兩個步驟 

1.將對應數據庫的驅動類放到tomcat的lib目錄西安

2.重新啟動tomcat服務器,讓配置生效

在web應用程序的web.xml中設置數據源參考,如下:

在<web-app></web-app>節點中加入下面內容

<resource-ref> 

<description>mysql數據庫連接池</description> <!-- 參考數據源名字,同Tomcat中配置的Resource節點中name屬性值"jdbc/mysqlds"一致 --> <res-ref-name>jdbc/mysqlds</res-ref-name> <!-- 資源類型 --> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope></resource-ref>

錯誤解決: 

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial 

at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645) at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288) at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325) at javax.naming.InitialContext.lookup(InitialContext.java:392) at com.iblog.util.DBPoolUtil.<clinit>(DBPoolUtil.java:34)

解決方案: 

上面的異常信息是配置文件中JNDI沒有初始化造成的

如果下面的問題都不存在

1.要去檢查下配置文件中連接數據庫的URL參數是否正確2.以及是否導入了正常的包3.檢查在Tomcat中conf/server.xml文件,檢查是否設置useNaming="false",如果是,去掉

2.那就是通過main方法測試的,這個數據源不支持這樣的測試方法,程序要運行在Tomcat中才能找到相應的數據源.[我在測試時犯這樣的錯導致上面錯誤出現]

<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>      

<%@ page import="java.sql.*" %> <%@ page import="javax.naming.*" %> <%@ page import="javax.sql.DataSource" %><html> <head> <title>Tomcat6.0 JNDI!</title> </head> <body> Tomcat連接池測試,獲取數據源 <br> <% try { //初始化查找命名空間 Context ctx = new InitialContext(); //參數java:/comp/env為固定路徑 Context envContext = (Context)ctx.lookup("java:/comp/env"); //參數jdbc/mysqlds為數據源和JNDI綁定的名字 DataSource ds = (DataSource)envContext.lookup("jdbc/mysqlds"); Connection conn = ds.getConnection(); conn.close(); out.println("<span style=color:red;>JNDI測試成功<span>"); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } %> </body> </html>

運行效果: 

方法二:在Tomcat的conf/server.xml中配置

打開tomcat的conf/server.xml文件,找到<GlobalNamingResources></GlobalNamingResources>節點,默認的內容如下

<GlobalNamingResources> 

<Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /></GlobalNamingResources>

在該節點中加入相關的池配置信息,如下 

  <GlobalNamingResources> 

<Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> <!--配置mysql數據庫的連接池, 需要做的額外步驟是將mysql的Java驅動類放到tomcat的lib目錄下 --> <Resource name="jdbc/mysqlds" auth="Container" type="javax.sql.DataSource" username="root" password="root" maxIdle="30" maxWait="10000" maxActive="100" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/db_blog" /> </GlobalNamingResources>

在tomcat的conf/context.xml文件中的<Context></Context>節點中加入如下內容 

<ResourceLink name="jdbc/mysqlds" global="jdbc/mysqlds" type="javax.sql.DataSource"/>

然后在web項目中的WEB-INF目錄下的web.xml中配置

<resource-ref> 

<description>mysql數據庫連接池</description> <!-- 參考數據源名字,同Tomcat中配置的Resource節點中name屬性值"jdbc/mysqlds"一致 --> <res-ref-name>jdbc/mysqlds</res-ref-name> <!-- 資源類型 --> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope></resource-ref>

同樣配置好后,需要重新啟動服務器,讓配置生效. 

方法三:在Tomcat的conf/server.xml中配置虛擬目錄時配置 

在配置虛擬目錄時,也就是在配置conf下面的server.xml時,在context標簽內添加池配置.

在說該方法之前,先說一下,如何用tomcat配置虛擬目錄

在tomcatconf下server.xml中找到

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>

在其中添加:

<Context path="/website" docBase="F:/myweb" reloadable="true"></Context>

注意:

docBase要改成你的項目目錄。

path為虛擬路徑,訪問時的路徑,注意:一定要加“/” debug建議設置為0

reloadable設置為true。  

這樣重新啟動tomcat

實例中如下配置

<Context path="/website" docBase="D:/program files/Tomcat/apache-tomcat-6.0.33/webapps/iblog.war" reloadable="true"></Context>

接下來添加池配置,如下

<!--配置虛擬目錄--> 

<Context path="/website" docBase="D:/program files/Tomcat/apache-tomcat-6.0.33/webapps/iblog.war" reloadable="true"> <Resource name="jdbc/mysqlds" auth="Container" type="javax.sql.DataSource" username="root" password="root" maxIdle="30" maxWait="10000" maxActive="100" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/db_blog" /></Context>

啟動服務器,測試,注意因為我們配置了path值為”/website”,所以訪問的路徑應該為website.如下圖: 

方法四:在Web項目中的META-INF目錄下新建一個文件context.xml,寫入配置

注意:是META-INF目錄下,不是WEB-INF目錄下

<?xml version=1.0 encoding=utf-8?> 

<Context> <Resource name="jdbc/mysqlds" auth="Container" type="javax.sql.DataSource" username="root" password="root" maxIdle="30" maxWait="10000" maxActive="100" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/db_blog" logAbandoned="true" /></Context>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产成人久久综合| 亚洲香蕉成人av网站在线观看| 国产日韩精品在线| 国产欧美日韩专区发布| 北条麻妃99精品青青久久| 久久国产精品久久久久久久久久| 亚洲国产免费av| 亚洲欧美在线x视频| 色噜噜国产精品视频一区二区| 777午夜精品福利在线观看| 久久久亚洲网站| 国产精品jizz在线观看麻豆| 国内精品久久久久影院 日本资源| 日韩在线中文视频| 亚洲精品成人久久| 亚洲色图日韩av| 欧美福利视频网站| 亚洲精品小视频| 国产中文日韩欧美| 日韩欧美国产中文字幕| 色视频www在线播放国产成人| 欧美成人精品一区| 亚洲色图美腿丝袜| 久久精品免费电影| 热久久美女精品天天吊色| 亚洲精品福利免费在线观看| 日本精品va在线观看| 久久伊人精品一区二区三区| 日韩av电影在线网| 91精品在线观| 51视频国产精品一区二区| 精品性高朝久久久久久久| 亚洲精品www久久久久久广东| 久久99久久久久久久噜噜| 欧美理论在线观看| 成人免费激情视频| 奇门遁甲1982国语版免费观看高清| 热久久免费视频精品| 日韩中文有码在线视频| 亚洲男人7777| 日韩中文理论片| 国产拍精品一二三| 久热精品视频在线观看一区| 国产成人91久久精品| 亚洲一区二区三区香蕉| 色悠久久久久综合先锋影音下载| 97久久超碰福利国产精品…| 亚洲区bt下载| 亚洲精品日韩欧美| 日韩中文字幕在线观看| 精品电影在线观看| 亚洲福利视频在线| 亚洲国产私拍精品国模在线观看| 精品高清美女精品国产区| 中文字幕av一区二区三区谷原希美| 91精品久久久久久久久久另类| 日韩综合视频在线观看| 欧美激情伊人电影| 久久久久一本一区二区青青蜜月| 中文字幕日韩在线视频| 国产69精品久久久久9| 亚洲黄色av女优在线观看| 91精品国产91久久久| 日韩激情av在线播放| 国内精品小视频在线观看| 日韩性生活视频| 亚洲毛片在线看| 欧美自拍视频在线观看| 亚洲精品视频免费| 亚洲欧美福利视频| 7777精品久久久久久| 欧美性做爰毛片| 国产剧情久久久久久| 欧美不卡视频一区发布| 久久久人成影片一区二区三区观看| 精品偷拍各种wc美女嘘嘘| 91精品国产91久久久| 2019亚洲日韩新视频| 国产91色在线| 91欧美激情另类亚洲| 久久99久国产精品黄毛片入口| 国产欧美久久一区二区| 日韩麻豆第一页| 欧美一区二区大胆人体摄影专业网站| 久久精品中文字幕电影| 亚洲人高潮女人毛茸茸| 国产精品18久久久久久麻辣| 久久精品一偷一偷国产| 成人性生交大片免费看小说| 亚洲精品免费一区二区三区| 欧美刺激性大交免费视频| 中文字幕欧美专区| 亚洲欧美日韩综合| 欧美日韩在线视频一区二区| 精品国产乱码久久久久久虫虫漫画| 国产日韩专区在线| 国产不卡精品视男人的天堂| 久久久国产精品免费| 欧美精品电影在线| 91亚洲精品一区二区| 91国内产香蕉| 7m第一福利500精品视频| 亚洲国产婷婷香蕉久久久久久| 久久国产视频网站| 91av在线精品| 中文字幕国产日韩| 亚洲国产精品女人久久久| 欧美黄色成人网| 亚洲欧美日韩国产中文| 欧美极品少妇全裸体| 久久久国产在线视频| 国产精品久久激情| 午夜免费日韩视频| 久久国内精品一国内精品| 91网站在线免费观看| 91精品视频观看| 国产日韩欧美在线播放| 亚洲已满18点击进入在线看片| 久久久www成人免费精品张筱雨| 毛片精品免费在线观看| 2021国产精品视频| 亚洲精品动漫久久久久| 黑人巨大精品欧美一区二区| 91精品国产自产在线观看永久| 日韩成人在线视频观看| 精品久久国产精品| 亚洲国产精品推荐| 亚洲精品动漫久久久久| 日韩中文在线中文网三级| 欧美中文字幕精品| 欧美精品成人在线| 久久精品99久久久久久久久| 91天堂在线视频| 欧美在线视频网站| 国产99视频在线观看| 亚洲精品国产拍免费91在线| 一区二区三欧美| 黑人极品videos精品欧美裸| 亚洲精品一二区| 亚洲网站在线观看| 成人免费看吃奶视频网站| 亚洲乱码一区av黑人高潮| 97人人模人人爽人人喊中文字| 亚洲精品一区二区三区不| 色噜噜狠狠狠综合曰曰曰| 亚洲欧美一区二区三区情侣bbw| 欧美日韩中文字幕日韩欧美| 精品亚洲夜色av98在线观看| 色av中文字幕一区| 国产精品h片在线播放| 亚洲欧美国产日韩中文字幕| 精品视频—区二区三区免费| 中文字幕精品www乱入免费视频| 亚洲精品一区二区在线| 国产日韩中文在线| 国产精品麻豆va在线播放| 91久久在线观看| 91视频国产一区| 国产精品免费视频xxxx| 国产精品白嫩初高中害羞小美女| 中文字幕亚洲一区| www.欧美精品一二三区| 日韩中文字幕在线观看| 国产精品日韩在线观看|