Author |
Message
|
rhine |
Posted: Fri Dec 04, 2015 1:35 am Post subject: I can't make my flow stop |
|
|
Novice
Joined: 17 Nov 2015 Posts: 16
|
Hi everyone.
I have got an initiator flow that receives an XML and then call a flow or another with this code:
Code: |
SET OutputLocalEnvironment = InputLocalEnvironment;
SET OutputLocalEnvironment.TimeoutRequest.Action = 'SET';
SET OutputLocalEnvironment.TimeoutRequest.StartDate = 'TODAY';
SET OutputLocalEnvironment.TimeoutRequest.Interval = 30;
SET OutputLocalEnvironment.TimeoutRequest.Count = -1;
SET OutputLocalEnvironment.TimeoutRequest.AllowOverwrite = 'TRUE';
SET OutputLocalEnvironment.TimeoutRequest.Identifier = 'TimeOutNotificationNodeName';
|
I also set some global cache variables here.
When the flow ive called ends, it reaches a Timeout Control Node that receives this code:
Code: |
SET OutputLocalEnvironment = InputLocalEnvironment;
SET OutputLocalEnvironment.TimeoutRequest.Action = 'CANCEL';
SET OutputLocalEnvironment.TimeoutRequest.Identifier = 'TimeOutNotificationNodeName';
SET OutputLocalEnvironment.TimeoutRequest.AllowOverwrite = 'TRUE';
SET OutputLocalEnvironment.TimeoutRequest.StartDate = 'TODAY';
SET OutputLocalEnvironment.TimeoutRequest.Interval = 3600;
|
But the flow never ends. Actually, the iniciator doesnt even need to be deployed to have my flow running.
I always see this status in traces.
Code: |
( ['MQROOT' : 0x8714aa70]
(0x01000000:Name):TimeoutRequest = (
(0x03000000:NameValue):Action = 'SET' (CHARACTER)
(0x03000000:NameValue):Identifier = 'TimeOutNotificationNodeName' (CHARACTER)
(0x03000000:NameValue):StartDate = '2015-12-04' (CHARACTER)
(0x03000000:NameValue):StartTime = '10:10:28.496' (CHARACTER)
(0x03000000:NameValue):Count = 5 (INTEGER)
(0x03000000:NameValue):Interval = 30 (INTEGER)
(0x03000000:NameValue):IgnoreMissed = TRUE (BOOLEAN)
(0x03000000:NameValue):AllowOverwrite = TRUE (BOOLEAN)
)
) |
Does anyone know why this could happen? I have even tried to attach a Timeout Control Node with the code you can see in the second block, directly to the first node of my flow and then attach it's output to the rest of the flow; and it still going on.
Thanks in advance, |
|
Back to top |
|
 |
rhine |
Posted: Fri Dec 04, 2015 4:17 am Post subject: |
|
|
Novice
Joined: 17 Nov 2015 Posts: 16
|
Ok, my Timeout notification node was set to "Automatic"...
As simple as that.
I''m having now a equally frustrating problem.
I can see in traces that my iniciator has the correct properties:
Code: |
( ['MQROOT' : 0xbdc4da10]
(0x01000000:Name):TimeoutRequest = (
(0x03000000:NameValue):Action = 'SET' (CHARACTER)
(0x03000000:NameValue):StartDate = 'TODAY' (CHARACTER)
(0x03000000:NameValue):StartTime = 'NOW' (CHARACTER)
(0x03000000:NameValue):Interval = 30 (INTEGER)
(0x03000000:NameValue):Count = -1 (INTEGER)
(0x03000000:NameValue):AllowOverwrite = 'TRUE' (CHARACTER)
(0x03000000:NameValue):Identifier = 'ExpectedIdName' (CHARACTER)
)
)
|
One of my other flows starts with a Timeout notification callled exactly as I can see in NameValue):Identifier = 'ExpectedIdName'.
But nothing starts. I see no traces from no other flows except of the iniciator flow. |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Dec 04, 2015 6:15 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
|
Back to top |
|
 |
