A. 資料庫連接池是什麼
問題一:什麼臘咐是資料庫連接池,有什麼作用? 資料庫連接是一種有限的昂貴的資源,
資料庫連接影響到程序的性能指標。
資料庫連接池正是針對這個問題提出來的。資料庫連接池負責分配、
管理和釋放資料庫連接,
它允許應用程序重復使用一個現有的資料庫連接,
而再不是重新建立一個;
釋放空閑時間超過最大空閑時間的資料庫連接來避免因為沒有釋放數
據庫連接而引起的資料庫連接遺漏。
這項技術能明顯提高對資料庫操作的性能。
問題二:什麼是資料庫連接池?謝謝了 資料庫連接池,簡稱dbcp databa績e connection pool
存在意義:
資料庫的連接是非常耗費系統資源的,一個應用通常都是需要與資料庫打交道,也就需要經常連接資料庫,這樣導致浪費大量系統資源;
連接池的原理就是:我事先創建好幾個資料庫連接放著,當我的系統需要操作資料庫時就從連接池裡直接拿連接,並將這個連接標記為 忙 ;用完後在放會池中,標記為 空閑;;;
當連接池裡的連接都在被使用,如果此時還要連接,連接池就會在創建連接放到池裡,,這些連接的數量,都是在配置文件里由你控制的
問題三:資料庫連接池是什麼意思? 像打開關閉資料庫連接這種和資料庫的交互可能是很費時的,尤其是當客戶端數量增加的時候,會消耗大量的資源,成本是非常高的。可以在應用伺服器啟動的時候建立很多個資料庫連接並維護在一個池中。連接請求由池中的連接提供。在連接使用完畢以後,把連接歸還到池中,以用於滿足將來更多的請求。
問題四:資料庫連接池的工作機制是什麼? 為什麼要使用資料庫連接池?
答:
由於創建連接的代價是很高的, 我們每次訪問資料庫都重新創建連接的話是非常消耗性的.
我們可以再程序啟動的時候先創建出一些連接, 放在一個 *** 中, 訪問資料庫的時候從 *** 中獲取, 使用結束再放回 *** 中.
這樣做只是在程序啟動的時候消耗性能租局瞎去創建連接, 每次訪問資料庫的時候都是從內存中獲取連接, 可以大大提升效率.
注意事項:
由於池中增刪非常頻繁, 使用 *** LinkedList效率較高
*** 中所有連接都被佔用時創建新連接, 但需要注意連接總數
使用組合模式/動態代理處理釋放連接的方法, 當運行close方法時, 將連接放回池中
關於資料庫連接池:
資料庫連接是一種關鍵的有限的昂貴的資源,這一點在多用戶的網頁應用程序中體現得尤為突出。對資料庫連接的管理能顯著影響到整個應用程序的伸縮性和健壯性,影響到程序的性能指標。資料庫連接池正是針對這個問題提出來的。
資料庫連接池負責分配、管理和釋放資料庫連接,它允許應用程序重復使用一個現有的資料庫連接,而再不是重新建立一個;釋放空閑時間超過最大空閑時間的資料庫連接來避免因為沒有釋放資料庫連接而引起的資料庫連接遺漏。這項技術能明顯提高對資料庫操作的性能。
資料庫弊空連接池在初始化時將創建一定數量的資料庫連接放到連接池中,這些資料庫連接的數量是由最小資料庫連接數來設定的。無論這些資料庫連接是否被 使用,連接池都將一直保證至少擁有這么多的連接數量。連接池的最大數據庫連接數量限定了這個連接池能佔有的最大連接數,當應用程序向連接池請求的連接數超 過最大連接數量時,這些請求將被加入到等待隊列中。
資料庫連接池的最小連接數和最大連接數的設置要考慮到下列幾個因素:
1) 最小連接數是連接池一直保持的資料庫連接,所以如果應用程序對資料庫連接的使用量不大,將會有大量的資料庫連接資源被浪費;
2) 最大連接數是連接池能申請的最大連接數,如果資料庫連接請求超過此數,後面的資料庫連接請求將被加入到等待隊列中,這會影響之後的資料庫操作。
3) 如果最小連接數與最大連接數相差太大,那麼最先的連接請求將會獲利,之後超過最小連接數量的連接請求等價於建立一個新的資料庫連接。不過,這些大於最小連接數的資料庫連接在使用完不會馬上被釋放,它將被放到連接池中等待重復使用或是空閑超時後被釋放。
J2EE伺服器啟動時會建立一定數量的池連接,並一直維持不少於此數目的池連接。
調用:客戶端程序需要連接時,池驅動程序會返回一個未使用的池連接並將其表記為 忙。如果當前沒有空閑連接,池驅動程序就新建一定數量的連接,新建連接的數量有配置參數決定。
釋放:當使用的池連接調用完成後,池驅動程序將此連接表記為空閑, 其他調用就可以使用這個連接
問題五:資料庫連接池的作用是什麼? 連接池是被j2ee伺服器打開和維護的 對應1、2、4的JDBC驅動程序 連接池一般比直接連接更有優越性 因為它提高了性能的同時還保存了 寶貴的資源。 打開資料庫連接時CPU和網路的重要 任務,因此,在整個應用程序的使用過程 當中重復的打開直接連接將導致性能的下降。 而池連接只在伺服器啟動時打開一次,從而 消除了這種性能問題。 另外,因為連接只用於很短的時間, 所以,連接可以被有效共享, 而且有關連接參數的特有信息, 只對池驅動程序有效, 如資料庫用戶名稱和密碼, 從而增強了系統的安全性和可管理性。
問題六:資料庫連接池的工作機制是什麼 連接池的實現是以空間換時間。
J2EE伺服器啟動時會建立一定數量的池連接,並一直維持不少於此數目的池連接。客戶端程序需要連接時,池驅動程序會返回一個未使用的池連接並將其表記為忙。如果當前沒有空閑連接,池驅動程序就新建一定數量的連接,新建連接的數量有配置參數決定。當使用的池連接調用完成後,池驅動程序將此連接表記為空閑,其他調用就可以使用這個連接。
問題七:資料庫連接池的作用是什麼? 連接池是被j2ee伺服器打開和維護的
對應1、2、4的JDBC驅動程序
連接池一般比直接連接更有優越性
因為它提高了性能的同時還保存了
寶貴的資源。
打開資料庫連接時CPU和網路的重要
任務,因此,在整個應用程序的使用過程
當中重復的打開直接連接將導致性能的下降。
而池連接只在伺服器啟動時打開一次,從而
消除了這種性能問題。
另外,因為連接只用於很短的時間,
所以,連接可以被有效共享,
而且有關連接參數的特有信息,
只對池驅動程序有效,
如資料庫用戶名稱和密碼,
從而增強了系統的安全性和可管理性。
問題八:開源的資料庫連接池和普通的資料庫連接池有什麼區別 在項目中嘗試使用了幾種開源的資料庫連接池實現。一種是dbcp,一種是c3p0,還有一種是proxool,這幾種資料庫連接池都可以很容易的在Spring配置起來。性能總體上上感覺dbcp為最優,因為穩定性和並發性都是我的項目需要的。
項目中經過反復測試,如果web server和資料庫server不是同一個機器的話,在斷網時間比較短的時間內三種資料庫連接池都能較好的重連,但是在斷網時間超過8個鍾頭 proxool就不能恢復工作了。但是dbcp卻能很快的重新連接。實際生產環境中穩定性和總體性能是最重要的,都需要做相應的測試才能放心的讓系統上生產線。
這里給出項目中資料庫連接池配置:
dbcp的jndi:13 4 java:p/env/jdbc/mysql5 6 proxool(proxool-0.9.0RC1)的配置: .mysql.jdbc.Driver jdbc:mysql:ip:3306/dbname?useUnicode=true&characterEncoding=utf8&autoReconnect=true user password 500 15000 select CURRENT_DATE true mysqlProxoolDataSource 1000 false 建議使用DBCP,配置在tomcat中,然後在spring中使用jndi的形式獲取。 c3p0(c3p0-0.9.0): 1 3 4 .mysql.jdbc.Driver 5 6 7 jdbc:mysql:192.168.0.225:3306/sendinmdb?useUnicode=true&characterEncoding=utf8&autoReconnect=true 8 9 10 ********11 12 13 ********14 15 16 10017 18 19 5020 21 22 10023 24 25 100026 27 28 3029 30 直接 & paste到spring配置文件里就可以使用了。 配置一些額外的tomcat 的DBCP連接池參數,也可以更好的使用到類似proxool提供的功能,只是dbcp更加穩定而已。tomcat/conf/context.xml中插入一個Resource元素: 解釋一下以下這些參數的含義:
validationQuery = select current_date()
testOnBorrow = true
testOnReturn = false
testWhileIdle = true
當 從池中獲取一個Connection後使用 select current_date() 來測試該資料庫連接的可用性,如果SQL語句返回結果則認為是一個有效的連接,否則將繼續測試知道可以拿到有效的連接。當返回Connection給池的時候不進行驗證,但是Connection空閑的時候就要進行認證。
timeBetweenEvictionRunsMillis = 15000
DBCP 清空線程睡眠的間隙,如值為負數則不運行該線程
numTestsPerEvictionRun = 10"......>>
問題九:sqlite 使用什麼資料庫連接池 資料庫連接是一種有限的昂貴的資源,
資料庫連接影響到程序的性能指標。
資料庫連接池正是針對這個問題提出來的。資料庫連接池負責分配、
管理和釋放資料庫連接,
它允許應用程序重復使用一個現有的資料庫連接,
而再不是重新建立一個;
釋放空閑時間超過最大空閑時間的資料庫連接來避免因為沒有釋放數
據庫連接而引起的資料庫連接遺漏。
這項技術能明顯提高對資料庫操作的性能。
問題十:說出數據連接池的工作機制是什麼? 以典型的資料庫連接池為例:首先普通的資料庫訪問是這樣的:程序和資料庫建立連接,發送數據操作的指令,完成後斷開連接。等下一次請求的時候重復這個過程,即每個請求都需要和資料庫建立連接和斷開連接,這樣當數據量大的時候系統的消耗是很大的。連接池就是為了解決這個問題:在一個空間中預先建立好一定數量的連接,當程序請求數據時直接使用池中的現存的連接,不需要重復建立連接和斷開的過程,節省了時間提高了性能
B. 資料庫連接池常用的有幾種
在項目中嘗試使用了幾種開源的資料庫連接池實現。一種是dbcp,一種是c3p0,還有一種是proxool,這幾種資料庫連接池都可以很容易的在Spring配置起來。性能總體上上感覺dbcp為最優,因為穩定性和並發性都是我的項目需要的。
C. 資料庫連接池
在實際應用開發中,特別是在WEB應用系統中,如果JSP、Servlet或EJB使用JDBC直接訪問資料庫中的數據,每一次數據訪問請求都必須經歷建立資料庫連接、打開資料庫、存取數據和關閉資料庫連接等步驟,而連接並打開資料庫是一件既消耗資源又費時的工作,如果頻繁發生這種資料庫操作,系統的性能必然會急劇下降,甚至會導致系統崩潰。資料庫連接池技術是解決這個問題最常用的方法,在許多應用程序伺服器(例如:Weblogic,WebSphere,JBoss)中,基本都提供了這項技術,無需自己編程,但是,深入了解這項技術是非常必要的。
資料庫連接池技術的思想非常簡單,將資料庫連接作為對象存儲在一個Vector對象中,一旦資料庫連接建立後,不同的資料庫訪問請求就可以共享這些連接,這樣,通過復用這些已經建立的資料庫連接,可以克服上述缺點,極大地節省系統資源和時間。
資料庫連接池的主要操作如下:
(1)建立資料庫連接池對象(伺服器啟動)。
(2)按照事先指定的參數創建初始數量的資料庫連接(即:空閑連接數)。
(3)對於一個資料庫訪問請求,直接從連接池中得到一個連接。如果資料庫連接池對象中沒有空閑的連接,且連接數沒有達到最大(即:最大活躍連接數),創建一個新的資料庫連接。
(4)存取資料庫。
(5)關閉資料庫,釋放所有資料庫連接(此時的關閉資料庫連接,並非真正關閉,而是將其放入空閑隊列中。如實際空閑連接數大於初始空閑連接數則釋放連接)。
(6)釋放資料庫連接池對象(伺服器停止、維護期間,釋放資料庫連接池對象,並釋放所有連接)。
D. 達夢資料庫怎麼開遠程連接
LOGIN/LOGOUT命令登錄/退出遠程資料庫。
1、首先本地通過在安裝目錄bin下disql命令連接本地資料庫。
2、其次用LOGIN/LOGOUT命令登錄遠程資料庫。
3、最後通過disql後再字返洞蠢符界面支持sql、腳本運行即可。
遠程連接控制軟體是一款隨時隨地連接到遠程桌面電腦、移動設備及Iot,讓遠顫纖程連接過程更加的快速和安全,輕松漏陪實現對文件、網路及程序的實時支持或訪問。
E. 達夢資料庫能使用pl/sql這個工具嗎如何連接
沒有什麼區別···都是語法····
你中神襪把begin
end
看做是
c裡面的
{
}
就行了···
比如
存儲過程當中
就是as
begin
但是他賣激們中間是定義了變數的
as
declare
@id
int
begin
如果沒有變數
就直接瞎肢as
begin
也有的寫
is
begin
plsql塊
可能是declare
定義了之後就直接是
begin
所以其實沒什麼太大區別
F. 關於ETL工具kettle連接國產達夢資料庫問題,用過的請進
1、下載最新的kettle版本
2、把達梁碰夢對應JDK版本的jdbc驅動放在D:\kettle\pdi-ce-4.4.0-stable\data-integration\libext\JDBC安裝橡枝談目錄下面
3、在connection type中選擇generic database右搭埋側填好url和Driver
G. Java開發常用的幾個資料庫連接池
資料庫連接池的好處是不言而喻的,現在大部分的application
server都提供自己的資料庫連接池方案,此時,只要按照application server的文檔說明,正確配置,即可在應用中享受到資料庫連接池的好處。
但是,有些時候,我們的應用是個獨立的java
application,並不是普通的WEB/J2EE應用,而且是單獨運行的,不要什麼application
server的配合,這種情況下,我們就需要建立自己的資料庫連接池方案了。
1、 DBCP
DBCP是Apache的一個開源項目:
commons.dbcp
DBCP依賴Apache的另外2個開源項目
commons.collections和commons.pool
dbcp包,目前版本是1.2.1:http://jakarta.apache.org/commons/dbcp/
pool包,目前版本是1.3:http://jakarta.apache.org/commons/pool/,
common-collections包:http://jakarta.apache.org/commons/collections/
下載這些包並將這些包的路徑添加到classpath中就可以使用dbcp做為項目中的資料庫連接池使用了。
在建立我們自己的資料庫連接池時,可以使用xml文件來傳入需要的參數,這里只使用hard
code的方式來簡單介紹,所有需要我們自己寫的代碼很少,只要建立一個文件如下:
import
org.apache.commons.dbcp.BasicDataSource;
import
org.apache.commons.dbcp.BasicDataSourceFactory;
import
java.sql.SQLException;
import java.sql.Connection;
import
java.util.Properties;
public class ConnectionSource {
private static BasicDataSource dataSource =
null;
public ConnectionSource() {
}
public static void init() {
if (dataSource != null) {
try
{
dataSource.close();
} catch (Exception e)
{
}
dataSource = null;
}
try {
Properties p = new
Properties();
p.setProperty("driverClassName",
"oracle.jdbc.driver.OracleDriver");
p.setProperty("url",
"jdbc:oracle:thin:@192.168.0.1:1521:testDB");
p.setProperty("password", "scott");
p.setProperty("username",
"tiger");
p.setProperty("maxActive", "30");
p.setProperty("maxIdle", "10");
p.setProperty("maxWait",
"1000");
p.setProperty("removeAbandoned",
"false");
p.setProperty("removeAbandonedTimeout",
"120");
p.setProperty("testOnBorrow", "true");
p.setProperty("logAbandoned", "true");
dataSource = (BasicDataSource)
BasicDataSourceFactory.createDataSource(p);
} catch (Exception e) {
}
}
public static synchronized Connection
getConnection() throws SQLException {
if (dataSource == null) {
init();
}
Connection conn = null;
if (dataSource != null) {
conn = dataSource.getConnection();
}
return conn;
}
}
接下來,在我們的應用中,只要簡單地使用ConnectionSource.getConnection()就可以取得連接池中的資料庫連接,享受資料庫連接帶給我們的好處了。當我們使用完取得的資料庫連接後,只要簡單地使用connection.close()就可把此連接返回到連接池中,至於為什麼不是直接關閉此連接,而是返回給連接池,這是因為dbcp使用委派模型來實現Connection介面了。
在使用Properties來創建BasicDataSource時,有很多參數可以設置,比較重要的還有:
testOnBorrow、testOnReturn、testWhileIdle,他們的意思是當是取得連接、返回連接或連接空閑時是否進行有效性驗證(即是否還和資料庫連通的),默認都為false。所以當資料庫連接因為某種原因斷掉後,再從連接池中取得的連接,實際上可能是無效的連接了,所以,為了確保取得的連接是有效的,
可以把把這些屬性設為true。當進行校驗時,需要另一個參數:validationQuery,對oracle來說,可以是:SELECT COUNT(*) FROM
DUAL,實際上就是個簡單的SQL語句,驗證時,就是把這個SQL語句在資料庫上跑一下而已,如果連接正常的,當然就有結果返回了。
還有2個參數:timeBetweenEvictionRunsMillis 和
minEvictableIdleTimeMillis,
他們兩個配合,可以持續更新連接池中的連接對象,當timeBetweenEvictionRunsMillis
大於0時,每過timeBetweenEvictionRunsMillis
時間,就會啟動一個線程,校驗連接池中閑置時間超過minEvictableIdleTimeMillis的連接對象。
還有其他的一些參數,可以參考源代碼。
2、
C3P0:
C3P0是一個開放源代碼的JDBC連接池,C3PO
連接池是一個優秀的連接池,推薦使用。C3PO實現了JDBC3.0規范的部分功能,因而性能更加突出,包括了實現jdbc3和jdbc2擴展規范說明的Connection 和Statement 池的DataSources 對象。
下載地址:http://sourceforge.net/projects/c3p0
package
com.systex.utils.web;
import java.beans.PropertyVetoException;
import
java.sql.Connection;
import java.sql.SQLException;
import
javax.sql.DataSource;
import
com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3PODataSource {
private static
ComboPooledDataSource dataSource = null;
private static final String driver
= "com.mysql.jdbc.Driver";
private static final String url =
"jdbc:mysql://localhost:3306/wyd";
private static final String userName =
"root";
private static final String password = "root";
public static DataSource getDataSource() {
if
(dataSource == null) {
dataSource = new ComboPooledDataSource();
try
{
dataSource.setDriverClass(driver);
} catch (PropertyVetoException
e) {
System.out.println("DataSource Load Driver
Exception!!");
e.printStackTrace();
}
dataSource.setJdbcUrl(url);
dataSource.setUser(userName);
dataSource.setPassword(password);
//
設置連接池最大連接容量
dataSource.setMaxPoolSize(20);
//
設置連接池最小連接容量
dataSource.setMinPoolSize(2);
//
設置連接池最大statements對象容量
dataSource.setMaxStatements(100);
}
return
dataSource;
}
public static Connection getConnection() throws
SQLException {
return
C3PODataSource.getDataSource().getConnection();
}
}
3、 Proxool
這是一個Java SQL
Driver驅動程序,提供了對你選擇的其它類型的驅動程序的連接池封裝。可以非常簡單的移植到現存的代碼中。完全可配置。快速,成熟,健壯。可以透明地為你現存的JDBC驅動程序增加連接池功能。
官方網站: http://proxool.sourceforge.net/
下載地址:http://proxool.sourceforge.net/download.html
H. 什麼是資料庫連接池,有什麼作用
1、基本概念及原理
由上面的分析可以看出,問題的根源就在於對資料庫連接資源的低效管理。我們知道,對於共享資源,有一個很著名的設計模式:資源池 (Resource Pool)。該模式正是為了解決資源的頻繁分配?釋放所造成的問題。為解決上述問題,可以採用資料庫連接池技術。資料庫連接池的基本思想就是為資料庫連接 建立一個「緩沖池」。預先在緩沖池中放入一定數量的連接,當需要建立資料庫連接時,只需從「緩沖池」中取出一個,使用完畢之後再放回去。我們可以通過設定 連接池最大連接數來防止系統無盡的與資料庫連接。更為重要的是我們可以通過連接池的管理機制監視資料庫的連接的數量?使用情況,為系統開發?測試及性能調 整提供依據。
2、伺服器自帶的連接池
JDBC的API中沒有提供連接池的方法。一些大型的WEB應用伺服器如BEA的WebLogic和IBM的WebSphere等提供了連接池的機制,但是必須有其第三方的專用類方法支持連接池的用法。
連接池關鍵問題分析
1、並發問題
為了使連接管理服務具有最大的通用性,必須考慮多線程環境,即並發問題。這個問題相對比較好解決,因為Java語言自身提供了對並發管理的支 持,使用synchronized關鍵字即可確保線程是同步的。使用方法為直接在類方法前面加上synchronized關鍵字,如:
public synchronized Connection getConnection()
2、多資料庫伺服器和多用戶
對於大型的企業級應用,常常需要同時連接不同的資料庫(如連接Oracle和Sybase)。如何連接不同的資料庫呢?我們採用的策略是:設計 一個符合單例模式的連接池管理類,在連接池管理類的唯一實例被創建時讀取一個資源文件,其中資源文件中存放著多個資料庫的url地址()?用戶名()?密 碼()等信息。如 tx.url=172.21.15.123:5000/tx_it,tx.user=yang,tx.password=yang321。根據資源文件提 供的信息,創建多個連接池類的實例,每一個實例都是一個特定資料庫的連接池。連接池管理類實例為每個連接池實例取一個名字,通過不同的名字來管理不同的連 接池。
對於同一個資料庫有多個用戶使用不同的名稱和密碼訪問的情況,也可以通過資源文件處理,即在資源文件中設置多個具有相同url地址,但具有不同用戶名和密碼的資料庫連接信息。
3、事務處理
我們知道,事務具有原子性,此時要求對資料庫的操作符合「ALL-ALL-NOTHING」原則,即對於一組SQL語句要麼全做,要麼全不做。
在Java語言中,Connection類本身提供了對事務的支持,可以通過設置Connection的AutoCommit屬性為 false,然後顯式的調用commit或rollback方法來實現。但要高效的進行Connection復用,就必須提供相應的事務支持機制。可採用 每一個事務獨佔一個連接來實現,這種方法可以大大降低事務管理的復雜性。
4、連接池的分配與釋放
連接池的分配與釋放,對系統的性能有很大的影響。合理的分配與釋放,可以提高連接的復用度,從而降低建立新連接的開銷,同時還可以加快用戶的訪問速度。
對於連接的管理可使用空閑池。即把已經創建但尚未分配出去的連接按創建時間存放到一個空閑池中。每當用戶請求一個連接時,系統首先檢查空閑池內 有沒有空閑連接。如果有就把建立時間最長(通過容器的順序存放實現)的那個連接分配給他(實際是先做連接是否有效的判斷,如果可用就分配給用戶,如不可用 就把這個連接從空閑池刪掉,重新檢測空閑池是否還有連接);如果沒有則檢查當前所開連接池是否達到連接池所允許的最大連接數(maxConn),如果沒有 達到,就新建一個連接,如果已經達到,就等待一定的時間(timeout)。如果在等待的時間內有連接被釋放出來就可以把這個連接分配給等待的用戶,如果 等待時間超過預定時間timeout,則返回空值(null)。系統對已經分配出去正在使用的連接只做計數,當使用完後再返還給空閑池。對於空閑連接的狀 態,可開辟專門的線程定時檢測,這樣會花費一定的系統開銷,但可以保證較快的響應速度。也可採取不開辟專門線程,只是在分配前檢測的方法。
5、連接池的配置與維護
連接池中到底應該放置多少連接,才能使系統的性能最佳?系統可採取設置最小連接數(minConn)和最大連接數(maxConn)來控制連接 池中的連接。最小連接數是系統啟動時連接池所創建的連接數。如果創建過多,則系統啟動就慢,但創建後系統的響應速度會很快;如果創建過少,則系統啟動的很 快,響應起來卻慢。這樣,可以在開發時,設置較小的最小連接數,開發起來會快,而在系統實際使用時設置較大的,因為這樣對訪問客戶來說速度會快些。最大連 接數是連接池中允許連接的最大數目,具體設置多少,要看系統的訪問量,可通過反復測試,找到最佳點。
如何確保連接池中的最小連接數呢?有動態和靜態兩種策略。動態即每隔一定時間就對連接池進行檢測,如果發現連接數量小於最小連接數,則補充相應數量的新連接,以保證連接池的正常運轉。靜態是發現空閑連接不夠時再去檢查。
I. ERROR: org.hibernate.util.JDBCExceptionReporter - 連接數超過限制個數 我使用的達夢資料庫
聯系隱態廠商獲取一個連接數沒有限制的檔攜慎key文件。
減少你的資料庫鏈接數,行敬採用資料庫連接池
J. java的3種資料庫連接池用哪個好
1 dbcp
dbcp可能是使用最多的開源連接池,原因大概是因為配置方便,而且很多開源和tomcat應用例子都是使用的這個連接池吧。
這個連接池可以設置最大和最小連接,連接等待時間等,基本功能都有。這個連接池的配置侍尺參見附件壓縮包中的:dbcp.xml
使用評價:在具體項目應用中,發現此連接池的持續運行的穩定性還是可以,不過速度稍慢,在大並發量的壓力下穩定性
有所下降,此外不提供連接池監控
2 c3p0
c3p0是另外一個開源的連接池,在業界也是比較有名的,這個連接池可以設置最大和最小連接,連接等待時間等,基本功能都有。
這個連接池的配置參見附件壓縮包中的:c3p0.xml。
使用評價:在具體項目應用中,發現此連接池的持續運行的穩定性相當不錯,在大並發量兆毀的壓力下穩定性也有一定保證,
此外不提供連接池監控。
3 proxool
proxool這個連接池可能用到的人比較少,但也有一定知名度,這個連接池可以設置最大和最小連接,連接等待時間等,基本功能都有。
這個連接池的配置參見附件壓縮包中的:proxool.xml。
使用評價老猜高:在具體項目應用中,發現此連接池的持續運行的穩定性有一定問題,有一個需要長時間跑批的任務場景任務,同樣的代碼