Author |
Message
|
Fresher_Newbie |
Posted: Thu Oct 15, 2015 5:22 am Post subject: Timeout Control Node - Navigation failed |
|
|
Novice
Joined: 24 Jun 2015 Posts: 13
|
Hey guys,
I'm getting the following error from the TimeOut Control node.
Code: |
Exception Is:
( ['MQROOT' : 0x119004130]
(0x01000000:Name):RecoverableException = (
(0x03000000:NameValue):File = '/build/slot1/S900_P/src/DataFlowEngine/TimeoutControl/ImbTimeoutControlNode.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 1113 (INTEGER)
(0x03000000:NameValue):Function = 'ImbTimeoutControlNode::evaluate' (CHARACTER)
(0x03000000:NameValue):Type = 'ComIbmTimeoutControlNode' (CHARACTER)
(0x03000000:NameValue):Name = 'MessageVolStatsCollector#FCMComposite_1_7' (CHARACTER)
(0x03000000:NameValue):Label = 'MessageVolStatsCollector.Timeout Control' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPmsgs' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 2230 (INTEGER)
(0x03000000:NameValue):Text = 'rethrowing' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 14 (INTEGER)
(0x03000000:NameValue):Text = 'MessageVolStatsCollector.Timeout Control' (CHARACTER)
)
(0x01000000:Name ):RecoverableException = (
(0x03000000:NameValue):File = '/build/slot1/S900_P/src/DataFlowEngine/TimeoutControl/ImbTimeoutControlNode.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 483 (INTEGER)
(0x03000000:NameValue):Function = 'ImbTimeoutControlNode::evaluate' (CHARACTER)
(0x03000000:NameValue):Type = 'ComIbmTimeoutControlNode' (CHARACTER)
(0x03000000:NameValue):Name = 'MessageVolStatsCollector#FCMComposite_1_7' (CHARACTER)
(0x03000000:NameValue):Label = 'MessageVolStatsCollector.Timeout Control' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPmsgs' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 4601 (INTEGER)
(0x03000000:NameValue):Text = 'Navigation to chosen message location failed' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'InputRoot.XMLNSC.TimeoutRequest' (CHARACTER)
)
)
)
) |
What does this error mean?
Can this error be ignored? Why I'm asking this is because the flow seems to be performing what it should be just fine (Database record insertion in a timely manner), but I just discovered in the trace node - the following error being thrown. How can this be resolved? I do not have any stored message location specified. Is it mandatory? If yes, can anybody suggest what should be filled in there?
Let me know ig you guys need any more details. Thanks! |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Oct 15, 2015 5:27 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
It looks like it can't find InputRoot.XMLNSC.TimeoutRequest.
What are you sending to TimeoutControl ? _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
Fresher_Newbie |
Posted: Thu Oct 15, 2015 5:42 am Post subject: |
|
|
Novice
Joined: 24 Jun 2015 Posts: 13
|
I'm sending a Timeout request message.
InputRoot.XMLNSC.TimeoutRequest - This is the request location - from where it gets to access the Timeout Request tree.
I don't think it has a problem finding InputRoot.XMLNSC.TimeoutRequest, since the flow seems to be running fine.
Anyway for more clarity, this is the high level flow scenario:
I initially kickoff the flow with the help of a timeout request.
I insert some data using a compute node. Once it is inserted, I re-generating the Timeout Request at the end of the flow - and send it to the same Input queue - from which the paired Timeout Control/Timeout notification node picks it up again. (It works more like a loop)
This way I'm inserting certain set of records in a timely manner. The records are getting inserted just fine, but I see this error being thrown.
Strange? |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Oct 15, 2015 5:48 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
It says
Quote: |
(0x03000000:NameValue):Text = 'Navigation to chosen message location failed' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'InputRoot.XMLNSC.TimeoutRequest' (CHARACTER) |
And BIP4601 is
Quote: |
BIP4601
The Timeout Control Node <insert_2> failed to navigate to the message location specified. The location specified was: <insert_1>.
Severity
20 : Error
Explanation
Ensure that the Location <insert_1> is valid for the message tree where it is used. |
So it really is saying that it's getting a message that doesn't have InputRoot.XMLNSC.TimeoutRequest. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
Fresher_Newbie |
Posted: Thu Oct 15, 2015 10:58 pm Post subject: |
|
|
Novice
Joined: 24 Jun 2015 Posts: 13
|
You are partially right. The InputRoot.XMLNSC.TimeoutRequest is there, but it seems like it can't find it.
The reason is probably this:
I generate a Timeout Request message using a compute node and put it on an MQOutput Queue. The Trace node before the MQOutput captures the root as seen below:
Code: |
Root Is:
( ['GENERICROOT' : 0x119d826d0]
(0x01000000:Name ):Properties = ( ['GENERICPROPERTYPARSER' : 0x11d61a790]
(0x03000000:NameValue):MessageSet = '' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 273 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 0 (INTEGER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Persistence = FALSE (BOOLEAN)
(0x03000000:NameValue):CreationTime = NULL
(0x03000000:NameValue):ExpirationTime = -1 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):ReplyIdentifier = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):ReplyProtocol = 'UNKNOWN' (CHARACTER)
(0x03000000:NameValue):Topic = NULL
(0x03000000:NameValue):ContentType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceToken = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourcePassword = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceIssuedBy = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedType = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedToken = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedPassword = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedIssuedBy = '' (CHARACTER)
)
(0x01000000:Folder):XMLNSC = ( ['xmlnsc' : 0x11d2cd210]
(0x01000000:Folder):TimeoutRequest = (
(0x03000000:PCDataField):Action = 'SET' (CHARACTER)
(0x03000000:PCDataField):Identifier = 'MVStart' (CHARACTER)
(0x03000000:PCDataField):StartDate = 'TODAY' (CHARACTER)
(0x03000000:PCDataField):StartTime = 'NOW' (CHARACTER)
(0x03000000:PCDataField):Count = 1 (INTEGER)
(0x03000000:PCDataField):Interval = 0 (INTEGER)
(0x03000000:PCDataField):IgnoreMissed = TRUE (BOOLEAN)
(0x03000000:PCDataField):AllowOverwrite = TRUE (BOOLEAN)
)
)
) |
From there, an MQ Input nodes picks this message - and passes it on the the TimeOut Control Node. A trace node added in between these two nodes is capturing the root as seen below. There are 2 "Roots' :
Code: |
Root Is:
( ['MQROOT' : 0x11bf01af0]
(0x01000000:Name ):Properties = ( ['MQPROPERTYPARSER' : 0x11e393a10]
(0x03000000:NameValue):MessageSet = '' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 273 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 819 (INTEGER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Persistence = FALSE (BOOLEAN)
(0x03000000:NameValue):CreationTime = GMTTIMESTAMP '2015-10-16 06:50:18.940' (GMTTIMESTAMP)
(0x03000000:NameValue):ExpirationTime = -1 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):ReplyIdentifier = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):ReplyProtocol = 'MQ' (CHARACTER)
(0x03000000:NameValue):Topic = NULL
(0x03000000:NameValue):ContentType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceToken = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourcePassword = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceIssuedBy = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedType = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedToken = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedPassword = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedIssuedBy = '' (CHARACTER)
)
(0x01000000:Name ):MQMD = ( ['MQHMD' : 0x11e26ad10]
(0x03000000:NameValue):SourceQueue = 'TEST.SA.OUT' (CHARACTER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Encoding = 273 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 819 (INTEGER)
(0x03000000:NameValue):Format = 'MQSTR ' (CHARACTER)
(0x03000000:NameValue):Version = 2 (INTEGER)
(0x03000000:NameValue):Report = 0 (INTEGER)
(0x03000000:NameValue):MsgType = 8 (INTEGER)
(0x03000000:NameValue):Expiry = -1 (INTEGER)
(0x03000000:NameValue):Feedback = 0 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):Persistence = 0 (INTEGER)
(0x03000000:NameValue):MsgId = X'414d5120545553453144303120202020561bbc9820578029' (BLOB)
(0x03000000:NameValue):CorrelId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):BackoutCount = 0 (INTEGER)
(0x03000000:NameValue):ReplyToQ = ' ' (CHARACTER)
(0x03000000:NameValue):ReplyToQMgr = 'TUSE1D01 ' (CHARACTER)
(0x03000000:NameValue):UserIdentifier = 'mqbrkrs ' (CHARACTER)
(0x03000000:NameValue):AccountingToken = X'0631363838353200000000000000000000000000000000000000000000000006' (BLOB)
(0x03000000:NameValue):ApplIdentityData = ' ' (CHARACTER)
(0x03000000:NameValue):PutApplType = 6 (INTEGER)
(0x03000000:NameValue):PutApplName = 'DataFlowEngine ' (CHARACTER)
(0x03000000:NameValue):PutDate = DATE '2015-10-16' (DATE)
(0x03000000:NameValue):PutTime = GMTTIME '06:50:18.940' (GMTTIME)
(0x03000000:NameValue):ApplOriginData = ' ' (CHARACTER)
(0x03000000:NameValue):GroupId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):MsgSeqNumber = 1 (INTEGER)
(0x03000000:NameValue):Offset = 0 (INTEGER)
(0x03000000:NameValue):MsgFlags = 0 (INTEGER)
(0x03000000:NameValue):OriginalLength = -1 (INTEGER)
)
(0x01000000:Folder):XMLNSC = ( ['xmlnsc' : 0x11e3943f0]
(0x01000000:Folder):TimeoutRequest = (
(0x03000000:PCDataField):Action = 'SET' (CHARACTER)
(0x03000000:PCDataField):Identifier = 'MVStart' (CHARACTER)
(0x03000000:PCDataField):StartDate = 'TODAY' (CHARACTER)
(0x03000000:PCDataField):StartTime = 'NOW' (CHARACTER)
(0x03000000:PCDataField):Count = '1' (CHARACTER)
(0x03000000:PCDataField):Interval = '0' (CHARACTER)
(0x03000000:PCDataField):IgnoreMissed = 'true' (CHARACTER)
(0x03000000:PCDataField):AllowOverwrite = 'true' (CHARACTER)
)
)
Root Is:
( ['MQROOT' : 0x11bf01af0]
(0x01000000:Name):Properties = ( ['MQPROPERTYPARSER' : 0x11e393a10]
(0x03000000:NameValue):MessageSet = '' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 273 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 819 (INTEGER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Persistence = FALSE (BOOLEAN)
(0x03000000:NameValue):CreationTime = GMTTIMESTAMP '2015-10-16 06:50:20.940' (GMTTIMESTAMP)
(0x03000000:NameValue):ExpirationTime = -1 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):ReplyIdentifier = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):ReplyProtocol = 'MQ' (CHARACTER)
(0x03000000:NameValue):Topic = NULL
(0x03000000:NameValue):ContentType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceToken = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourcePassword = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceIssuedBy = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedType = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedToken = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedPassword = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedIssuedBy = '' (CHARACTER)
)
(0x01000000:Name):MQMD = ( ['MQHMD' : 0x11e26ad10]
(0x03000000:NameValue):SourceQueue = 'TEST.SA.OUT' (CHARACTER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Encoding = 273 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 819 (INTEGER)
(0x03000000:NameValue):Format = ' ' (CHARACTER)
(0x03000000:NameValue):Version = 2 (INTEGER)
(0x03000000:NameValue):Report = 0 (INTEGER)
(0x03000000:NameValue):MsgType = 8 (INTEGER)
(0x03000000:NameValue):Expiry = -1 (INTEGER)
(0x03000000:NameValue):Feedback = 0 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):Persistence = 0 (INTEGER)
(0x03000000:NameValue):MsgId = X'414d5120545553453144303120202020561bbc9820577fb0' (BLOB)
(0x03000000:NameValue):CorrelId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):BackoutCount = 0 (INTEGER)
(0x03000000:NameValue):ReplyToQ = ' ' (CHARACTER)
(0x03000000:NameValue):ReplyToQMgr = 'TUSE1D01 ' (CHARACTER)
(0x03000000:NameValue):UserIdentifier = 'mqbrkrs ' (CHARACTER)
(0x03000000:NameValue):AccountingToken = X'0631363838353200000000000000000000000000000000000000000000000006' (BLOB)
(0x03000000:NameValue):ApplIdentityData = ' ' (CHARACTER)
(0x03000000:NameValue):PutApplType = 6 (INTEGER)
(0x03000000:NameValue):PutApplName = 'DataFlowEngine ' (CHARACTER)
(0x03000000:NameValue):PutDate = DATE '2015-10-16' (DATE)
(0x03000000:NameValue):PutTime = GMTTIME '06:50:20.940' (GMTTIME)
(0x03000000:NameValue):ApplOriginData = ' ' (CHARACTER)
(0x03000000:NameValue):GroupId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):MsgSeqNumber = 1 (INTEGER)
(0x03000000:NameValue):Offset = 0 (INTEGER)
(0x03000000:NameValue):MsgFlags = 0 (INTEGER)
(0x03000000:NameValue):OriginalLength = -1 (INTEGER)
)
)
) |
What am I doing wrong? Anything to do with the MQinput Properties? Message Domain is set to XMLNSC and Parse timing is set to On Demand. |
|
Back to top |
|
 |
