Posted: Wed Aug 22, 2012 7:35 am Post subject: TimeoutControl Properties
Master
Joined: 20 Mar 2008 Posts: 215
There is a property on the TimeoutControl Node which has little literature about and is confusing me a little
its;
Quote:
Count - Default 1 - Set this element to an integer value that is either greater than 0 or is -1 (which specifies a timeout request that never expires). The default value is 1.
No my understanding is i send a contrl message to the timeoutControl via an input queue that sets my unique identifier etc and a timeout period
Code:
DECLARE expiryTime TIME;
SET expiryTime = CURRENT_TIME + CAST(timeoutSeconds AS INTERVAL SECOND);
-- Set the clock ticking...
SET OutputRoot.XMLNSC.TimeoutRequest.Action = 'SET';
SET OutputRoot.XMLNSC.TimeoutRequest.Identifier = 'EXCD_INVNTRY';
SET OutputRoot.XMLNSC.TimeoutRequest.StartTime = expiryTime;
SET OutputRoot.XMLNSC.TimeoutRequest.Count = 1;
SET OutputRoot.XMLNSC.TimeoutRequest.IgnoreMissed = TRUE;
SET OutputRoot.XMLNSC.TimeoutRequest.AllowOverwrite = TRUE;
PROPAGATE TO TERMINAL 'out1';
and that all works fine and places a message on the SYSTEM.BROKER.TIMEOUT.QUEUE
The expiryTime is set to some 7200 seconds = 2 hours so it will set a message to a TimoutNotification Node in the same flow in 2 hours - all this is fine BUT I also set the AllowOverwrite to TRUE which means I should be able to change that "whole" SET setting for that UID right?
So I do I change the expiry time to now be 90 seconds based on some event but get an exception saying the UID is already covered (thought that was the idea of the overwrite) but when I send a cnacel later it removes all as expected - BUG? or Misunderstanding??
Also what is the count option for? - there is limited literature - i understand the -1 is unlimited but is this the expiry time on the SYSTEM.BROKER.TIMEOUT.QUEUE
before the message expires then and is it in what minutes seconds millenia??
Thx _________________ -------- *
“Outside of a dog, a book is man's best friend. Inside of a dog it's too dark to read.”
Joined: 29 Nov 2011 Posts: 490 Location: UK...somewhere
Quote:
So I do I change the expiry time to now be 90 seconds based on some event but get an exception saying the UID is already covered
What is the exact exception you are seeing? I would have expected for AllowOverwite to behave like you are expecting it to.
Regarding 'Count' and 'Interval' - When your TimeoutNotification event starts, it will propagate {Count} messages every {Interval} seconds. So as as example, if I want my flow to be invoked 20 times, as 13:00:00 with a delay of 5 seconds between the invocations I would have:
StartTime = 13:00:00
Count = 20
Interval = 5
Thanks for the reply and was my understanding also on the count front si I have it set to count 1 (i.e do once) and no interval as its not repetitive but the exception I get for the overwrite is
Recoverable Exception
Code:
RecoverableException
File:CHARACTER:F:\build\S610_P\src\DataFlowEngine\TimeoutControl\ImbTimeoutControlNode.cpp
Line:INTEGER:965
Function:CHARACTER:ImbTimeoutControlNode::evaluate
Type:CHARACTER:ComIbmTimeoutControlNode
Name:CHARACTER:IF205_TimeoutHandler#FCMComposite_1_5
Label:CHARACTER:IF205_TimeoutHandler.TimeoutControl_EXCD_INVNTRY
Catalog:CHARACTER:BIPv610
Severity:INTEGER:3
Number:INTEGER:4610
Text:CHARACTER:Timeout Set Identifier already used
Insert
Type:INTEGER:5
Text:CHARACTER:EXCD_INVNTRY
_________________ -------- *
“Outside of a dog, a book is man's best friend. Inside of a dog it's too dark to read.”
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