tomcat7的數據庫連接池tomcatjdbc的25個優勢

tomcat的JDBC連接池org.apache.tomcat.jdbc.pool更換或替代嗎Apache Commons DBCP連接池。
為什么我們須要一個新的連接池?


這里有幾個原因:
1.DBCP 1.x是單線程的。

為了成為線程安全的 共享鎖整個池在短時間內在兩個對象 分配和對象返回。

注意,這并不適用 下議院DBCP 2.x。
2.DBCP 1.x能夠緩慢。 邏輯cpu數量的添加和 并發線程的數量試圖借或返回 對象的添加,性能會減少。 對高并發 系統能夠顯著的影響。

請注意,這并不適用 Commons DBCP 2.x。
3.DBCP超過60類。

tomcat-jdbc-pool核心是8類, 因此未來需求將須要更少的改動 的變化。

這是全部你須要執行連接池本身 歇息是肉汁。
4.DBCP使用靜態接口。

這意味著你必須使用 正確的版本號為給定的JRE版本號或您可能會看到NoSuchMethodException例外。


5.不值得重寫60多個類,當一個連接池 是一個更簡單的實現完畢。
6.Tomcat jdbc池實現檢索連接的能力 異步,無需添加額外的線程庫 本身。
7.Tomcat jdbc池是Tomcat模塊,這取決于Tomcat朱莉·, 簡化的日志框架用于Tomcat。


8.檢索底層連接使用javax.sql.PooledConnection接口。
9.饑餓的證明。 假設池是空的,和線程正在等待 返回連接,連接時,將醒著 正確的線程等待。

大多數池僅僅會餓死。
10.特性添加了其它連接池實現
11.支持高并發環境和多核心/ cpu系統。
12.動態實現的接口,將支持java.sql和javax.sql接口 您的執行時環境(僅僅要你的JDBC驅動程序做了相同的事情),即使編譯較低版本號的JDK。
13.驗證間隔——我們不須要驗證我們每一次使用的連接,我們能夠做到這一點 當我們借或返回的連接,就不是我們能夠配置比間隔更頻繁。


14.Run-Once查詢,一個可配置的查詢,將僅僅執行一次,當連接到數據庫。 很實用的設置會話設置,您想要存在在整個時間建立連接。


15.配置自己定義攔截器的能力。 這同意您編寫自己定義攔截器來增強功能。 您能夠使用攔截器收集查詢統計, 緩存會話狀態,又一次連接失敗,重試查詢,緩存查詢結果,等等。 你的選擇是無盡的,攔截器是動態的,而不是綁定到一個JDK版本號的java.sql/javax.sql接口。
16.高性能——我們將展示一些性能上的差異
17.很easy,因為很簡化實現,行數和源文件數量很低,和c3p0相比 有200多個源文件(上次我們檢查),Tomcat jdbc 8的核心文件,連接池本身就是一半 那 錯誤可能發生,他們會更快的追蹤,和更easy修復。

降低復雜性一直是重點從《盜夢空間》。


18.異步檢索——你能夠連接你的連接請求和接收隊列Future<Connection>回來了。


19.更好的空暇連接處理。 而不是直接關閉連接,它仍然能夠連接池大小和空暇池的智能算法。
20.你能夠決定什么時候連接被覺得是放棄了,當池滿了,還是直接在超時 通過指定一個池的使用門檻。
21.放棄連接計時器將重置/查詢活動發表聲明。 同意一個連接,在使用非常長一段時間不超時。 這是通過使用ResetAbandonedTimer
22.關閉連接后,連接為一個特定的時間。

年齡接近基于返回到池中。


23.JMX通知,當連接被懷疑是廢棄的日志條目。

這類似于 的removeAbandonedTimeout但它不採取不論什么行動,僅僅是報告的信息。 這是通過使用suspectTimeout屬性。
24.連接能夠從檢索java.sql.Driver,javax.sql.DataSource或javax.sql.XADataSource這是通過使用dataSource和dataSourceJNDI屬性。


