Troubleshooting

Issue: AMQP Receive Message activity for RabbitMQ broker stops receiving messages when Flow Limit is applied.

Summary: The RabbitMQ receiver stops receiving new messages after processing the initial messages in the queue when the Flow limit is set. This occurs because the receiver closes after consuming the pending messages and does not receive further messages without restarting the application.

Resolution:

  1. Set the custom property com.tibco.bw.amqp.rabbitmq.poll.delay.limit to define the maximum delay. The default value is 5 seconds.

  2. Set sessioncount=1 when applying the FlowLimit for RabbitMQ connections.

  3. Apply BW FlowLimit at either the application or component level, regardless of the Prefetch value.

    1. To apply the Flow limit at the component level for one process: Enable the Flow limit at the component level and set the property <process_name>.job.flowlimit.enabled to true.

    2. To apply the Flow limit at the component level for multiple processes: Enable the Flow limit at the component level and set the property <process1-name>.<process2-name>.<process3-name>.job.flowlimit.enabled to true.

      Important: Ensure to apply the property -D<process_name>.Receiver.job.flowlimit.enabled=true along with the component-level Flow limit property.
    3. To apply the Flow limit at the application level, refer to the example properties below.

      Example properties:

      -Dbw.application.job.flowlimit.testRabbitMQ.application=1

      -Dbw.application.job.flowlimit.testRabbitMQ.application.1.0=1

      -Dbw.application.job.flowlimit.testRabbitMQ.application.1.0.ComponentReceiver=1 (where "ComponentReceiver" is the component name as it appears in the components view inside "Module Descriptors")

      -Dtestrabbitmq.Receiver.job.flowlimit.enabled=true