我正在使用utl_http
包在與Oracle相同的服務器(本地)上向IIS站點發出HTTP GET請求。有時工作,我得到了迴應,但往往不是它掛起約15秒,然後我得到這個錯誤:ORA-29273:使用utl_http包的HTTP請求失敗間歇性錯誤
ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP", line 1722 ORA-29263: HTTP protocol error
作爲一個測試,我有在IIS小靜的文本文件現場,所以這是我如何測試它:
select utl_http.request('http://domain.com/test.txt') from dual
我得到了同樣的問題,如果我在的Oracle APEX的分貝運行它,而不是直接的。
我試過的另一件事是創建一個我自己的包,它使用長的utl_htp.begin_request()
方法執行HTTP請求,而不是使用utl_http.request()
快捷方式。這給出了完全相同的問題(有時有效,但大多數錯誤 - 相同的錯誤)。
我看到的模式是,如果我等一會兒然後嘗試,它會在第2-10次的時候起作用,然後開始出錯。當它工作時,我立即得到響應,當它出現錯誤時,錯誤之前總會有延遲。
如果我使用遠程Web瀏覽器請求文本文件的URL(或站點中的任何其他資源),那麼我每次都會得到正確的響應。
我已經嘗試設置如下超時但它沒有任何效果。例如,在3秒後超時,而不是在顯示錯誤之前持續10或15秒。
UTL_HTTP.set_transfer_timeout(3);
我想我可以排除ACL,因爲它有時會起作用。
有誰知道什麼可能會導致此行爲?
感謝您的指點。我試過了TNSPING,每次都會回來'OK'。 – RandomCoder