高手进来看看,给个思路!!!!!

时间:2021-06-20 00:50:39
作了一个CS数据库程序。客户端的操作系统是
windows xp 
后台数据库是oracle 9i 操作系统 windows 2003
问题:
在客户端执行项数据库提交数据时偶尔会出现锁表现象,在服务器上将锁kill掉还是锁,但如果重新启动服务器,客户端正常了,问题不是每次都出,代码摊开看了,觉得不是代码的问题,现在问题出现的很有规律大概10小时一次。
还有更令我想不通的问题,为什么客户端死机,可是程序在服务器上运行正常??
SOS严重关切。

6 个解决方案

#1


???

#2


在线等待结果!

#3


--> 但如果重新启动服务器,客户端正常了;
1。首先说明你的某个表的确被锁定了,这是不容怀疑的。
2。在表锁定时,你看看当前锁的是哪个表,是哪个用户在进行何种操作,尽量从逻辑上
避免它;
3。如果有时业务逻辑过于复杂,短期有不可能分析出来,那就在自己的程序启动时
做个杀死自己所有尚在激活的会话的功能。这样当客户司机时,你就告诉客户重新启动
进入程序即可。
4。如果客户太多,不是第一个锁的人重启机器是没有用的,那就做编写一个定期
查询锁定对象的程序,看到某个热表锁定超过一定时间比如20s,就杀掉锁定的会话。
这样客户感觉不到,程序流畅。

#4


问题时光KILL掉这种会话他也没用

#5


top

#6


TOP

#1


???

#2


在线等待结果!

#3


--> 但如果重新启动服务器,客户端正常了;
1。首先说明你的某个表的确被锁定了,这是不容怀疑的。
2。在表锁定时,你看看当前锁的是哪个表,是哪个用户在进行何种操作,尽量从逻辑上
避免它;
3。如果有时业务逻辑过于复杂,短期有不可能分析出来,那就在自己的程序启动时
做个杀死自己所有尚在激活的会话的功能。这样当客户司机时,你就告诉客户重新启动
进入程序即可。
4。如果客户太多,不是第一个锁的人重启机器是没有用的,那就做编写一个定期
查询锁定对象的程序,看到某个热表锁定超过一定时间比如20s,就杀掉锁定的会话。
这样客户感觉不到,程序流畅。

#4


问题时光KILL掉这种会话他也没用

#5


top

#6


TOP