Thread gets blocked on sending a message for 20 min using HornetQ

Solution Verified - Updated -

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 6.2.4
  • Red Hat Enterprise Linux (RHEL)
    • 6.x

Issue

  • We use HornetQ for processing units of work as part of our batch framework. When processing smaller batches, it works fine. However, when running bigger ones, at some point (typically after 10K items) the processing gets stuck on sending message to the queue. It gets stuck for 20 min, then exception occurs on the first operation that requires active transaction context (as the transaction gets expired).
  • On this machine the same error happened with JBoss-EAP-6.2.0. OS: RHEL-6

Resolution

  • Please increase call-timeout value to a higher figure. The call-timeout value controls how long the producer can wait for a response, default value is 30 seconds and it inadequte on certain deployments.
  • If you're using Red Hat Enterprise Linux (RHEL) please disable irqbalance service.

Root Cause

  • It was identified that the problem was caused by irqbalance service in an attempt to fix a problem associated with inconsistent data throughput on RHEL 6 when streaming to PostgreSQL. This problem was solved once irqbalance was switched off.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.