Как повторно подключить 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();
}