2013-06-12 3 views
0

Как я могу вызвать запрос по нескольким базам данных одновременно и дождаться возврата их результатов?

УстановкаМногопоточность в веб-службе JBoss

Я использую JAX-WS и JBoss 7, чтобы обеспечить веб-службы. Моя служба вызывает запрос по нескольким базам данных, объединяет их результаты и возвращает все результаты, объединенные с вызывающим.

Setting

Что я сделал до сих пор

У меня есть рабочий клиент и сервер (кроме того, что сервер не извлекает никаких результатов из базы данных, но я вернусь к тому, что). В методе моего кода я создаю ExecutorService, который я повторно использую и к которому я отправлю Callable s (которые выполняют запрос и возвращают результаты из базы данных). Эти Callable s выполняют запрос базы данных и возвращают результаты.

Проблема

Мои Future сек возвращение нулевое (и я думаю, что я не сделал какие-либо другие ошибки). В дополнение к этому, я где-то читал, что вы не должны использовать свой собственный ExecutorService в веб-службе, развернутой на JBoss.

Вопрос

Как решить эту проблему тогда? Как я могу вызвать запрос на несколько баз данных одновременно и дождаться их результатов?

ответ

0

Так что использование собственных потоков нецелесообразно в JBoss. Я нашел несколько решений:

  • не использовать JBoss, использовать, например, интерфейс конечной точки Java. Там вы сможете делать все вручную - это означает, однако, что вы пропустите приятные функции, связанные с JBoss
  • Использование Oracle Glassfish и его нового ManagedExecutorService, см., Например, here для хорошего примера
  • использовать BPEL (язык выполнения бизнес-процесса) для организации нескольких/параллельных процессов, см., Например, here для некоторых примеров
Смежные вопросы