| 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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |