Topic
  • 3 replies
  • Latest Post - ‏2012-11-30T13:21:08Z by kimbert@uk.ibm.com
Kalicharan
Kalicharan
49 Posts

Pinned topic XMLNSC Question

‏2012-11-26T20:49:19Z |
Hi, i have a XML message in this format

<abc>
<cde></cde>
<cde></cde>
<cde></cde>
....
...
5000 times
<cde></cde>
<efg>123<efg>
</abc>

In my ESQL if i use a statement SET value = OuputRoot.XMLNSC.abc.efg; does it traverse thru all the 5000 previous tags. I am just trying to see if having <efg> tag earlier in the xml will give some performance gains. Any idea anyone?
Updated on 2012-11-30T13:21:08Z at 2012-11-30T13:21:08Z by kimbert@uk.ibm.com
  • kimbert@uk.ibm.com
    kimbert@uk.ibm.com
    515 Posts

    Re: XMLNSC Question

    ‏2012-11-27T16:41:08Z  
    By default, all WMB parsers use 'on demand' parsing. If your message flow does not need to parse the entire input message, then you will see big performance gains if you put the '<efg>' tag near the start of the message.
    If your message flow is validating the input message ( Validation=Content and Value ) or if it reads every field in the input then the performance gain will be small or nil. Either way, if you have the choice then you should put often-accessed data near the start of the document so that other flows that deal with the same document type can perform optimally.
  • Kalicharan
    Kalicharan
    49 Posts

    Re: XMLNSC Question

    ‏2012-11-29T22:18:24Z  
    By default, all WMB parsers use 'on demand' parsing. If your message flow does not need to parse the entire input message, then you will see big performance gains if you put the '<efg>' tag near the start of the message.
    If your message flow is validating the input message ( Validation=Content and Value ) or if it reads every field in the input then the performance gain will be small or nil. Either way, if you have the choice then you should put often-accessed data near the start of the document so that other flows that deal with the same document type can perform optimally.
    Hi Kimbert, thanks for your response

    My Flow is like this

    Http Input (Input Message Parsing set to XMLNSC, Validate set to None )-> Compute Node (Validate Set to None)

    i have my ESQL code in the compute node

    SET value = OuputRoot.XMLNSC.abc.efg

    In this situation moving the tag to start. Will it help performance wise?
  • kimbert@uk.ibm.com
    kimbert@uk.ibm.com
    515 Posts

    Re: XMLNSC Question

    ‏2012-11-30T13:21:08Z  
    It probably will help performance for that line of ESQL.
    It might help the performance of the entire flow if the rest of the flow does not look at the other 5000 tags.