Grails를 사용하여 MySQL 연결을 관리 할 때 DataSource에서이 행을 따라 속성 섹션이 필요합니다 (재 연결을 처리하기 위해). 그루비 : 톰캣의 연결 풀을 사용하도록 전환하는 경우JNDI를 통해 tomcat 데이터베이스 리소스를 사용하는 Grails에 대해 pooled = true 또는 pooled = false가되어야합니다.
dataSource {
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
dialect = "org.hibernate.dialect.MySQL5InnoDBDialect"
properties {
maxActive = -1
minEvictableIdleTimeMillis=1800000
timeBetweenEvictionRunsMillis=1800000
numTestsPerEvictionRun=3
testOnBorrow=true
testWhileIdle=true
testOnReturn=true
validationQuery="SELECT 1"
}
environments {
production{
dataSource {
dbCreate = "upate"
url = "jdbc:mysql://127.0.0.1:3306/mydb"
username = "myuser"
password = "mypass"
}
}
, 대부분의 예는이 제공 :
production {
dataSource {
dbCreate = "update"
jndiName = "java:comp/env/revolve"
}
질문 1
DataSource.grovvy에서 pooled = true 또는 false로 설정하면이 연결 유형 (예 : 바람둥이 사용), 또는 중요합니까? 그것이 틀림 없다고 말하는 글이 있으며, 틀림 없다고 말하는 글과 그렇지 않은 글이 있습니다. True로 설정하면 이는 풀 풀이 있음을 의미하지만 대부분의 예제가 권장하는 것입니다.
질문 2
은 속성 섹션은 무시되어 있습니까? 그렇지 않은 경우 설정할 권장 필드는 무엇입니까? 내 시행 착오에서 속성은 무시되고있는 것 같고, this one과 같은 게시물과는 반대입니다.
예. JNDI를 사용할 때 DataSource.java 속성의 validationQuery = "SELECT 1"이 무시되는 것 같습니다. 나는. DB를 다시 시작하면 Tomcat의 응용 프로그램이 영구적으로 DB에 연결이 끊어졌습니다. 내가 context.xml에 thusly 히 톰캣이 같은 라인을 추가하는 경우 :
<Resource name="revolve" auth="Container" type="javax.sql.DataSource"
maxActive="50" maxIdle="5" maxWait="10000"
username="myuser" password="mypass" driverClassName="com.mysql.jdbc.Driver"
validationquery="SELECT 1;"
url="jdbc:mysql://127.0.0.1:3306/mydb"/>
을하고 난 DB를 지금 다시 시작하는 경우, Tomcat을 다시 시작 톰캣의 응용 프로그램은 계속 실행됩니다.
이것은 Tomcat의 연결 풀을 사용할 때 DataSource.groovy의 dataSource 속성 섹션이 무시된다는 것을 의미합니다.
이 답변에 따르면 weblogic-server에 구성된 jndi 데이터 소스를 사용하는 응용 프로그램에서는 예외가 발생하지 않아야합니다 ( weblogic.jdbc.extensions.PoolLimitSQLException). 그것이 발생하는 것에 관해서는,이 점에 대해 도움을 요청 하시겠습니까? –