Skip to Content

Showcase New Feature MII v 14.0 – Enhancements in Message Services Category

Applies to:

SAP MII 14.0 SP 4

Summary

The document demonstrates the enhancement done in Message Services Category in MII

The document showcases how SAP MII supports QoS. The document will take us step by step showcasing how to use the new features in MII 14.0 for HTTP Messages.

Exactly Once Support (EO) for HTTP Messages


Table of Content

Introduction 

Example Set Up

Demo Run of Example

Conclusion

Introduction


In order to demonstrate a working example of this new feature in MII 14.0, we will be required to evoke a Message Listener in MII.  This can be done in number of ways. In our example, we will create a transaction (called EvokeML) using action block HTTP Post and evoke the Message Listener to demonstrate our working model. This transaction will help us showcase the EO feature.


Example Set Up

To demonstrate the EO feature for HTTP Messages

Step 1.1

Open up the Workbench found under Content Development from MII Main Menu.

Create a new transaction in the Work Bench (Catalog Tab). And within it, create a local variable named PostDataValue of data type xml.

/wp-content/uploads/2014/02/pic1_378162.png

The PostDataValue variable will serve as input data to our Message Listener when passed through HTTP Post action block.

Step 1.2

In this step, we define a HTTP Post action block in our transaction.

Configure the URL in the following way,

http://<server>:<port>/XMII/Illuminator?service=WSMessageListener&mode=WSMessageListenerServer&NAME=<UniqueMessageName>&MESSAGEUID=<UniqueMessageUID>

And map the PostData variable of HTTP Post action block to the local variable created above.

/wp-content/uploads/2014/02/pic2_378167.png

HTTP Post action block is used to post the data to Message Listener.

Save the transaction naming it as EvokeML.

On a whole, our transaction looks like:

/wp-content/uploads/2014/02/pic3_378168.png

Demo run of Example

To demonstrate the EO feature for HTTP Messages

Step 1.1

In order to demonstrate the EO functionality, we will config the URL in HTTP Post action block (of above transaction) as below.

http://<server>:<port>/XMII/Illuminator?service=WSMessageListener&mode=WSMessageListenerServer&NAME=Demo&MESSAGEUID=MID1

We have given a unique MessageName and unique MessageUID to the above URL.

Before we execute our transaction, we create a Message Processing Rule for our Message Listener Input of processing type as category.

On executing the Transaction and moving to Message Monitor Screen, we see that our Message Listener has been evoked as below.


/wp-content/uploads/2014/02/pic4_378169.png

Note: Demo as MessageName and MID1 as Message UID in above snapshot. It is same which we passed as input above.

Step 1.2

We re run our transaction and move to Message Monitor Screen. As seen below, a Duplicate Status is seen to the input received for the Message Listener.

/wp-content/uploads/2014/02/pic5_378170.png

The duplicate Status is seen because the MessageUID is same (MID1) which was received in previous input.


The Duplicate status indicates that message is already processed. The new feature ensures message is processed exactly once and new message received is treated as Duplicate.

Hence, this demonstrates the Exactly Once support for HTTP Messages feature introduced in SAP MII 14.0


Conclusion


Above example, demonstrates the Exactly Once support for HTTP Messages feature introduced in SAP MII 14.0


SAP MII 14.0 enhancement feature to support Quality of Service (QoS) ensures messages are not processed multiple times and helps in better usage of messaging services available in SAP MII.

To report this post you need to login first.

3 Comments

You must be Logged on to comment or reply to a post.

  1. Partha Sarathi Roy Chowdhury

    Hi Ruchir

    Good document.

    You may also add the Exactly Once in Order handling for HTTP messages and the Exactly Once handling for RFC and IDOC Messages to give the post more completeness around the topic.

    regards

    Partha

    (0) 
  2. christian libich

    FYI one issue I ran into to look out for.

    I often queue up RFC calls to MII in sap using ‘IN BACKGROUND TASK’ like below:

    CALL FUNCTION ‘<FUNCTION>’ IN BACKGROUND TASK DESTINATION ‘<RFCDESTINATION>’

    If you trigger more than one of these with a single COMMIT WORK sap will send all the messages with the same UID and thus MII will only process the first one.

    Use the ‘AS SEPARATE UNIT’ clause like below to send each message with its own UID:

    CALL FUNCTION ‘<FUNCTION>’ IN BACKGROUND TASK DESTINATION ‘<RFCDESTINATION>’  AS SEPARATE UNIT

    Regards,
    Christian

    (0) 

Leave a Reply