|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
Mapping node in wmb 8 |
« View previous topic :: View next topic » |
Author |
Message
|
goffinf |
Posted: Sun Dec 30, 2012 3:27 am Post subject: |
|
|
Chevalier
Joined: 05 Nov 2005 Posts: 401
|
To start with your statements made about MB performance on GitHub are at least partially subjective. You haven't articulated any specific use case that you are using for the purpose of comparison (other than a general 'tree walk') and you don't take account of the size or 'shape' of the data 'tree' (large/small, deep/flat, and so on) both of which can result in a very significant differences in performance, or more specifically the best approach to processing such data. You don't appear to take account of the degree of the transformation required (e.g. one element in a 10MB stream or the whole tree), again different tools, different approaches, may yield different performance.
The speed at which a data structure can be consumed (i.e raw thruput) is only one measure of a systems performance, there are others which are equally critical and can have a profound effect on the stability and reliability (and thus availability) of an application. So being able to process very fast is not of much use if your application is constantly crashing because of resource constraints other than CPU.
iro XSLT, your assertion that '... This is because XPath basically searches the full XML document with each XPath expression. ' is just plain wrong, and once again fails to note the many opportunities to optimise XSLT processing even in v1.0.
The experience of the developer (or access to such knowledge) in selecting the preferred tools and algorithms for both functional and non-functional requirements will often result in the biggest impact on perfromance and, whilst tools like Message Broker provide a higher abstraction (via the supplied nodes) that can minimise that need (substitute 'code' for 'config') that doesn't reduce the need to choose and apply each technique with intelligence.
So, whilst I agree that it is likely that using a general purpose native programming language it is possible to produce an application that is more optimised for performance, let us not forget that there is 'no free lunch' here, and the cost can be in the need to develop and retain a much more highly skilled developer pool (or buy one depending on your contractor/permie mix). Sometimes that's justified, oftentimes not. This equation is one of the factors when choosing tools like MB in the first instance right ?
Your blog has a lot of helpful information, but FWIW, broad statements about performance characteristics are notoriously difficult to substantiate and are significantly impacted by a sites specific setup along with the comments made above (and others). So perhaps you could include a caveat to that effect so as not to mislead those that are seeking the mythical 'quick fix'.
Fraser. |
|
Back to top |
|
 |
mqjeff |
Posted: Sun Dec 30, 2012 8:03 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Maps are compiled into bytecode at first use after deploy. This can have a dramatic effect on performance comparisons if you are deploying each time you run. |
|
Back to top |
|
 |
kimbert |
Posted: Sun Dec 30, 2012 1:58 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5543 Location: Southampton
|
Quote: |
Where am I wrong? Please tell me and I'll correct it! |
Well, the second line of your blog entry says:
Quote: |
Mapping Node: The Mapping Node allows simple transformations only. |
That is simply incorrect. The mapping node can handle very complex transformations - even in v7 and v6. The v8 mapping node is ( a lot ) easier to use, performs better, and offers the full power of the XQuery language ( via custom XQuery transforms ). |
|
Back to top |
|
 |
mqsiuser |
Posted: Thu Jan 03, 2013 6:44 am Post subject: |
|
|
 Yatiri
Joined: 15 Apr 2008 Posts: 637 Location: Germany
|
Quote: |
Mapping Node: The Mapping Node allows simple transformations only. |
Ok, that should have actually been "Mapping Node: Graphical mapping allows simple transformations only". Since you have now extended the mapping-node with xquery (I wasn't aware of that) and made it "declaratively programmable" with that, I changed the text to "Mapping Node: Uses xquery (and xPath) which basically results in the same issues XSLT has". Is that better? Can we agree on that?
I must admit that I didn't really dive into xquery now. I thought it is a dead (W3C) standard. Anyway... querying (a message) and transforming (it) are two different things. _________________ Just use REFERENCEs |
|
Back to top |
|
 |
goffinf |
Posted: Thu Jan 03, 2013 12:36 pm Post subject: |
|
|
Chevalier
Joined: 05 Nov 2005 Posts: 401
|
mqsiuser wrote: |
I must admit that I didn't really dive into xquery now. I thought it is a dead (W3C) standard. Anyway... querying (a message) and transforming (it) are two different things. |
You really ought to read up on XQuery before making assumptions based on its name. It's a lot more than just a query language (although it was originally designed for querying XML databases - or relational databases that store XML) and has similar capabilities to XSLT as far as transformation is concerned. It utilises XPath, shares the same type system, data model and function library as XSLT. Some claim that it is easier to learn than XSLT perhaps especially when there is a need for more powerful expressions and FLOWR is employed.
Anyway, it's a very long way from being a dead language (as demonstrated by IBMs inclusion of XQuery As a mapping node language choice).
Fraser. |
|
Back to top |
|
 |
wmbv7newbie |
Posted: Fri Jul 11, 2014 5:12 am Post subject: XSDs, esql files not available |
|
|
Centurion
Joined: 13 May 2014 Posts: 121
|
Hello GoodPeople,
I have a weird question regarding the mapping node. I am using WMB V8.0.0.2.
I am trying to use a mapping node in a flow. While creating the map for it, I intend to use message set to refer to input and XSDs for output. The problem I am facing is that in the selection box for input and output, I am getting the option of only Message Sets referenced by the application using the mapping node. Although I have the XSDs copied in the same folder as the flow, they are not getting listed in the option for outputs.
Am I missing something here?
Similarly for esql file reference. I have written custom esql for a few fields and wanted to reference it in the map. The esql file is in the same location as the message flow using the map (although I am not sure this matters). But when browsing for the esql to refer, it is not showing me any options to select from.
Again am I missing to set something?
Thanks! |
|
Back to top |
|
 |
martinb |
Posted: Mon Jul 14, 2014 3:05 am Post subject: |
|
|
Master
Joined: 09 Nov 2006 Posts: 210 Location: UK
|
|
Back to top |
|
 |
wmbv7newbie |
Posted: Mon Jul 14, 2014 3:56 am Post subject: |
|
|
Centurion
Joined: 13 May 2014 Posts: 121
|
Thanks!
I have added a new thread for the question -
http://www.mqseries.net/phpBB2/viewtopic.php?p=378466#378466
As regards to your suggestion, I already have a library with the message models. The application with the message flow is also referencing this library. Still, I don't know why it is not showing the available schemas in the library. |
|
Back to top |
|
 |
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|