0

私のコードは、サーバー上で 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 の関数呼び出しが最適なオプションです。

4

1 に答える 1