Always check the localhost.log for the word connections
In multiTenantConnectionProvider - turn hibernate statistic on:
lSettings.put("hibernate.generate_statistics","true");
also add hikari leak threashold in not already in
lSettings.put("hibernate.hikari.leakDetectionThreshold","10000");
can also reduce the no of connection so easier to trigger the issue
lSettings.put("hibernate.hikari.minimumIdle", "1");
// Maximum number of actual connection in the pool
lSettings.put("hibernate.hikari.maximumPoolSize", "10")
In logback ensure logging hibernate stats and hikari
<appender name="HIKARI" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/hikari.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/hikari.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<totalSizeCap>5GB</totalSizeCap>
<maxHistory>20</maxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>[%-5level] -%d{yyyy-MM-dd HH:mm:ss:SSS} -%X{tenant} - [%X{IP}] - %c{2}:%L - %m%n</pattern>
</layout>
</appender>
<logger name="com.zaxxer.hikari" level="ALL" additivity="false">
<appender-ref ref="HIKARI" />
</logger>
<appender name="HIBERNATE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/hibernate.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/hibernate.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<totalSizeCap>5GB</totalSizeCap>
<maxHistory>20</maxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>[%-5level] -%d{yyyy-MM-dd HH:mm:ss:SSS} -%X{tenant} - [%X{IP}] - %c{2}:%L - %m%n</pattern>
</layout>
</appender>
<logger name="org.hibernate" level="TRACE">
<appender-ref ref="HIBERNATE" />
</logger>