私のコードは、サーバー上で oracle select クエリを実行します。サーバーは空いているか、特定の時間にビジーである可能性があります.今私が作っているのは、10秒後にタイムアウトし、Oracleクエリを実行していたスレッドをキャンセルするPro*Cのタイムアウトメカニズムです(まだ実行中の場合)。
今、私が直面している問題は、タイムアウト機能が 10 秒後にスレッドを終了するようにスケジュールされていることです。これは非常にうまく機能します。ただし、オラクルのクエリが終了時にまだ待機状態にあったのか、それとも結果/実行中の手順/何とか...を返していたのかを判断することはできません...
私が欲しいのは、開始された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 の関数呼び出しが最適なオプションです。