Author |
Message
|
ranjith |
Posted: Thu Jul 24, 2008 4:06 am Post subject: Issue with Timer nodes in Message broker v6.1 |
|
|
Apprentice
Joined: 04 May 2004 Posts: 25
|
Timeout Control and Timeout Notification nodes are used in a flow where the input comes from a File Input node and the Timeout notification node works under 'Controlled' mode, the SET operation fails in the Timeout control node and giving the following exception in syslog
( mybrk.default ) The Timeout Notification Node 'timeout.TimeoutNotification' received a bad timeout request.
The node received a corrupt timeout request message.
This error can occur if the message stored by the corresponding Timeout Control node cannot be un-serialised. It can also occur if non-timeout control node messages have been put on the message store. Correct the incoming data.
Note:- The same scenario works fine when the input comes from a MQ input node |
|
Back to top |
|
 |
AkankshA |
Posted: Thu Jul 24, 2008 7:49 pm Post subject: |
|
|
 Grand Master
Joined: 12 Jan 2006 Posts: 1494 Location: Singapore
|
Just check if the header sequence is fine...
please paste your time out request code generation here...
can you verify that the message is present in S.B.T.Q when you u send the msg to Time Out control node and the delivery time has not yet arrived ?? _________________ Cheers |
|
Back to top |
|
 |
Qadeer_824 |
Posted: Wed Sep 17, 2008 1:02 am Post subject: |
|
|
 Acolyte
Joined: 04 Oct 2007 Posts: 59
|
Hi,
I am facing a similar problem here. It works perfectly fine in a flow where input comes from MQInput node. I have another flow where input again comes from MQInput node, but i get a bad timeout request error.
Here's how it happens:
1. Place a persistent message into the input queue (MQInput Node)
2. There is a compute node where based on some conditions i copy the full InputRoot Structure to OutputRoot.
3. A SOAPRequest node which tries to call a service but fails with a exception (note that its not a fault).
4. On the failure terminal, it goes to another compute node where i set the timeout request properties as below
Code: |
DECLARE JUMP INTERVAL;
DECLARE START TIME;
DECLARE now CHARACTER;
SET JUMP = INTERVAL '30' SECOND;
SET START = CURRENT_TIME + JUMP;
SET Environment.Variables.TimeoutRequest.RM004FTP.Action='SET';
SET Environment.Variables.TimeoutRequest.RM004FTP.Identifier='RM004FTP';
SET Environment.Variables.TimeoutRequest.RM004FTP.StartTime=START;
SET Environment.Variables.TimeoutRequest.RM004FTP.IgnoreMissed = FALSE;
SET OutputRoot = InputRoot;
SET OutputExceptionList = NULL;
SET OutputRoot.MQRFH2.usr.InvokeWSFailureFlag = 'Y';
|
5. This is connected to the Timeout control node which happily passes the message to TimeoutNotification node after 30secs.
6. TimeoutNotification node then receives the message perfectly and passes it to the SOAP Request node again.
7. Again step 1 to 5 are repeated as the webservice is still down.
8. On step 6 this time, i get an error saying that the notification node has received a bad timeout notification.
I checked the SYSTEM.BROKER.TIMEOUT.QUEUE for message content during the wait time and got this:
when it sent timeout notification for first time, it had the follwing header:
Code: |
^"RM004FTPWSGENERICROOT.MQHMD`000000000000000000000000000000000000000000000000XMLNSCA2JTTE4002001"CreateFTPResponseXML12008-09-1706:57:57.663789MD ÿÿÿÿ"¸MQHRF2 AMQ MQBRK61D q@ÍH ? MQBRK61D mqbrk61d yãüSúO/å;+ I\6.1\bin\DataFlowEngine.exe2008091510502566 ÿÿÿÿRFH "¸MQSTR ¸d
|
When it sent timeout notification for second time, it had the following header (Note that MQHMD is now missing):
Code: |
T"RM004FTPWSGENERICROOT`000000000000000000000000000000000000000000000000XMLNSCA2JTTE4002001"CreateFTPResponseXML12008-09-1706:59:04.650399MD ÿÿÿÿ"¸MQHRF2 AMQ MQBRK61D q@ÍH ? MQBRK61D mqbrk61d yãüSúO/å;+ I\6.1\bin\DataFlowEngine.exe2008091510502566 ÿÿÿÿRFH "¸MQSTR ¸d
|
I have captured header for other flows where this works perfectly fine. The header content is always (except for the change in time etc):
Code: |
T"RM001FTPGENERICROOT.MQHMD`000000000000000000000000000000000000000000000000MRMMIOHFSC002001 Line_Description.Text12008-09-1708:07:45.934506MD ÿÿÿÿ"¸MQHRF2 ÿÿÿÿÿÿÿÿRFH ”"¸MQSTR ¸`
|
I am not sure what is hapenning. Only thing i could observe is that MQHMD in the header is lost when it sends notification for second time, which corrupts the message!
Can someone please advice what can be done? |
|
Back to top |
|
 |
broker_new |
Posted: Tue Nov 18, 2008 5:50 pm Post subject: |
|
|
 Yatiri
Joined: 30 Nov 2006 Posts: 614 Location: Washington DC
|
Has anyone implemented triggering the message flow at particular time (not timeintervals).
My requirement is like i have to trigger the message flow at 10:00PM daily.
I searched in the forum and infocenter everywhere it tells about the time intervals,put a message to timeoutnotification node.
http://www-128.ibm.com/developerworks/websphere/library/techarticles/0603_schutz/0603_schutz.html
Without putting the message can broker by itself trigger the message flow at particular times(10:00 PM) and even if the broker is bounced it should start the flow without any manual intervention. _________________ IBM ->Let's build a smarter planet |
|
Back to top |
|
 |
sridhsri |
Posted: Wed Nov 19, 2008 8:04 am Post subject: |
|
|
Master
Joined: 19 Jun 2008 Posts: 297
|
Well, you could try using a start time (10:00 PM) and an interval of 86400 seconds (= 24 hrs). This will ensure that the flow works only once every 24 hours at 10:00 PM.
Now for the second part, have another TNN->Compute->TCN. This TNN should be set to automatic with an interval of 1 short of 1 million (which is a pretty long interval). But as soon as the flow is deploy, this TNN will start. In the compute you could create a Timeout Request as mentioned before. The TCN wired to the compute will control a second TNN. |
|
Back to top |
|
 |
broker_new |
Posted: Wed Nov 19, 2008 8:15 am Post subject: |
|
|
 Yatiri
Joined: 30 Nov 2006 Posts: 614 Location: Washington DC
|
Excellent !!.
For the first time we can start the flow at specified time but what happens if broker is bounced do we need to start the flow at 10:00 PM again.
My mind always thinks in wrong direction.
Iam thinking of a cronjob execute some script put a trigger message on input queue and kickoff the flow.
Which would be better do you think _________________ IBM ->Let's build a smarter planet |
|
Back to top |
|
 |
TonyD |
Posted: Wed Nov 19, 2008 1:17 pm Post subject: |
|
|
Knight
Joined: 15 May 2001 Posts: 540 Location: New Zealand
|
|
Back to top |
|
 |
|