Подтвердить что ты не робот

Почему бы не использовать Session Beans вместо Message Driven Beans?

Мне интересно, почему бы не использовать Session Beans вместо Message Driven Beans?

Если вы можете вызывать удаленные методы из EJB, то зачем беспокоиться о отправке/получении сообщений с Message Driven Beans (что сложнее для разработки, чем сеанс beans)?

В каких сценариях полезно использовать Message Driven Beans?

4b9b3361

Ответ 1

Мне интересно, почему бы не использовать Session Beans вместо Message Driven Beans?

Хм, они не выполняют одну и ту же цель, управляемые сообщениями Beans позволяют приложениям Java EE обрабатывать сообщения асинхронно.

Если вы можете вызывать удаленные методы из EJB, то зачем беспокоиться о отправке/получении сообщений с Message Driven Beans (что сложнее для разработки, чем сеанс beans)?

Поскольку MDB предоставляют вам асинхронность и свободную связь, что вам может понадобиться/нужно в некоторых ситуациях:

  • для длительных рабочих заданий
  • когда ресурсы не всегда доступны
  • когда вы хотите распараллелить обработку

Кстати, я лично всегда считал, что MDB - это самый простой Enterprise Beans для разработки.

В каких сценариях полезно использовать Message Driven Beans?

См. выше.

См. также

Ответ 2

Сообщение, управляемое beans, прослушивает очереди JMS асинхронно, в отличие от сущности/сессии beans.

Это не блокирует ресурсы сервера, поскольку обработка происходит только тогда, когда сообщение прибыло в очередь.

Помимо загрузок форумов и сайтов Java, у Википедии есть хороший набор возможностей, в которых MDB пригодится

http://en.wikipedia.org/wiki/Enterprise_JavaBean#Message_driven_beans

Ответ 3

Оба обслуживают разные цели.

1), если вы хотите использовать его только для использования удаленных методов, просто используйте Session Bean

2), но если ответ/результат не совпадает, но более позднее сообщение вам подходит, переходите к JMS, поскольку оно создает очередь, чтобы заставить ее работать и устанавливать сообщение. но проблема с производительностью будет там.

Если вам нужно просто использовать метод, просто используйте Session bean, так как это легкий вес bean. и это дает хорошую производительность.