0

如何同时在多个数据库上调用查询并等待其结果返回?

环境

我正在使用 JAX-WS 和 JBoss 7 来提供 Web 服务。我的服务调用多个数据库的查询,组合它们的结果并将所有组合的结果返回给调用者。

环境

到目前为止我所做的

我有一个工作的客户端和服务器(除了服务器没有从数据库中检索任何结果,但我会回到那个)。在init我的代码方法中,我创建了一个ExecutorService我重用并提交给它Callable的 s(执行查询并从数据库返回结果)。这些Callables 执行数据库查询并返回结果。

问题

Future的 s 返回 null (我想我没有犯任何其他错误)。除此之外,我在某处读到您不应该ExecutorService在部署在 JBoss 上的 Web 服务中使用您自己的。

问题

那怎么解决问题呢?如何同时在多个数据库上调用查询并等待它们的结果?

4

1 回答 1

0

所以在 JBoss 中不建议使用自己的线程。我找到了一些解决方案:

  • 不要使用 JBoss,使用例如 Java Endpoint 接口。在那里您可以手动完成所有操作 - 但是,这意味着您错过了 JBoss 附带的不错的功能
  • 使用 Oracle Glassfish 及其新的 ManagedExecutorService,请参阅此处的示例
  • 使用 BPEL(业务流程执行语言)来编排多个/并行流程,请参阅此处以获取一些示例
于 2013-06-14T09:24:19.303 回答