Мой код запускает запрос выбора оракула на сервере.Сервер может быть свободен или может быть занят в определенное время. Теперь я использую механизм тайм-аута в Pro * C, который истекает через 10 секунд и отменяет поток, в котором выполнялся запрос Oracle (если он все еще выполняется).
Теперь проблема, с которой я сталкиваюсь, заключается в том, что функция тайм-аута запланирована для завершения потоков через 10 секунд, и это очень хорошо.Однако он не может определить, был ли запрос оракула все еще в состоянии ожидания во время завершения или он возвращал результаты / выполнял процедуру / бла-бла ...
То, что я хочу, это функция /механизм / все, что может запрашивать состояние инициированного запроса оракула и действовать следующим образом: через 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 вместо использованиясложный код, если возможно.