[解決済み] Spring Boot JPA - 自動再接続の設定
質問
私は素敵な小さなSpring Boot JPAウェブアプリケーションを持っています。それはAmazon Beanstalk上に配置され、データの永続化のためにAmazon RDSを使用しています。しかし、それはそれほど頻繁に使用されていないため、この種の例外でしばらくすると失敗します。
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: サーバーから正常に受信された最後のパケットは 79,870,633 ミリ秒前でした。
サーバーに正常に送信された最後のパケットは、79,870,634ミリ秒前でした。 この問題を回避するには、アプリケーションで使用する前に接続の有効性を期限切れまたはテストするか、クライアントのタイムアウトのサーバー構成値を増やすか、Connector/J 接続プロパティ 'autoReconnect=true' を使用するかを検討する必要があります。
この設定をどのように構成すればよいのかわからず、また、この設定に関する情報を http://spring.io (非常に良いサイトですが) にも情報がありません。何かアイデアや情報へのポインタがあれば教えてください。
どのように解決するのですか?
私は、ブートが
DataSource
を設定していると思われます。この場合、また、MySQL を使用しているため、以下を
application.properties
1.3 までは
spring.datasource.testOnBorrow=true
spring.datasource.validationQuery=SELECT 1
djxakがコメントで指摘したように、1.4+ではSpring Bootがサポートする4つの接続プールに対して特定の名前空間が定義されています。
tomcat
,
hikari
,
dbcp
,
dbcp2
(
dbcp
は 1.5 で非推奨となりました)。どの接続プールを使っているか、その機能がサポートされているかどうかを確認する必要があります。上記の例はtomcatのものですので、1.4以上では以下のように記述する必要があります。
spring.datasource.tomcat.testOnBorrow=true
spring.datasource.tomcat.validationQuery=SELECT 1
を使うことに注意してください。
autoReconnect
は
は推奨されません。
:
この機能の使用は推奨されません。アプリケーションが SQLExceptions を適切に処理しない場合、セッションの状態やデータの一貫性に関連する副作用があり、アプリケーションがデッドコネクトやステイルコネクションから生じる SQLExceptions を適切に処理するように設定できない場合にのみ使用するように設計されています。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン