ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » If Input and Output Node Name are same in MessageFlow

Post new topic  Reply to topic Goto page 1, 2  Next
 If Input and Output Node Name are same in MessageFlow « View previous topic :: View next topic » 
Author Message
muthu_tek
PostPosted: Tue Apr 27, 2010 1:35 am    Post subject: If Input and Output Node Name are same in MessageFlow Reply with quote

Apprentice

Joined: 21 Jan 2010
Posts: 36
Location: Coimbatore,India

Dear All,
I have used same name for MQInput and MQOutput Node in Message Flow. I have created one message flow which contain only input and output nodes.Here both queue name are different but node name are same.

When I put message in Input Queue , Message are sending recursively.Its not reach the Output Queue.

What is the reason ?..Thanks in advance.

Thanks,
Marimuthu Udayakumar
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
kimbert
PostPosted: Tue Apr 27, 2010 1:44 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Quote:
I have used same name for MQInput and MQOutput Node in Message Flow
That sounds like a very bad idea, unless you have a particular reason why the node names need to be the same.

Quote:
What is the reason ?
I don't know. The best way to find out is to take a user trace and look at what the flow is doing.
Back to top
View user's profile Send private message
muthu_tek
PostPosted: Tue Apr 27, 2010 2:29 am    Post subject: Reply with quote

Apprentice

Joined: 21 Jan 2010
Posts: 36
Location: Coimbatore,India

Thanks for your input kimbert.

kimbert wrote
Quote:
find out is to take a user trace and look at what the flow is doing.


I have used user trace and seen the message properties.All MQMD and MQROOT Properties are remain same always.

We know that if both queue name are same, message goes recursively.But I don't understand if node name are same then what internally happening.
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
kimbert
PostPosted: Tue Apr 27, 2010 2:42 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

To take a user trace, you use the command line tools mqsichangetrace, mqsireadlog and mqsiformatlog. Did you do that?
Back to top
View user's profile Send private message
muthu_tek
PostPosted: Tue Apr 27, 2010 4:12 am    Post subject: Reply with quote

Apprentice

Joined: 21 Jan 2010
Posts: 36
Location: Coimbatore,India

Thanks kimbert .

kimbert wrote
kimbert wrote:
To take a user trace, you use the command line tools mqsichangetrace, mqsireadlog and mqsiformatlog. Did you do that?


I have tried these commands ( mqsichangetrace, mqsireadlog ) and I think that broker maintaining label name for all the node in the form of "ProjectName.NodeName".So it may be a cause for recursive.

My UserTrace Log : Here My Project Name is 'Sim' and Input & Output Node name is 'MUTHU' and Input Queue name is 'IN' and Output Queue name is 'OUTPUT'. .

