Режим запуска MANY предполагает, что экземпляры агента, исполняемые на разных серверах, обрабатывают своё уникальное подмножество входных данных (партиций), за счет чего и достигается увеличение скорости обработки данных. Партиционирование JMS-сообщений для агентов осуществляет МОМ, распределяя их из очереди между всеми экземплярами агента. "Самостоятельным агентам" необходим механизм, через который экземпляры агента смогут определить, какую часть входных данных он должен обрабатывать. Агентам по JMS-сообщениям механизм может тоже понадобиться, если партиционируются не входящие JMS-сообщения, а иные данные. Количество частей зависит от числа экземпляров агента, которое не постоянно, т.к. сервера могут быть временно отключенными. МА отслеживает состояние приложений на каждом сервере, так что имеет возможность сообщить агентам, сколько экземпляров в данный момент запускается, что соответствует количеству партиций, а также номер части, которую должен обработать данный экземпляр.

Т.о. для поддержки партиционирования, МА может каждому экземпляру передать два числа N и M.

M - число партиций,

N - индекс данного экземпляра агента (значения от 0 до M-1).

На основании этих 2х чисел агент может вычислить свой блок данных.

Статус

КомментарийДополнительный комментарий

Реализация

МА в сообщении на запуск НЗ в режиме MANY должен включить параметр, описывающий партиции:

...
"partitions": [
    {
      "host": "cm01",
      "partitionIndex": 0
    },
    {
      "host": "cm02",
      "partitionIndex": 1
    }
]
...