25.支持 JMX,支持 XA Connection
tomcat7的數據庫連接池tomcatjdbc的25優勢

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541575.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541575.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541575.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

weakhashmap_Java WeakHashMap entrySet()方法與示例

weakhashmapWeakHashMap類entrySet()方法 (WeakHashMap Class entrySet() method) entrySet() method is available in java.util package. entrySet()方法在java.util包中可用。 entrySet() method is used to retrieve the mappings that exist in this map to be viewed in …

定義整型數組_C++數組的定義與初始化(學習筆記:第6章 01)

數組的定義與使用[1]數組是具有一定順序關系的若干相同類型變量的集合體&#xff0c;組成數組的變量稱為該數組的元素。數組的定義方括號里面列出的常量表達式是數組每一維的下標個數。數組的下標不管從哪一維它都是從0開始數的。例如&#xff1a;int a[10]; 表示a為整型數組&a…

我們正在經歷一個應用疲憊時代?

在移動互聯網時代到來之后&#xff0c;應用程序成為了智能手機必備&#xff0c;也正因為萬千開發者的參與&#xff0c;才讓移動終端充分發揮出了強大的能量&#xff0c;當然&#xff0c;這些開發者也不斷創造著造富神話&#xff0c;一個小團隊在幾個月的努力之后可能就會成為億…

Java LinkedHashMap values()方法與示例

LinkedHashMap類的values()方法 (LinkedHashMap Class values() method) values() method is available in java.util package. values()方法在java.util包中可用。 values() method is used to get all the values exist in this LinkedHashMap to be viewed in a Collection.…

語句拼接_第2課:一個周末學會R語言數據處理:表拆分和拼接

從一線收集了兩百個文件&#xff0c;要整合到一起&#xff1f;總部一張全國兩百個城市的匯總表&#xff0c;拆成兩百個小文件&#xff1f;開什么玩笑&#xff0c;難道要復制粘貼到天荒地老。。。不用這么麻煩&#xff0c;一個循環&#xff0c;一個語句&#xff0c;實現快速表拆…

Anaconda配置多spyder多python環境

作者&#xff1a;桂。 時間&#xff1a;2017-04-17 22:02:37 鏈接&#xff1a;http://www.cnblogs.com/xingshansi/p/6725298.html 前言 最近在看《統計學習方法》&#xff0c;打算配合《機器學習實戰》一起&#xff0c;可后者的代碼是基于python2.6的&#xff1a; All the co…

pytorch自定義新層demo_從頭學pytorch(十一):自定義層

