/** * マスタデータを削除する. * * @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); } } }
/** * マスターデータを更新する. * * @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); } } }
/** * マスターデータを登録する. * * @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); } } } }