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 .
/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 ?
Request clarification before answering.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
If two consumption communication arrangements assigned to same inbound channel, remove the second entry.
Best Regards,
Siva
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello @NR_Ranasingh ,
In SAP Event Mesh:
The rule is: one system, one queue, one consumer class as the orchestrator.
Best Regards,
Siva
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@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) .
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 ?
| User | Count |
|---|---|
| 7 | |
| 7 | |
| 5 | |
| 4 | |
| 4 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.