Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Agents Delayed and Stopped due to ProcessConnectQueue Agent

SA-41875

Summary



Running on JBoss see whenever ProcessConnectQueue agent has been running long other agents like SLA, system pulse, etc. are stopped/delayed waiting for ProcessConnectQueue to finish. Even though the other agents next start time has come and gone they do not run until ProcessConnectQueue finishes.

Error Messages



There are not any error messages but can see long delays.

2017-07-24 15:33:58,422 [-threads-1671744058)] [ STANDARD] [ ] [ CPAS:01.07.01] ( internal.async.AgentQueue) DEBUG - System-Queue-ExecutionRequest-Connect-Default.ProcessQueue executed for: 5013981ms.

2017-07-24 15:33:58,442 [-threads-1671744058)] [ STANDARD] [ ] [ CPAS:01.07.01] ( internal.async.AgentQueue) DEBUG - Pega-ProCom #0 was delayed for: 4920353ms.


Steps to Reproduce



Not able to consistently reproduce the issue. Issue is random, when there are large volume of items queued for ProcessConnectQueue agents.

Root Cause



A defect or configuration issue in the operating environment. This is a known issue with JBoss's hornetq.
The message consumers (including MDBs) would buffer messages as per the configured consumer-window-size attribute. The consumer-window-sizeattribute tells each consumer thread to buffer N amount of messages in bytes. The default consumer-window-size configuration has been set to1048576 bytes (1 megabyte). This would force each consumer thread to buffer N number of messages until the buffer reaches 1MB.

This temporary blocks incoming message consumption; because each MDB consumer thread needs to complete buffered messages at first, before processing any new ones. To resolve this, please accommodate following changes to resolve this issue by reducing consumer buffer size and tweaking message redelivery.

From the RedHat JBoss HornetQ User Guide:

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.

Setting this to 0 can give deterministic distribution between multiple consumers on a queue.

Resolution



Make the following change to the operating environment:
  1. Modify standalone-full.xml
  2. Set the consumer-window-size to 0 and there are no longer any delays in the agent processing.

E.g
<pooled-connection-factory name="hornetq-ra"> <transaction mode="xa"/> <connectors> <connector-ref connector-name="in-vm"/> </connectors> <entries> <entry name="java:/JmsXA"/> </entries> <consumer-window-size>0</consumer-window-size>0</pooled-connection-factory>

Another option is to switch to ActiveMQ.

Published August 26, 2017 - Updated October 8, 2020

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us