Агрегатор сбора не правильно агрегирует ответ Mule ESB

У меня есть поток, где у меня будет несколько Item под корневым тегом Items, У меня есть сплиттер, где он разбивает каждый элемент и выполняет некоторую обработку. После этого я собираю все ответы, используя агрегатор Collection.

В моем потоке наблюдаемый агрегатор сбора чего-то ожидает, хотя все ответы агрегатора уже достигнуты. После агрегатора ответ не собирается (так как он ожидает некоторого ответа). Но я уверен (если у Предметов есть 5 пунктов в нем), весь ответ - агрегатор достижения. Но не уверен, почему агрегатор все еще не передает свой вывод (но иногда он проходит)

Если я сохранил тайм-аут 30000 в aggrgegator и потерпел неудачу при тайм-ауте = "ложь", теперь он пропущен и агрегирует ответ ( 5 элементов).

Но я уверен, что сообщение достигнет агрегатора в течение 20000 мс. Но это что-то ждет:(.

Почему это поведение из коллекции агрегаторов. У кого-нибудь есть подсказка? Пожалуйста, найдите конфиг..

    <flow name="Items" doc:name="Items">
    <vm:inbound-endpoint exchange-pattern="one-way" path="QUEUE" connector-ref="VM_Q1" doc:name="QUEUE">
    </vm:inbound-endpoint>
    <splitter expression="#[xpath('/Items/Item')]" doc:name="Splitter"/>
  <vm:outbound-endpoint exchange-pattern="one-way" path="OUT1" connector-ref="MAIN_VM" doc:name="Test Queue">
 </flow>

  <flow name="Items1" doc:name="Items">
  <vm:inbound-endpoint exchange-pattern="one-way" path="OUT1" connector-ref="MAIN_VM" doc:name="Test Queue"/>
.............doing some transformation and processing.....
<collection-aggregator failOnTimeout="true" doc:name="Collection Aggregator"/>  
  </flow>

Использование версии: 3.5.1 Как мы можем отследить, что именно ждать? Я сохранил регистратор и проверил все 5 пунктов, которые были заполнены перед агрегатором. Помощь будет более ценной. Спасибо.

Отредактировано: регистрирует после компонента сплиттера каждую итерацию элемента

  After splitter:{MULE_CORRELATION_SEQUENCE=1, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686}
 After splitter:{MULE_CORRELATION_SEQUENCE=2, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686}
 After splitter:{MULE_CORRELATION_SEQUENCE=3, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686}
 After splitter:{MULE_CORRELATION_SEQUENCE=4, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686}
 After splitter:{MULE_CORRELATION_SEQUENCE=5, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686}

Журнал до сбора агрегатора

  Before Collection Aggregator:{MULE_CORRELATION_SEQUENCE=1, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=13783281-a036-11e4-a356-b8ee652d2686, Content-Type=text/plain;charset=UTF-8}
  Before Collection Aggregator:{MULE_CORRELATION_SEQUENCE=2, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686, Content-Type=text/plain;charset=UTF-8}
  Before Collection Aggregator:{MULE_CORRELATION_SEQUENCE=2, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686, Content-Type=text/plain;charset=UTF-8}
  Before Collection Aggregator:{MULE_CORRELATION_SEQUENCE=2, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686, Content-Type=text/plain;charset=UTF-8}
 Before Collection Aggregator:{MULE_CORRELATION_SEQUENCE=2, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686, Content-Type=text/plain;charset=UTF-8} 

@ Дэвид, пожалуйста, предложите. MULE_CORRELATION_SEQUENCE=2 повторяется несколько раз. Но выборочная полезная нагрузка правильна и различна для каждого correlation_seq=2. Как можно решить эту проблему?

1 ответ

Решение

Я чувствую, что что-то в doing some transformation and processing повреждает эти управляющие свойства, что мешает агрегации работать.

Я понимаю, что легко указать пальцем на то, что не показано выше, но журналы показывают явное изменение свойств элемента управления, поэтому это должно произойти где-то в этом выделенном блоке.

Другие вопросы по тегам