diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/HikariCheckpointRestoreLifecycle.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/HikariCheckpointRestoreLifecycle.java index 40585e4885d1..2e06f13564bf 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/HikariCheckpointRestoreLifecycle.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/HikariCheckpointRestoreLifecycle.java @@ -109,13 +109,18 @@ public void stop() { logger.info("Suspending Hikari pool"); this.dataSource.getHikariPoolMXBean().suspendPool(); } + else { + logger.warn(this.dataSource + " is not configured to allow pool suspension. " + + "This will cause problems when the application is checkpointed. " + + "Please configure allow-pool-suspension to fix this!"); + } closeConnections(Duration.ofMillis(this.dataSource.getConnectionTimeout() + 250)); } private void closeConnections(Duration shutdownTimeout) { logger.info("Evicting Hikari connections"); this.dataSource.getHikariPoolMXBean().softEvictConnections(); - logger.debug("Waiting for Hikari connections to be closed"); + logger.debug(LogMessage.format("Waiting %s for Hikari connections to be closed", shutdownTimeout)); CompletableFuture allConnectionsClosed = CompletableFuture.runAsync(this::waitForConnectionsToClose); try { allConnectionsClosed.get(shutdownTimeout.toMillis(), TimeUnit.MILLISECONDS);