cancel
Showing results for 
Search instead for 
Did you mean: 

Message listener and processing of incomming data

Former Member
0 Kudos

Hi.

We are using the message listener XMIIMESSAGELISTENER for receiving and processing messages and it is working OK.

But when I have a look in the table JCO_Messages and at the receiveddate and processing date, the processing timestamp shows, that the messages are processed with an interval of 10 seconds.

I would like this value to be less, is it possible ??

BR

Poul.

Accepted Solutions (1)

Accepted Solutions (1)

jcgood25
Active Contributor
0 Kudos

What frequency are they being sent?

How large is the xml document in the payload of the message?

Answers (8)

Answers (8)

Former Member
0 Kudos

Hi.

From what I understand from others, this should have been every 1 second, and I would like this to be every 1 second in my case.

Is it possible to change?

BR

Poul.

former_member4529
Active Contributor
0 Kudos

Hi,

When I was with SAP and involved in this development initially the duration of processor thread was kept at 1000ms. But I think later it has been changed to 10 sec as Partha, who is one of the architects of SAP MII development from SAP, has confirmed. So it is not possible to change this externally as I mentioned previously.

Thanks,

Dipankar

Former Member
0 Kudos

Hi.

I have had another look at this, also using MII 12.1, and I get the same result. Here is an example of the message monitor, where the first column is the timestamp the document is received by the message listener and the second column is the processing time.

And the procesing time is every 10 seconds? I would like this to be every second.

2009-03-26 14:54:09.784 2009-03-26 15:04:10.612

2009-03-26 14:54:11.503 2009-03-26 15:04:30.315

2009-03-26 14:54:13.034 2009-03-26 15:04:30.378

2009-03-26 14:54:15.565 2009-03-26 15:04:30.409

2009-03-26 14:54:17.94 2009-03-26 15:04:30.44

2009-03-26 14:54:19.268 2009-03-26 15:04:30.456

2009-03-26 14:54:21.362 2009-03-26 15:04:30.487

2009-03-26 14:54:25.596 2009-03-26 15:04:30.471

2009-03-26 15:05:44.456 2009-03-26 15:05:50.268

2009-03-26 15:05:49.721 2009-03-26 15:05:50.409

2009-03-26 15:05:51.565 2009-03-26 15:06:00.253

2009-03-26 15:06:21.565 2009-03-26 15:06:30.393

2009-03-26 15:06:24.268 2009-03-26 15:06:30.393

2009-03-26 15:06:26.753 2009-03-26 15:06:30.456

2009-03-26 15:06:28.393 2009-03-26 15:06:30.456

2009-03-26 15:06:30.799 2009-03-26 15:06:40.409

2009-03-26 15:06:32.628 2009-03-26 15:06:40.409

2009-03-26 15:06:34.362 2009-03-26 15:06:40.409

2009-03-26 15:06:36.378 2009-03-26 15:06:40.424

2009-03-26 15:06:37.94 2009-03-26 15:06:40.424

2009-03-26 15:06:40.784 2009-03-26 15:06:50.237

Regards

Poul.

former_member193328
Active Participant
0 Kudos

Hi Paul

The Processor thread runs every 10 seconds. So the max delay for ur message processing is 10 secs given it is not held up unduly somewhere else.

Regards

partha

Former Member
0 Kudos

Hi.

In this case no, this is the only usage of the listener.

BR.

Poul.

Former Member
0 Kudos

Hi.

Thanks all for your input. But the example I showed above, there is NO processing rules defined. But in this case and when defining a processing rule, I still see a processing interval of approx. 10 seconds and not the 1 second as it should be .... Strange.

Is there a way of determining this for sure ??

BR

Poul.

former_member4529
Active Contributor
0 Kudos

Hi,

Are there any other messages received by XMIIMESSAGELISTENER which have processing rules? There is only one processor instance per listener. So it may got delayed due to processing other messages as well.

Thanks,

Dipankar

former_member4529
Active Contributor
0 Kudos

Hi,

The processor interval is defined as 1000 ms which you cannot change. That means ideally every 1 sec the processor is supposed to wake up and process pending messages. However, if the previous processing is going on for long then the subsequent processing may get delayed and the processor interval may get changed. This depends on the server load.

Thanks,

Dipankar

Former Member
0 Kudos

A few examples. To start with NO processing is defined, but when I have processing defined, I still see, on average a timedelay of 5 seconds from the XML is added and until the transaction starts processing. The max. is 9 - 11 seconds, indicating there is a polled based processing of the XMLs.

ReveivedDateTime Name ProcessingDateTime

2009-02-25 11:50:00.031000 1 3 S95Performance 2009-02-25 11:50:06.343000

2009-02-25 11:56:16.468000 1 3 S95Performance 2009-02-25 11:56:26.343000

2009-02-25 12:07:17.609000 1 3 S95Performance 2009-02-25 12:07:26.343000

2009-02-25 12:17:03.421000 1 3 S95Performance 2009-02-25 12:17:06.343000

2009-02-25 12:17:10.468000 1 3 S95Performance 2009-02-25 12:17:16.343000

2009-02-25 12:17:22.656000 1 3 S95Performance 2009-02-25 12:17:26.343000

2009-02-25 12:20:00.578000 1 3 S95Performance 2009-02-25 12:20:06.343000

2009-02-25 12:20:03.515000 1 3 S95Performance 2009-02-25 12:20:06.343000

2009-02-25 12:20:06.468000 1 3 S95Performance 2009-02-25 12:20:16.343000

0 Kudos

Poul,

From your data, it looks like it is polling every 10 secs. So the average of 5 secs makes sense. I will check with others on where that is defined. Do you have a SAP router in the chain anywhere or any other unusual pieces in your architecture?

Mike

Edited by: Michael Appleby on Feb 25, 2009 2:30 PM

Is it possible that the table update occurs every 10 seconds rather than the processing time?

Edited by: Michael Appleby on Feb 25, 2009 4:01 PM

Former Member
0 Kudos

Hi Jeremy.

To start with, the processing rule is not appended, but I see the same behavior when I have a processing rule.

The frequency might be 200 - 300 XML documents pr. hour, so not that much. My challenge is that I need the execution to happen as fast as possible. And each XML is small, maybee 500 bytes on average.

I does not think the problem is getting the document INTO the queue, but the processing time from there and until the XML is processed.

BR.

Poul.

Former Member
0 Kudos

Poul,

the processing timestamp shows when the transaction you defined in the processing rule has finished processing the message. In your case it always takes 10 seconds, or is it an average value?

We are also using the WSMessageListener, but I do not see a fixed interval. The processing time (processed time - received time) is more or less, depending on how many processes are running at the same time. I can also find processing times smaller than 10 seconds.

Maybe it is a case of hardware scaling?

Michael