code: protected void push_structured_event_heartbeat(String channelName) {
          //  ToDo
          try {
              //  If full name try to get structure from channel_map with different tango hosts
              if (channelName.startsWith("tango://")) {
                  EventChannelStruct  eventChannelStruct = getEventChannelStruct(channelName);
                  if (eventChannelStruct!=null) {
                      eventChannelStruct.last_heartbeat = System.currentTimeMillis();
                      return;
                  }
              }
  
              //  Not Found !
              //	In case of (use_db==false)
              //	domain name is only device name
              //	but key is full name (//host:port/a/b/c....)
              Enumeration keys = channel_map.keys();
              boolean found = false;
              while (keys.hasMoreElements() && !found) {
                  String name = (String) keys.nextElement();
                  EventChannelStruct eventChannelStruct = channel_map.get(name);
                  //  Check with device name for adm device
                  String  admDeviceName = eventChannelStruct.adm_device_proxy.name();
                  if (admDeviceName.equalsIgnoreCase(channelName)) {
                      eventChannelStruct.last_heartbeat = System.currentTimeMillis();
                      found = true;
                  }
              }
              if (!found)
                  System.err.println(channelName + " Not found");
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
docs: ===============================================================