![](/upload/rand_pic/2-1154.jpg)
一般采用超时法或事务等待图法:
(1)超时法
如果一个事务的等待时间超过规定时间,就认为发生了死锁。这个实现简单,但不足也很明显。
(2)事务等待图法
事务等待图是一个有向图G=(T, U),T为结点的集合,每个结点表示正在运行的事务;U为边的集合,每条边表示事务等待的情况。若事务T1等待事务T2,则T1,T2之间有一条有向边,从 T1 指向 T2。如果发现图中存在回路,则表示系统中出现了死锁。
发现死锁后,靠事务本身无法打破死锁,必须由DBMS干预。DBMS对死锁一般作下列处理:
● 在循环等待的事务中,选一个事务,将该事务撤销,释放其获得的锁及其它资源;
● 将释放的资源分配给等待该事务的其它事务。
数据库连接池怎么检测在网页上显示连接成功在链接字符串中加上autoReconnect=true
如jdbc:mysql://localhost:3306?autoReconnect=true
如果想判断是否连接成功,可以通过jdbc返回一个Connection对象,判断该对象是否为空