2011-01-09 92 views
1

我有一個APEX問題。我們有兩臺服務器。一個(運行Oracle APEX)是大學服務器,我們只能訪問該工作區。另一個是我家裏的Linux計算機,它充當服務器(運行帶有Jasperreports容器的Tomcat)。我想從APEX機器發送一個UTL_HTTP請求到Jasperreports機器。有一個按鈕,這觸發一個處理用下面的代碼:後我推觸發按鈕我獲得以下errormessage的Oracle中的UTL_HTTP包問題APEX

 
begin 
    xlib_jasperreports.set_report_url('http://X.X.X.X:8080/JasperReportsIntegration/report'); 
    xlib_jasperreports.show_report (p_rep_name => :p5_rep_name, 
            p_rep_format => :p5_rep_format, 
            p_data_source => :p5_data_source, 
            p_out_filename => :p5_out_filename, 
            p_rep_locale => :p5_rep_locale, 
            p_rep_encoding => :p5_rep_encoding, 
            p_additional_params => :p5_additional_params); 

    -- stop rendering of the current APEX page 
    apex_application.g_unrecoverable_error := true; 
end; 

20至30秒後:

ORA-29273:HTTP請求失敗ORA-06512 :在「SYS.UTL_HTTP」,1029行ORA-12535:TNS:操作超時

我檢查了set_report_url函數通過設置一個公共url。它的工作。有人有線索嗎?

由於提前, Haniball

回答

1

甲骨文的較新版本有網絡ACL的安全性,所以它可能是該架構所有者沒有權限訪問特定的網址。不過,我期望有一個安全違規。

另一種選擇是它被數據庫服務器和家用機器之間的防火牆阻止。數據庫服務器機器可能(可能)已被設置爲只允許訪問一小部分站點(或者根本沒有)。您的家庭計算機上也可能有一個防火牆,防止不在IP地址/範圍列表中的計算機訪問。

嘗試針對各種網站(例如google.com主頁)的一些基本UTL_HTTP操作,並查看您得到的回覆。


錯過了明顯的UTL_HTTP.set_transfer_timeout。這可能是因爲這個工作在家庭服務器上花了太長時間。

+1

不能是ACL,因爲它會給出正確的錯誤消息。 – 2011-02-03 13:19:54