gpt4 book ai didi

Java:如果数据库连接卡住或断开,如何重新启动它?

转载 作者:行者123 更新时间:2023-12-01 09:44:51 24 4
gpt4 key购买 nike

我很难确定我的连接何时中断,这对我来说是随机发生的。我尝试设置一个计时器来指示连接是否卡住(对于我的情况,使用该连接的每个任务不应超过几秒钟),但这似乎不起作用。

我还应该注意连接,多个线程同时运行执行某种任务,如果一个线程仍然存在或没有中断并且已经超过了完成任务的分配时间,那么,我的,这表明存在连接问题。

这是我所做的要点:

        public void run(){
super.run();

try {

Timer timer = new Timer(true);
TimerTask task = new TimerTask(){

@Override
public void run() {


if(isAlive() || interrupted()){//there is a problem with the connection, but I never enter this case...

interrupt();
timer.cancel();
//end the connection and restart it all over again
try {
conn.close();
restartConnection();
} catch (SQLException e) {
e.printStackTrace();
}

}
else{//there is no problem with the connection

}
}
};
timer.schedule(task, 5000);//each task should not take anywhere near 5 secs, if it does, then I THINK there is a connection problem
timer.cancel();
}
} catch (IOException e) {
e.printStackTrace();
}
}

最佳答案

大多数数据库连接卡住是在存在表锁时发生的。连接将由该特定线程保持,直到该锁被释放。因此,下一个线程将等待连接池中的连接,该连接池现在已空。请检查是否有表锁。

关于Java:如果数据库连接卡住或断开,如何重新启动它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38149267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com