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 IndexGeneral IBM MQ SupportWait time question and delay in getting messages

Post new topicReply to topic Goto page Previous  1, 2, 3, 4, 5  Next
Wait time question and delay in getting messages View previous topic :: View next topic
Author Message
ucbus1
PostPosted: Wed Aug 08, 2018 9:10 pm Post subject: Reply with quote

Knight

Joined: 30 Jan 2002
Posts: 559

PeterPotkay wrote:

Are you 1000% sure DataPower is setting the Correlation ID to the value the mainframe app expects for the reply message?
How do you know?

Yes. Because 90% of the messages get processed and picked up. We are finding the messages to appear late and but the mainframe is able to find the messages after the timeout on its second execution. So the app logic works, its the delay that is causing the issue.
Back to top
View user's profile Send private message Send e-mail
bruce2359
PostPosted: Thu Aug 09, 2018 5:11 am Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 8157
Location: US: west coast, almost. Otherwise, enroute.

ucbus1 wrote:

So BATCHINT=0 dictates the COMMITs to happen instantaneously ...(


No. It is up to the application to MQCMIT the messages MQPUT to a queue - this includes a transmission queue.

ucbus1 wrote:
and BATCHSZ parameter only helps in reducing how frequently the COMMITS are happening.
It appears like I am back to square one.


The values of batch size and batchinterval only affect messages sent down an mq channel. They may/will affect throughput of messages, but do not "tell" the upstream message producing app to "hurry up and commit."
_________________
I would tell you a UDP joke, but you might not get it.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Thu Aug 09, 2018 7:56 am Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 8157
Location: US: west coast, almost. Otherwise, enroute.

MQ implements store and forward. A message must be successfully stored (committed) before it can be forwarded. Once committed, your app can no longer affect the message or its delivery.
_________________
I would tell you a UDP joke, but you might not get it.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Thu Aug 09, 2018 9:34 am Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 8157
Location: US: west coast, almost. Otherwise, enroute.

ucbus1 wrote:
...but the mainframe is able to find the messages after the timeout on its second execution. So the app logic works, its the delay that is causing the issue.

What timeout? Where do you see evidence of a timeout?

If it's a TCP timeout, this event will have been written to the errors file on the midrange platform, and/or on the CHIN address space syslog on the z/OS mainframe.

2033 ReasonCode is not a timeout. Rather, it means that no message was available to satisfy the MQGET request.

About the mainframe consuming application:

Does the app do only one MQGET with WAITINTERVAL? If, at the end of the waitinterval, does the app try again to MQGET a message? Or, if no message is available, does the app give up trying and end itself?
_________________
I would tell you a UDP joke, but you might not get it.
Back to top
View user's profile Send private message
ucbus1
PostPosted: Thu Aug 09, 2018 11:06 am Post subject: Reply with quote

Knight

Joined: 30 Jan 2002
Posts: 559

bruce2359 wrote:

What timeout? Where do you see evidence of a timeout?

If it's a TCP timeout, this event will have been written to the errors file on the midrange platform, and/or on the CHIN address space syslog on the z/OS mainframe.

2033 ReasonCode is not a timeout. Rather, it means that no message was available to satisfy the MQGET request.

About the mainframe consuming application:

Does the app do only one MQGET with WAITINTERVAL? If, at the end of the waitinterval, does the app try again to MQGET a message? Or, if no message is available, does the app give up trying and end itself?

The timeout is from the app perspective. When the app receives 2033 error code it is what the app says as timeout. The app does a GET with wait interval which we increased it to 4 sec. When it times out it does not try for the message. However there is a secondary clean up process which runs at regular intervals which GETs these response messages. Ideally we want all responses to be processed on the first pass and the clean up process not to find any response messages for processing.
Back to top
View user's profile Send private message Send e-mail
bruce2359
PostPosted: Thu Aug 09, 2018 11:38 am Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 8157
Location: US: west coast, almost. Otherwise, enroute.

ucbus1 wrote:

The timeout is from the app perspective. When the app receives 2033 error code it is what the app says as timeout.

2033 is a ReasonCode indicating no message available. It could be queue is empty OR there was no message that matched the msgid, correlid, groupid specified in the MQMD. 2033 is not an error.
ucbus1 wrote:
The app does a GET with wait interval which we increased it to 4 sec. When it times out it does not try for the message.

So, the app gives up AND ends itself? Does an MQCLOSE and MQDISC?

Waitinterval tells MQ to end the MQGET with Waitinterval after, in your case, 4 seconds. What if the message arrives a millisecond later?

Have you tried to send a message with IBM's supplied utility amqsput from the client platform? Does the message traverse the channel sub-second? If so, it's likely not an MQ imposed delay, is it?
_________________
I would tell you a UDP joke, but you might not get it.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Thu Aug 09, 2018 3:58 pm Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 8157
Location: US: west coast, almost. Otherwise, enroute.

For clarity: MQGET with WAITINTERVAL does not delay the consuming app in MQGETting the message.

If a message already exists in the queue, the MQGET will not wait, and MQ will deliver the message immediately to the app with no wait at all. If a message arrives in one second, the MQGET will end immediately, and MQ will deliver the message to the app immediately.
_________________
I would tell you a UDP joke, but you might not get it.
Back to top
View user's profile Send private message
ucbus1
PostPosted: Thu Aug 09, 2018 6:13 pm Post subject: Reply with quote

Knight

Joined: 30 Jan 2002
Posts: 559

Will test and post my findingings
Back to top
View user's profile Send private message Send e-mail
ucbus1
PostPosted: Fri Sep 28, 2018 12:53 pm Post subject: Reply with quote

Knight

Joined: 30 Jan 2002
Posts: 559

While we are still waiting on approval to set up a prod like test environment, I would like to add some additional information.
1. The issue is happening more in the afternoon when the transaction load is high.
2. Four different datapower flows are putting the messages- using the same cluster, cluster queue manager and different cluster queues.
3. And the cluster is defined to include queue managers on Mainframe and MQ appliance. I mention this because MQ appliance is a blackbox for me if there are any known issues with it.

So I am thinking if this could be related to network latency because of high load on MQ. If so, is there way to actually see if it is related to network performance.


Last edited by ucbus1 on Fri Sep 28, 2018 1:06 pm; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
bruce2359
PostPosted: Fri Sep 28, 2018 1:04 pm Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 8157
Location: US: west coast, almost. Otherwise, enroute.

Your network support team will have hardware/software network monitors to measure network utilization.
_________________
I would tell you a UDP joke, but you might not get it.
Back to top
View user's profile Send private message
ucbus1
PostPosted: Fri Sep 28, 2018 1:07 pm Post subject: Reply with quote

Knight

Joined: 30 Jan 2002
Posts: 559

bruce2359 wrote:
Your network support team will have hardware/software network monitors to measure network utilization.

Thanks. I am checking with them, but wanted to understand if this could be one of the reasons of slow down we are finding
Back to top
View user's profile Send private message Send e-mail
bruce2359
PostPosted: Fri Sep 28, 2018 7:56 pm Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 8157
Location: US: west coast, almost. Otherwise, enroute.

Insufficient provisioning of disk, RAM, processors, network will adversely affect performance.

Missing SLAs for new or peak workload are indicators that performance tuning is in order.
_________________
I would tell you a UDP joke, but you might not get it.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Sat Sep 29, 2018 2:44 pm Post subject: Reply with quote

Grand Poobah

Joined: 18 Nov 2003
Posts: 19758
Location: LI,NY

Sounds awfully like the request is forgetting to commit or to post the request message outside of the current transaction.
The wait time expires and the transaction (default or global) finishes and posts the request message. The request message is now being processed and the reply message is ready to be read. Second attempt to read the reply message is successful...

This would be a flaw in the requester app that is not committing properly its request messages or not putting them outside of syncpoint...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
ucbus1
PostPosted: Tue Oct 09, 2018 10:19 am Post subject: Reply with quote

Knight

Joined: 30 Jan 2002
Posts: 559

One quick question on Message persistence.
I find the messages are put with persistence on. If I understand correctly persistence increases the processing time. Now can this be possible? The PUT application is putting the message correctly. But MQ is taking more time to write the message to logs due to persistence ( which could be killing us due to high I/O, hence the delay) and is not available for GET application till MQ is done writing the logs.
Back to top
View user's profile Send private message Send e-mail
Vitor
PostPosted: Tue Oct 09, 2018 10:48 am Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 25244
Location: Ohio, USA

ucbus1 wrote:

I find the messages are put with persistence on.
...
The PUT application is putting the message correctly


If you're implying by "the application put the message correctly", it put the message as not persistent and it's ending up on the queue as persistent then this is false. Persistence is totally under the control of the application (unless you have an exit installed someplace which is highly unlikely) and the application has 3 options:

- persistent
- not persistent
- whatever, I don't care that much one way or the other

There will now follow a flame war where the 2 sides of the debate (application sets persistence v application takes default) fight it out but if the message is ending up on the queue as persistent then the application either specified it needed to be persistent or the application allowed the persistence to be whatever the default setting is on the queue and that default is persistent.


ucbus1 wrote:
If I understand correctly persistence increases the processing time.


Yes. Much more I/O activity. Don't forget persistent messages are always written to the queue file as well as the log file; non-persistent messages are only written to the queue file if the available buffer space fills.

ucbus1 wrote:
But MQ is taking more time to write the message to logs due to persistence ( which could be killing us due to high I/O, hence the delay) and is not available for GET application till MQ is done writing the logs.


The message won't be available to be read off until it's successfully arrived. Until it's been written safely to both locations.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
Display posts from previous:
Post new topicReply to topic Goto page Previous  1, 2, 3, 4, 5  Next Page 4 of 5

MQSeries.net Forum IndexGeneral IBM MQ SupportWait time question and delay in getting messages
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.