連接池簡介 程序開發,存在很多問題:首先,每一次Web請求都要建立一次數據庫連接。建立連接是一個費時的活動,每次都得花費0.05s~1s的時間,而且系統還要分配內存資源。這個時間對于一次或幾次數據庫操作,或許感覺不出系統有多大的開銷。可是對于現在的Web應用,尤其是大型電子商務網站,同時有幾百人甚至幾千人在線是很正常的事。在這種情況下,頻繁的進行數據庫連接操作勢必占用很多的系統資源,網站的響應速度必定下降,嚴重的甚至會造成服務器的崩潰。不是危言聳聽,這就是制約某些電子商務網站發展的技術瓶頸問題。其次,對于每一次數據庫連接,使用完后都得斷開。否則,如果程序出現異常而未能關閉,將會導致數據庫系統中的內存泄漏,最終將不得不重啟數據庫。還有,這種開發不能控制被創建的連接對象數,系統資源會被毫無顧及的分配出去,如連接過多,也可能導致內存泄漏,服務器崩潰。 數據庫連接池(connection pool)的工作原理: 由上面的分析可以看出,問題的根源就在于對數據庫連接資源的低效管理。 對于共享資源,有一個很著名的設計模式:資源池(Resource Pool)。該模式正是為了解決資源的頻繁分配、釋放所造成的問題。為解決上述問題,可以采用數據庫連接池技術。數據庫連接池的基本思想就是為數據庫連接建立一個“緩沖池”。預先在緩沖池中放入一定數量的連接,當需要建立數據庫連接時,只需從“緩沖池”中取出一個,使用完畢之后再放回去。我們可以通過設定連接池最大連接數來防止系統無盡的與數據庫連接。更為重要的是我們可以通過連接池的管理機制監視數據庫的連接的數量、使用情況,為系統開發、測試及性能調整提供依據。 一、Tomcat一般性說明 1、本壓縮包內的tomcat為apache-tomcat-5.5.20,截止到2006-10-12,是www.apache.org上最新的tomcat版本。 2、Tomcat使用的端口都是默認的。兩個比較重要的端口說明,shutdown port:8005;non-SSL HTTP/1.1 Connector port:8080。 3、涉及到修改的文件: a../ conf下server.xml、web.xml b../common/lib下增加ms-sql jdbc的三個jar包msbase.jar、mssqlserver.jar、msutil.jar 二、Tomcat配置連接池方案 本文針對的是tomcat 5.5版本的連接池介紹,其它版本可能不適用。 數據源可以配置成全局的和局部的:可以在任意Context中引用全局的數據源,在某一Context配置的數據源,不能在其它Context引用它。理解了全局和局部數據源的關系,下面就來介紹一下詳細配置說明,如下: 1、編輯打開./confCatalina/localhost/gdczsam.xml可以看到: <!--F hpj 2006-10-12 Defualt, we set all different Resources as Global-Resource[which defined in server.xml <GlobalNamingResources></GlobalNamingResources>], and get special Resource we needed in per-web-application contexts from Global-Resource. otherwise,we can set Resource we needed in any special Context, all two solutions are offered.
A.during application development set reloadable="true", when deployed production set reloadable="false"
B.many other datebase, url and driverClassName like underside list: 1.ms-sql driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=SAM_GDCZ" 加載包mssqlserver.jar、msbase.jar、msutil.jar.