[SAP] ST04 에러 DYNPRO_FIELD_CONVERSION FX015: Sign lost

 

SAP 시스템을 운영하다 보면 가장 당혹스러운 순간 중 하나가 바로 표준 트랜잭션에서 발생하는 Dump(T-code ST22)일 것입니다.

 

특히 데이터베이스 모니터링의 핵심인 ST04(Oracle Cockpit)에서 발생하는 에러는 운영자에게 큰 스트레스를 주곤 하죠.

 

오늘은 ST04 실행 시 발생하는 "Runtime Error - DYNPRO_FIELD_CONVERSION, FX015: Sign lost " 에러의 원인과 해결 방법을 완벽하게 정리해 드리겠습니다.


🚩 에러 현상 파악

먼저 발생한 덤프의 핵심 내용을 복기해 보겠습니다.

  • Screen name : SAPLS_ORA_COCKPIT_2
  • Screen Number: 0001
  • Screen Field: ST04N_DATA-DBUFF_BUSYWAITS
  • 에러 메시지: FX015: Sign lost

이 에러는 ABAP 프로그램이 계산한 결과값이나 DB에서 가져온 값이 화면(Screen)에 정의된 필드 속성과 맞지 않을 때 발생합니다.

특히 "Sign lost"는 출력하려는 값에 음수 부호(-)가 포함되어 있는데, 화면 필드는 부호를 표시할 공간이 없거나 양수 전용으로 설정되어 부호가 잘려 나갈 때 발생합니다.


🔍 원인 분석: 왜 부호(Sign)가 생기는 걸까?

Oracle 데이터베이스의 통계 값은 기본적으로 누적 카운터입니다.

하지만 다음과 같은 상황에서 비정상적인 값이나 음수가 발생할 수 있습니다.

  1. 카운터 오버플로우 (Wrap-around): Oracle 내부의 통계 카운터가 최대치를 넘어 다시 0부터 시작할 때, SAP가 이전 값과의 차이를 계산하는 과정에서 일시적으로 음수가 발생할 수 있습니다.
  2. Oracle 버그 또는 버전 특성: 특정 Oracle 버전(특히 12c 이상)에서 v$sysstat 등의 뷰가 반환하는 데이터 형식이 SAP의 기존 UI 설계와 충돌하는 경우입니다.
  3. UI 필드 설계 한계: DBUFF_BUSYWAITS 필드는 시스템 설계 당시 매우 큰 수치나 음수를 고려하지 않았을 수 있습니다.

🛠️ 해결 단계별 가이드

1. SAP Note 적용

SAP는 이러한 표준 프로그램의 결함을 수정하기 위해 이미 여러 노트를 배포했습니다.

SNOTE 트랜잭션에서 다음 노트를 조회하고 적용 가능 여부를 확인하세요.

 

 

1703434 - ABAP Short Dump DYNPRO_FIELD_CONVERSION in DBACOCKPIT | SAP Knowledge Base Article

Symptom If you try to display the size information for a database table in transaction DBACOCKPIT it dumps with following error message: DYNPRO_FIELD_CONVERSION Short text: conversion error Screen name.............. "SAPLSMSSCCMS"Screen number............

userapps.support.sap.com

 

 

2. SAP 커널(Kernel) 업데이트

표준 프로그램 수정으로 해결되지 않는다면, DB 라이브러리와 통신하는 커널의 패치 레벨이 낮을 수 있습니다.

  • T-Code: SM51 -> Release Notes에서 현재 커널 버전을 확인하세요.
  • 특히 dboraslib (Oracle DB Library) 관련 최신 패치가 포함된 커널로 업데이트하면 해결되는 경우가 많습니다.

3. Oracle 통계 정보 갱신

DB 레벨에서 잘못된 통계 값을 제공하고 있는지 확인해야 합니다.

  • SQL 실행: SELECT name, value FROM v$sysstat WHERE name = 'buffer busy waits';
  • 만약 위 쿼리 결과가 비정상적으로 크거나 이상 현상을 보인다면, Oracle Dictionary 통계를 갱신하거나 인스턴스 재기동을 고려해야 할 수도 있습니다. (단, 운영 환경에서는 신중해야 합니다.)

💡 임시 대처법

당장 운영 환경에 노트를 적용하거나 시스템을 재시작하기 어렵다면, Tcode ST04 대신 DBACockpit을 사용해 보세요.

Tip: ST04는 특정 화면(Screen 0001)에서 덤프가 발생하지만, DBACockpit 트랜잭션을 통해 다른 경로(예: Performance -> Wait Events)로 접근하면 동일한 데이터를 덤프 없이 확인할 수 있는 경우가 많습니다.


✅ 요약 및 결론

ST04 FX015 에러는 데이터의 수치가 UI의 수용 범위를 벗어나 부호가 누락되면서 발생하는 표준 프로그램의 UI 제약 사항 때문입니다.

  1. ST22에서 어떤 필드(예: DBUFF_BUSYWAITS)인지 확인한다.
  2. SAP Note를 최우선으로 검토한다.
  3. 필요시 Kernel 업데이트를 통해 DB 통신 안정성을 확보한다.