Мне нужно изменить 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();
}