>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