| Author | 
		  Message
		 | 
		
		  | humanRebody | 
		  
		    
			  
				 Posted: Fri Feb 05, 2010 2:08 am    Post subject: Message propagation issue. Please help. | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 05 Feb 2010 Posts: 15
  
  | 
		  
		    
			  
				Hi all,
 
 
Recently I developed a simple workflow which just propagate a message from 1 MQInput node to 2 MQOutput node. I have try the tutorial from IBM but still not success.
 
 
   
	| Code: | 
   
  
	
 
SET OutputRoot = InputRoot;
 
PROPAGATE;
 
SET OutputRoot = InputRoot;
 
PROPAGATE TO TERMINAL 'out1';
 
SET OutputRoot = InputRoot;
 
 | 
   
 
 
 
Is there anything else I need to configure.
 
 
And the flow is so simple that 1 MQInput --> compute node --> 2 MQOutput.
 
 
Please advise.
 
 
Thanks,
 
Thomas[/code] | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | WMBDEV1 | 
		  
		    
			  
				 Posted: Fri Feb 05, 2010 3:15 am    Post subject: Re: Message propagation issue. Please help. | 
				     | 
			   
			 
		   | 
		
		
		   Sentinel
 
 Joined: 05 Mar 2009 Posts: 888 Location: UK 
  | 
		  
		    
			  
				Can you elaborate on:
 
 
   
	| humanRebody wrote: | 
   
  
	still not success.
 
 | 
   
 
 
 
What happens? You get 0 messages? 1 message? deploy error?
 
 
I've no idea what your problem is at the moment! | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | nathanw | 
		  
		    
			  
				 Posted: Fri Feb 05, 2010 3:16 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Knight
 
 Joined: 14 Jul 2004 Posts: 550
  
  | 
		  
		    
			  
				I am assuming you added the compute node and the Propogate portion because you are looking at learning more about it.
 
 
If the purpose of the flow was just to move the message from 1 queue to another then just connect the MQInput direct to the MQouput _________________ Who is General Failure and why is he reading my hard drive?
 
 
Artificial Intelligence stands no chance against Natural Stupidity.
 
 
Only the User Trace Speaks The Truth   | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | smdavies99 | 
		  
		    
			  
				 Posted: Fri Feb 05, 2010 3:23 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Council
 
 Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land. 
  | 
		  
		    
			  
				You take the easy way out...
 
 
Just wire the out terminal of your MQInput node to the 'in' terminal of the two MQOutput Nodes.
 
That's the way it was done before the ESQL Propagate verb was introduced. _________________ WMQ User since 1999
 
MQSI/WBI/WMB/'Thingy' User since 2002
 
Linux user since 1995
 
 
 
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | mlafleur | 
		  
		    
			  
				 Posted: Fri Feb 05, 2010 6:06 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Acolyte
 
 Joined: 19 Feb 2004 Posts: 73
  
  | 
		  
		    
			  
				Here's a hint for you.
 
 
PROPAGATE DELETE NONE; | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | humanRebody | 
		  
		    
			  
				 Posted: Fri Feb 05, 2010 8:55 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 05 Feb 2010 Posts: 15
  
  | 
		  
		    
			  
				I am glad that there were so many replies/help here.   
 
 
Ok, Firstly I have a reference with the below IBM tutorial.
 
http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.mft.doc/ac12370_.htm
 
 
My whole code is as following:
 
   
	| Code: | 
   
  
	
 
 
 
CREATE COMPUTE MODULE Marshalling_Compute
 
   CREATE FUNCTION Main() RETURNS BOOLEAN
 
   BEGIN
 
      CALL CopyEntireMessage();
 
      RETURN FALSE;
 
   END;
 
 
   CREATE PROCEDURE CopyEntireMessage() 
 
   BEGIN
 
 
      SET OutputRoot = InputRoot;
 
      PROPAGATE DELETE NONE;
 
      SET OutputRoot = InputRoot;
 
      PROPAGATE TO TERMINAL 'out1';
 
 
   END;
 
   
 
   CREATE PROCEDURE CopyMessageHeaders() 
 
   BEGIN
 
      DECLARE I INTEGER 1;
 
      DECLARE J INTEGER;
 
      SET J = CARDINALITY(InputRoot.*[]);
 
      WHILE I < J DO
 
         SET OutputRoot.*[I] = InputRoot.*[I];
 
         SET I = I + 1;
 
      END WHILE;
 
   END;
 
END MODULE;
 
 | 
   
 
 
 
