web-dev-qa-db-ja.com

javax.management.InstanceAlreadyExistsException:com.zaxxer.hikari:name = dataSource、type = HikariDataSource

どうすればこの問題を解決できますか? 

どちらが最良の選択であり、それを行う方法

  1. 一意のpoolNameを設定します
  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)`
4

この問題を解決するには2つの方法があります。

私。 jmxを無効にする

ii。 default-domainと一意の名前を設定します(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
11