Agent PegaMKT-Engine SendEmailsInBulk hanging
SummaryDuring testing user is generating 202636 emails from a Pega Marketing Campaign, after sending 11030 emails the SendEmailsInBulk agent is failing to complete and no further emails are sent.
Error MessagesNot Applicable
Steps to Reproduce
- In the batch topology set thread count >1 for all the nodes that runs SendEmailsInBulk agent.
- Create a campaign which generates a large number of emails.
A defect or configuration issue in the operating environment.
It was identified that the execution is stuck on the waitOnBatchActivity function. It was also observed that if 10 calls to queueBatchActivity made, only 9 got started and finished, the 10th invocation didn't occurred.
Pega Marketing email transmission functionality uses queueBatchActivity and waitOnBatchActivity functions in an activity to send emails in parallel execution.
The activity is invoked from SendEmailsInBulk agent.
The number of parallel execution is dependent of thread count value set in the Decisioning Batch topology landing page.
On an Enterprise application server (JBOSS) this is done using PRAsync mdb. JBoss uses HornetQ as messaging infrastructure and we suspected the messages are getting lost if the agent takes long time to complete.
ResolutionPerform the following local-change: Update JBOSS configuration
‘standalone-full.xml’ to disable buffering at client's portal
1. Set “consumer-window-size” to 0. refer https://docs.jboss.org/jbossmessaging/docs/usermanual-2.0.0.beta1/html/flow-control.html
To allow slow consumers, set the consumer-window-size to 0 (for no buffer at all). This will prevent the slow consumer from buffering any messages on the client side. Messages will remain on the server side ready to be consumed by other consumers.<pooled-connection-factory name="hornetq-ra">
2. Set “max-delivery-attempts” to 1<address-setting match="#">
Published October 20, 2016 - Updated August 23, 2017