我尝试在同一个tomcat7实例上部署两个WAR文件(app1.war和app2.war)。我得到了这个错误:
Unable to register MBean [HikariDataSource (HikariPool-0)] with key
'dataSource'; nested exception is javax.management.InstanceAlreadyExistsException:
com.zaxxer.hikari:name=dataSource,type=HikariDataSource如果我只在tomcat上部署了一个应用程序,就不会出现这个错误。有没有办法解决这个问题?
发布于 2018-09-14 18:56:28
在spring boot中,jmx bean在运行时加载,并扫描您的应用程序。如果找到两个数据源,将抛出javax.management.InstanceAlreadyExistsException.这可以通过在application.properties文件中定义缺省的jmx缺省域名来解决,如下所示
spring.jmx.default-domain=app_name我希望这能帮到你。
发布于 2018-06-26 22:30:06
在Spring Boot中,您可以通过application.properties更改Hikari数据源池的名称:
spring.datasource.hikari.poolName=MyDataPoolName或者分别为application.yml:
spring:
datasource:
hikari:
pool-name: MyDataPoolName然后Tomcat可以加载这两个应用程序,名称冲突也就消失了。
发布于 2015-12-15 18:54:23
为数据源提供唯一的名称。例如,如果您有不同的模式来存储用户和产品数据,则可以将数据源分别命名为userDS和productDS。
程序化配置
HikariDataSource userDS = new HikariDataSource();
userDS.setPoolName("userDS");
// Set other data source properties.
HikariDataSource productDS = new HikariDataSource();
productDS.setPoolName("productDS");
// Set other data source properties.弹簧配置
<bean id="userDS" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<property name="poolName" value="userDS"/>
...
</bean>
<bean id="productDS" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<property name="poolName" value="productDS"/>
...
</bean>https://stackoverflow.com/questions/34284984
复制相似问题