Actually I read some documents which indicates calling method CopyMessageHeaders() is necessary. However, it cannot solve the problem.
 
 
Also please find the ExceptionList below:
 
 
ExceptionList
 
	RecoverableException
 
		File = /build/S600_P/src/DataFlowEngine/ImbDataFlowNode.cpp
 
		Line = 616
 
		Function = ImbDataFlowNode::createExceptionList
 
		Type = ComIbmMQInputNode
 
		Name = Marshalling#FCMComposite_1_1
 
		Label = Marshalling.MQInput
 
		Catalog = BIPv600
 
		Severity = 3
 
		Number = 2230
 
		Text = Node throwing exception
 
		RecoverableException
 
			File = /build/S600_P/src/DataFlowEngine/ImbComputeNode.cpp
 
			Line = 464
 
			Function = ImbComputeNode::evaluate
 
			Type = ComIbmComputeNode
 
			Name = Marshalling#FCMComposite_1_2
 
			Label = Marshalling.Compute
 
			Catalog = BIPv600
 
			Severity = 3
 
			Number = 2230
 
			Text = Caught exception and rethrowing
 
			RecoverableException
 
				File = /build/S600_P/src/DataFlowEngine/ImbRdl/ImbRdlStatementGroup.cpp
 
				Line = 589
 
				Function = SqlStatementGroup::execute
 
				Type = ComIbmComputeNode
 
				Name = Marshalling#FCMComposite_1_2
 
				Label = Marshalling.Compute
 
				Catalog = BIPv600
 
				Severity = 3
 
				Number = 2488
 
				Text = Error detected, rethrowing
 
				Insert
 
				Insert
 
				Insert
 
				RecoverableException
 
					File = /build/S600_P/src/DataFlowEngine/ImbRdl/ImbRdlRoutine.cpp
 
					Line = 548
 
					Function = SqlRoutine::invoke
 
					Type = ComIbmComputeNode
 
					Name = Marshalling#FCMComposite_1_2
 
					Label = Marshalling.Compute
 
					Catalog = BIPv600
 
					Severity = 3
 
					Number = 2934
 
					Text = Error occured in procedure
 
					Insert
 
					RecoverableException
 
 
 
 
Beside, I have captured the flow and please comment:
 
[img]http://picasaweb.google.com.tw/thomaslmw/ForWork?feat=directlink#5434802241078685746[/img]
 
 
Thanks for your great help!
 
 
Regards,
 
Thomas | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Vitor | 
		  
		    
			  
				 Posted: Fri Feb 05, 2010 9:14 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Grand High Poobah
 
 Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA 
  | 
		  
		    
			  
				Two points. 
 
 
First - don't put your code in the supplied copy procedures. Put in in the Main where's it's supposed to be. Unlikely to be directly your problem but...
 
 
Second:
 
   
	| humanRebody wrote: | 
   
  
	| Actually I read some documents which indicates calling method CopyMessageHeaders() is necessary. However, it cannot solve the problem. | 
   
 
 
 
Why not? Why wouldn't the 2nd message need headers as well? Not putting user code in the copy procedures allows you to call them multiple times, as they were intended to be. From the link you posted:
 
 
   
	| Quote: | 
   
  
	| ensure that you copy all required message headers to the output message buffer for each output message that you propagate | 
   
 
 
 
You might also find a clue in the line immediately above that one.    _________________ Honesty is the best policy.
 
Insanity is the best defence. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | mgk | 
		  
		    
			  
				 Posted: Fri Feb 05, 2010 9:38 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Padawan
 
 Joined: 31 Jul 2003 Posts: 1647
  
  | 
		  
		    
			  
				For some reason the inserts seem to be missing in the ExceptionList you posted and they should tell you what the flow thinks the problem is so try looking in the EventLog to see if the message is shows correctly there. Also, just so you know, if you want the SAME message sent to two (or more) destinations you can simple wire the Out terminal on the Compute node multiple times to your target (different) output nodes and the flow will send the SAME message to each of the wired target nodes one after the other.
 
 
Kind regards, _________________ MGK
 
The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | smdavies99 | 
		  
		    
			  
				 Posted: Fri Feb 05, 2010 10:48 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Council
 
 Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land. 
  | 
		  
		    
			  
				
   
	| mgk wrote: | 
   
  
	For some reason the inserts seem to be missing in the ExceptionList you posted and they should tell you what the flow thinks the problem is so try looking in the EventLog to see if the message is shows correctly there. Also, just so you know, if you want the SAME message sent to two (or more) destinations you can simple wire the Out terminal on the Compute node multiple times to your target (different) output nodes and the flow will send the SAME message to each of the wired target nodes one after the other.
 
 
Kind regards, | 
   
 
 
 
Exactly what I said above but it seems to have been ignored by the poster.
 
Sigh. _________________ WMQ User since 1999
 
MQSI/WBI/WMB/'Thingy' User since 2002
 
Linux user since 1995
 
 
 
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | mgk | 
		  
		    
			  
				 Posted: Fri Feb 05, 2010 11:16 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Padawan
 
 Joined: 31 Jul 2003 Posts: 1647
  
  | 
		  
		    
			  
				
   
	| Quote: | 
   
  
	| Exactly what I said above but it seems to have been ignored by the poster. | 
   
 
   
 
 
And I missed it too    
 
 
Kind Regards, _________________ MGK
 
The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | humanRebody | 
		  
		    
			  
				 Posted: Fri Feb 05, 2010 9:56 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 05 Feb 2010 Posts: 15
  
  | 
		  
		    
			  
				Oooo....Thx so much...why all you guys said it is not IMPOSSIBLE to archieve it. Really very simple.     | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |