2016-10-28 31 views
1

我有一個應用程序部署在weblogic服務器。在那個應用程序中,我通過複合中的bpel調用異步web服務。 5分鐘後超時。 我嘗試在調用活動期間添加以下代碼: bpelx:for =「'PTM20'」 但仍超時5分鐘。在SOA中超時

除了添加它之外,還有什麼需要做的嗎?是否有任何全局SOA屬性需要修改?

我通過BPEL調用一個aync Web服務這樣的:

< invoke name="myprocess" inputVariable="varx" operation="method" bpelx:for="'PTM20'" ....> 

我得到的例外是以下幾點:

<bpelFault><faultType>0</faultType> 
<remoteFault xmlns="http://schemas.oracle.com/bpel/extension"> 
<part name="summary"> 
<summary>oracle.fabric.common.FabricInvocationException: Unable to invoke endpoint URI "my_webservice_url" successfully due to: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed: Read timed out</summary></part> 
<part name="detail"><detail>Unable to invoke endpoint URI "my_webservice_url" successfully due to: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed: Read timed out</detail></part> 
<part name="code"><code>null</code></part> 
</remoteFault></bpelFault> 

雖然經歷審覈跟蹤,我可以看到的時間差在調用和超時之間發生的是5分鐘。它沒有按預期等待20分鐘。

請幫忙。

謝謝。

+0

您好,歡迎到現場。你能否添加一些示例代碼/設置文件來說明你在做什麼,你得到什麼異常以及你運行的設置(如果適用)?它將幫助潛在的回答者更好地理解正在發生的事情,從而幫助他們幫助你。 – Buurman

+0

謝謝。 我已經添加了詳細信息。 –

回答

1

有幾個地方配置SOA/BPEL引擎超時時要考慮:

  1. 域範圍的全局JTA超時設置
  2. 個人BPEL引擎EJB超時

理想情況下,你永遠都不想打這些超時,因爲你將無法做適當的錯誤處理。爲避免這種情況,您應該在傳出引用鏈接上設置單獨的超時值,並確保它們的值小於上述兩個值。

有關於這個問題的許多可用的博客文章,對於初學者看看this post

+0

謝謝。 我檢查了我的開發服務器中的配置並檢查了配置。這些配置都沒有設置爲5分鐘。 我應該檢查其他配置嗎? 此外,下面這行代碼現在用於更改該調用事件的超時? bpelx:for =「'PTM20'」 謝謝 –

+0

在您將更多詳細信息添加到您的問題之前,我已經添加了我的答案。從你得到的異常,我假設你正在調用一些基於SOAP的Web服務。要增加超時時間,您應該在參考鏈接上設置「HTTP Read Timeout」屬性。這可以通過EM控制檯在運行時完成。 –

+0

是的。我認爲這正是我需要改變的屬性。 在參考鏈接中,在EM控制檯下他們提到了SOA管理 - > BPEL屬性。 我無法在那裏找到HTTP Read Timeout屬性。我也檢查了SoaInfraConfig。 請幫我找到EM中的這個屬性。 謝謝 –