Esempio n. 1
0
  /**
   * 削除対象のDB名とセルIDを追加する.
   *
   * @param dbName DB名
   * @param cellId セルID
   */
  public void insertCellDeleteRecord(String dbName, String cellId) {
    if (!isValid()) {
      return;
    }
    try {
      ads.insertCellDeleteRecord(dbName, cellId);
      log.info("Ads Deletion Success.");
    } catch (AdsException e) {
      // 削除対象のDB名とセルIDの追加に失敗した場合はログを出力して処理を続行する
      log.info(
          String.format(
              "Insert CELL_DELETE Record To Ads Failed. db_name:[%s], cell_id:[%s]",
              dbName, cellId),
          e);

      // Adsの登録に失敗した場合は、専用のログに書込む
      // Cell再帰削除のときは、DB名、Cell IDのみログに書込む
      // ※Cell再帰削除時にAdsに登録する情報としては、他にTable名があるが、ここでは意識しない
      AdsWriteFailureLogWriter adsWriteFailureLogWriter =
          AdsWriteFailureLogWriter.getInstance(
              DcCoreConfig.getAdsWriteFailureLogDir(),
              DcCoreConfig.getCoreVersion(),
              DcCoreConfig.getAdsWriteFailureLogPhysicalDelete());
      AdsWriteFailureLogInfo loginfo =
          new AdsWriteFailureLogInfo(
              dbName,
              null,
              null,
              null,
              cellId,
              AdsWriteFailureLogInfo.OPERATION_KIND.PCS_MANAGEMENT_INSERT,
              0,
              0);
      try {
        adsWriteFailureLogWriter.writeActiveFile(loginfo);
      } catch (AdsWriteFailureLogException e2) {
        DcCoreLog.Server.WRITE_ADS_FAILURE_LOG_ERROR.reason(e2).writeLog();
        DcCoreLog.Server.WRITE_ADS_FAILURE_LOG_INFO.params(loginfo.toString());
      }
    }
  }