Slick3.1.1
+ HikariCP2.5.1
を使用して、AWS t2.medium
MySqlインスタンスに接続しています。 AWSの文書では、t2.medium
は最大接続数312を持つことができます。私の設定ファイルは次のとおりです。タイムアウトではなく接続が多すぎるSlick/HikariCP
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
}
私は「あまりにも多くの接続」エラーを取得を開始重い負荷でそれを打つ時:
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]
...
私はこのことについて困惑しています。ドキュメントからは、指定した222以上の接続を取得しようとするべきではないと思っていましたが、AWSの制限を超えることはありません。私は重い負荷の下でタイムアウトを得ることを期待していましたが、「あまりにも多くの接続」エラーではありません。だからmaxConnections
は何をしますか?ありがとう。
'minConnections'を' 222'に設定すると即座に発生しますか? (問題が、指定されたよりも多くの接続を予約しているSlickの部分にあることを確かめてください; MySQLが制限をはるかに下回る例外を投げるのではなく) –
すぐには起こりません。ログは接続を1つずつ開き、負荷が重すぎない場合は問題がないことを示しています。負荷が高すぎて接続が多すぎる場合のみです。 – thund
あなたは 'minConnections = 222'を設定しても意味はありますか? –