public String getTollRateUrl() throws EtccException {
    CacheAdmin admin = CacheAdmin.getInstance();
    String key = AppEnum.TOLLRATE_URL.getValue();

    try {
      String tollRateUrl = (String) admin.getFromCache(key);
      if (tollRateUrl == null) {
        tollRateUrl = app.getTollRateUrl();
        admin.putInCache(key, tollRateUrl);
      }
      return tollRateUrl;
    } catch (Throwable t) {
      admin.cancelUpdate(key);
      logger.error(t);
      throw new EtccException("Error running getTollRateUrl: " + t, t);
    }
  }