2013-11-28 89 views
2

我正在使用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,因爲它有時會起作用。

有誰知道什麼可能會導致此行爲?

回答

0

可能的原因

- >您可以與您的TNS監聽的問題。

從命令提示符窗口中,嘗試運行TNSPING service_name ..嘗試快速運行它幾次,並檢查它們中的一些是否失敗。

我曾經有過類似的問題。嘗試重新配置您的TNS-Listener。

還必須有一個選項,您可以在TNS偵聽器定義中給出一個IP號碼。這也有時解決了這些問題。

- > IIS問題。

+0

感謝您的指點。我試過了TNSPING,每次都會回來'OK'。 – RandomCoder

0

你能超越併發HTTP連接的限制嗎?我依稀記得當我忘記關閉HTTP連接時遇到了類似的問題。

相關問題