cancel
Showing results for 
Search instead for 
Did you mean: 

EventMesh Consumption class triggering duplicate calls for the same Queue

09-30-2026 3:59 PM
NR_Ranasingh Participant
303 views 6 comments
0 Likes
Subscribe

Hi All ,

i am in SAP BTP ABAP , with EVENT Mesh Default plan . we have done all the configuration in EventMesh and in BTP ABAP as well . we are in AMQP protocol, not using any Webhook as of now .

1- In EventMesh, we have 1 Topic Say TOPIC1 --> Subscribed by 2 Queues ex- Q1 , Q2 .
2-At ABAP Side , i have created 2 ECM for the same TopicType asex-  ECM_Q1, ECM_Q2.
3- in EEE Channel binding,                                                                                                                                                  OB Topic Binding ->all the OB topic Bindings are in Ok Status ( it shows the Topic1).                                     IB Topic Bindings -> Also IB Topic Binding status is Ok , and it shows for the same TOPIC1 there are 2 Consumer IDs ( ECM_Q1, ECM_Q2 ).                                                                                                                             Queue Subscription - > Also i have done the Subscription of all the Queues here including Q1 , Q2.

Problem -> now when event is triggered , i could see in EEE monitor , in OB Events -> 1 message acknowledged for TOPIC1 and then once it goes to the consumption side, my backend consumption classes for ECM_Q1 and ECM_Q2 are getting triggered . however its triggering 2 times for each ECM.
in EEE monitor , in IB Events -> i can see for the same TOPIC1, the consumption is 4times ( 2times each by ECM_Q1 and ECM_Q2 ) .

As per my understanding , once the event is triggered it will go from ABAP to Eventmesh and put the event to Topic TOPIC1  and the EVentmesh will put the messaged from TOPIC1 to the subscribed queues Q1 and Q2 . and then my Queue consumption will be triggered . so for each queue i have 1 ECM ,so as 1 consumption class for each.   why its triggering 2 times for each Queue .

  • 2 queues each receive 1 copy (correct Event Mesh fan-out)
  • Each queue has 1 consumer 
  • Yet 4 EEE inbound consumption rows    ????                                                                                                    
  • i read in internet somewhere that  "The /IWXBE framework, when it reads a message from Q1, looks up the inbound topic TOPIC1 and finds 2 Topic Consumers registered: ECM_Q1 andECM_Q12. It calls both for every queue read — regardless of which queue the message came from.   ??? is this correct  ?


  • Please suggest  if i have missed something as a result the duplicate consumption is happening .

 

 

0 Likes

Accepted Solutions (0)

Answers (3)

Answers (3)

Sivakumar_Subramaniam
Product and Topic Expert
Product and Topic Expert
0 Likes

Hello @NR_Ranasingh ,

I hope I have answered your question. If so, please mark this response as the accepted solution. Furthermore, you can check the SAP Discovery Center mission linked below to better understand Event Mesh through a real-time, customer-like reference scenario

https://discovery-center.cloud.sap/missiondetail/4626/4915/

Best Regards,

Siva

 

Sivakumar_Subramaniam
Product and Topic Expert
Product and Topic Expert
0 Likes

Hello @NR_Ranasingh ,

The ABAP Event Consumption runtime resolves all registered implementations for a given sender metadata / event type binding , it doesn't pick one. If two classes implement the consumer interface for the same channel + event type combination, both get called. For 1 message in 1 queue, both implementations are called.

The Fix
Step 1 : Remove the duplicate queue (if same system)
One system = one queue. Drop Queue 2 entirely unless there's a genuine independent consumer system behind it.

Step 2 : Remove the duplicate consumer implementation
Keep exactly one class registered per sender metadata / event type. That single class is the orchestrator.

Step 3 : Verify the event consumption model related configurations.

  1. Only one consumption communication arrangement assigned to  Event Channel
  2. Only one inbound channel per sender metadata
  3. Only one consumer class bound to that channel

If two consumption communication arrangements assigned to same inbound channel, remove the second entry.


Best Regards,

Siva





 

Sivakumar_Subramaniam
Product and Topic Expert
Product and Topic Expert
0 Likes

Hello @NR_Ranasingh ,

In SAP Event Mesh:

  • 1 queue = 1 logical consumer (system/application)
  • A message consumed from a queue is acknowledged and deleted , it's not replicated to multiple consumers on the same queue
  • If two queues both subscribe to the same topic to feed the same system → the message is duplicated at the queue level

The rule is: one system, one queue, one consumer class as the orchestrator.

Best Regards,

Siva

NR_Ranasingh
Participant
0 Likes

@Sivakumar_Subramaniam -
i understand as you said   ->The rule is: one system, one queue, one consumer class as the orchestrator.

So i have created  one ECM/class each for every Queue ( 1 for consuming the message for Queue 1 ,  another 1 for Queue 2) .

  • If two queues both subscribe to the same topic to feed the same system → the message is duplicated at the queue level

Considering my Scenario, where One Topic is Subscribed by Two Queues , that means- Each Queue Receives a copy of Same Message from the Topic .
So from Consumption side , for Each Queue it should invoke the ECM /Consumption class for that particular Queue Consumption .

But in My case it Triggers 2times .  

Please correct if my understanding is incorrect .  Also if i have to handle the same design where 1 Topic is fanout to 2 Queues , how to handle from the design perspective ?