cancel
Showing results for 
Search instead for 
Did you mean: 

Performance issue with custom IDOC download into SAP MII

Former Member
0 Kudos

Hi,

We have a custom IDOC which has ten fields. We take the data from these ten fields and insert into database. The issue is

we have some where around 4500 idocs flowing into SAP MII and then from SAP MII to sql database. The time taken for these idocs is around 30 mins.

Is there a way where we can improve the performance in terms of time taken?

Additional information is

MaxReaderThreadCount has been set to 5 in Configuration Management -> Infrastructure -> Application Resources

sample idoc structure


<IDOCNAME>
  <FIELD1>val1</FIELD1>
.....
<FIELD10>val2</FIELD10>
</IDOCNAME>

Please let us know if more information is needed.

Regards,

Manish Jain

Accepted Solutions (0)

Answers (1)

Answers (1)

agentry_src
Active Contributor
0 Kudos

Hi Manish,

What kind of IDoc is this?

How large is the average IDoc?

Since it is a custom IDoc, does it only deliver the absolute minimum required data (can you shrink the IDoc)?

Is there a possibility of combining IDocs (depending on size)?

Regards,

Mike

Former Member
0 Kudos

Hi Mike,

Please find the information for the queries asked.

What kind of IDoc is this? --> Its a custom IDoc.

How large is the average IDoc? --> average IDoc is around 1 kb.

Since it is a custom IDoc, does it only deliver the absolute minimum required data (can you shrink the IDoc)?

Only relevant fields are sent using the IDoc.

Is there a possibility of combining IDocs (depending on size)?

Our initial thought was combining IDoc will lead to perfomance issue so this option we have not tried out.

Regards,

Manish Jain

agentry_src
Active Contributor
0 Kudos

Hi Manish,

Are you processing them by Transaction or by Category when the IDocs are received? If by Transaction, you may be better off queuing them up and schedule them for bulk processing later.

Regards,

Mike

Former Member
0 Kudos

Hi Mike,

Are you processing them by Transaction or by Category when the IDocs are received?

We are processing them by transaction.

If by Transaction, you may be better off queuing them up and schedule them for bulk processing later.-->

We do not have issue when data is flowing from SAP MII to sql database because as soon as the IDoc is received the data flows from SAP MII to sql database. So bulk processing is not required.

Can the time taken for n number of IDocs flow to SAP MII be reduced by using different Message listeners for different IDocs.

Like 1 set of IDoc using 1 message listener and other set using other messages listener.

Regards,

Manish Jain

agentry_src
Active Contributor
0 Kudos

Hi Manish,

My thinking about the queuing is that for each transaction, you are calling your database and passing in the IDoc content. Depending upon your system, database, transactions, etc., you may be having to establish a connection between MII and the database each time you process an IDoc. Each "handshake" takes a finite amount of time. So queuing up the IDocs, establishing a single DB connection and processing large numbers of IDocs in a batch might reduce your processing time substantially. Something worth investigating.

I don't think that adding additional IDoc Listeners for different IDoc types will work if the source ECC system is the same for each type. It will simply use the first one it finds and process all the types there.

Additional threads may improve performance and is certainly a low risk, easily implemented test. Just do it in small increments as you can add too many threads (check with the NW administrator) and lock up your NW system.

And you may want to check with your DBA to see if there are limits on the connections which MII can establish for uploading the IDoc content (or for that matter, any other improvements to be made on the DB side).

Regards,

Mike

Edited by: Michael Appleby on Feb 10, 2012 2:37 PM

former_member193328
Active Participant
0 Kudos

Hi manish

In ERP when sending IDOcs you can set a packet size. This packet size determines how many IDocs are sent together to the target system. This can be set up in Transaction WE20 when you add the IDoc type to th logical port.

You can try this and see if this improves the performance. You can also check if the performance issue is when IDocs are sent from ERP to MII or MII processing them.

You can check the above as...

1. Check the Received Timestamp of the IDOcs. If this is several minutes later than sent then the issue is when ERP is sending the IDocs. Setting a packet size might help in this case.

2. If the Received Timestamp in MII is close to the sent time in ERP then MII Processing Rules are taking time to process. In this case setting up categories would help.

I would discourage use of separate listeners for separate IDocs. I am not sure if that is at all possible post MII 12.1.

regards

Partha

Former Member
0 Kudos

Hi Michael and Partha,

Thanks for your valuable inputs. We will check the suggested solution and revert back asap.

Regards,

Manish Jain