Как переподключить DBCP после изменения VPN во время работы SpringBoot? - PullRequest
0 голосов
/ 20 апреля 2020

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

Я использую

  • java 8
  • springboot
  • hakaricp
  • postgresql
  • mybatis
  • ubuntu 18.04

(я добавил 'autoReconnect = true' как параметр в конце jdb c -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();
}
...