gpt4 book ai didi

chalice 2.5 : "Another unnamed CacheManager already exists in the same VM" when using multiple datasources

转载 作者:行者123 更新时间:2023-12-04 12:40:24 30 4
gpt4 key购买 nike

通过开箱即用的 Grails 2.5 安装和干净的默认配置,添加第二个数据源在尝试启动应用程序时总是会出现此异常。这曾经在 grails 2.3.x 中没有问题
DataSource.groovy :

environments {
development {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://127.0.0.1:3306/myapp"
username = "myuser"
password = "mypass"
}

dataSource_report {
url = "jdbc:mysql://127.0.0.1:3306/myapp_reporting"
username = "someuser"
password = "somepass"
}
}

两个数据库都存在,如果只定义了一个数据源,则可以连接到它们。

BuildConfig.groovy , 是所有默认的东西(我假设),包括:
plugins {
build ":tomcat:7.0.55"

compile ":scaffolding:2.1.2"
compile ':cache:1.1.8'
compile ":asset-pipeline:2.1.1"
compile ":spring-security-core:2.0-RC4"
compile ":quartz:1.0.2"

runtime ":hibernate4:4.3.8.1" // or ":hibernate:3.6.10.18"
runtime ":database-migration:1.4.0"
runtime ":cors:1.1.6"
}

有很多帖子有这个错误,但似乎是因为作者试图使用非标准版本或缓存。

还尝试将其添加到 Config.groovy,根据这篇文章: https://github.com/grails/grails-core/releases/tag/v2.5.0
beans {
cacheManager {
shared = true
}
}

不幸的是,这没有帮助。

请注意,我们使用的是默认的开箱即用配置的缓存
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = false
cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
singleSession = true // configure OSIV singleSession mode
flush.mode = 'manual' // OSIV session flush mode outside of transactional context
}

==== 更新 ====

替换此行(在 DataSource.groovyhibernate 部分):
cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' 

有了这个:
cache.region.factory_class = 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'

似乎已经解决了这个问题,但现在的问题是,这个“修复”有什么缺点吗?

最佳答案

只是为了跟踪(就像 OP 已经在问题本身中回答了一样):

更改 cache.region.factory_classDataSource.groovy喜欢这个:

hibernate {
cache.region.factory_class = "org.hibernate.cache.SingletonEhCacheRegionFactory"
}

对于那些遇到错误的人,如: net.sf.ehcache.CacheException: Another unnamed CacheManager already exists in the same VM. , 将以下内容添加到您的 Config.groovy
beans {
cacheManager {
shared = true
}
}

Changes in ehcache version in hibernate plugins

关于 chalice 2.5 : "Another unnamed CacheManager already exists in the same VM" when using multiple datasources,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31524547/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com