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:
-
Set the custom property
com.tibco.bw.amqp.rabbitmq.poll.delay.limitto define the maximum delay. The default value is 5 seconds. -
Set
sessioncount=1 when applying theFlowLimitfor RabbitMQ connections. -
Apply
BW FlowLimitat either the application or component level, regardless of thePrefetchvalue.-
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.enabledto true. -
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.enabledto true.Important: Ensure to apply the property-D<process_name>.Receiver.job.flowlimit.enabled=true along with the component-level Flow limit property. -
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
-