Skip to Content
0
Former Member
Dec 03, 2008 at 11:36 PM

Help with JDBC Receiver performance issues with large number of messages...

175 Views

I have an XI scenario where SAP sends MATMAS (Materials) IDoc's to XI. XI then uses XSLT to map to a JDBC format to insert each Material into extrernal database (SQL Server) tables corresponding to each of the IDoc segments.

So for each material IDoc it will create 1 record in a table for mara, a couple for marc and mard and a couple for mbew, etc.

We want to run this interface every now and then with about 200,000 materials out of SAP.

The problem is that it takes about 24 hours to process just 24,000 materials and seems to run very slowly after that (1 Material every few seconds). Extrapolating this out means way over a week of processing ;-o

I don't think the performance issue is on the external SQL Server db because if we perform an upload to thge DB with the same data from files it is blindingly quick!

The performance bottleneck seems to be between the outbound queues on XI and the jdbc adapter. The SAP IDoc processing and the XSLT mappings occur quite quickly.

I have turned on PACKET processing in XI for the inbound and outbound EO queue's but it has made no difference as the XI IEngine processing is quick - its the jdbc adapter that is slow.

An issue that I can see is that there is a separate jdbc message going to the adapter for each Material, but I can't see how to batch them together (I thought the packet processing would do that?)

When you send IDoc's to XI in packets, the XI IDoc sender-adapter splits them up into individual messages which is a pain.

Do you think it would be wise to use a ccBPM to COLLECT all the incoming messages and send them to the jdbc adapter in batches of about 5MB or so..? I'm not sure if ccBPM can handle it though?

Any thoughts will be most appreciated.

Regards,

Jason.