During my recent engagement with one of the largest automobile clients we encountered one problem while integrating SAP ECC with SAP ME version 6.0.3.
As per the required functionality the outbound message from SAP ME should trigger to generate & print the label from SAP ECC. In this scenario, maximum expected delay considered is 2 minutes. However, it is taking much more time than originally it was considered during realization.
Primarily it was appeared as SAP MEINT problem because SAP ME was sending the outbound messages in time to SAP MEINT. However, MEINT was not able to process it in time. A detail investigation revealed that the problem is lying with the dispatcher queue. During peak hour, the inbound messages are released from SAP ECC and the outbound messages are getting posted from SAP ME simultaneously. However, the single threaded dispatcher queue is
unable to handle both sided message posting in time.
Furthermore, this investigation depict that inbound orders are taking much more time due to routing configuration and Bill of Material configuration into SAP ME. Any outbound message if posted from SAP ME during that period are backed up in the queue until and unless the previous orders are thru to SAP ME.
In the below diagram (Pic-1) it is showing that integration queue in MEINT is accepting both inbound and outbound messages. Both type of messages are posting into one queue so, messages are processing according to first in first out method. Single dispatcher job in MEINT is responsible for picking each and every message from integration queue and putting it into workflow.
As the queue is single threaded and synchronous in nature so, if any message takes longer time to process then message sitting next to it would remain ideal for longer period in the queue.
So, when calculate the queue timing(difference between message received in MEINT and start processing in MEINT ) and response timing for MEINT messages from SAP ME found the below(Pic-2) analysis. Here it is showing that queue timing are quite large and messages are sitting in the queue for longer period of time.
Solution to the problem:
Though we identified the problem visually but as it is an SAP product so we seek help from SAP technical team and conversation with them lead to one SAP Note 2000811. In this note SAP has separated the inbound and outbound message virtually (by providing the input and output message flag internally) and segregated the dispatcher scheduler into two different part say inbound and outbound. Inbound dispatcher scheduler is responsible for taking care of the inbound (inbound to SAPME) messages like ‘ORDER’, ‘LOICSW2’, ‘MATMAS’, ‘ZMATMAS’ etc., and outbound dispatcher scheduler is responsible for handling the outbound(outbound from SAPME) messages like ‘yieldConfirmationRequest’, ‘scrapConfirmationRequest’ etc.,.
The above picture (Pic-3) is showing how the architecture looks like after implementation of the SAP Note 2000811. Now it is clearly showing that inbound and outbound messages are independent to each other but sitting in the same queue and processing separately. So like earlier any message from SAP ME should not be backed up due to the long processing time of inbound message. The below analysis ((Pic-4)) is showing how the MEINT queue timing drastically improved to a minute range after implementation of split queue.
In later version of SAP ME the problem has been taken care also the resolution available with latest patch. However when version up gradation and service pack up gradation both plans are little far from the current situation(i.e., SAP ME 6.0.3) then this note would work as oasis to rectify the problem within existing landscape.