我正在使用Slick3.1.1
+ HikariCP2.5.1
連接到AWS t2.medium
MySql實例。 AWS文檔說t2.medium
最多可以有312個連接。我的配置文件是:Slick/HikariCP給出「太多連接」而不是超時
17:05:40.708 DEBUG [] [rdsConfig connection adder] com.zaxxer.hikari.pool.HikariPool - rdsConfig - Cannot acquire connection from data source
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Too many connections
at sun.reflect.GeneratedConstructorAccessor59.newInstance(Unknown Source) ~[na:na]
...
我很困惑這個問題:
rdsConfig = {
url = "jdbc:mysql://mydb.........us-west-2.rds.amazonaws.com:3306/owlschema"
driver = "com.mysql.jdbc.Driver"
connectionPool = HikariCP
maxConnections = 222 # <<<<< ie make this < 312.
keepAliveConnection = true
properties = {
user = "me"
password = "mydarksecret"
}
numThreads = 40
}
當我懷着沉重的負擔,我開始變得「太多的連接」的錯誤打它。從文檔中我認爲它永遠不應該試圖獲得超過我指定的222個連接,這永遠不會超過AWS的限制。我期望在重負載下獲得超時,但不會出現「連接太多」的錯誤。那麼maxConnections
是做什麼的?謝謝。
如果將'minConnections'設置爲'222',是否也會立即發生? (讓我們確定問題出在Slick部分上,比預定的更多的連接;而不是MySQL拋出異常遠低於極限) –
它不會立即發生。日誌顯示它會逐個打開連接,如果負載不太重,則永遠不會有問題。只有當負載太高時纔會打開太多的連接。 – thund
你的意思是即使你設置了'minConnections = 222'? –