Quote:
UserTraceLog uuid="UserTraceLog" userTraceLevel="none" traceLevel="none" userTraceFilter="trace" traceFilter="none" fileSize="5120000" bufferSize="0" fileMode="safe">
- <UserTrace timestamp="2010-04-27 10:58:15.402643" thread="4980" function="ImbMqOutputNode::putMessage" type="ComIbmMQOutputNode" name="Sim#FCMComposite_1_2" label="Sim.MUTHU" text="'Message received and queued successfully'" catalog="BIPv610" number="2622" file="F:\build\S610_P\src\DataFlowEngine\ImbMqOutputNode.cpp" line="2323">
<Insert type="string">''</Insert>
<Insert type="string">'IN'</Insert>
<Insert type="string">Sim.MUTHU</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.405818" thread="4980" function="ImbCommonInputNode::run" type="ComIbmMQInputNode" name="Sim#FCMComposite_1_1" label="Sim.MUTHU" text="'Dequeued message and propagating to output terminal'" catalog="BIPv610" number="2632" file="F:\build\S610_P\src\DataFlowEngine\ImbCommonInputNode.cpp" line="1503">
<Insert type="string">Sim.MUTHU</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.405879" thread="4980" function="ImbRootParser::parseNextItem" type="ComIbmMQInputNode" name="Sim#FCMComposite_1_1" label="Sim.MUTHU" text="'Created parser'" catalog="BIPv610" number="6060" file="F:\build\S610_P\src\DataFlowEngine\ImbRootParser.cpp" line="425">
<Insert type="string">'Properties'</Insert>
<Insert type="integer">0</Insert>
<Insert type="integer">0</Insert>
<Insert type="string">Sim.MUTHU</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.405906" thread="4980" function="ImbRootParser::parseNextItem" type="ComIbmMQInputNode" name="Sim#FCMComposite_1_1" label="Sim.MUTHU" text="'Created parser'" catalog="BIPv610" number="6061" file="F:\build\S610_P\src\DataFlowEngine\ImbRootParser.cpp" line="565">
<Insert type="string">'MQMD'</Insert>
<Insert type="integer">0</Insert>
<Insert type="integer">364</Insert>
<Insert type="string">'MQHMD'</Insert>
<Insert type="string">Sim.MUTHU</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.405939" thread="4980" function="ImbRootParser::parseNextItem" type="ComIbmMQInputNode" name="Sim#FCMComposite_1_1" label="Sim.MUTHU" text="'Created parser'" catalog="BIPv610" number="6061" file="F:\build\S610_P\src\DataFlowEngine\ImbRootParser.cpp" line="565">
<Insert type="string">'BLOB'</Insert>
<Insert type="integer">364</Insert>
<Insert type="integer">5</Insert>
<Insert type="string">'NONE'</Insert>
<Insert type="string">Sim.MUTHU</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.406471" thread="4980" function="ImbTraceNode::evaluate" type="ComIbmTraceNode" name="Sim#FCMComposite_1_3" label="Sim.Trace" text="'Propagating to output terminal'" catalog="BIPv610" number="4067" file="F:\build\S610_P\src\DataFlowEngine\ImbTraceNode.cpp" line="352">
<Insert type="string">Sim.Trace</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.406870" thread="4980" function="ImbMqOutputNode::putMessage" type="ComIbmMQOutputNode" name="Sim#FCMComposite_1_2" label="Sim.MUTHU" text="'MQPUT issued to put message to the specified output queue'" catalog="BIPv610" number="2638" file="F:\build\S610_P\src\DataFlowEngine\ImbMqOutputNode.cpp" line="2210">
<Insert type="string">''</Insert>
<Insert type="string">'IN'</Insert>
<Insert type="integer">0</Insert>
<Insert type="integer">0</Insert>
<Insert type="string">Sim.MUTHU</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.406906" thread="4980" function="ImbMqOutputNode::putMessage" type="ComIbmMQOutputNode" name="Sim#FCMComposite_1_2" label="Sim.MUTHU" text="'Message received and queued successfully'" catalog="BIPv610" number="2622" file="F:\build\S610_P\src\DataFlowEngine\ImbMqOutputNode.cpp" line="2323">
<Insert type="string">''</Insert>
<Insert type="string">'IN'</Insert>
<Insert type="string">Sim.MUTHU</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.408379" thread="4980" function="ImbCommonInputNode::run" type="ComIbmMQInputNode" name="Sim#FCMComposite_1_1" label="Sim.MUTHU" text="'Dequeued message and propagating to output terminal'" catalog="BIPv610" number="2632" file="F:\build\S610_P\src\DataFlowEngine\ImbCommonInputNode.cpp" line="1503">
<Insert type="string">Sim.MUTHU</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.408452" thread="4980" function="ImbRootParser::parseNextItem" type="ComIbmMQInputNode" name="Sim#FCMComposite_1_1" label="Sim.MUTHU" text="'Created parser'" catalog="BIPv610" number="6060" file="F:\build\S610_P\src\DataFlowEngine\ImbRootParser.cpp" line="425">
<Insert type="string">'Properties'</Insert>
<Insert type="integer">0</Insert>
<Insert type="integer">0</Insert>
<Insert type="string">Sim.MUTHU</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.408482" thread="4980" function="ImbRootParser::parseNextItem" type="ComIbmMQInputNode" name="Sim#FCMComposite_1_1" label="Sim.MUTHU" text="'Created parser'" catalog="BIPv610" number="6061" file="F:\build\S610_P\src\DataFlowEngine\ImbRootParser.cpp" line="565">
<Insert type="string">'MQMD'</Insert>
<Insert type="integer">0</Insert>
<Insert type="integer">364</Insert>
<Insert type="string">'MQHMD'</Insert>
<Insert type="string">Sim.MUTHU</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.408517" thread="4980" function="ImbRootParser::parseNextItem" type="ComIbmMQInputNode" name="Sim#FCMComposite_1_1" label="Sim.MUTHU" text="'Created parser'" catalog="BIPv610" number="6061" file="F:\build\S610_P\src\DataFlowEngine\ImbRootParser.cpp" line="565">
<Insert type="string">'BLOB'</Insert>
<Insert type="integer">364</Insert>
<Insert type="integer">5</Insert>
<Insert type="string">'NONE'</Insert>
<Insert type="string">Sim.MUTHU</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.409158" thread="4980" function="ImbTraceNode::evaluate" type="ComIbmTraceNode" name="Sim#FCMComposite_1_3" label="Sim.Trace" text="'Propagating to output terminal'" catalog="BIPv610" number="4067" file="F:\build\S610_P\src\DataFlowEngine\ImbTraceNode.cpp" line="352">
<Insert type="string">Sim.Trace</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.409386" thread="4980" function="ImbMqOutputNode::putMessage" type="ComIbmMQOutputNode" name="Sim#FCMComposite_1_2" label="Sim.MUTHU" text="'MQPUT issued to put message to the specified output queue'" catalog="BIPv610" number="2638" file="F:\build\S610_P\src\DataFlowEngine\ImbMqOutputNode.cpp" line="2210">
<Insert type="string">''</Insert>
<Insert type="string">'IN'</Insert>
<Insert type="integer">0</Insert>
<Insert type="integer">0</Insert>
<Insert type="string">Sim.MUTHU</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.409420" thread="4980" function="ImbMqOutputNode::putMessage" type="ComIbmMQOutputNode" name="Sim#FCMComposite_1_2" label="Sim.MUTHU" text="'Message received and queued successfully'" catalog="BIPv610" number="2622" file="F:\build\S610_P\src\DataFlowEngine\ImbMqOutputNode.cpp" line="2323">
<Insert type="string">''</Insert>
<Insert type="string">'IN'</Insert>
<Insert type="string">Sim.MUTHU</Insert>
</UserTrace>
- <UserTrace timestamp="2010-04-27 10:58:15.409709" thread="4980" function="ImbCommonInputNode::run" type="ComIbmMQInputNode" name="Sim#FCMComposite_1_1" label="Sim.MUTHU" text="'Dequeued message and propagating to output terminal'" catalog="BIPv610" number="2632" file="F:\build\S610_P\src\DataFlowEngine\ImbCommonInputNode.cpp" line="1503">
<Insert type="string">Sim.MUTHU</Insert>
</UserTrace>






