如何發(fā)現(xiàn)什么是數(shù)據(jù)庫連接泄漏?先說數(shù)據(jù)庫連接池和java連接數(shù)據(jù)的jdbc,連接數(shù)據(jù)庫需要大量時(shí)間,會(huì)造成性能瓶頸。為了解決這個(gè)問題,使用了數(shù)據(jù)庫連接池,當(dāng)程序啟動(dòng)時(shí),連接池將獲得多個(gè)數(shù)據(jù)庫連接,例如50,100,當(dāng)它被使用時(shí),它將被從數(shù)據(jù)庫連接池中取出,使用后,數(shù)據(jù)庫連接不會(huì)被真正關(guān)閉,而是被放回連接池,這樣就不會(huì)造成頻繁訪問數(shù)據(jù)庫,消耗性能。
內(nèi)存泄漏:例:請(qǐng)注意,下面的例子是一個(gè)虛構(gòu)的內(nèi)存抖動(dòng),來源于Android文檔中的Memorychurn一詞,中文翻譯為內(nèi)存抖動(dòng)。指快速頻繁地創(chuàng)建對(duì)象所導(dǎo)致的性能問題。引用Android文檔原文:Java內(nèi)存泄漏的根本原因是長壽命對(duì)象如果持有對(duì)短壽命對(duì)象的引用,很可能會(huì)發(fā)生內(nèi)存泄漏。雖然不再需要短生命周期對(duì)象,但因?yàn)殚L生命周期仍然持有其引用,所以無法回收,從而導(dǎo)致內(nèi)存泄漏。
監(jiān)聽器通常在Java應(yīng)用中使用,一般由addXXXXListener()實(shí)現(xiàn)。但是,在釋放對(duì)象時(shí),通常會(huì)忘記刪除偵聽器,這增加了內(nèi)存泄漏的風(fēng)險(xiǎn)。各種連接,如數(shù)據(jù)庫連接、網(wǎng)絡(luò)連接(套接字)和I/O連接。忘記顯式調(diào)用close()方法導(dǎo)致的內(nèi)存泄漏。內(nèi)部類和外部模塊的引用很容易被遺忘,一旦不釋放,后續(xù)的一系列對(duì)象可能都不會(huì)被釋放。
最關(guān)鍵的原因:windowsfirewall開啟的原因。添加例外:WindowsVista和WindowsServer2008及更高版本以下過程通過使用具有高級(jí)安全性的Windows防火墻Microsoft管理控制臺(tái)(MMC)管理單元來配置Windows防火墻。此管理單元從WindowsVista和WindowsServer2003開始就可用。
有關(guān)高級(jí)安全Windows防火墻的詳細(xì)信息,請(qǐng)參閱配置Windows防火墻以允許SQLServer訪問。打開Windows防火墻的端口進(jìn)行TCP訪問。在“開始”菜單上,單擊“運(yùn)行”,鍵入WF.msc,然后單擊“確定”。在高級(jí)安全Windows防火墻的左窗格中,右鍵單擊入站規(guī)則,然后在操作窗格中單擊新建規(guī)則。
3、用C3P0做數(shù)據(jù)庫連接池,在Tomcat運(yùn)行項(xiàng)目中運(yùn)行項(xiàng)目,出現(xiàn)了貌似內(nèi)存泄露...我覺得jdbc不能關(guān)閉,所以tomcat強(qiáng)制關(guān)閉。據(jù)說這是basicdatasource的一個(gè)bug。您可以重寫關(guān)閉方法publiclclassbasicdata source extentbasicdata source { @ overridepublicsynchronizedvidclose()。throwsSQLException { driver manager . de register driver(driver manager . get driver(URL));super.close()。}}。
4、搞軟件開發(fā),請(qǐng)你來談?wù)剶?shù)據(jù)庫連接池的原理吧這次我們就來說說數(shù)據(jù)庫連接池的技術(shù)出現(xiàn)過程和原理以及現(xiàn)在最流行的開源數(shù)據(jù)庫連接池jar包。1.原理一般來說,Java應(yīng)用程序訪問數(shù)據(jù)庫的過程是:①加載數(shù)據(jù)庫驅(qū)動(dòng)程序;②通過jdbc建立數(shù)據(jù)庫連接;③訪問數(shù)據(jù)庫,執(zhí)行sql語句;④斷開數(shù)據(jù)庫。2.代碼3。在分析程序開發(fā)的過程中有很多問題:首先,要為每個(gè)web請(qǐng)求建立一個(gè)數(shù)據(jù)庫連接。
這個(gè)時(shí)候,對(duì)于一個(gè)或者幾個(gè)數(shù)據(jù)庫操作,你可能感覺不到系統(tǒng)有多大的開銷。但web應(yīng)用,尤其是大型電商網(wǎng)站,同時(shí)有數(shù)百人甚至數(shù)千人在線是很正常的。在這種情況下,頻繁的數(shù)據(jù)庫連接操作必然會(huì)占用大量的系統(tǒng)資源,網(wǎng)站的響應(yīng)速度肯定會(huì)下降,甚至?xí)?dǎo)致服務(wù)器崩潰。不是危言聳聽,這是制約一些電子商務(wù)網(wǎng)站發(fā)展的技術(shù)瓶頸。
5、java怎么跟蹤數(shù)據(jù)庫連接池泄露dbcp使用專門的界面追蹤工具,比如melody,就是比較典型的一個(gè)。1.檢查語法:JDBC:MySQL//[主機(jī)名] [:端口]/[數(shù)據(jù)庫名] [?Param1value1][ m2value2]…]...例如:JDBC:MySQL://localhost:3306/sample _ db?用戶。