1

1 つのマスターと 2 つの読み取り専用スレーブを実行している AWS でのマスター/スレーブ接続の負荷分散に MySQL Connector/J ReplicationDriver を使用しています。私が直面している問題は、アプリ サーバーから mysql データベースに書き込み要求が 2 ~ 3 時間のように長時間送信されないと仮定した場合、新しい書き込み要求が「接続は読み取り専用です。クエリ」という例外で終了することです。データの変更につながることは許可されていません。」

私のcontext.xmlは

<Context allowLinking="true">
    <Resource
        name="jdbc/DB" type="javax.sql.DataSource"
        maxActive="100" maxIdle="30" maxWait="10000" 
        url="jdbc:mysql:replication://master,slave1,slave2/db"
        driverClassName="com.mysql.jdbc.ReplicationDriver"
        username="user" password="pass"
        validationQuery="/* ping */ select 1" removeAbandoned="true"
        removeAbandonedTimeout="300" testOnBorrow="true"
        logAbandoned="true" loadBalanceBlacklistTimeout=60000
    />
</Context>

また、mysqlの挿入/更新および選択ステートメントでconnection.setReadOnlyおよびconnection.setAutoCommitを適切に使用しています。

考えられる原因は何ですか?

4

0 に答える 0