cancel
Showing results for 
Search instead for 
Did you mean: 

Performance problems processing big volumes using ABAP-proxy framework

Former Member
0 Kudos

Hi

We have a custom application ABAP program running on a ECC50 ( WAS640 ) box - that reads change pointer information based on a Z* msg type and generates proxy messages - sending them to XI. Now in every run, this ABAP program pushes out 5000 to 10,000 messages ( one /customer change ) to XI using a proxy framework.

I find that the Z* abap takes very little time to read the change pointer information and generate the outbound messages out of the ECC50 box. The messages are queued in the ECC50 integration engine layer for a long time before they go out to XI. We even got a <b>HTTP_RESP_STATUS_CODE_NOT_OK</b> error for one of the outgoing messages since there is a long list of messages trying to go out to XI.

1) Is the above error because of the timeout in the http connection between ECC50 and the XI box - where do we increase the timeout settings for this ?

2)What are the tuning parameters that need to be set in such a scenario on the integration engine ( ECC50 ) and the XI box ( Integration server ).

We are using QOS as EO when the messages are sent out.

I set EO_INBOUND_PARALLEL and EO_OUTBOUND_PARALLEL tuning params in both of the boxes to 10 . Are these parameters enough - is there something else to be set to improve the performance ?( we have atleast two CPUs each on the WAS boxes ).

Please share your experiences / thoughts on handling such a high volume situation.

Accepted Solutions (0)

Answers (1)

Answers (1)

moorthy
Active Contributor
0 Kudos

Hi Karthik,

<i>

1) Is the above error because of the timeout in the http connection between ECC50 and the XI box - where do we increase the timeout settings for this ?</i>

>>>Check this blog-

/people/michal.krawczyk2/blog/2006/06/08/xi-timeouts-timeouts-timeouts

Also check this tuning guide

https://websmp106.sap-ag.de/~sapidb/011000358700000592892005E.PDF

But just one suggestion-

In this scenario, is your target is File or something else?

If it is a file, you can write your proxy in such a way that, for each proxy call only 100 messages will be pushed into XI, and in XI, you can collect these messages using BPM and get the one message at the end of the process.

Hope this helps,

Regards,

Moorthy

Former Member
0 Kudos

Hi

Thanks for the quick reply. My receiver system is a SQL DB.

Also, I do not understand when you say - " for every proxy call - I can write 100 messages" -

My proxy structure is constructed in such a way that there is one message / customer ( all details of the customer will go out in one message type structure ) - I cannot group many customer details into one message - because I am using a EOIO QOS ( each customer change information goes to the DB in the same order in which it was generated from SAP ) - so there is a queue for each group of customers ( I am trying to keep the queues to a minimum - otherwise I might go for one queue per customer which will be too much )

So, if its one message per customer - could you explain what you mean by 100 messages / proxy call ?

Thanks for your time.

moorthy
Active Contributor
0 Kudos

Hi,

So my suggestion will not work for you, if you need to call for each customer. But this work if you do parforeach loop in BPM etc.. but anyway it is different altogether..

Coming to your scenario,don't you think, hitting the SQLDB for each customer will not be a performance issue?

Regards,

Moorthy

Former Member
0 Kudos

Hi Krishna

Writing to the DB is done through a call to stored procedure(s) which takes only one record at a time ( for each customer )- the stored procedure is called multiple times for as many customer records there are -

Now that is a problem downstream - the problem facing me right now - is that I am generating one message / customer from the R/3 box - there are too many messages waiting in the queue - on the local integration engine - waiting to hit XI - I cannot bunch the messages across customers inorder to reduce number of messages - also one proxy call / customer QOS - EOIO - I tried giving customer number as a part of the queue id - too many queues created - then made the queue id - based on some customer group based value - both cases have the same problem - of messages queueing up on the local integration engine -

Not very sure how individual IDOCs for each customer ( DEBMAS ) are sent out - efficiently

moorthy
Active Contributor
0 Kudos

Hi Karthik,

Can you try out this with BPM with Correlation ?

Make correlation id as Customer Id, for each Id send the message to the stored procedures. In this case for each Id it will create a new process instance .Just you can try with this..

Regards,

Moorthy