반응형
ELB를 통한 mariadb galera 클러스터를 사용하는 grails 애플리케이션에서 Mysql 연결 시간 초과
최근에 mysql에서 mariadb로 2노드 클러스터 데이터베이스 복제를 지원하기 위해 데이터베이스를 마이그레이션했습니다.데이터베이스가 다른 도메인에 호스트되어 ELB를 통해 액세스 됩니다.어플리케이션의 어느 쪽인가의 노드를 가리키면, 애플리케이션은 정상적으로 동작합니다만, ELB URL 를 사용해 데이타베이스에 접속하면, 랜덤으로 변동해, followint 에러가 자주 발생합니다.
Communication Link Failure
could not execute query; nested exception is org.hibernate.exception.JDBCConnectionException: could not execute query
데이터 소스 구성은 다음과 같습니다.
dataSource {
shard = false
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
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
}
무엇이 문제인지 파악하여 가능한 해결책을 제시해 주실 수 있습니까?
문제를 파악했는데, ELB에 idle Time이라는 필드가 있었습니다.60초로 설정된 출력과 1분 이상 걸린 쿼리가 예기치 않게 드롭되어 타임아웃을 600초로 늘린 후 문제가 재현되지 않습니다.:)
언급URL : https://stackoverflow.com/questions/32476574/mysql-connection-time-out-in-grails-application-using-mariadb-galera-cluster-ov
반응형
'programing' 카테고리의 다른 글
parseInt()와 Number()의 차이점은 무엇입니까? (0) | 2022.10.21 |
---|---|
"읽기 전용" 속성을 추가하는 방법"읽기 전용" 속성을 추가하는 방법?? (0) | 2022.10.21 |
vuej 마운트된 라이프 사이클이 트리거되지 않음 (0) | 2022.10.21 |
mysql 마지막 행에서 선택 (0) | 2022.10.21 |
Javascript는 지금까지 선행 0을 추가했습니다. (0) | 2022.10.11 |