<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Example on utilization of tRabbitMQACK component in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/Example-on-utilization-of-tRabbitMQACK-component/m-p/2541610#M149350</link>
    <description>&lt;P&gt;Hello ,&lt;/P&gt;&lt;P&gt;The tRabbitMQAck component is used to send an acknowledgement (Ack) or negative acknowledgement (Nack) for messages that have been received by a tRabbitMQInput component. It works together with a non-auto-acknowledge consumer to explicitly acknowledge or reject messages after processing.&lt;/P&gt;&lt;P&gt;How it is intended to be used&lt;/P&gt;&lt;P&gt;Ensure Auto Acknowledge is disabled: In the tRabbitMQInput component’s Advanced settings, uncheck the Auto acknowledge option. This prevents messages from being acknowledged automatically when read.&lt;/P&gt;&lt;P&gt;Place tRabbitMQAck after message processing: Once a message has been successfully processed, connect tRabbitMQAck from the component that completes processing (for example using OnComponentOK) to send an acknowledgement back to the broker.&lt;/P&gt;&lt;P&gt;Select Ack or Nack mode: In the tRabbitMQAck component, choose the mode to either Ack (confirm successful processing) or Nack (indicate processing failure). Nack can optionally be configured to requeue the message.&lt;/P&gt;&lt;P&gt;Notes&lt;/P&gt;&lt;P&gt;The tRabbitMQInput component runs in a loop reading messages from the queue; it does not stop unless the job logic terminates it.&lt;/P&gt;&lt;P&gt;Because the input loop may run continuously, you typically use triggers (e.g., OnComponentOK / OnSubjobOK) or job design to control when tRabbitMQAck is executed relative to your message processing logic.&lt;/P&gt;&lt;P&gt;The acknowledgement component must reference the same connection used by the input component; select the appropriate connection if needed.&lt;/P&gt;&lt;P&gt;Summary:&lt;BR /&gt;Use tRabbitMQAck following a tRabbitMQInput that has Auto acknowledge disabled. After processing a message, route control to tRabbitMQAck to send the appropriate acknowledgment back to the broker.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Gourav&lt;/P&gt;</description>
    <pubDate>Tue, 27 Jan 2026 07:16:42 GMT</pubDate>
    <dc:creator>gouravdubey5</dc:creator>
    <dc:date>2026-01-27T07:16:42Z</dc:date>
    <item>
      <title>Example on utilization of tRabbitMQACK component</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Example-on-utilization-of-tRabbitMQACK-component/m-p/2518360#M147579</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;we are trying to understand how the&amp;nbsp;tRabbitMQACK component is supposed to be used after a tRabbitMQInput component.&lt;/P&gt;&lt;P&gt;Looking at the code, the TRabbitMQInput component start an infinite loop that regularly check the queue for new data, and if available get them. The tRabbitMQAck componet on the other hand can be connected to other components just by oncomponentOK/Error; but in the code those actions are performed outside the while infinite loop, so, never...&lt;/P&gt;&lt;P&gt;The question then is: how is the Ack meant to be used, or how can one exit from the infinite loop of the MQInput component?&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Tue, 20 May 2025 14:23:33 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Example-on-utilization-of-tRabbitMQACK-component/m-p/2518360#M147579</guid>
      <dc:creator>lucaL</dc:creator>
      <dc:date>2025-05-20T14:23:33Z</dc:date>
    </item>
    <item>
      <title>Re: Example on utilization of tRabbitMQACK component</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Example-on-utilization-of-tRabbitMQACK-component/m-p/2541610#M149350</link>
      <description>&lt;P&gt;Hello ,&lt;/P&gt;&lt;P&gt;The tRabbitMQAck component is used to send an acknowledgement (Ack) or negative acknowledgement (Nack) for messages that have been received by a tRabbitMQInput component. It works together with a non-auto-acknowledge consumer to explicitly acknowledge or reject messages after processing.&lt;/P&gt;&lt;P&gt;How it is intended to be used&lt;/P&gt;&lt;P&gt;Ensure Auto Acknowledge is disabled: In the tRabbitMQInput component’s Advanced settings, uncheck the Auto acknowledge option. This prevents messages from being acknowledged automatically when read.&lt;/P&gt;&lt;P&gt;Place tRabbitMQAck after message processing: Once a message has been successfully processed, connect tRabbitMQAck from the component that completes processing (for example using OnComponentOK) to send an acknowledgement back to the broker.&lt;/P&gt;&lt;P&gt;Select Ack or Nack mode: In the tRabbitMQAck component, choose the mode to either Ack (confirm successful processing) or Nack (indicate processing failure). Nack can optionally be configured to requeue the message.&lt;/P&gt;&lt;P&gt;Notes&lt;/P&gt;&lt;P&gt;The tRabbitMQInput component runs in a loop reading messages from the queue; it does not stop unless the job logic terminates it.&lt;/P&gt;&lt;P&gt;Because the input loop may run continuously, you typically use triggers (e.g., OnComponentOK / OnSubjobOK) or job design to control when tRabbitMQAck is executed relative to your message processing logic.&lt;/P&gt;&lt;P&gt;The acknowledgement component must reference the same connection used by the input component; select the appropriate connection if needed.&lt;/P&gt;&lt;P&gt;Summary:&lt;BR /&gt;Use tRabbitMQAck following a tRabbitMQInput that has Auto acknowledge disabled. After processing a message, route control to tRabbitMQAck to send the appropriate acknowledgment back to the broker.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Gourav&lt;/P&gt;</description>
      <pubDate>Tue, 27 Jan 2026 07:16:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Example-on-utilization-of-tRabbitMQACK-component/m-p/2541610#M149350</guid>
      <dc:creator>gouravdubey5</dc:creator>
      <dc:date>2026-01-27T07:16:42Z</dc:date>
    </item>
    <item>
      <title>Re: Example on utilization of tRabbitMQACK component</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Example-on-utilization-of-tRabbitMQACK-component/m-p/2541711#M149352</link>
      <description>&lt;P&gt;Hi.&lt;/P&gt;&lt;P&gt;Thanks for the answer, but that's exactly the point... If you connect the tRabbitMQInput to the tRabbitMQACK via the onComponentOk, that path will never being executed, since the input start an infinite loop, that only follow a "row" path, executed always befor an "oncomponet*" or "onjob" path. The only way I found is to go from a row to a tflowiterate and to this then connect the ack component...&lt;/P&gt;&lt;P&gt;Also, it would be nice if there would be a way to stop the input when needed, but here too the only way found is to "hack" the java code by putting a break into a tjavarow component, inside the "row" path of the input component, in order to stop the infinite while loop it creates.&lt;/P&gt;</description>
      <pubDate>Tue, 27 Jan 2026 14:00:52 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Example-on-utilization-of-tRabbitMQACK-component/m-p/2541711#M149352</guid>
      <dc:creator>lucaL</dc:creator>
      <dc:date>2026-01-27T14:00:52Z</dc:date>
    </item>
    <item>
      <title>Re: Example on utilization of tRabbitMQACK component</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Example-on-utilization-of-tRabbitMQACK-component/m-p/2541727#M149353</link>
      <description>&lt;P&gt;Hello Lucal,&lt;/P&gt;&lt;P&gt;You are correct. This is a known design characteristic of tRabbitMQInput.&lt;/P&gt;&lt;P&gt;tRabbitMQInput runs in an internal infinite loop to continuously consume messages. Because of this:&lt;/P&gt;&lt;P&gt;OnComponentOK / OnSubjobOK / OnJobOK triggers are never reached&lt;/P&gt;&lt;P&gt;Only the row flow is executed while the consumer loop is active&lt;/P&gt;&lt;P&gt;This is why connecting tRabbitMQAck using OnComponentOK does not work.&lt;/P&gt;&lt;P&gt;Correct and expected pattern for ACK handling&lt;/P&gt;&lt;P&gt;The acknowledgement must be triggered from the row flow, not from a trigger path.&lt;/P&gt;&lt;P&gt;A common and valid pattern is:&lt;BR /&gt;tRabbitMQInput (Auto Acknowledge = false)&lt;BR /&gt;|&lt;BR /&gt;(row = one RabbitMQ message)&lt;BR /&gt;|&lt;BR /&gt;tFlowToIterate (or tJavaRow / tMap)&lt;BR /&gt;|&lt;BR /&gt;tRabbitMQAck&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;This ensures:&lt;/P&gt;&lt;P&gt;Each consumed message is processed&lt;/P&gt;&lt;P&gt;ACK / NACK is sent per message&lt;/P&gt;&lt;P&gt;The ACK component executes inside the consumer loop&lt;/P&gt;&lt;P&gt;Your tFlowToIterate approach is therefore correct and appropriate.&lt;/P&gt;&lt;P&gt;About stopping the input loop&lt;/P&gt;&lt;P&gt;tRabbitMQInput does not provide a native “stop consumption” or “break loop” option. The component is designed for continuous consumers.&lt;/P&gt;&lt;P&gt;Available options are:&lt;/P&gt;&lt;P&gt;Let the job run continuously (recommended for consumers)&lt;/P&gt;&lt;P&gt;Stop the job externally (scheduler / OS / Talend Cloud)&lt;/P&gt;&lt;P&gt;Control execution using job design (separate consumer and processor jobs)&lt;/P&gt;&lt;P&gt;Injecting a break statement via tJavaRow works technically, but it is not recommended, as it relies on internal generated code and may break with future versions.&lt;/P&gt;&lt;P&gt;Best practice&lt;/P&gt;&lt;P&gt;Use row flow–based ACK/NACK, not trigger-based&lt;/P&gt;&lt;P&gt;Use tFlowToIterate or equivalent to invoke tRabbitMQAck&lt;/P&gt;&lt;P&gt;Treat tRabbitMQInput as a long-running consumer&lt;/P&gt;&lt;P&gt;Avoid modifying generated Java code to control looping&lt;/P&gt;&lt;P&gt;This behavior is expected given the component’s design.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Gourav&lt;/P&gt;</description>
      <pubDate>Tue, 27 Jan 2026 14:50:59 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Example-on-utilization-of-tRabbitMQACK-component/m-p/2541727#M149353</guid>
      <dc:creator>gouravdubey5</dc:creator>
      <dc:date>2026-01-27T14:50:59Z</dc:date>
    </item>
  </channel>
</rss>

