ここスタックオーバーフローで何度も同様の質問に出くわしましたが、正しく理解できませんでした。
Tomcat 6 + MySQL (AWS RDS 上) でデータベース接続プールを使用しようとしています。これらは、構成したパラメーターです。
(Javaコードからの接続も閉じています)
<Resource name="jdbc/awsDB" auth="Container" type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
initialSize="10"
testWhileIdle="true"
maxActive="30"
maxAge="3600"
maxIdle="5"
maxWait="3000"
removeAbandoned="true"
logAbandoned="false"
validationQuery="SELECT 1"
removeAbandonedTimeout="60"
timeBetweenEvictionRunsMillis="15000"
username="sbose78" password="XXXXX"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://xxxxrds.amazonaws.com:3306/health?autoReconnect=true" />
アプリケーションは、最初の数回のデータベース クエリでは問題なく動作し、その後、データベース接続が無期限にハングします。
接続ログから、接続プールが正常に機能していることに気付きましたが、SLEEP 状態の接続が 10 以上ある場合でも、新しいデータベース クエリの実行には無限の時間がかかります。
ほとんどの場合、サーバーを再起動することになります。
私はどのような設定ミスをしていますか?
よろしくお願いします!