UPDATE : 당신이 실제로 HikariCP 지금이 돌보는되어 있기 때문에, 데이터 소스를 풀 없습니다 Grails의 말할 필요하므로 확인을 클릭합니다.
스위치를 켜 놓으면 내 앱에 이상한 연결이 보입니다. 대신 다음과 같이 말하십시오.
pooled = false
그래, @ Joshua Moore가 맞습니다.
업데이트 된 Grails 메소드로 시도해 보았습니다. 이것은 내 resources.groovy
파일의 관련 섹션입니다. 내가 이해할 수있는 한 Datasource.groovy
의 구성 값은 런타임에서 대상 런타임 환경이 확인 된 후 (development
, test
또는 production
) resources.groovy
으로 가져옵니다. 그것은 거의이다 test
및 production
환경 같은, 내 경우
// environment specific settings
environments {
development {
dataSource_myapp1 {
pooled = false
username = "CONFIGURE_ME_EXTERNALLY"
password = "CONFIGURE_ME_EXTERNALLY"
driverClassName = 'oracle.jdbc.OracleDriver'
dialect = 'org.hibernate.dialect.Oracle10gDialect'
url = 'jdbc:oracle:thin:@MYDBHOST1:1521/MYSERVICEID1'
}
dataSource_myApp2 {
pooled = false
username = "CONFIGURE_ME_EXTERNALLY"
password = "CONFIGURE_ME_EXTERNALLY"
driverClassName = 'oracle.jdbc.OracleDriver'
dialect = 'org.hibernate.dialect.Oracle10gDialect'
url = 'jdbc:oracle:thin:@MYDBHOST2:1521/MYSERVICEID2'
}
}
}
:
def config = Holders.config
def dataSources = config.findAll {
it.key.toString().contains("dataSource_")
}
dataSources.each { key, value ->
def ds = value
"${key}"(HikariDataSource, { bean ->
def hp = new Properties()
hp.username = ds.username
hp.password = ds.password
hp.connectionTimeout = 6000
hp.maximumPoolSize = 60
hp.jdbcUrl = ds.url
hp.driverClassName = ds.driverClassName
HikariConfig hc = new HikariConfig(hp)
bean.constructorArgs = [hc]
})
}
는 그리고 이것은 관련 내 DataSource.groovy
구성 섹션입니다. 감사!
Gist는 Grails의 모든 버전에서 작동해야합니다. –
@JoshuaMoore 사실이지만, 더 이상 사용되지 않는 개별 Holder 클래스 대신에'grails.util.Holders'를 사용하도록 업데이트해야합니다. – rmlan
@rmlan 동의하지만 접근 방식은 여전히 동일합니다. –