본문으로 건너뛰기
← 블로그로 돌아가기

이 글의 모듈: Message Monitor

SAP CPI 로그 수준 TRACE: 저절로 꺼지는 이유와 안전하게 켜 두는 방법

SAP CPI의 TRACE 로그 수준이 약 10분 후 되돌아가는 이유, 무엇을 얼마나 보관하는지, 운영 환경의 위험, 작업하는 동안에만 켜 두는 방법을 설명합니다.

SAP CPI 로그 수준 TRACE: 저절로 꺼지는 이유와 안전하게 켜 두는 방법

iFlow의 로그 수준을 Trace로 설정하고, 15분쯤 다른 것을 테스트한 뒤, 중요한 메시지를 보냈는데 트레이스가 비어 있습니다. SAP Cloud Integration(SAP CPI)이 조용히 수준을 되돌린 것입니다. 이는 의도된 동작이며, 이유를 알면 TRACE를 쓰는 규칙도 자연스럽게 따라옵니다.

이 글에서는 각 로그 수준이 무엇을 저장하는지, TRACE가 만료되는 이유, 안전하게 쓰는 방법, 그리고 작업하는 시간만큼 정확히 켜 두는 방법을 설명합니다.

로그 수준과 TRACE가 더하는 것

로그 수준메시지마다 보관되는 것
Info전체 상태, 시간 정보, 오류(있는 경우)
Debug메시지가 실행한 각 단계의 항목
TraceDebug의 내용에 더해, 각 단계 전의 본문, header, exchange property

로그 수준은 배포된 iFlow에 설정되므로, 설정되어 있는 동안 그 iFlow가 처리하는 모든 메시지에 적용됩니다.

TRACE가 저절로 꺼지는 이유

TRACE는 각 단계의 페이로드, header, 속성을 tenant의 데이터베이스에 기록합니다. 처리량이 많은 iFlow에서는 데이터가 많아지고, 개인 정보나 기밀 내용이 포함될 수도 있습니다. 그래서 SAP는 시간을 제한합니다. TRACE 수준은 약 10분 동안 유효하고 그 뒤 iFlow는 더 낮은 수준으로 돌아가며, 트레이스 내용 자체는 약 1시간 동안 보관됩니다.

tenant가 TRACE를 아예 허용하지 않도록 설정되어 있을 수도 있습니다. 그러면 누가 시도하든 설정이 실패합니다.

직접 TRACE 설정하기

  1. 모니터에서 Manage Integration Content를 열고 배포된 iFlow를 선택하세요.
  2. 로그 구성에서 로그 수준을 Trace로 설정하세요.
  3. 10분 안에 테스트 메시지를 보내고, 1시간 안에 트레이스를 읽으세요.
  4. 작업이 길어지면 10분마다 Trace를 다시 설정하세요.

TRACE를 안전하게 사용하기

import com.sap.gateway.ip.core.customdev.util.Message

def Message processData(Message message) {
    // Set the exchange property logPayload to "true" (for example from an
    // externalized parameter) only while you investigate.
    if (message.getProperty("logPayload") == "true") {
        def log = messageLogFactory.getMessageLog(message)
        log?.addAttachmentAsString("Payload before mapping", message.getBody(String), "text/plain")
    }
    return message
}
  • 테스트 데이터를 우선 사용하세요. 운영 메시지를 트레이스하면 그 고객의 데이터가 1시간 동안 tenant에 저장됩니다.
  • 운영 환경에서는 질문에 답할 수 있는 가장 짧은 시간만 트레이스하고, 회사의 승인 규칙을 따르세요.
  • Debug나 Trace를 iFlow의 구성된 로그 수준으로 남겨 두지 마세요. 모든 메시지가 그 비용을 치릅니다.
  • 트레이스에 그대로 드러날 header나 속성에 비밀번호나 토큰을 쓰지 마세요.
  • 로그에 페이로드가 정기적으로 필요하다면 스크립트에서 메시지 처리 로그에 첨부하되, 스위치가 켜져 있을 때만 하세요.

작업하는 동안에만 TRACE 켜 두기

