Как повторно подключить DBCP после изменения VPN во время работы SpringBoot?

Мне нужно изменить свой VPN во время работы SpringBoot, и это приведет к отключению DBCP. Подождать, пока DBCP повторно подключится или создаст DBCP вручную после разрушения соединений, - это способ решить эту проблему?

я использую

  • Java 8
  • сапог
  • хакарич
  • postgresql
  • mybatis
  • убунту 18.04

(Я добавил autoReconnect=true в качестве параметра в конец jdbc-url)

public void doSomething() {
    // vpn on
    vpnSvc.vpnOn();

    // some codes ...
    someSvc.addSomething(someVo);  // sometimes this throws Failed to validate connection(This connection has been closed.)
}

public void vpnOn() {
    CountDownLatch latch = new CountDownLatch(1);

    ProcessBuilder builder = new ProcessBuilder();
    builder.command("sh","vpn_on.sh");
    Process process = builder.start();
    new BufferedReader(new InputStreamReader(process.getInputStream())).lines().forEach(System.out::println);
    int exitCode = process.waitFor();
    System.out.println(exitCode);

    Thread.sleep(5000);
    latch.countDown();
    latch.await();
}

0 ответов

Другие вопросы по тегам