【问题标题】:javax.management.InstanceAlreadyExistsException: com.zaxxer.hikari:name=dataSource,type=HikariDataSourcejavax.management.InstanceAlreadyExistsException: com.zaxxer.hikari:name=dataSource,type=HikariDataSource
【发布时间】:2018-08-11 08:42:20
【问题描述】:

我该如何解决这个问题?哪个是最佳选择以及如何做到这一点

  1. 设置唯一的池名
  2. 销毁之前的连接池

org.apache.catalina.core.ApplicationContext.log Initializing Spring embedded WebApplicationContext
11-Aug-2018 16:05:53.863 SEVERE [Catalina-startStop-1] org.apache.catalina.core.ContainerBase.startInternal A child container failed during start
 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[sss].StandardContext[]]
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at ..........
...............
......
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[sss].StandardContext[]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
        ... 6 more
Caused by: org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [HikariDataSource (HikariPool-2)] with key 'dataSource'; nested exception is javax.management.InstanceAlreadyExistsException: com.zaxxer.hikari:name=dataSource,type=HikariDataSource
        at org.springframework.jmx.export.MBeanExporter.registerBeanNameOrInstance(MBeanExporter.java:625)
        at 
..........................

org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5245)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        ... 6 more
Caused by: javax.management.InstanceAlreadyExistsException: com.zaxxer.hikari:name=dataSource,type=HikariDataSource
        at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898)
        at .................
............
        at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)`

【问题讨论】:

    标签: java spring-boot hikaricp


    【解决方案1】:

    有两种方法可以解决这个问题。

    我。禁用jmx

    二。设置默认域和唯一名称(如果要启用 jmx 并拥有同一应用程序的多个实例,则需要它)

    禁用 jmx:

    application.yml:

    spring:
      jmx:
        enabled: false
    

    或application.properties:

    spring.jmx.enabled= false
    

    如果需要启用 jmx,请设置以下属性。

    application.yml:

    spring:
      jmx:
        default-domain: com.application.name
        unique-names: true
    

    或application.properties:

    spring.jmx.default-domain=com.application.name
    

    【讨论】:

    • 使用 spring.jmx.default-domain 足以解决该异常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 2013-12-28
    • 2021-10-11
    • 2016-06-09
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    相关资源
    最近更新 更多