cciUserTrace

메시지 카탈로그의 메시지(삽입 항목이 있는)를 사용자 추적에 기록합니다. 또한 서비스 추적이 활성인 경우 서비스 추적에도 메시지가 기록됩니다.

사용자 추적에 기록된 메시지의 형식은 다음과 같습니다.

<date-time stamp> <threadNumber> UserTrace <Message text with inserts> <Message Explanation>

구문

void cciUserTrace(
  int*                   returnCode,
  CciObject*        object,
  const CciChar*    messageSource,
    int                 messageNumber,
  const char*       traceText,
                    ...
);

매개변수

returnCode
함수의 리턴 코드를 수신합니다(출력). 널(null) 포인터 입력은 사용자 정의 노드가 오류를 처리하지 않음을 의미합니다. 이 호출 실행 중 전달된 모든 예외는 플로우의 다음 업스트림 노드에 다시 전달됩니다. 입력이 널(null)이 아닌 경우, 출력은 호출 성공 상태를 의미합니다. 실행 중 예외가 발생할 경우, *returnCode는 출력에 CCI_EXCEPTION으로 설정됩니다. CciGetLastExceptionData 호출은 예외에 대한 세부사항을 제공합니다.
object
추적 입력 항목과 연관될 오브젝트의 주소(입력). 오브젝트는 CciNode* 또는 CciParser*가 될 수 있습니다. CciNode*인 경우 해당 노드의 이름은 추적에 기록됩니다. CciParser*인 경우 구문 분석기를 작성한 노드의 이름은 추적에 기록됩니다. 이 오브젝트는 입력 항목이 추적에 기록되는지 여부를 판별하는 데에도 사용됩니다. 입력 항목은 해당 노드에서 추적이 활성 상태인 경우에만 기록됩니다. 현재 노드는 메시지 플로우로부터 추적 설정을 상속받습니다.
이 매개변수가 널(NULL)이면 실행 그룹의 추적 레벨이 리턴됩니다.
messageSource
Windows 메시지 소스 또는 Linux 및 UNIX 메시지 카탈로그를 식별하는 문자열(입력). 추적이 형식화되면 이 카탈로그의 NLS 버전에서 메시지가 기록됩니다. 사용되는 로케일은 추적이 형식화되는 환경의 로케일입니다. 한 유형의 플랫폼에서 브로커를 실행하고 해당 플랫폼에서 로그를 읽은 후 다른 플랫폼에서 로그를 형식화할 수 있습니다. 예를 들어 브로커가 Linux 또는 UNIX에서 실행 중이지만 사용 가능한 .cat 파일이 없는 경우 사용자는 로그를 읽은 후 .properties 파일을 사용하여 로그를 형식화할 수 있는 Windows로 전송할 수 있습니다.
이 매개변수가 널(NULL)이면 빈 문자열을 지정하는 것과 같은 효과가 발생합니다. 즉, 다른 정보는 모두 로그에 기록되고 카탈로그 필드의 값은 빈 문자열이 됩니다. 그러므로 로그 형식기는 메시지 소스를 찾을 수 없습니다. 따라서 로그 형식기는 이 입력 항목을 형식화할 수 없습니다.
messageNumber
지정된 messageSource 내의 메시지를 식별하는 번호(입력). messageSource에 이러한 messageNumber에 해당하는 메시지가 들어 있지 않으면 로그 형식기는 이 입력 항목을 형식화할 수 없습니다.
traceText
널(NULL)로 끝나는 문자열(입력). 이 문자열은 서비스 추적에 기록되며 소스 코드를 통해 추적 입력 항목을 경로와 상호 연결하는 간단한 방법을 제공합니다. 예를 들어, 코드를 통한 여러 경로가 있을 수 있으며 이는 같은 메시지(messageSourcemessageNumber)가 추적에 기록되는 결과를 가져옵니다. traceText는 이러한 여러 경로를 구별하는 데 사용할 수 있습니다. 즉, traceText 문자열이 소스의 정적 리터럴 문자열이므로 소스 코드 파일과 형식화된 추적 파일에 같은 문자열이 있게 됩니다.
...
메시지와 함께 오는 모든 메시지 삽입 항목이 들어 있는 C 변수 인수 목록(입력). 이러한 삽입항목은 문자열로 간주되고, 변수 인수는 pointer to char 유형으로 간주됩니다.
이 목록의 마지막 인수는 반드시 (char*)0이어야 합니다.
  • 분산 플랫폼에서 실행되는 사용자 정의 확장의 경우 char* 인수는 ISO-8859-1(ibm-918) 코드 페이지에 있어야 합니다.
  • Z/OS 플랫폼에서 실행되는 사용자 정의 확장의 경우 char* 인수는 EBCIDIC(1047)에 있어야 합니다.
그러면 모든 char* 인수가 traceText와 삽입에 대한 변수 인수 목록(...)에 포함됩니다.

리턴 값

없음. 오류가 발생할 경우, returnCode 매개변수는 오류의 이유를 표시합니다.

const CciChar* 		myMessageSource=CciString("SwitchMSG",BIP_DEF_COMP_CCSID);
CciNode*         	thisNode = ((NODE_CONTEXT_ST*)context)->nodeObject;

cciUserTrace(&rc,
             (CciObject*)thisNode,
              myMessageSource,
              1,
              "propagating to add terminal",
              "add",
              (char*)0);
    checkRC(rc);
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
as24500_