SocketTimeoutException on JMX ports when starting HikariCP in Spring Boot application

Viewed 131

When starting a Spring Boot Application (Spring Boot v2.35) in a Docker container using HikariCP (v3.4.5) the following warning appears in logs:

Picked up JAVA_TOOL_OPTIONS: ... -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=<dockerhostname> -Dcom.sun.management.jmxremote.port=3181 -Dcom.sun.management.jmxremote.rmi.port=3181 -Dcom.sun.management.jmxremote.authenticate=false ....
 
...


2021-06-08 07:22:07.781  INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...                                                                                                     
2021-06-08 07:22:08.077  WARN 1 --- [MI TCP Accept-0] sun.rmi.transport.tcp                    : RMI TCP Accept-0: accept loop for ServerSocket[addr=0.0.0.0/0.0.0.0,localport=41775] throws                                    
                                                                                                                                                                                                                                
java.net.SocketTimeoutException: Accept timed out                                                                                                                                                                               
 at java.base/java.net.PlainSocketImpl.socketAccept(Native Method)                                                                                                                                                              
 at java.base/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458)                                                                                                                                         
 at java.base/java.net.ServerSocket.implAccept(ServerSocket.java:565)                                                                                                                                                           
 at java.base/java.net.ServerSocket.accept(ServerSocket.java:533)                                                                                                                                                               
 at jdk.management.agent/sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:52)                                                                                                     
 at java.rmi/sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:394)                                                                                                                             
 at java.rmi/sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:366)                                                                                                                                           
 at java.base/java.lang.Thread.run(Thread.java:834)                                                                                                                                                                             
                                                                                                                                                                                                                                
2021-06-08 07:22:08.079  WARN 1 --- [TCP Accept-3181] sun.rmi.transport.tcp                    : RMI TCP Accept-3181: accept loop for ServerSocket[addr=0.0.0.0/0.0.0.0,localport=3181] throws                                  
                                                                                                                                                                                                                                
java.net.SocketTimeoutException: Accept timed out                                                                                                                                                                               
 at java.base/java.net.PlainSocketImpl.socketAccept(Native Method)                                                                                                                                                              
 at java.base/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458)                                                                                                                                         
 at java.base/java.net.ServerSocket.implAccept(ServerSocket.java:565)                                                                                                                                                           
 at java.base/java.net.ServerSocket.accept(ServerSocket.java:533)                                                                                                                                                               
 at java.rmi/sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:394)                                                                                                                             
 at java.rmi/sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:366)                                                                                                                                           
 at java.base/java.lang.Thread.run(Thread.java:834)                                                                                                                                                                             
                                                                                                                                                                                                                                
2021-06-08 07:22:08.273  INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.                                                                                                

The application configuration contains

spring:
  datasource:
    hikari:
      register-mbeans: true
  jmx:
    enabled: true

The later JMX access via VisualVM works, so the warnings seem to have no effect.

I guessed it could be an initialization problem, so I set a dependency from DataSource-Bean to the Micrometer MeterRegistry-Bean explicitly. But that doesn't help.

What is the cause for the warnings? And how to get rid of them?

0 Answers
Related