Author |
Message
|
rajeshknigam |
Posted: Thu Jul 23, 2009 12:47 am Post subject: Creating Collection node output with ESQL |
|
|
 Novice
Joined: 29 Jun 2009 Posts: 12
|
I have a requirements where in I want to create a output which is same as that of Collector node but ESQL.
Has anybody tried that.. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jul 23, 2009 12:52 am Post subject: Re: Creating Collection node output with ESQL |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
rajeshknigam wrote: |
I have a requirements where in I want to create a output which is same as that of Collector node but ESQL. |
So you want to use a Collector node without a Collector node? What's the requirement behind this reinvention of the wheel? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
rajeshknigam |
Posted: Thu Jul 23, 2009 12:56 am Post subject: |
|
|
 Novice
Joined: 29 Jun 2009 Posts: 12
|
WTX + Collector node createing a lot of problems.
So just wanted to get rid of Collector node
Do you have the solution |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jul 23, 2009 1:06 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
rajeshknigam wrote: |
Do you have the solution |
Afraid not. Not something I've attempted.
I'm sure someone brighter will be along in a moment.
Or you could give some details of your problems - someone might have a solution. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Mercator |
Posted: Thu Jul 23, 2009 5:53 am Post subject: |
|
|
Apprentice
Joined: 21 Jul 2009 Posts: 34
|
rajeshknigam wrote: |
WTX + Collector node createing a lot of problems.
|
What are the problems? |
|
Back to top |
|
 |
rajeshknigam |
Posted: Fri Jul 24, 2009 10:28 am Post subject: |
|
|
 Novice
Joined: 29 Jun 2009 Posts: 12
|
Our WTX node need 3 inputs. The only way known to me to pass 3 inputs to WTX node is by using Collector node.
We need to archive the message before and after WTX transformation.
Problem is, due to the use of Collector node flow transaction has been broken between before Collector node and after Collector node.
Now if any exceptions happen; say after Collector node, message archived before WTX is NOT rolled back. (All MQ Put are made part of transaction).
Due to this we have a not required message in Input message archive queue.
This is one of the major problem I have been facing.
Any suggestions. |
|
Back to top |
|
 |
jbanoop |
Posted: Fri Jul 24, 2009 12:03 pm Post subject: |
|
|
Chevalier
Joined: 17 Sep 2005 Posts: 401 Location: SC
|
where are these inputs coming from ? Are these external inputs over which you have no control over ?
Couldnt you set the incoming messages into the environment and then output these messages to your archive queue after crossing the collector node ?
This would mean that those puts would also roll back if there was an exception downstream to the collector node.
Hope it helps. |
|
Back to top |
|
 |
Mercator |
Posted: Sat Jul 25, 2009 8:01 am Post subject: |
|
|
Apprentice
Joined: 21 Jul 2009 Posts: 34
|
You say you need to archive before and after the WTX node, so I'm not sure why you care about the collector node. Can't you stick a compute node after the collector node (prior to WTX node), operate on the collection and propagate the individual parts to your archving queues in addition to sending the collection to WTX? |
|
Back to top |
|
 |
rajeshknigam |
Posted: Mon Jul 27, 2009 11:08 pm Post subject: |
|
|
 Novice
Joined: 29 Jun 2009 Posts: 12
|
jbanoop wrote: |
where are these inputs coming from ? Are these external inputs over which you have no control over ?
Couldnt you set the incoming messages into the environment and then output these messages to your archive queue after crossing the collector node ?
This would mean that those puts would also roll back if there was an exception downstream to the collector node.
Hope it helps. |
Yes, That could be a solution but it would be very complicated and all these things would needs to be done just make use of Collector node. That is why I am looking for some way I could create Colletor like output from ESQL node. If that can be done all my code would be simple and easy to maintain.
Btw, is there any other way to feed multiple inputs into WTX map other then collector node? |
|
Back to top |
|
 |
Luke |
Posted: Tue Jul 28, 2009 2:58 am Post subject: |
|
|
Centurion
Joined: 10 Nov 2008 Posts: 128 Location: UK
|
There are several ways you could do this, including writing the messages to a queue and using MQGet node to retrieve them when the collection is complete ... which is exactly what Collector node does for you ... so as Vitor says, why reinvent the wheel? Particularly given that you'll still have the same problem with transactionality if you write the archive messages before the collection is complete.
Last suggestion from Mercator is spot on in my opinion, should work well, and really shouldn't be difficult to code, particularly with the options available with PROPAGATE statement in more recent versions of WMB. |
|
Back to top |
|
 |
Mercator |
Posted: Tue Jul 28, 2009 4:51 am Post subject: |
|
|
Apprentice
Joined: 21 Jul 2009 Posts: 34
|
rajeshknigam wrote: |
Btw, is there any other way to feed multiple inputs into WTX map other then collector node? |
First off, I still think sending the individual parts to their respective archive queues immediately after the Collector node is the way to go for what you want to do (see my previous suggestion).
But, to answer your question....yes there are other ways, but none as easy as the Collector node. Some also require additional WTX components which you may or may not own. I'll list a few in no order of preference:
#1: Use the Collector node.
#2: Make your own "Collection-like" structure in Broker that is parsable by WTX. You'll have to modify the map so that it accepts all inputs on one input card. You'll also have to make a new type tree that contains all input structures and matches your new "Collection-like" structure.
#3: Use the WTX Java API. Its very easy to use and allows you to do almost anything, including passing as many inputs in to a map as you'd like. It is the most robust way to call WTX in any environment. However, you have to buy the SDK. With the purchase of the SDK, customers are now entitled to use it with their existing WTX engine (WTX for Integration Servers in this case). Previously, customers would also have had to purchase the API engine. Disclaimer...verify with your IBM rep.
#4: A map can have multiple inputs. Just because the map is invoked by broker, does not mean all of the inputs are required to come from broker. Broker can pass in a single input and then WTX uses its own adapters to pull in the other inputs. For your example you could send two of your messages to staging queues (make sure their commited, non-transactional). Have broker pass the third message to the WTX node. When the map fires on that message, the WTX MQ adapter will pull in the other two messages from the staging queues.
#5: Use the Collector node. |
|
Back to top |
|
 |
|