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 » MQInput delays next message in case of error

Post new topic  Reply to topic
 MQInput delays next message in case of error « View previous topic :: View next topic » 
Author Message
Skjal
PostPosted: Thu May 24, 2018 3:21 am    Post subject: MQInput delays next message in case of error Reply with quote

Newbie

Joined: 24 May 2018
Posts: 2

Hi forum,
I'm struggling with strange system behavior.
What I'm trying to achieve is an error handling scenario when a message is backed out to a queue manager's DLQ and some log functionality is triggered in case of fault condition in a message flow.
The runtime is IIBv9+MQv8. I have two simple message flows: first one, when triggered, putts a list of messages in a loop into an MQ queue.
Second one reads messages from that queue, logs some text with a timestamp to a file with Trace node and immideatly after that throwing an exception with Throw node.
A Catch terminal of MQInput node is connected to Trace node and Throw node (for transaction to be rolled back). The MQInput "Transaction mode" property is set to "Yes". A backout count of the queue is set to 0.

Code:

           out
MQInput +-----> Trace +--> Throw
       +
       +------> Trace +--> Throw
           catch


So what I'm having in the log file is a strange ~1s gap between new messages being received from the queue.
Switching "Transaction mode" to "No" leads to messages not being put into DLQ, which is expected, but the gap remains.




Code:

message put          2018-05-24 00:35:19.783517(1)
message put          2018-05-24 00:35:19.784071(2)
message put          2018-05-24 00:35:19.784441(3)
message get          2018-05-24 00:35:19.783643(1)
message put          2018-05-24 00:35:19.784788(4)
in error terminal    2018-05-24 00:35:19.784934(1)
message put          2018-05-24 00:35:19.785142(5)
message put          2018-05-24 00:35:19.785481(6)
message put          2018-05-24 00:35:19.785816(7)
message put          2018-05-24 00:35:19.786148(8)
message put          2018-05-24 00:35:19.786493(9)
message get          2018-05-24 00:35:20.788856(2)
in error terminal    2018-05-24 00:35:20.789279(2)
message get          2018-05-24 00:35:21.792717(3)
in error terminal    2018-05-24 00:35:21.793106(3)
message get          2018-05-24 00:35:22.796655(4)
in error terminal    2018-05-24 00:35:22.797048(4)
message get          2018-05-24 00:35:23.800724(5)
in error terminal    2018-05-24 00:35:23.801120(5)
message get          2018-05-24 00:35:24.804583(6)
in error terminal    2018-05-24 00:35:24.804961(6)
message get          2018-05-24 00:35:25.808533(7)
in error terminal    2018-05-24 00:35:25.808911(7)
message get          2018-05-24 00:35:26.812469(8)
in error terminal    2018-05-24 00:35:26.812847(8)
message get          2018-05-24 00:35:27.816388(9)
in error terminal    2018-05-24 00:35:27.816766(9)


Can anyone explain what is going on during this gap and how to reduce it?

Thanks in advance!
Back to top
View user's profile Send private message
abhi_thri
PostPosted: Thu May 24, 2018 4:31 am    Post subject: Re: MQInput delays next message in case of error Reply with quote

Knight

Joined: 17 Jul 2017
Posts: 516
Location: UK

Skjal wrote:

Second one reads messages from that queue, logs some text with a timestamp to a file with Trace node and immideatly after that throwing an exception with Throw node.


Just wondering why you are throwing the error in the happy path for every messages as you already know that all the messages are failed ones (from previous flows). Can't you simply do whatever logging/tracing/ticketing and finish that transaction instead?

Anyway, regarding the 1sec delay b/w failures that might be to do with failedMessageWaitTime interval (default 1 sec) which might be enabled by default in v9 even though I couldn't find that documented explicitly,

https://www.ibm.com/support/knowledgecenter/SSMKHH_9.0.0/com.ibm.etools.mft.doc/an09140_.htm

It seems to be turned off by default in v10 though,
https://www.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/an09140_.htm

'failedMessageWaitTime applies only to errors that occur downstream of an input node and only if it is set to a non-default value. The default value is 1000 milliseconds.'

To confirm that it is failedMessageWaitTime that is coming into play here you could try changing it's value (500 millisecs or so) and see that changes the delay
Back to top
View user's profile Send private message
Skjal
PostPosted: Thu May 24, 2018 6:39 am    Post subject: MQInput delays next message in case of error Reply with quote

Newbie

Joined: 24 May 2018
Posts: 2

Thanks for your reply, that was the reason!

Quote:
Just wondering why you are throwing the error in the happy path for every messages as you already know that all the messages are failed ones (from previous flows). Can't you simply do whatever logging/tracing/ticketing and finish that transaction instead?


Well, it is just a simplification of an actual production issue - throughput of the flow is pretty high and even 10% of failing messages with this 1s wait time leading to quickly increasing queue length, increasing total response time etc.
In my catch branch I generally want the global transaction to be rolled back and the message to appear in a backout queue.

It seems this property has been added only in 9006
http://www-01.ibm.com/support/docview.wss?uid=swg1IT12662

So we'll need to update remaining 9001 production servers to overcome this.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » MQInput delays next message in case of error
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.