
这时候需要找出造成异常阻塞的session并清除。
oracle session通常具有三个特征:
(1)一个session可能阻塞多个session;
(2)一个session最多被一个session阻塞;
(3)session阻塞关系不会形成环路。(环路即死锁,oracle能自动解除)
因此session的阻塞关系为一棵树,进而DB系统所有session的BLOCK阻塞关系是一个由若干session阻塞关系树构成的森林,而异常session一定会在故障爆发时成为根(root)。因此,找寻异常锁表session的过程就是找出异常的root。
一般认为异常root有两个特征:(1)block树的规模过大,阻塞树规模即被root层层阻塞的session总数;(2)阻塞的平均等待时间过长。
查找异常session的方法一:
OEM—> performance—> Blocking Sessions
查找异常session的方法二:
select rroot_sid, sserial#,
rblocked_num, ravg_wait_seconds,
susername,sstatus,sevent,sMACHINE,
sPROGRAM,ssql_id,sprev_sql_id
from (select root_sid, avg(seconds_in_wait) as avg_wait_seconds,
count() - 1 as blocked_num
from (select CONNECT_BY_ROOT sid as root_sid, seconds_in_wait
from v$session
start with blocking_session is null
connect by prior sid = blocking_session)
group by root_sid
having count() > 1) r,
v$session s
where rroot_sid = ssid
order by rblocked_num desc, ravg_wait_seconds desc;
该SQL语句即是根据v$session的字段blocking_session统计阻塞树根阻塞session的计数以及平均阻塞时间、并进行排序,排名最前的往往是异常session。
根据你的异常可以肯定是数据库异常SQLException,有可能是你的项目下WebRoot---WEB-INF---lib下没有添加ojdbc14jar包,或者是你的数据库服务名不是orcl,反正就是你的数据库出错了!
1首先,你是否是管理员安装的Oracle;
2安装的版本是不是:10203_database_vista,如果不是的话,建议下载安装。
win7的权限要求是非常严格的,不兼容vista以前的版本。
下载地址:
>
The NetWork Adapter could not establish the connection
这个问题曾经看人遇到过,原因就是你监听的主机和驱动里的主机不一致。可以尝试以下步骤:
1关闭防火墙并重启一次
2重新启动OracleOraDb11g_home1TNSListener,再重启OracleServiceORCL。
3在配置和移植工具中,重新配置Net Manager:Tcp/ip 为localhost计算机名注意方括号的解释为:(localhost + 你的计算机名)。
4打开Net Configuration Assistant,-->下一步-->重新配置-->下一步--->--->完成。
如果能解决记得给分~!
类投射异常,
检查url,username,password
检查xml配置文件
逆向工程用的xml不是用于Oracle的
数据库连接问题,重启服务
java 连接oracle数据库出现这样的异常是由于路径下面没有找java连接oracle数据库的驱动。
从错误截图看到,你应该用的是eclipse工具,
将oracle的驱动jar包拷贝到项目,再将其添加到类路径中就可以解决
以上就是关于如何查看oracle数据库中哪些session异常阻塞了系统全部的内容,包括:如何查看oracle数据库中哪些session异常阻塞了系统、求一个关于oracle连接数据库异常的问题、oracle数据库监听异常等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)