0

複数のデータベースに対して同時にクエリを実行し、その結果が返されるのを待つにはどうすればよいですか?

設定

JAX-WS と JBoss 7 を使用して Web サービスを提供しています。私のサービスは、複数のデータベースに対してクエリを呼び出し、それらの結果を組み合わせて、組み合わせたすべての結果を呼び出し元に返します。

設定

これまでに行ったこと

クライアントとサーバーが動作しています (ただし、サーバーはデータベースから結果を取得しませんが、その話に戻ります)。init私のコードのメソッドでは、ExecutorService再利用して送信する を作成Callableします (クエリを実行し、データベースから結果を返します)。これらCallableは、データベース クエリを実行し、結果を返します。

問題

Futureの s は null を返します (他に間違いはなかったと思います)。ExecutorServiceそれに加えて、 JBoss にデプロイされた Web サービス内で独自のものを使用してはならないことをどこかで読みました。

質問

問題を解決するにはどうすればよいですか?複数のデータベースに対して同時にクエリを実行し、その結果を待つにはどうすればよいですか?

4

1 に答える 1

0

そのため、JBoss では独自のスレッドを使用することはお勧めできません。私はそれに対するいくつかの解決策を見つけました:

  • JBoss を使用しないでください。たとえば、Java エンドポイント インターフェイスを使用してください。そこでは、すべてを手動で行うことができます。ただし、これは、JBoss に付属する優れた機能を見逃していることを意味します。
  • Oracle Glassfish とその新しい ManagedExecutorService を使用します。たとえば、こちらを参照してください。
  • BPEL (Business Process Execution Language) を使用して、複数/並列プロセスを調整します。例については、こちらを参照してください。
于 2013-06-14T09:24:19.303 に答える