----------------------
Thanks,
Marimuthu Udayakumar
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
smdavies99
PostPosted: Tue Apr 27, 2010 5:15 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

you forgot to make the output (horrible XML) human readable using the mqsiformatlog as suggested by kimbert.

Please help us by doing that and then posting the relevant parts of the output.
_________________
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
View user's profile Send private message
muthu_tek
PostPosted: Tue Apr 27, 2010 5:45 am    Post subject: Reply with quote

Apprentice

Joined: 21 Jan 2010
Posts: 36
Location: Coimbatore,India

Thanks smdavies99. Sorry for my side.

smdavies99 wrote:
you forgot to make the output (horrible XML) human readable using the mqsiformatlog as suggested by kimbert.
.




formattrace.log file
Quote:

BIP2622I: Message successfully output by output node 'Sim.MUTHU' to queue ''IN'' on queue manager ''''.

BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'Sim.MUTHU'.

BIP6060I: Parser type ''Properties'' created on behalf of node 'Sim.MUTHU' to handle portion of incoming message of length 0 bytes beginning at offset '0'.

BIP6061I: Parser type ''MQMD'' created on behalf of node 'Sim.MUTHU' to handle portion of incoming message of length '364' bytes beginning at offset '0'. Parser type selected based on value ''MQHMD'' from previous parser.

BIP6061I: Parser type ''BLOB'' created on behalf of node 'Sim.MUTHU' to handle portion of incoming message of length '5' bytes beginning at offset '364'. Parser type selected based on value ''NONE'' from previous parser.
2010-04-27 16:28:15.406471 4980 UserTrace BIP4067I: Message propagated to output terminal for trace node 'Sim.Trace'.

BIP2638I: The MQ output node 'Sim.MUTHU' attempted to write a message to queue ''IN'' connected to queue manager ''''. The MQCC was '0' and the MQRC was '0'.

