前提・実現したいこと
前提
- 稼働中のTomcat7の動作検証を行うために、同じ設定の検証環境を構築しています。
- 現環境も検証環境もAWS上にあります。
- 接続先のDBインスタンスはRDSのリードレプリカとなります。
実現したいこと
- 現環境で実装されているコネクションプールの負荷分散を検証環境でも行いたい。
発生している問題・エラーメッセージ
負荷分散がされず、設定中の最初のDBインスタンスにしかアクセスされません。
該当(すると思っている)設定
Tomcatのserver.xmlは下記のような状態です。
※ urlのDBインスタンス名、DB名、username、passwordは伏せさせて頂きました。
<Resource name="jdbc/jndi_name" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql:loadbalance://readreplica1.XXX.ap-northeast-1.rds.amazonaws.com, readreplica2.XXX.ap-northeast-1.rds.amazonaws.com/DB_NAME?useUnicode=true&characterEncodeing=MS932" username="testuser" password="testpassword" initialSize="0" maxActive="1200" maxIdle="10" maxWait="5000" validationQuery="select 1 from dual" testOnBorrow="true" testOnReturn="false" timeBetweenEvictionRunsMillis="60000" minidle="5" testWhileIdle="true" minEvictableIdleTimeMillis="300000" numTestsPerEvictionRun="3" poolPreparedStatements="false" maxOpenPreparedStatements="0" />
試したこと
- URLパラメータの順番を入れ替えると「readreplica2」にしかアクセスしなくなります。
- 「readreplica1」、「readreplica2」の順のまま、「readreplica1」を削除すると「readreplica2」のアクセスに切り替わります。
補足情報
OS、ソフトウェア等のバージョンは以下の通りです。
- OS:Amazon Linux 2016.09(4.4.23-31.54.amzn1.x86_64)
- Tomcat:7.0.90
- JVM:1.7.0_11
- mysql-connector-java:5.1.12-2.10.amzn1
回答1件
あなたの回答
tips
プレビュー