예제 #1
0
  /**
   * マスタデータを削除する.
   *
   * @param docHandler 削除データ
   * @param version 削除したデータのバージョン
   */
  @Override
  protected void deleteAds(EntitySetDocHandler docHandler, long version) {
    String id = docHandler.getId();
    String unitUserName = docHandler.getUnitUserName();

    // 削除に成功した場合、マスタデータを削除する
    if (getAds() != null) {
      try {
        getAds().deleteCell(unitUserName, id);
      } catch (AdsException e) {
        DcCoreLog.Server.DATA_STORE_ENTITY_DELETE_FAIL.params(e.getMessage()).reason(e).writeLog();

        // Adsの登録に失敗した場合は、専用のログに書込む
        String lockKey =
            LockKeyComposer.fullKeyFromCategoryAndKey(
                Lock.CATEGORY_ODATA, docHandler.getCellId(), null, null);
        AdsWriteFailureLogInfo loginfo =
            new AdsWriteFailureLogInfo(
                docHandler.getUnitUserName(),
                docHandler.getType(),
                lockKey,
                docHandler.getCellId(),
                docHandler.getId(),
                AdsWriteFailureLogInfo.OperationKind.DELETE,
                version,
                docHandler.getUpdated());
        recordAdsWriteFailureLog(loginfo);
      }
    }
  }
예제 #2
0
  /**
   * マスターデータを更新する.
   *
   * @param docHandler 登録データ
   * @param version Elasticsearchに登録されたドキュメントのバージョン
   */
  protected void updateAds(EntitySetDocHandler docHandler, long version) {
    // 更新に成功した場合、マスタデータを更新する
    if (getAds() != null) {
      try {
        getAds().updateEntity(getIndex().getName(), docHandler);
      } catch (AdsException e) {
        DcCoreLog.Server.DATA_STORE_ENTITY_UPDATE_FAIL.params(e.getMessage()).reason(e).writeLog();

        // Adsの登録に失敗した場合は、専用のログに書込む
        String lockKey =
            LockKeyComposer.fullKeyFromCategoryAndKey(
                Lock.CATEGORY_ODATA, docHandler.getCellId(), null, docHandler.getNodeId());
        AdsWriteFailureLogInfo loginfo =
            new AdsWriteFailureLogInfo(
                this.getIndex().getName(),
                docHandler.getType(),
                lockKey,
                docHandler.getCellId(),
                docHandler.getId(),
                AdsWriteFailureLogInfo.OPERATION_KIND.UPDATE,
                version,
                docHandler.getUpdated());
        recordAdsWriteFailureLog(loginfo);
      }
    }
  }
예제 #3
0
  /**
   * マスターデータを登録する.
   *
   * @param docHandler 登録データ
   */
  @Override
  protected void createAds(EntitySetDocHandler docHandler) {
    // 登録に成功した場合、マスタデータを書き込む
    if (getAds() != null) {
      String unitUserName = docHandler.getUnitUserName();
      try {
        getAds().createCell(unitUserName, docHandler);
      } catch (AdsException e) {
        // Indexが存在しない場合はインデックスを作成する。
        if (e.getCause() instanceof SQLException
            && MYSQL_BAD_TABLE_ERROR.equals(((SQLException) e.getCause()).getSQLState())) {
          DcCoreLog.Server.ES_INDEX_NOT_EXIST.params(unitUserName).writeLog();
          createAdsIndex(unitUserName);
          try {
            getAds().createCell(unitUserName, docHandler);
          } catch (AdsException e1) {
            DcCoreLog.Server.DATA_STORE_ENTITY_CREATE_FAIL
                .params(e1.getMessage())
                .reason(e1)
                .writeLog();

            // Adsの登録に失敗した場合は、専用のログに書込む
            String lockKey =
                LockKeyComposer.fullKeyFromCategoryAndKey(
                    Lock.CATEGORY_ODATA, docHandler.getCellId(), null, null);
            AdsWriteFailureLogInfo loginfo =
                new AdsWriteFailureLogInfo(
                    docHandler.getUnitUserName(),
                    docHandler.getType(),
                    lockKey,
                    docHandler.getCellId(),
                    docHandler.getId(),
                    AdsWriteFailureLogInfo.OperationKind.CREATE,
                    1,
                    docHandler.getUpdated());
            recordAdsWriteFailureLog(loginfo);
          }
        } else {
          DcCoreLog.Server.DATA_STORE_ENTITY_CREATE_FAIL
              .params(e.getMessage())
              .reason(e)
              .writeLog();

          // Adsの登録に失敗した場合は、専用のログに書込む
          String lockKey =
              LockKeyComposer.fullKeyFromCategoryAndKey(
                  Lock.CATEGORY_ODATA, docHandler.getCellId(), null, null);
          AdsWriteFailureLogInfo loginfo =
              new AdsWriteFailureLogInfo(
                  docHandler.getUnitUserName(),
                  docHandler.getType(),
                  lockKey,
                  docHandler.getCellId(),
                  docHandler.getId(),
                  AdsWriteFailureLogInfo.OperationKind.CREATE,
                  1,
                  docHandler.getUpdated());
          recordAdsWriteFailureLog(loginfo);
        }
      }
    }
  }