smdavies99 |
Posted: Fri Oct 16, 2015 12:32 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
As far as I can see you are doing it correctly.
Here's how I create a timer in one flow.
Code: |
CREATE LASTCHILD of OutputRoot DOMAIN 'XMLNSC' NAME 'XMLNSC';
CREATE FIELD OutputRoot.XMLNSC.TimeoutRequest;
DECLARE outRef REFERENCE to OutputRoot.XMLNSC.TimeoutRequest;
CREATE LASTCHILD OF outRef NAME 'Action' VALUE 'SET';
CREATE LASTCHILD OF outRef NAME 'Identifier' VALUE 'MSKeepAlive';
--
-- Schedule a timer to fire every 60 seconds as close as possible to the Zero seconds mark of the minute
--
-- Get the current time
--
DECLARE tNow TIME CURRENT_TIMESTAMP;
--
-- Get the seconds past the minute
--
SET iSecs = CAST(CAST(tNow as CHAR format 'ss') as INTEGER);
--
-- if iSecs = say 34 then we schedule a time to start at
-- the next minute less 26 seconds.
--
set iSecs = 60 - iSecs; -- calc the seconds remaining in the minute
DECLARE tStartTime TIME;
set tStartTime = tNow + cast (iSecs as INTERVAL SECOND);
set cTimerTime = SUBSTRING(CAST( tStartTime as CHAR) from 7 for 8);
--
-- now format the rest of the timer control message
--
CREATE LASTCHILD OF outRef NAME 'StartDate' VALUE 'TODAY';
CREATE LASTCHILD OF outRef NAME 'StartTime' VALUE cTimerTime;
CREATE LASTCHILD OF outRef NAME 'Interval' VALUE '60'; -- Repeat after 60 seconds.
CREATE LASTCHILD OF outRef NAME 'Count' VALUE '-1'; -- repeat forever
CREATE LASTCHILD OF outRef NAME 'IgnoreMissed' VALUE 'TRUE';
CREATE LASTCHILD OF outRef NAME 'AllowOverwrite' VALUE 'TRUE';
|
I have used UPPERCASE for the last two params. I have found these node to be somewhat pernickerty in the past so I have a bit of ESQL in my toolbox that gets pulled out whenever I need to set one up.
What happens if you don't output the structure to a queue but send it directly to a TimerControl Node? (for testing only) _________________ 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 |
|
 |
fjb_saper |
Posted: Fri Oct 16, 2015 4:14 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Once you figure out why you have 2 roots and 2 MQMD's, you'll be much closer to success. Hint: it's either in your code, or you've uncovered a bug.  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|