>What is the difference between these two, if any? Seems to me they both
>accomplish the same thing (allowing one side of a channel to see that the
>network is down and thus being able to go Inactive). The only thing I can
>guess is that Keep Alive applies only to TCP while Heartbeat will work for
>other transmission protocols as well as TCP.

>Was Keep Alive the only thing available at one time, and now is kind of
>useless if you have HeartBeat available to you?

Peter,


There is certainly considerable overlap between the benefits of using
Heartbeat and KeepAlive but they are not mutually exclusive. I would always
recommend that a customer uses both unless he/she has a good reason not to.
A good reason might be that you pay for network packets and you don't want
keepalive flows. Having said that both keepalive packets and heartbeat
packets will only flow when the channels not doing anything so there is no
cost of either if the channel remains active.

Heartbeats are useful for all channel types except SVRCONN channels. A
SVRCONN channel can not 'heartbeat' to the client between MQI calls because
there will be no code at the client ready to respond to the 'heartbeat'. To
detect client applications ending without MQDISC it is therefore imperative
to use KEEPALIVE on your server machine.

Generally speaking Heartbeats are more reliable than KEEPALIVE since they
are proactive. In other words they require that a process on the other end
of the socket actually responds to the request. KEEPALIVE can give false
positives because the sockets may be still alive but the process itself is
hung (say in a channel exit). Heartbeat is also more configurable (ie.
settable on a channel basis), only zOS allows the KEEPALIVE interval to be
set per channel.

Heartbeating is negotiable between the two ends of the channel. So if the
administrator on the other end has configured no heartbeating the value in
your channel definition will be ignored. For this reason I would always use
KEEPALIVE as well as a 'last resort' type thing. Generally speaking
Heartbeats will detect failures because they are more reliable and more
configurable but in some instances we have to fall back and use good old
KEEPALIVE.

Hope this helps,
P.

Paul G Clarke
WebSphere MQ Development
IBM Rochester,MN

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive

Reply via email to