- CollectDB 다중 신호 수집 → S&P Global AIS API 단일 수집으로 전환 - sig_src_cd + target_id 이중 식별자 → mmsi(VARCHAR) 단일 식별자 - t_vessel_latest_position → t_ais_position 테이블 전환 - 레거시 배치/유틸 ~30개 클래스 삭제 (VesselAggregationJobConfig, ShipKindCodeConverter 등) - AisTargetCacheManager 기반 캐시 이중 구조 (최신위치 + 트랙 버퍼) - CacheBasedVesselTrackDataReader + CacheBasedTrackJobListener 신규 추가 - VesselStaticStepConfig: 정적정보 CDC 변경 검출 + hourly job 편승 - SignalKindCode enum: vesselType/extraInfo 기반 선종 자동 분류 - WebSocket/STOMP 전체 mmsi 전환 (StompTrackStreamingService ~40곳) - 모니터링/성능 최적화 코드 mmsi 기반 전환 - DataSource 설정 통합 (snpdb 단일 DB) - AreaBoundaryCache Polygon→Geometry 캐스트 수정 (MULTIPOLYGON 지원) - ConcurrentHashMap 적용 (VesselTrackStepConfig 동시성 버그 수정) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
76 lines
2.0 KiB
SQL
76 lines
2.0 KiB
SQL
-- 특정 JOB_EXECUTION_ID를 ABANDONED로 변경
|
|
-- 사용법: :job_execution_id 를 실제 ID로 변경 후 실행
|
|
|
|
-- 변수 설정 (PostgreSQL에서는 psql 변수 사용)
|
|
-- psql -v job_id=12345 -f mark-specific-job-as-abandoned.sql
|
|
-- 또는 아래 :job_execution_id 를 직접 숫자로 변경
|
|
|
|
-- 1. 해당 Job 상태 확인
|
|
SELECT
|
|
'=== BEFORE UPDATE ===' as status,
|
|
JOB_EXECUTION_ID,
|
|
JOB_INSTANCE_ID,
|
|
START_TIME,
|
|
END_TIME,
|
|
STATUS,
|
|
EXIT_CODE,
|
|
EXIT_MESSAGE
|
|
FROM BATCH_JOB_EXECUTION
|
|
WHERE JOB_EXECUTION_ID = :job_execution_id;
|
|
|
|
-- 2. 해당 Job의 Step들 상태 확인
|
|
SELECT
|
|
'=== STEPS BEFORE UPDATE ===' as status,
|
|
STEP_EXECUTION_ID,
|
|
STEP_NAME,
|
|
STATUS,
|
|
EXIT_CODE
|
|
FROM BATCH_STEP_EXECUTION
|
|
WHERE JOB_EXECUTION_ID = :job_execution_id
|
|
ORDER BY STEP_EXECUTION_ID;
|
|
|
|
-- 3. Step을 ABANDONED로 변경
|
|
UPDATE BATCH_STEP_EXECUTION
|
|
SET
|
|
STATUS = 'ABANDONED',
|
|
EXIT_CODE = 'ABANDONED',
|
|
EXIT_MESSAGE = 'Manually marked as ABANDONED - Original status: ' || STATUS,
|
|
END_TIME = COALESCE(END_TIME, CURRENT_TIMESTAMP),
|
|
LAST_UPDATED = CURRENT_TIMESTAMP
|
|
WHERE JOB_EXECUTION_ID = :job_execution_id
|
|
AND STATUS IN ('FAILED', 'STARTED', 'STOPPING');
|
|
|
|
-- 4. Job을 ABANDONED로 변경
|
|
UPDATE BATCH_JOB_EXECUTION
|
|
SET
|
|
STATUS = 'ABANDONED',
|
|
EXIT_CODE = 'ABANDONED',
|
|
EXIT_MESSAGE = 'Manually marked as ABANDONED - Original status: ' || STATUS,
|
|
END_TIME = COALESCE(END_TIME, CURRENT_TIMESTAMP),
|
|
LAST_UPDATED = CURRENT_TIMESTAMP
|
|
WHERE JOB_EXECUTION_ID = :job_execution_id
|
|
AND STATUS IN ('FAILED', 'STARTED', 'STOPPING');
|
|
|
|
-- 5. 업데이트 결과 확인
|
|
SELECT
|
|
'=== AFTER UPDATE ===' as status,
|
|
JOB_EXECUTION_ID,
|
|
JOB_INSTANCE_ID,
|
|
START_TIME,
|
|
END_TIME,
|
|
STATUS,
|
|
EXIT_CODE,
|
|
EXIT_MESSAGE
|
|
FROM BATCH_JOB_EXECUTION
|
|
WHERE JOB_EXECUTION_ID = :job_execution_id;
|
|
|
|
SELECT
|
|
'=== STEPS AFTER UPDATE ===' as status,
|
|
STEP_EXECUTION_ID,
|
|
STEP_NAME,
|
|
STATUS,
|
|
EXIT_CODE
|
|
FROM BATCH_STEP_EXECUTION
|
|
WHERE JOB_EXECUTION_ID = :job_execution_id
|
|
ORDER BY STEP_EXECUTION_ID;
|