DataStage 잡 설계 트러블슈팅

ibm-datastage 잡 실패 원인 중 설계 레이어(스테이지 구성·컬럼명·링크 연결)에서 비롯되는 문제 유형과 진단·해결 방법.

설명

DataStage 잡 실패는 런타임 데이터 문제 외에도 잡 설계 자체의 결함에서 비롯되는 경우가 있다. 이 경우 데이터나 소스 시스템을 수정하는 것이 아니라 Designer에서 잡 설계를 수정하고 재컴파일하면 해결된다. 설계 레이어 문제는 다음 세 가지 유형이 대표적이다.

유형 1: 고아 스테이지 (Orphan Stage)

입력·출력 링크가 없어 잡 흐름과 단절된 스테이지. 팔레트 가장자리에 위치해 일반 편집 뷰에서는 보이지 않는다. 잡 실패 증상이 명확하지 않은 경우 고아 스테이지가 원인일 수 있다.

진단: DataStage Designer에서 줌 아웃(zoom out) 아이콘으로 전체 팔레트를 확인. 링크 없는 스테이지 아이콘이 있는지 점검한다.

해결: 불필요한 스테이지 → 삭제. 누락된 연결이라면 → 올바른 링크 추가 후 재컴파일.

중요 맥락: 일부 구버전 IIS는 고아 스테이지를 컴파일 오류 없이 통과시키고 런타임에서 무시했다. IIS 업그레이드 또는 Connector Migration Tool 사용 후에 과거에 동작하던 잡이 갑자기 실패하면 고아 스테이지를 우선 의심해야 한다.

유형 2: 컬럼명 규칙 위반

DataStage 병렬 엔진의 컬럼명 규칙:

  • 허용: 알파벳(Unicode·Kanji·악센트 포함), 숫자(0–9), 밑줄(_)
  • 금지: 특수문자, 공백, 마침표(.), 대시(-) 등
  • 추가 금지: 숫자로 시작하는 이름

마침표(.)는 서브레코드 구분자로 예약되어 있다. asub.b 형식은 서브레코드 asub 내의 컬럼 b를 지칭하는 경로 표현이므로, 컬럼명에 .를 사용하면 파서가 서브레코드 경로로 해석해 런타임 abort가 발생한다.

해결: 해당 컬럼명을 규칙에 맞게 수정(특수문자 제거·밑줄로 치환) 후 재컴파일.

유형 3: 단일 문자 컬럼명 “t”/“T” 버그

IIS 8.5 이후 특이 케이스: 컬럼명이 소문자 t 또는 대문자 T 단 하나로만 구성된 경우 런타임 검증(validation) 단계에서 잡이 abort된다. 소스에서 넘어오는 컬럼명을 그대로 사용할 경우 조우할 수 있다.

해결: 해당 컬럼명을 t/T 이외의 이름으로 변경.

배경 / 역사

  • IIS 8.5부터 t/T 컬럼명 버그 도입
  • 구버전(8.5 이전)은 고아 스테이지를 런타임에서 무시 → 업그레이드 후 문제 표면화
  • DataStage Flow Designer v11.7에서 컴파일 오류 UI 개선: 모든 오류를 한 번에 하이라이트, hover로 상세 확인 → 대형 잡(30–50개 이상 스테이지) 디버깅 효율 향상

실전 적용

  • ibm-datastage 잡이 원인 불명으로 실패할 때, 먼저 설계 레이어(고아 스테이지·컬럼명 규칙)를 점검한다
  • IIS 업그레이드 후 기존 잡이 갑자기 실패하면 → 고아 스테이지 여부 확인이 1순위 점검 항목
  • 소스 시스템 컬럼명을 그대로 가져올 때 . 포함 여부, 단일 문자 t/T 여부를 사전 확인하는 습관 권장

관련 개념

  • dag-idempotency — 잡 재실행 안전성 관련 설계 원칙 (Airflow 맥락이나 DataStage 잡 설계에도 적용 가능)

소스