sql >> Databáze >  >> RDS >> Mysql

Připojení k Db zanikne po>4<24 v režimu spánku jpa při spuštění na jaře

Nejjednodušší způsob je zadat autoReconnect vlastnost v JDBC url, i když to není doporučený přístup.

spring.datasource.url = jdbc:mysql://localhost:3306/test?autoReconnect=true

To může způsobit problémy, když máte aktivní připojení a během transakce se něco stane a dojde k opětovnému připojení. Nezpůsobí problémy, když je připojení ověřeno na začátku transakce a na začátku je získáno nové připojení.

Pravděpodobně je však lepší povolit ověřování vašich připojení během životnosti vaší aplikace. K tomu můžete zadat několik vlastností .

Nejprve začněte zadáním maximálního počtu připojení, které povolíte pro fond. (Chcete-li si přečíst o určení maximální velikosti fondu, přečtěte si toto ).

spring.datasource.max-active=10

Můžete také chtít zadat počet počátečních připojení

spring.datasource.initial-size=5

Dále chcete určit minimální a maximální počet nečinných připojení.

spring.datasource.max-idle=5
spring.datasource.min-idle=1

Chcete-li ověřit připojení, musíte zadat ověřovací dotaz a kdy ověřit. Jak chcete pravidelně ověřovat, místo toho, když je připojení načteno z fondu (to proto, aby se zabránilo přerušeným připojením ve vašem fondu).

spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=true
spring.datasource.validation-query=SELECT 1

POZNÁMKA: Použití validation-query se ve skutečnosti nedoporučuje, protože JDBC4 má lepší/jiný způsob ověřování připojení. HikariCP automaticky zavolá metodu ověření JDBC, je-li k dispozici.

Nyní, když také ověřujete, když je připojení nečinné, musíte určit, jak často chcete spouštět tento dotaz pro připojení a kdy je připojení považováno za nečinné.

spring.datasource.time-between-eviction-runs-millis=5000 (this is the default)
spring.datasource.min-evictable-idle-time-millis=60000 (this is also default)

To vše by mělo spustit ověření vašich (nečinných) připojení, a když dojde k výjimce nebo uplyne doba nečinnosti, vaše připojení budou odstraněna z fondu.

Za předpokladu, že jako fond připojení používáte Tomcat JDBC toto je pěkné čtení toho, co a jak nakonfigurovat.

AKTUALIZACE: Spring Boot 2.x přepnul výchozí fond připojení na HikariCP namísto Tomcat JDBC.




  1. Výběr hodnot z proměnné tabulky Oracle / pole?

  2. Převezměte kontrolu nad svými daty pomocí Microsoft Access

  3. Agregace řetězců v průběhu let v SQL Server

  4. Jaký je nejlepší způsob ukládání souřadnic (zeměpisná délka/šířka, z Map Google) na serveru SQL?