次のコードを使用して、http 要求の応答を読み取ります。
FUNCTION readClob (ww_reponse IN OUT NOCOPY UTL_HTTP.resp)
RETURN CLOB
IS
l_clob CLOB;
l_text VARCHAR2 (32767);
BEGIN
DBMS_LOB.createtemporary (l_clob, FALSE);
BEGIN
LOOP
=> UTL_HTTP.read_text (ww_reponse, l_text, 32767);
DBMS_LOB.writeappend (l_clob, LENGTH (l_text), l_text);
END LOOP;
EXCEPTION
WHEN UTL_HTTP.end_of_body
THEN
UTL_HTTP.end_response (ww_reponse);
END;
これは小さなリクエストでは正常に機能しますが、より長いリクエスト (約 60 秒以上) では、命令で ORA-24247 エラー ( network access denied by access control list (ACL)
) が発生しますread_text
が、驚いたことに、最初の呼び出しではなく、ランダムな次の反復で、約 60 です。秒後。私の ACL は問題ありません。そうでなければ、何も機能しません。また、より大きなタイムアウトを設定しました。明らかに、エラーは「実際の」エラーではありません。誰もが同じ問題と解決策を持っていますか? ありがとうございました。
環境: Windows Server 2008 (64 ビット) 上の Oracle Database 11g Enterprise Edition