What's the difference between assigning inner and outer element of Document Type?

I’m working on Windows7 and webMethods 9.6.

I have a flow service receiving a document type as input, let us call it DTOuterElement, when invoking this flow service, in the caller service, the code looks like below in Pipeline view of SoftwareAG Designer:

+DTOuterElement   --------------------   +DTOuterElement
     ++DTInnerListElement                               ++DTInnerListElement

(There is a link between the outer elements, and the inner one is a list type, the invoked flow service will loop the list)

The code is working fine for a single thread, however, when we do load testing, there is always part of requests generate failure response, after investigation, we changed the code as below (change the link from outer to inner):
+DTOuterElement                                     +DTOuterElement
      ++DTInnerListElement    --------------------   ++DTInnerListElement

Keep everything else unchanged and we can always get successful response for the load testing!

My questions is why this happens? What is the underlying difference between these 2 implementations?

Much appreciated for any suggestions.

Can you reproduce this issue? If so, could you upload the package/service has this issue?

Thank you for your attention, Xiaowei.

After lots of investigation, I now get the answer. Post it here in case anyone else encounter the same issue.
There are 2 reasons causing the issue:

  1. LOOP is not thread-safe and will reduce input array dimensionally, more information can be found at page 233 and 234 of “9-6_Service_Development_Help.pdf”
  2. Link between inner elements is copying by value, while link between outer elements is copying by reference, more information can be found at page 260 of “9-6_Service_Development_Help.pdf”

BTW, which city of China are you from? :slight_smile:

Could you please elaborate on this? How does the fact that you send many requests affect the single/multithread property of how things are processed? In my view, each request should still be processed in its own thread. Hence, no difference shoud occur.

Can you please describe how you do the load tests and how it changes the processing from single threaded to multithreaded?

Thank you

Do load testing with SOAP-UI, it provides the functionality of load testing, you can have a try if possible.