BIP2622I: Message successfully output by output node 'Sim.MUTHU' to queue ''IN'' on queue manager ''''.

BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'Sim.MUTHU'.

BIP6060I: Parser type ''Properties'' created on behalf of node 'Sim.MUTHU' to handle portion of incoming message of length 0 bytes beginning at offset '0'.

BIP6061I: Parser type ''MQMD'' created on behalf of node 'Sim.MUTHU' to handle portion of incoming message of length '364' bytes beginning at offset '0'. Parser type selected based on value ''MQHMD'' from previous parser.

BIP6061I: Parser type ''BLOB'' created on behalf of node 'Sim.MUTHU' to handle portion of incoming message of length '5' bytes beginning at offset '364'. Parser type selected based on value ''NONE'' from previous parser.
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
fatherjack
PostPosted: Tue Apr 27, 2010 6:23 am    Post subject: Reply with quote

Knight

Joined: 14 Apr 2010
Posts: 522
Location: Craggy Island

muthu_tek wrote:
But I don't understand if node name are same then what internally happening.


If you do a "dis q(<queue>) ipprocs opprocs" I think you might see the flow has either the input or output queue open for both input and output and the other queue not open at all. At least thats what I see. So something has gone a bit screwy.

Strictly speaking maybe a bug but .......
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Apr 27, 2010 6:26 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

Looking at the trace, the nodes not only have the same name, but reference the same queue "IN". Possibly the output node is supposed to be referencing a different queue manager?
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
fatherjack
PostPosted: Tue Apr 27, 2010 6:39 am    Post subject: Reply with quote

Knight

Joined: 14 Apr 2010
Posts: 522
Location: Craggy Island

Vitor wrote:
Looking at the trace, the nodes not only have the same name, but reference the same queue "IN".


Indeed they do in the trace, but not, I suspect, in the flow. Try it. Lo! and behold dis q(<queuename>) shows the flow getting from and putting to the same queue. Weird.
Back to top
View user's profile Send private message
kimbert
PostPosted: Tue Apr 27, 2010 7:23 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

I don't see any mention in the trace of the queue 'IN' being used by the input node. However, I'm prepared to believe that the flow is putting and getting to/from the same queue. So...

Change the name of one of the nodes. Does the looping still happen?
What does the .cmf file in the BAR file say?
Back to top
View user's profile Send private message
fatherjack
PostPosted: Tue Apr 27, 2010 8:00 am    Post subject: Reply with quote

Knight

Joined: 14 Apr 2010
Posts: 522
Location: Craggy Island

kimbert wrote:
What does the .cmf file in the BAR file say?


In my case the bar file doesn't know anything about my MQInput node. Just the MQOutput node. Which I guess kinda explains the behaviour of the flow. But not why the bar file is being built like this. I've seen other flows with duplicate node names and they work OK. Well I hope they do as they're in live. Maybe just MQ In and Out nodes cause this behaviour?
Back to top
View user's profile Send private message
mqjeff
PostPosted: Tue Apr 27, 2010 8:27 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

It's an absolutely horrible practice to name two nodes the same in the same msgflow file.

Besides being confusing in any attempt to do any troubleshooting, as you have demonstrated yourself it introduces a production risk of unreliable behavior.

Here's a trout: go show it to your developers and explain that they need to write and enforce a reasonable set of coding standards that prevents them from ever naming two nodes the same in the same msgflow file, and all of the other bad practices they are probably following (like using field[i] instead of reference variables).
Back to top
View user's profile Send private message
kimbert
PostPosted: Tue Apr 27, 2010 9:12 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Quote:
But not why the bar file is being built like this.
Possibly a defect in the BAR file generator.

Quote:
I've seen other flows with duplicate node names and they work OK.
It depends how you define 'work' and 'OK'. If you mean 'they process messages successfully today' then you are probably right. If you include the usual non-functional requirements like maintainability and extensibility then it changes things somewhat.
I agree 100% with mqjeff on this. And there is another reason not to have duplicate node names : you'll make it very difficult to add monitoring events to the flow ( and the same applies to duplicate terminal names on the same node ).
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Tue Apr 27, 2010 1:15 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Add to that scripting bar override commands and you can't know anymore if you're overriding the input queue or the output queue....
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » If Input and Output Node Name are same in MessageFlow
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.