0

В моем приложении определенная служба имеет постоянную пропускную способность (например, 100 транзакций за раз), запросы к сервису поступают в режиме реального времени, а также пакетные задания (очереди) , Запросы в реальном времени не имеют равномерного распределения. Мне нужен способ убедиться, что работа в режиме реального времени обрабатывается сначала перед пакетными заданиями, а также убедитесь, что в любое время я не превышаю порог службы.Приоритет сообщений в реальном времени по пакетным сообщениям с использованием очередей/MDB

Пожалуйста, оцените следующий подход.

Есть 2 очереди A - в реальном времени и B - Пакетное задание. У вас есть пул потоков размером = 100 (Service Threshold) и пусть пул потоков сначала попытается выбрать msgs из A, если какой-либо другой выбор из B.

Мое приложение работает в Weblogic, вместо этого я хочу использовать MDB пула потоков, но нет способа заставить MDB прослушивать несколько очередей.

ответ

0

В JMS вы можете установить приоритет сообщения, который должен соблюдаться, если это возможно. Это может быть что-то простое попробовать.

Другим вариантом может быть установка свойства JMS в сообщении с клиентом и использование Селектора сообщений на MDB. Вы можете установить MY_MESSAGE_TYPE = batch/rt, а затем развернуть несколько MDB, которые прослушивают одну и ту же очередь, но могут быть назначены различным менеджерам работы. Имейте в виду, что Work Manager! = Пул потоков. Вы также можете установить класс запроса, чтобы убедиться, что если пул пакетов используется, то пул RT не будет голодать для потоков/ЦП.

С этой конструкцией я считаю, что если у вас есть два MDB, один с селектором сообщений, сообщения, соответствующие критериям выбора, должны доставляться в MDB с этим селектором (RT) перед MDB без селекторов (BATCH). Это будет довольно простой POC - настроить клиента, который отправляет сообщения в очередь, некоторые из которых имеют свойство JMS, установленное в RT, и другие, которые его не задают.

10,0 referece (что по-прежнему применимо): http://docs.oracle.com/cd/E11035_01/wls100/config_wls/self_tuned.html