首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Grails 2.3.6中定义备用连接池

在Grails 2.3.6中定义备用连接池
EN

Stack Overflow用户
提问于 2014-09-10 18:15:31
回答 1查看 2K关注 0票数 7

我知道,在Grails1.X和Grails2.x之间的某个时候,默认的连接池库从commons-dbcp更改为tomcat-dbcp

现在,我试图将BoneCP或HikariCP配置为Grails应用程序的连接池库。

但是,我看到这个答案提供了一个可能只适用于Grails1.X的解决方案。

我也找到了这个要旨,但我也不知道它适用于哪个Grails版本。

那么,是否可以在Grails 2.3.6应用程序中定义自定义连接池?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-09-10 21:55:05

更新: OK,所以您实际上需要告诉Grails 而不是来汇集数据源,因为HikariCP现在正在处理这个问题。

我看到了我的应用程序中的连接奇怪,如果我离开那个开关。因此,相反,请说:

代码语言:javascript
复制
pooled = false

“好吧,是的,”约书亚摩尔说得对。

我尝试用更新的Grails方法来做这件事,这是我的resources.groovy文件的相关部分。据我所知,Datasource.groovy中的配置值是在目标运行时环境被识别后(developmenttestproduction)在运行时被拖到resources.groovy中的。

代码语言:javascript
复制
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配置的相关部分:

代码语言:javascript
复制
// 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'
      }
   }
}

在我的例子中,对于testproduction环境来说,这几乎是一样的。谢谢!

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25772324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档