gpt4 book ai didi

spring-boot - 嵌套异常是 javax.management.InstanceAlreadyExistsException : com. zaxxer.hikari :name=dataSource, type=HikariDataSource

转载 作者:行者123 更新时间:2023-11-28 23:13:50 27 4
gpt4 key购买 nike

我已经在 tomcat-8.5 中部署了我的 spring boot 应用程序。只要部署了一个 war 实例,它就可以正常工作,但是一旦我尝试部署同一 war 文件的下一个版本(我正在尝试在 tomcat 中进行并行部署),它就会抛出

Caused by: org.springframework.jmx.export.UnableToRegisterMBeanException: 无法使用键 'dataSource' 注册 MBean [HikariDataSource (HikariPool-7)];嵌套异常是 javax.management.InstanceAlreadyExistsException: com.zaxxer.hikari:name=dataSource,type=HikariDataSource

我知道,因为一个实例已经在现有的 hikari 池中运行,部署另一个实例会尝试创建一个具有相同名称的不同池并抛出错误,因为池已经存在。

我可以在每次部署新版本的应用程序时更改池名称,但我认为这不是一个好的解决方案。

有没有更好的方法可以在 tomcat 中实现并行部署而不会遇到这个问题?

最佳答案

根据@brettwooldridge response,你不能有 2 个同名的池

each webapp must be configured with a unique poolName property in HikariCP, otherwise their MBean registration names will collide.

It looks like two pools are somehow being created. The second one, with the same name as the first, will fail to register. If you don't declare a poolName then HikariCP will auto-generate them, which will work, but is likely to just cover-up the underlying issue of why two pools are being created. That is either a Spring Boot or JHipster configuration issue ... must likely Spring Boot.

要么不声明池名称(如果可能),要么随机化/向池名称添加序列

关于spring-boot - 嵌套异常是 javax.management.InstanceAlreadyExistsException : com. zaxxer.hikari :name=dataSource, type=HikariDataSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53178877/

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