Author |
Message
|
bigdavem |
Posted: Sun Aug 31, 2003 10:55 pm Post subject: HBINT on SVRCONN |
|
|
 Acolyte
Joined: 16 Sep 2001 Posts: 69 Location: Sydney, Australia
|
Can anyone explain to me how the HBINT parameter works on a SVRCONN channel? According to the manual:
For a channel type of SVRCONN or CLNTCONN, this is the time, in seconds, between heartbeat flows passed from the server MCA when that MCA has issued an MQGET with WAIT on behalf of a client application. This allows the server to handle situations where the client connection fails during an MQGET with WAIT. This type of heartbeat is valid only for AIX, HP-UX, OS/2 Warp, OS/400, Sun Solaris, and Windows NT.
We're finding when we are in an MQGET with WAIT and pull the plug on the network connection, the MQGET doesn't return a 2009 as we want, but instead does nothing for as long as we care to wait. Our HBINT is 300 - would reducing this make a difference? |
|
Back to top |
|
 |
mrlinux |
Posted: Tue Sep 02, 2003 7:58 am Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
What is the value of your mqget with wait ???? _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
bigdavem |
Posted: Tue Sep 02, 2003 2:43 pm Post subject: |
|
|
 Acolyte
Joined: 16 Sep 2001 Posts: 69 Location: Sydney, Australia
|
|
Back to top |
|
 |
mrlinux |
Posted: Wed Sep 03, 2003 5:07 am Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
Well I think you need to set the hbint shorter than your mqget interval,
and I would try 15 seconds. _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
PeterPotkay |
Posted: Wed Sep 03, 2003 5:13 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
If HeartBeat is less than 60 seconds, be aware that the check will be made at your HeartbeatInterval x 2, so 15 seconds will give you a check at 30 seconds.
Having said that, I am still puzzled as to why your Get with wait would not have ended after at the very worst 360 seconds after you issued it. A HBINT of 300 translates to 300 + 60 seconds when the check is made. If you waited for 6 minutes after a dropped network connection, I would have bet that the call would have finally returned with a broken connection.  _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
mrlinux |
Posted: Wed Sep 03, 2003 5:27 am Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
I beleieve the mqget wait interval is used on the queue manager and not on the client end. _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
PeterPotkay |
Posted: Wed Sep 03, 2003 5:31 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Right, so the get with wait would have ended on the QM side after 30 seconds, but there would be no way for the QM to communicate that to the client side (the network is down).
Meanwhile, I would have expected that a Heartbeat would have been sent out at 360 seconds, and the client side, not getting a reply heartbeat back, would then realize the connection is gone.
I wouldn't think the client would hang indefinitly. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
mrlinux |
Posted: Wed Sep 03, 2003 8:07 am Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
I agree with that, but there is no indication how long they waited, I suspect they only waited the 30 seconds or little more _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
bigdavem |
Posted: Wed Sep 03, 2003 3:13 pm Post subject: |
|
|
 Acolyte
Joined: 16 Sep 2001 Posts: 69 Location: Sydney, Australia
|
According to the developer, they waited "5 minutes or so", so it's entirely possible they didn't wait long enough. I'm going to get them to try leaving it indefinitely and see if it comes back. I'll let you know what happens.
Thanks! |
|
Back to top |
|
 |
bigdavem |
Posted: Sun Sep 07, 2003 10:59 pm Post subject: |
|
|
 Acolyte
Joined: 16 Sep 2001 Posts: 69 Location: Sydney, Australia
|
OK, we've run a couple of tests. In both tests, we began an MQGET with 10 sec wait and then pulled the network cable out of the server.
Using a VB app and 5.3 client, we got:
HBINT 300 -> RC2009 returned after 6:07
HBINT 10 -> RC2009 returned after 0:20
HBINT 5 -> RC2009 returned after 0:11
Using the offending java app which uses the old MQClient for Java 3.0 library from the support pack, we got:
HBINT 300 -> RC2009 returned after 7:00
HBINT 10 -> RC2009 returned after 2:00
So with VB and a current version of MQ we got the expected behaviour. But with java and an old version of MQ, we saw an improvement, but not as much as we expected.
I guess the next step is to try the java code with the current libraries and see if that makes any difference. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Mon Sep 08, 2003 4:21 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Thanks for posting the results.
What version is the Queue Manager in these tests? Not that it should make a differance, cuz once HeartBeats were introduced, they really haven't changed the way they work as far as I know. I would have thought your Java app would have worked the same way as the VB one. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
bigdavem |
Posted: Mon Sep 08, 2003 2:44 pm Post subject: |
|
|
 Acolyte
Joined: 16 Sep 2001 Posts: 69 Location: Sydney, Australia
|
I used v5.2 server for the VB tests and v5.2 and v5.3 for the java tests. |
|
Back to top |
|
 |
|