cancel
Showing results for 
Search instead for 
Did you mean: 

MII Transaction Call

Former Member
0 Kudos

Hi All ,

I have a Query regarding Transaction calls.

Suppose I'm calling a transaction like a webservice , it executes and insert data into a database.

But it should be in an order.

The triggering is actually in order , but if the previous call has a heavy payload to execute and the present one is very small in size due to processing time it may insert the data of the present call before the data insertion of the previous call.

So in such situation I need to check whether it is being executed now before starting the next call service.

It is something like Synchronising the transaction. (Outside the transaction)

Is there any solution for this ?

Thanks In Advance

Sravan

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Sravan,

in addition to Matthias you can use the [WSMessageListener|http://help.sap.com/saphelp_mii121/helpdata/EN/45/6a86ac88130dece10000000a11466f/content.htm]. Instead of calling the transaction directly via web call, you call the WSMessageListener via Web call. MII will put the message into the MII Message Listener. In a processing rule, you enter the transaction to be called. The messages will be processed sequencially.

Finally you can extend the idea of the MII build-in queue and build your own queue in a custom table.

Michael

Former Member
0 Kudos

Hi Matthias and Otto thanks for your reply.

Otto : To make it clear , I'm triggering the WSMessagelistener in a time gap of 5 sec and this inturn triggers a transaction .

Suppose ,The first trigger takes 50 sec of transaction processing does that makes the second trigger after 55 sec or

after 5 seconds.

If it is internally getting arranged as a Queue , then it solves my problem.

Former Member
0 Kudos

Sravan,

if you use the WSMessageListener, MII handles it as a synchronuos input queue. If a message arrives, MII will call the transaction which is defined in the processing rule. If a lot of messages of the same message type arrive in a short period of time (within milliseconds for example), then MII stores the messages in the queue and processes them sequentially one after the other.

Hope this helps.

Michael

Former Member
0 Kudos

Thanks Otto , last clarification required.

By Default there is only One ServerName (XMIIMessageListener) avaialable in Message listener for receiving Messages through Web service calls.

I would like to create more. I have admin role , but still that feature to create another server to receive Messages from webservice calls is not enabled.

How can I create a new server.

Former Member
0 Kudos

Hi,

there is only one server XMIIMessageListener to receive Web service calls. You have to define separate Message Names (enter the name in the URL of the WSMessageService call like this:

http://server:port/XMII/Illuminator?service=WSMessageListener&mode=WSMessageListenerServer&NAME=MYMESSAGE&Session=false

This defines a queue with message type "MYMESSAGE".

Michael

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

for transaction execution sequence , i use flag and store the flag in a queue.

If flag is true that time transaction begins to execute and makes flag to false.

After completion of execution it makes the flag true for the next transaction.

This method makes transaction runs necessary order.

At the beginning you must set the flag true and store it in a queue.

Every transaction begins you must get flag value, if value is true transaction must execute, otherwise end.

If transaction executes, it must change flag value as false.At the end of the transaction flag must be set true.

Regards

Former Member
0 Kudos

Hi,

I would try to use queues. Either JMS queue or MII message queue would do. Then you can process you data in a serial way.

Best regards,

Matt