Recentemente ho migrato il mio database per supportare la replica con un database di cluster a 2 nodi da mysql a mariadb. Il database è ospitato su un dominio diverso ed è accessibile tramite un ELB, quando indico la mia applicazione a uno dei nodi l'applicazione funziona bene ma quando uso l'url ELB per connettermi con il database, fluttua casualmente e mostra frequentemente l'errore followintTimeout della connessione Mysql nell'applicazione Grails, utilizzando il cluster mariadb galera su ELB
Communication Link Failure
could not execute query; nested exception is org.hibernate.exception.JDBCConnectionException: could not execute query
Ecco la mia configurazione di origine dati: -
dataSource {
shard = false
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
//dialect = "com.deerwalk.everest.MySQLUTF8InnoDBDialect"
dbCreate = "update" // one of 'create', 'create-drop','update'
properties {
initialSize=5
maxActive=50
minIdle=5
maxIdle=25
maxWait = 10000
maxAge = 10 * 60000
timeBetweenEvictionRunsMillis=5000
minEvictableIdleTimeMillis=60000
validationQuery="SELECT 1"
validationInterval=15000
testWhileIdle=true
testOnBorrow=true
testOnReturn=false
jdbcInterceptors = "ConnectionState"
defaultTransactionIsolation = java.sql.Connection.TRANSACTION_READ_COMMITTED
}
qualcuno può identificare che cosa è sbagliato e di fornire una possibile soluzione per esso
puoi provare ad aumentare maxWait e maxAge in DataSourceConfig.groovy poiché potrebbe essere possibile che a volte richieda più del solito. –
hanno già provato tutte le combinazioni possibili – thickGlass
come aggiungere una proprietà autoReconnect alle impostazioni di DataSourceConfig. Il valore predefinito per questo è falso. Potresti impostarlo su true e vedere se questo risolve il tuo problema. –