Esempio n. 1
0
  public String proc(HBResult result, boolean putOpinion)
      throws NodeExistsException, MgmtZooKeeperException {
    HeartbeatTarget target = result.getTarget();
    HBRefData data = target.getRefData();

    if (target.getHB().equals(Constant.HB_MONITOR_NO)) {
      Logger.debug(
          "{} is not a target of heartbeat. {}",
          target.getNodeType().toString() + target.getName(),
          result);
      return null;
    }

    switch (target.getNodeType()) {
      case PGS:
        pgs(data, result, putOpinion);
        break;

      case RS:
      case GW:
        common(data, result, putOpinion);
        break;

      default:
        Logger.warn("An unkown type of a heartbeat target. type: {}", target.getNodeType());
        break;
    }

    return null;
  }
Esempio n. 2
0
  private void putMyOpinion(
      long stateTimestamp, HBRefData refData, HBResult result, String newState)
      throws MgmtZooKeeperException, NodeExistsException {
    String path = makePathOfMyOpinion(result.getTarget().getTargetOfHeartbeatPath());
    byte[] data;

    data = makeDataOfMyOpinion(refData, stateTimestamp, result, newState);

    try {
      zookeeper.createEphemeralZNode(path, data);
    } catch (NodeExistsException e) {
      Logger.error(
          "Put my opinion fail. path: {}, opinion: {}",
          path,
          makeStringOfMyOpinion(refData, stateTimestamp, newState),
          e);
      throw e;
    } catch (MgmtZooKeeperException e) {
      Logger.error(
          "Put my opinion fail. path: {}, opinion: {}",
          path,
          makeStringOfMyOpinion(refData, stateTimestamp, newState),
          e);
      throw e;
    }

    Logger.info(result.toString());

    refData.setLastState(newState);
    refData.setLastStateTimestamp(stateTimestamp);
    refData.setSubmitMyOpinion(true);
  }
Esempio n. 3
0
  private void removeMyOpinion(HBRefData refData, HBResult result, String newState)
      throws MgmtZooKeeperException {
    String path = makePathOfMyOpinion(result.getTarget().getTargetOfHeartbeatPath());

    zookeeper.deleteZNode(path, -1);

    Logger.info(result.toString());

    refData.setLastState(Constant.SERVER_STATE_UNKNOWN);
    refData.setLastStateTimestamp(0L);
    refData.setSubmitMyOpinion(false);
  }