是否有任何一致的方法来检查会话在Oracle中是否仍然存在?

时间:2016-10-24 20:18:31

标签: oracle session consistency

我有会话SIDSERIAL#。有没有一致的方法来检查会话是否仍然存在且已连接?

现在我的应用程序使用GV$SESSION视图上的简单查询来获取该信息。但看起来活动会话可能会不时从视图中消失几秒钟,然后再次使用相同的SIDSERIAL#重新显示在视图中。

Oracle documentation说明了GV$SESSION等动态效果观点:

  

动态性能视图基于构建的虚拟表   数据库内存结构。因此,它们不是传统的表格   存储在数据库中。 无法保证读取一致性   视图,因为数据是动态更新的。

我认为这就是为什么我的会话从GV$SESSION消失的原因。有没有其他方法可以持续获得这些信息?

1 个答案:

答案 0 :(得分:0)

在Oracle中检查会话是否存在看起来更可靠的方法是使用DBMS_SESSION包,即DBMS_SESSION.IS_SESSION_ALIVE函数。