Author |
Message
|
will |
Posted: Tue Jul 02, 2013 8:09 am Post subject: Collector Node Completing Collections Issue |
|
|
Newbie
Joined: 02 Jul 2013 Posts: 5
|
Want a collection from 4 message queues with a variable number of messages on each queue to run a report periodically. Once set up, it will report every hour.
Set up a collector node as follows:
Terminal Quantity Timeout Correlation
In1 0 30 seconds blank
In2 0 30 blank
In3 0 30 blank
In4 0 30 blank
Collection Expiry is 90 seconds
Set event coordination to "All complete collections"
Have a timeout notification to go into the Control terminal every 90 seconds.
When sending messages to all 4 input queues, collections are propagated ok, and am able to process them successfully in the subsequent java compute node, but had to connect to the compute node from the Expire terminal for it to work.
Don't understand why the collections are not being marked as complete and coming out from the Out terminal, as their Timeout has been reached. It seems to ignore the Timeout.
Have tried playing with correlation paths and timeout values.
It works like this, but it seems like the wrong way to go about doing it.
 |
|
Back to top |
|
 |
lancelotlinc |
Posted: Tue Jul 02, 2013 8:31 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
|
Back to top |
|
 |
will |
Posted: Tue Jul 02, 2013 9:22 am Post subject: |
|
|
Newbie
Joined: 02 Jul 2013 Posts: 5
|
I'm guessing that I maybe I need to enter a correlation path. Maybe the timeout is reached, but without a correlation path, it's not considered part of the collection.
I don't want to correlate the messages between terminals, but may need to enter correlation information just to put it in the collection.
The layout of all the messages is:
<?xml version="1.0" encoding="UTF-8"?><Error>......</Error>
Have tried: $Body/Error and $Body/Error/* |
|
Back to top |
|
 |
will |
Posted: Tue Jul 02, 2013 9:37 am Post subject: |
|
|
Newbie
Joined: 02 Jul 2013 Posts: 5
|
Installed the sample, but did not run it. Will run the sample now. |
|
Back to top |
|
 |
will |
Posted: Wed Jul 03, 2013 5:10 am Post subject: |
|
|
Newbie
Joined: 02 Jul 2013 Posts: 5
|
After some timeouts, completed the sample. Got results to message queue COLL_OUT as follows:
<Invoices>
<Invoice>
<InvoiceNumber>111</InvoiceNumber>
<Product>Toaster</Product>
<TotalCost>6.94</TotalCost>
<Delivery>2 days</Delivery>
</Invoice>
<Invoice>
<InvoiceNumber>222</InvoiceNumber>
<Product>Food Processor</Product>
<TotalCost>77.53</TotalCost>
<Delivery>4 days</Delivery>
</Invoice>
<Date>2013-07-03</Date>
<Time>09:00:56</Time>
</Invoices>
Looking at the sample, Collector node CollectByCustNum is similar to what I'm doing. It takes input from 3 sources, a file and 2 message queues. Event coordination is disabled, timeout and expiry are both set to 300.
The difference between the sample and my flow, is that the correlation path is set. |
|
Back to top |
|
 |
will |
Posted: Wed Jul 03, 2013 5:39 am Post subject: |
|
|
Newbie
Joined: 02 Jul 2013 Posts: 5
|
Added correlation information. It goes out the out terminal.
Because my 4 inputs are not related, I have nothing to correlate on. My best approach is to use the expiration terminal to gather all messages. This should work. |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Jul 03, 2013 5:44 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
will wrote: |
Added correlation information. It goes out the out terminal.
Because my 4 inputs are not related, I have nothing to correlate on. My best approach is to use the expiration terminal to gather all messages. This should work. |
I would add a 5th input, fed from a TimeoutNotification node, that had a count of 1.
Much more obvious what's being done for future maintainers. |
|
Back to top |
|
 |
|