自定義layer不含模型參數的layer含模型參數的layer核心都一樣,自定義一個繼承自nn.Module的類,在類的forward函數里實現該layer的計算,不同的是,帶參數的layer需要用到nn.Parameter不含模型參數的layer直接繼承nn.Moduleimport torchfrom torch import nnclass CenteredLayer(n…

java日歷類add方法_Java日歷computeTime()方法及示例

java日歷類add方法日歷類computeTime()方法 (Calendar Class computeTime() method) computeTime() method is available in java.util package. java.util包中提供了computeTime()方法 。 computeTime() method is for conversion of current field values to the ms(millisec…

C++——智能指針和RAII

該文章代碼均在gitee中開源 C智能指針hpphttps://gitee.com/Ehundred/cpp-knowledge-points/tree/master/%E6%99%BA%E8%83%BD%E6%8C%87%E9%92%88??????? 智能指針 傳統指針的問題 在C自定義類型中&#xff0c;我們為了避免內存泄漏&#xff0c;會采用析構函數的方法釋…

移除元素所有事件監聽_DOM 事件模型或 DOM 事件機制

DOM 事件模型DOM 的事件操作&#xff08;監聽和觸發&#xff09;&#xff0c;都定義在EventTarget接口。所有節點對象都部署了這個接口&#xff0c;其他一些需要事件通信的瀏覽器內置對象&#xff08;比如&#xff0c;XMLHttpRequest、AudioNode、AudioContext&#xff09;也部…

gettimezone_Java日歷getTimeZone()方法與示例

gettimezone日歷類的getTimeZone()方法 (Calendar Class getTimeZone() method) getTimeZone() method is available in java.util package. getTimeZone()方法在java.util包中可用。 getTimeZone() method is used to return this Calendar time zone. getTimeZone()方法用于返…

cass展點不在原位置_cass展點之步驟及方法

cass展點之步驟及方法cass展點是根據手工或坐標正反算軟件自動計算的結果&#xff0c;利用cass軟件將點號、坐標及其高程自動展示到圖紙上的一種方法。其基本步驟和方法如下&#xff1a;一、將井下測點的點號、以及計算好的Y坐標、X坐標、及高程由sheet1復制并粘貼到sheet2上面…

Java BufferedWriter close()方法與示例

BufferedWriter類close()方法 (BufferedWriter Class close() method) close() method is available in java.io package. close()方法在java.io包中可用。 close() method is used to flushes the characters from the stream and later will close it by using close() metho…

ISCC2014-reverse

這是我做reverse的題解。在咱逆向之路上的mark一下&#xff0c;&#xff0c;水平有限&#xff0c;大牛見笑。題目及題解鏈接&#xff1a;http://pan.baidu.com/s/1gd3k2RL 宗女齊姜 果然是僅僅有50分的難度&#xff0c;OD直接找到了flag. 找到殺手 這題用OD做非常麻煩。我改用I…

python 獲取當前時間再往前幾個月_Python 中的時間和日期操作

Python中,對日期和時間的操作,主要使用這3個內置模塊: datetime 、 time 和 calendar 獲取當前時間對應的數字 開發程序時,經常需要獲取兩個代碼位置在執行時的時間差,比如,我們想知道某個函數執行大概耗費了多少時間,就可以使用time.time()來做。 import time before =…

Java BigDecimal restder()方法與示例

BigDecimal類的restder()方法 (BigDecimal Class remainder() method) Syntax: 句法&#xff1a; public BigDecimal remainder(BigDecimal divsr);public BigDecimal remainder(BigDecimal divsr, MathContext ma_co);remainder() method is available in java.math package.…

python程序需要編譯么_python需要編譯么

一個經常聽見的問題&#xff0c;那就是&#xff1a;Python是解釋型的語言嗎&#xff1f;它會被編譯嗎&#xff1f;這個問題沒有想象中那么好回答。和很多人認識世界一樣&#xff0c;習慣以一個簡單的模型去評判一些事物。而事實上&#xff0c;里面包含了很多很多的細節。通常的…

DevOps平臺中的自動化部署框架設計

本文目錄&#xff1a; 一、背景 二、我們的需求是什么&#xff1f; 三、概念澄清 四、概念模型 五、總體設計 六、關鍵點設計 七、總結 一、背景 說到自動化部署&#xff0c;大家肯定都會想到一些配置管理工具&#xff0c;像ansible,chef,puppet, saltstack等等。雖然這些工具給…

插入排序算法 ,遞歸實現_C程序實現遞歸插入排序

插入排序算法 ,遞歸實現The only difference between Insertion sort and Recursive Insertion Sort is that in the Recursive method, we start from placing the last element in its correct position in the sorted array instead of starting from the first. 插入排序和…

python虛擬機直接加載字節碼運行程序_第二章 python如何運行程序

一.python解釋器介紹Python解釋器是一種讓程序運行起來的程序。實際上&#xff0c;解釋器是代碼與機器的計算機硬件之間的軟件邏輯層。當Python包安裝在機器上后&#xff0c;它包含了一些最小化的組件&#xff1a;一個解釋器和支持的庫。二.python的視角當Python運行腳本時&…