2013-06-12 92 views
0

如何在同一時間調用多個數據庫上的查詢並等待它們的結果返回?

設置JBoss Web服務中的多線程

我使用JAX-WS和JBoss 7提供的Web服務。我的服務在多個數據庫上調用一個查詢,組合它們的結果並將所有結果返回給調用者。

Setting

我所做到目前爲止

我有一個工作的客戶端和服務器(除了服務器不檢索從數據庫的任何結果,但我會回來到那)。在我的代碼的init方法中,我創建了一個ExecutorService,我將其重複使用,並將其提交給Callable(即執行查詢並從數據庫返回結果)。 這些Callable執行數據庫查詢並返回結果。

問題

Future迴歸零(我想我還沒有做出任何其他的錯誤)。除此之外,我在某個地方讀過你不應該在部署在JBoss上的Web服務中使用自己的ExecutorService

問題

如何解決這個問題呢?我怎樣才能同時在多個數據庫上調用查詢並等待它們的結果?

回答

0

所以在JBoss中不建議使用自己的線程。我發現了幾個解決方案:

  • 不使用JBoss,使用例如: Java端點接口。您可以手動完成所有工作 - 但這意味着您錯過了與JBoss
  • 一起使用的好用功能,請使用Oracle Glassfish及其新的ManagedExecutorService,例如, here一個很好的例子
  • 使用BPEL(業務流程執行語言)編排多個/並行流程,請參閱。 here一些例子