一、
經過n多試驗,終於自己把這個問題搞定了。
網上關於c3p0在spring中的配置,幾乎沒有完全正確的(至少我還沒發現)。查了c3p0的文件,又試驗過n次。得出如下配置是正確的:
$$$
$1
20180020
21800
30true
false
org.hibernate.dialect.mysqldialect
true
true
auto
true
true
注意:注釋掉的那些,都是錯誤的。網上流行的,基本上跟注釋掉的那些差不多。配錯了,並無異常,還是能正常使用。但是所作的配置不起作用。
二、起作用的,是datasource裡面的這一句:
1800
這兒設定成每隔1800秒就掃瞄一次,檢查一下空閒的鏈結。所以,使用者基本上不會得到空閒的鏈結了。
如果再不放心,
false
這兒設定成true。每次連線之前,都要測一下。但是這樣會影響效率。
三、解決的方法有3種:
增加wait_timeout的時間。
減少connection pools中connection的lifetime。
測試connection pools中connection的有效性。
當然最好的辦法是同時綜合使用上述3種方法,下面就dbcp和c3p0分別做一說明,假設wait_timeout為預設的8小時
dbcp增加以下配置資訊:
//set to 'select 1'
validati
//set to 'true'
testwhileidle = "true"
//some positive integer
timebetweenevictionrunsmillis = 3600000
//set to something smaller than 'wait_timeout'
minevictableidletimemillis = 18000000
//if you don't mind a hit for every getconnection(), set to "true"
c3p0增加以下配置資訊:
//set to 'select 1'
preferredtestquery = 'select 1'
//set to something much less than wait_timeout, prevents connections from going stale
idleconnectiontestperiod = 18000
//set to something slightly less than wait_timeout, preventing 'stale' connections from being handed out
maxidletime = 25000
//if you can take the performance 'hit', set to "true"
testconnectiononcheckout = true
訪問 IIS 元資料庫失敗的問題
說明 執行當前 web 請求期間,出現未處理的異常。請檢查堆疊跟蹤資訊,以了解有關該錯誤以及 中導致錯誤的出處的詳細資訊。異常詳細資訊 system.web.hosting.hostingenvironmentexception 訪問 iis 元資料庫失敗。用於執行 asp.net 的程序帳戶必須具...
訪問 IIS 元資料庫失敗
前幾天由於某種原因重灌了iis,結果裝完了之後執行.aspx檔案,出現以下錯誤 說明 執行當前 web 請求期間,出現未處理的異常。請檢查堆疊跟蹤資訊,以了解有關該錯誤以及 中導致錯誤的出處的詳細資訊。異常詳細資訊 system.web.hosting.hostingenvironmentexcep...
訪問IIS元資料庫失敗
訪問 iis 元資料庫失敗。說明 執行當前 web 請求期間,出現未處理的異常。請檢查堆疊跟蹤資訊,以了解有關該錯誤以及 中導致錯誤的出處的詳細資訊。異常詳細資訊 system.web.hosting.hostingenvironmentexception 訪問 iis 元資料庫失敗。用於執行 as...