【发布时间】:2011-08-23 05:35:11
【问题描述】:
我的代码在服务器上运行 oracle 选择查询。服务器可能是空闲的,也可能在某些时候很忙。现在我正在做的是 Pro*C 中的超时机制,它在 10 秒后超时并取消正在运行 oracle 查询的线程(如果它仍在运行)。
现在,我面临的问题是超时功能计划在 10 秒后终止线程,而且它做得很好。但是,它无法确定 oracle 查询在终止时是否仍处于等待状态,或者它正在返回结果/正在执行过程/blah-blah...
我想要的是一个函数/机制/任何能够查询发起的 oracle 查询的状态并执行如下操作的功能/机制:10 秒后,
IF (query is still in waiting state)
DO terminate all threads;
ELSE IF (query is fetching data/doing some processing)
DO wait for the fetching/processing to complete and then terminate all threads;
如果可能,最好使用 Pro*C 或 Oracle 函数调用而不是使用复杂的代码。
【问题讨论】:
标签: linux oracle oracle-pro-c