Extended EOIO Error Handling
Extended EOIO error handling
When it comes to message processing, SAP XI has been provided enough flexibility in message processing. Message in a particular sequence or EOIO is one of them. In some critical Business requirements, end systems will restrict middleware to process the messages in a particular sequence. In that case it is mandatory for a middleware to impose EOIO sequencing on message processing and to ensure successful end to end delivery of these messages in the same sequence otherwise processed data will be redundant and will be of no use. Messages in EOIO will process one by one on the basis of Sequence number. After successful processing of first message, system will process next message.
The biggest challenge is if by any reason First message went in “System error”, “Holding” or “To be delivered” state then all other message which are supposed to be processed after that particular message, will be sitting in adapter queues and will create the backlog in system. Unless until first message is not getting re processed /canceled, message processing for that particular interface will not resume.
So every time we have to cancel the error message manually. If it’s in production, what’s the solution will be. Then came to my mind, “Extended EOIO error Handling” which will be useful for Advanced adapter engines(AAE).
In the SAP PI we have a concept called “Extended EOIO error handling”. So we thought it will make our life easier.
Here to remember is, handling(how it handles the messages).In handling we have 2 options: Remove from Queue and Copy to error queue
Remove from Queue: The failing EOIO message removed which means it is taken out of sequential processing. So it will have the Quality of Service as EO (Exactly Once) and will be processed accordingly.
Copy to error queue: Here the error queue name should be given, so based on that queue name the failing message is copied to a new sequence with EOIO sequential error handling.Adittion to this, threshold value also has to be configured. If the current queue depth is reached then the EOIO error handling will be skipped.
Before configuring at adapter level, it has to be configured globally.
- Go to NWA–>Configuration–>Infrastructure–>JAVA system Properties–>services–>messaging system
- Go to extended details–>“messaging.eoio.extendedErrorHandling.enabled” has to be set true.
- At the adapter level, In the sender channels, we have QOS. First select it as EOIO.
1. Select EOIO ,and name the queue
2. In NWA–>SOA–>monitoring–>Extended EOIO error handling
3. Click on create
4. Give the queue name which you have already given in the Sender channel.
5. Give the receiver component name.
6. Select either Remove from queue or Copy to error queue
7. Now the configuration part is done.
SAP PI Moni Status:::
Copy to error queue and Remove from queue
Thanks for very useful information 🙂
Can you confirm how the error messages will be handled if the method CopyToErrorQueue is used? Also can you share a usecase where this method can be useful?
In copy to error queue,the error message is copied to new sequence with EOIO QOS. where as in remove from queue ,it has EO QOS. Whenever you want to set some limit to messages.For example,if the threshold value is 4,after 4 failing messages,EOIO handling doesnt work.
Hope this helps
I configured as per the blog in NWA(java system properties) and extended EOIO Error handling in NWA(created the entry with sender queue, receiver component and remove from queue and checked the enabled box) but EOIO messages are not recognizing the Extended EOIO configuration for the Sender EOIO queue and the message just goes into error.
Is there anything i might be missing. The sender EOIO queue is active and i am on PO 7.5(SP12)