Przeglądaj źródła

배치로그에 에러메시지 추가에 따른 수정

gagamel 4 lat temu
rodzic
commit
6faab1066d

+ 2 - 2
src/main/java/com/style24/batch/biz/dao/TsbBatchDao.java

@@ -31,11 +31,11 @@ public interface TsbBatchDao {
 
 	/**
 	 * 배치로그 종료 처리
-	 * @param batchLogSq - 배치로그일련번호
+	 * @param batchLog - 배치로그 정보
 	 * @author gagamel
 	 * @since 2020. 12. 2
 	 */
-	void updateBatchLog(Integer batchLogSq);
+	void updateBatchLog(BatchLog batchLog);
 
 	/**
 	 * 배치상태 처리

+ 1 - 1
src/main/java/com/style24/batch/biz/job/TsbAbstractJob.java

@@ -141,7 +141,7 @@ public abstract class TsbAbstractJob<I, O, R> {
 			log.error(e.getMessage());
 			if (StringUtils.isNotBlank(batchId)) {
 				// 배치로그 종료 처리
-				batchService.updateBatchLog(batchLogSq, batchId);
+				batchService.updateBatchLog(batchLogSq, batchId, e.getMessage());
 			}
 
 			try {

+ 28 - 2
src/main/java/com/style24/batch/biz/service/TsbBatchService.java

@@ -65,14 +65,40 @@ public class TsbBatchService {
 	 * @author gagamel
 	 * @since 2020. 12. 2
 	 */
+	@Transactional("shopTxnManager")
 	public void updateBatchLog(Integer batchLogSq, String batchId) {
-		batchDao.updateBatchLog(batchLogSq);
+		BatchLog batchLog = new BatchLog();
+		batchLog.setBatchLogSq(batchLogSq);
+		batchLog.setBatchStat("F");
+		batchDao.updateBatchLog(batchLog);
 
 		// 배치상태 완료로 처리
-		BatchLog batchLog = new BatchLog();
 		batchLog.setBatchId(batchId);
 		batchLog.setBatchStat("F");
 		batchDao.updateBatchStatus(batchLog);
 	}
 
+	/**
+	 * 배치로그 종료 처리
+	 * @param batchLogSq - 배치로그일련번호
+	 * @param batchId - 배치ID
+	 * @param errorMsg - 에러 메시지
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 8. 26
+	 */
+	@Transactional("shopTxnManager")
+	public void updateBatchLog(Integer batchLogSq, String batchId, String errorMsg) {
+		BatchLog batchLog = new BatchLog();
+		batchLog.setBatchLogSq(batchLogSq);
+		batchLog.setBatchStat("E");
+		batchLog.setErrorMsg(errorMsg);
+		batchDao.updateBatchLog(batchLog);
+
+		// 배치상태 실패로 처리
+		batchLog.setBatchId(batchId);
+		batchLog.setBatchStat("E");
+		batchDao.updateBatchStatus(batchLog);
+	}
+
 }

+ 3 - 1
src/main/java/com/style24/batch/biz/service/TsbMonitoringService.java

@@ -6,6 +6,8 @@ import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
 import com.style24.batch.biz.dao.TsbMonitoringDao;
@@ -64,7 +66,7 @@ public class TsbMonitoringService {
 	 * @author gagamel
 	 * @since 2020. 11. 13
 	 */
-	@Transactional("shopTxnManager")
+	@Transactional(value = "shopTxnManager", isolation = Isolation.SERIALIZABLE, propagation = Propagation.NESTED)
 	public void createSystemAlarmSms(String alarmId, String batchNm) {
 		Alarm params = new Alarm();
 		params.setAlarmId(alarmId);

+ 3 - 2
src/main/java/com/style24/persistence/mybatis/shop/TsbBatch.xml

@@ -34,11 +34,12 @@
 	</insert>
 	
 	<!-- 배치로그 종료 처리 -->
-	<update id="updateBatchLog" parameterType="Integer">
+	<update id="updateBatchLog" parameterType="BatchLog">
 		/* TsbBatch.updateBatchLog */
 		UPDATE TB_BATCH_LOG
 		SET    BATCH_EDDT = NOW(6) /*millisecond 까지 저장*/
-		     , BATCH_STAT = 'F'
+		     , BATCH_STAT = #{batchStat}
+		     , ERROR_MSG = #{errorMsg}
 		WHERE  BATCH_LOG_SQ = #{batchLogSq}
 		AND    BATCH_STAT = 'I'
 	</update>