Kitegra에서 열린 iFlow의 “메시지” 패널에는 “Trace: 꺼짐”이라고 표시된 스위치가 있습니다. 한 번 클릭하면 로그 수준이 TRACE로 설정됩니다. 스위치가 켜져 있고 그 iFlow의 디자이너 탭이 열려 있는 동안 확장 프로그램은 SAP가 해제하기 전에 9분마다 TRACE를 다시 설정하고, iFlow에서 마지막으로 활동한 뒤 20분이 지나면 멈춥니다. 끄면 iFlow가 이전에 갖고 있던 수준으로 돌아갑니다. 이 상태는 페이지를 새로 고쳐도 유지되며, Alt+Shift+R로 키보드에서 전환할 수 있습니다.

선택한 런타임에 iFlow가 배포되어 있지 않을 때, tenant가 TRACE를 허용하지 않을 때, 또는 옵션에서 “테넌트를 변경하는 작업 허용”이 꺼져 있을 때는 분명한 메시지와 함께 거부합니다.

트레이스가 기록한 내용을 읽으려면 다이어그램에서 메시지를 단계별로 트레이스하기를 참고하세요.

Kitegra가 도와주는 방법

Trace는 Kitegra에서 tenant를 변경하는 네 가지 작업 중 하나이며, 클릭할 때만 실행됩니다. 운영 전환 전에는 iFlow Inspector의 설계 점검 “상세한 로그 수준”이, 구성된 로그 수준 때문에 모든 메시지를 트레이스하거나 디버그하게 될 iFlow를 표시합니다. iFlow 리뷰 체크리스트에서 다른 점검과 함께 다룹니다.

Helper, Message Monitor, iFlow Inspector, iFlow Docs는 각각 사용한 iFlow 수를 셉니다. Kitegra 계정이 없으면 모듈당 5개, Free 요금제는 50개, Starter는 100개, Pro는 300개이며 Business는 제한이 없습니다. Toolbox와 작업 공간 부가 기능은 무료입니다. 요금제 비교하기.

다음 iFlow에서 사용해 보세요

Kitegra가 SAP Integration Suite 디자이너에 무엇을 더하는지 읽어 보거나, Kitegra의 다른 Chrome 확장 프로그램과 함께 살펴보세요.

자주 묻는 질문

SAP CPI에서 TRACE가 저절로 꺼지는 이유는 무엇인가요?

TRACE는 모든 단계의 페이로드를 tenant에 저장합니다. 데이터 양을 제한하기 위해 SAP는 TRACE 수준을 약 10분, 트레이스 내용을 약 1시간 동안 유지합니다.

트레이스 데이터는 얼마나 보관되나요?

약 1시간입니다. 그 후에도 메시지 로그는 남지만, 트레이스된 본문, header, 속성은 사라집니다.

운영 환경에서 TRACE를 써도 안전한가요?

실제 페이로드가 tenant에 저장되므로, 질문에 답할 수 있는 가장 짧은 시간 동안, 가능하면 테스트 데이터로, 회사 규칙에 따라 사용하세요.

Debug와 Trace의 차이는 무엇인가요?

Debug는 단계마다 항목을 기록합니다. Trace는 여기에 각 단계 전의 본문, header, exchange property를 더합니다.

내 tenant에서 TRACE 설정이 실패하는 이유는 무엇인가요?

tenant가 TRACE를 허용하지 않거나, iFlow가 그 런타임에 배포되어 있지 않거나, 사용자에게 필요한 역할이 없을 수 있습니다. 확장 프로그램에서는 옵션에서 tenant 작업이 꺼져 있을 수도 있습니다.

작업을 멈춘 뒤에도 확장 프로그램이 TRACE를 켜 두나요?

아니요. 스위치가 켜져 있고 iFlow에서 작업하는 동안에만 TRACE를 갱신하며, 마지막 활동 후 20분이 지나면 멈춥니다.

디자이너를 떠나지 않고 iFlow 작업하기

Kitegra을 Chrome 또는 Microsoft Edge에 추가하세요. 계정 없이 무료로 시작할 수 있습니다.