2013-10-29 25 views
0

所以標題說明了一切,當在由Java EE Con​​tainer執行的方法的異步調用期間會發生什麼情況,還會調用另一個也使用@Asynchronous註釋的方法。我預計會有一個更多的異步調用。然而這個規範並沒有提到這個問題,所以這也可能是應用服務器廠商特定的?@Asynchronous方法調用另一個@Asynchronous方法時出現什麼情況?

當前我正在分析運行在Websphere中的Java EE應用程序的性能。我清楚地看到方法樹中第二個異步方法實際上將被同步調用。這對我來說實際上是有道理的,因爲我們已經處於某種異步的環境中,所以不要提交新任務,我們可以馬上執行它。

對此有何想法?

+0

第二個異步方法應該與第一個異步。你可以在第二個方法被同步調用的地方顯示堆棧跟蹤嗎?這將是一個產品缺陷。 –

+0

問題是我正在分析的應用程序來自我們的客戶之一,所以我不能發佈任何堆棧跟蹤或類似的應用程序敏感內容。 –

+0

您可以替換它們的類/方法(如com.example.Xyz.method1)嗎? –

回答

0

This works。第二個調用將發佈一個請求,以執行該方法到AS維護的一些內部隊列。

但是...要非常小心地等待任何未來的結果,第二種方法可能會返回。如果第二種方法是無效方法,它總是安全的。

相關問題