code: private boolean reconnectToChannel(String name) {
          boolean reConnected = false;
          Enumeration callbackStructs = event_callback_map.elements();
          while (callbackStructs.hasMoreElements()) {
              EventCallBackStruct eventCallBackStruct = (EventCallBackStruct) callbackStructs.nextElement();
              if (eventCallBackStruct.channel_name.equals(name) && (eventCallBackStruct.callback != null)) {
                  try {
                      EventChannelStruct channelStruct = channel_map.get(name);
                      DevVarLongStringArray   lsa =
                              ZMQutils.getEventSubscriptionInfoFromAdmDevice(
                                      channelStruct.adm_device_proxy,
                                      eventCallBackStruct.device.name(), eventCallBackStruct.attr_name, eventCallBackStruct.event_name);
  
                      //  Re Connect heartbeat
                      ZMQutils.connectHeartbeat(channelStruct.adm_device_proxy.get_tango_host(),
                                  channelStruct.adm_device_proxy.name(), lsa, true);
                      reConnected = true;
                  } catch (DevFailed e1) {
                      //Except.print_exception(e1);
                      reConnected = false;
                  }
                  break;
              }
          }
          return reConnected;
      }
docs: ===============================================================