rhine |
Posted: Fri Dec 04, 2015 7:45 am Post subject: |
|
|
Novice
Joined: 17 Nov 2015 Posts: 16
|
Ye, i googled before post it here. That site is already checked.
The thing is I think I have all well set.
This is my compute node code:
Code: |
CREATE COMPUTE MODULE Flow_Init_Exec_Tfr_Crt_Msg_tmp
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
-- CALL CopyMessageHeaders();
CALL CopyEntireMessage();
SET OutputLocalEnvironment = InputLocalEnvironment;
IF InputRoot.XMLNSC.MsgFileProc.IdComp = 'XX10' THEN
SET OutputLocalEnvironment.TimeoutRequest.Identifier = 'EvtSc';
CALL GCInitTfr();
ELSE
SET OutputLocalEnvironment.TimeoutRequest.Identifier = 'EvtWs';
CALL GCInitTfrWS();
END IF;
SET OutputLocalEnvironment.TimeoutRequest.Action = 'SET';
SET OutputLocalEnvironment.TimeoutRequest.StartDate = 'TODAY';
SET OutputLocalEnvironment.TimeoutRequest.StartTime = 'NOW';
SET OutputLocalEnvironment.TimeoutRequest.Interval = 30;
SET OutputLocalEnvironment.TimeoutRequest.Count = -1;
SET OutputLocalEnvironment.TimeoutRequest.AllowOverwrite = 'TRUE';
SET OutputLocalEnvironment.TimeoutRequest.IgnoreMissed = 'TRUE';
RETURN TRUE;
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;
CREATE PROCEDURE CopyEntireMessage() BEGIN
SET OutputRoot = InputRoot;
END;
END MODULE;
CREATE PROCEDURE GetDataKey(IN refMap CHARACTER, IN refKey CHARACTER)
RETURNS CHARACTER
LANGUAGE JAVA
EXTERNAL NAME "es.idj.util.DataMap.GetDataKey";
CREATE PROCEDURE addUpdateKey(IN refMap CHARACTER, IN refKey CHARACTER, IN refValue CHARACTER)
RETURNS BOOLEAN
LANGUAGE JAVA
EXTERNAL NAME "es.idj.util.CacheUtil.addUpdateKey";
|
These are the traces:
Code: |
( ['MQROOT' : 0xbd9c3510]
(0x01000000:Name ):Properties = ( ['MQPROPERTYPARSER' : 0xbc4c8060]
(0x03000000:NameValue):MessageSet = '' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 1208 (INTEGER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Persistence = FALSE (BOOLEAN)
(0x03000000:NameValue):CreationTime = GMTTIMESTAMP '2015-12-04 15:36:43.800' (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' : 0xbde14f70]
(0x03000000:NameValue):SourceQueue = 'TESTA' (CHARACTER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 1208 (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'414d5120444950444556514d373520203112465622897202' (BLOB)
(0x03000000:NameValue):CorrelId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):BackoutCount = 0 (INTEGER)
(0x03000000:NameValue):ReplyToQ = ' ' (CHARACTER)
(0x03000000:NameValue):ReplyToQMgr = 'DEVQM75 ' (CHARACTER)
(0x03000000:NameValue):UserIdentifier = 'ADMIN' (CHARACTER)
(0x03000000:NameValue):AccountingToken = X'16010515000000b0525a913d693d10f76bfc88ed03000000000000000000000b' (BLOB)
(0x03000000:NameValue):ApplIdentityData = ' ' (CHARACTER)
(0x03000000:NameValue):PutApplType = 28 (INTEGER)
(0x03000000:NameValue):PutApplName = 'WebSphere MQ Client for Java' (CHARACTER)
(0x03000000:NameValue):PutDate = DATE '2015-12-04' (DATE)
(0x03000000:NameValue):PutTime = GMTTIME '15:36:43.800' (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' : 0xbdeb8f50]
(0x01000000:Folder):MsgFileProc = (
(0x03000000:PCDataField):IdComp = 'XX10' (CHARACTER)
(0x03000000:PCDataField):FileName = 'CT' (CHARACTER)
(0x03000000:PCDataField):InitDate = '20151111' (CHARACTER)
(0x01000000:Folder ):EndDate =
)
)
)
( ['MQPROPERTYPARSER' : 0xbc4c8060]
(0x03000000:NameValue):MessageSet = '' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 1208 (INTEGER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Persistence = FALSE (BOOLEAN)
(0x03000000:NameValue):CreationTime = GMTTIMESTAMP '2015-12-04 15:36:43.800' (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)
)
( ['MQROOT' : 0xb596ee00]
(0x01000000:Name):TimeoutRequest = (
(0x03000000:NameValue):Identifier = 'EvtSc' (CHARACTER)
(0x03000000:NameValue):Action = 'SET' (CHARACTER)
(0x03000000:NameValue):StartDate = 'TODAY' (CHARACTER)
(0x03000000:NameValue):StartTime = 'NOW' (CHARACTER)
(0x03000000:NameValue):Interval = 30 (INTEGER)
(0x03000000:NameValue):Count = -1 (INTEGER)
(0x03000000:NameValue):AllowOverwrite = 'TRUE' (CHARACTER)
(0x03000000:NameValue):IgnoreMissed = 'TRUE' (CHARACTER)
)
) |
I have a timeout Notification node in other flow with exactly this identifier: "EvtSc", and it is not being called.
The Timeout Control has another name by default and it should get EvtSc or EvtWs dynamically from the compute node.
If I set the unique identifier of the timeout Control to EvtSc or EvtWs directly in the properties of the node, the respective flows are called correctly. |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Dec 04, 2015 8:06 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
It might help to look at a user trace...
What you've shown should work at least as far as I can tell. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
rhine |
Posted: Wed Dec 09, 2015 12:40 am Post subject: |
|
|
Novice
Joined: 17 Nov 2015 Posts: 16
|
I did not find the issue...
I just have now two TimeoutControl nodes and use the compute node to redirect to one or another with PROPAGATE TO TERMINAL 'out1' or 'out2'.
Thanks |
|
Back to top |
|
 |
|