다음 디버그 메시지는 사용자 정의 노드와 구문 분석기의
실행을 이해하는 데 도움이 됩니다.
- BIP2233 및 BIP2234: 사용자 정의 확장 구현 함수의
앞과 뒤에 추적된 메시지 쌍이 호출됩니다. 이 메시지는 입력 매개변수 및 리턴 값을 보고합니다.
예를 들면 다음과 같습니다.
BIP2233 사용자 정의 확장
함수 [function name] ([function call parameters])를 호출 중입니다.
BIP2234 사용자 정의
확장 [function name]이 다음과 같은 결과로 리턴되었습니다: [result
of call]주: 이러한 메시지에서는
구현 함수를 C 구현 함수 또는 Java 구현 메소드로 해석할 수 있습니다.
BIP2308: 브로커가 LIL 파일 로드에 실패할 때 로그된 메시지입니다.BIP2308 [LIL 파일 이름] 파일을 로드할 수 없습니다. 운영 체제가 [운영 체제에서 리턴되는 오류 코드] 코드를 리턴합니다.

- BIP3904: 사용자 정의 노드의 Java evaluate() 메소드를 호출하기 전에 추적되는
메시지. 예를 들면 다음과 같습니다.
BIP3904 (Java용): 노드(class=[node class name], name=[label
of node in flow])의 evaluate() 메소드를 호출 중입니다. 여기서 node class name은
Java 사용자 정의 확장 클래스의 이름입니다.
- BIP3905: 사용자 정의 노드의 C cniEvaluate 구현 함수(CNI_VFT의 iFpEvaluate 구성원)를
호출하기 전에 추적되는 메시지. 예를 들면 다음과 같습니다.
BIP3905 (C용): 노드(class=[node
class name], name=[label of node in flow])의 cniEvaluate() 구현 함수를 호출 중입니다. 여기서 node class
name은 C cniDefineNodeClass를 호출하는 동안 사용자 정의 확장이 제공한 사용자 정의 확장 클래스의 이름입니다.
- BIP4142: 사용자 정의 노드 유틸리티 함수(여기서 유틸리티 함수는 구문 요소의 상태를 변경함)를
호출할 때 추적되는 디버그 메시지. 여기에는 cniSetElement*(여기서 *는 파생된 모든 노드를 나타냄)로 시작하는
모든 유틸리티 함수가 포함됩니다. 예를 들면 다음과 같습니다.
BIP4142 cniSetElement [element
identifier type]을 평가 중입니다. [value before user's change]에서 [value
after user's change]로 값을 변경하는 중입니다."
- BIP4144 및 BIP4145: 사용자 정의 확장에
의해 호출될 때 Message Broker 오브젝트의 내부 상태를 수정할 수 있는 특정 구현 함수가
추적한 메시지 쌍. 가능한 Message Broker 오브젝트에는 구문 요소, 노드
및 구문 분석기가 포함됩니다. 이러한
메시지는 호출된 메소드 및 리턴된 값에 제공되는 입력 매개변수를
보고합니다. 예를 들면 다음과 같습니다.
BIP4144 Entered
function [function name] ([function call parameters])
BIP4145 Exiting
function [function name] with result: [result to be returned]
이러한 메시지에서는
구현 함수를 C 구현 함수 또는 Java 구현 메소드로 해석할 수 있습니다.
BIP4144 및
BIP4145 메시지를 호출하는 C 구현 함수는 다음과 같습니다.
사용자 정의 구문 분석기 |
사용자 정의 노드 |
cpiCreateParserFactory |
cniCreateElement* |
cpiDefineParserClass |
cniDeleteMessage |
cpiAppendToBuffer |
cniAdd* |
cpiCreateElement |
cniDetach |
cpiCreateAndInitializeElement |
cniCopyElementTree |
cpiAddBefore |
cniFinalize |
cpiAddAfter |
cniWriteBuffer |
cpiAddAsFirstChild |
cniSql* |
cpiAddAsLastChild |
cniSetInputBuffer |
cpiSetNameFromBuffer |
cniDispatchThread |
(*는 해당 스템이 있는 모든 노드를 표시합니다. 예를 들면, cniAdd*에는
cniAddAfter, cniAddasFirstChild, cniAddasLastChild 및 cniAddBefore가 포함됩니다.)
BIP4144 및 BIP4145 메시지를
호출하는 Java 메소드는 다음과 같습니다.
사용자 정의 노드 |
com.ibm.broker.plugin.MbElement.CreateElement* |
com.ibm.broker.plugin.MbElement.add* |
com.ibm.broker.plugin.MbElement.detach |
com.ibm.broker.plugin.MbElement.copyElementTree |
- BIP4146: 사용자 정의 구문 분석기 유틸리티 함수(여기서 유틸리티 함수는 구문 요소의 상태를 변경함)를
호출할 때 추적되는 디버그 메시지. 여기에는 cpiSetElement*(여기서 *는 패생된 모든 노드를 나타냄)로 시작하는
모든 유틸리티 함수가 포함됩니다. 예를 들면 다음과 같습니다.
BIP4146 Evaluating
cpiSetElement [element identifier type]. [value before
user's change]에서 [value after user's change]로 값 변경
C 사용자 정의 API에 대한 정보는 C 언어 사용자 정의 구문 분석기 API 및 C 언어 사용자 정의 노드 API를 참조하십시오.
- BIP4147: 사용자 정의 확장이
올바르지 않은 입력 오브젝트를 사용자 정의 확장 유틸리티 API 함수로 전달할 때
추적되는 오류 메시지. 예를 들면 다음과 같습니다.
BIP4147 사용자 정의 확장 입력 매개변수가
디버그 유효성 검증 점검에 실패했습니다. [function name] 함수로 전달된 입력 매개변수 [parameter
name]이 올바른 오브젝트가 아닙니다.
- BIP4148: 사용자 정의 확장에
의해 브로커의 오브젝트가 손상될 때 추적되는 오류 메시지. 예를 들면 다음과 같습니다.
BIP4148 사용자 정의 확장으로 인해 브로커의 오브젝트가 손상되었습니다. [function name] 함수가
[parameter name] 매개변수로서 전달된 브로커의 오브젝트를 손상시켰습니다.
- BIP4149: 사용자 정의 확장이
올바르지 않은 입력 데이터 포인터를 사용자 정의 확장 유틸리티 API 함수로 전달할
때 추적되는 오류 메시지. 예를 들면 다음과 같습니다.
BIP4149 사용자 정의 확장 입력
매개변수가 디버그 유효성 검증 점검에 실패했습니다. [function name] 함수로 전달된 입력 매개변수 [parameter
name]이 널(NULL) 포인터입니다.
- BIP4150: 사용자 정의 확장이 올바르지 않은 입력 데이터를
사용자 정의 확장 유틸리티 API 함수로 전달할 때 추적되는 오류 메시지. 예를 들면 다음과 같습니다.
BIP4150 사용자 정의
확장 입력 매개변수가 디버그 유효성 검증 점검에 실패했습니다. [function name] 함수로 전달된 입력 매개변수 [parameter
name]의 값이 올바르지 않습니다.
- BIP4151: cniGetAttribute2 또는 cniGetAttributeName2가
리턴 코드를 예상치 못한 값으로 설정할 때 추적되는 디버그 메시지. 예상되는 값은 CCI_SUCCESS, CCI_ATTRIBUTE_UNKNOWN 및
CCI_BUFFER_TOO_SMALL입니다. 다른 값은 예상치 못한 값입니다. 예를 들면 다음과 같습니다.
BIP4151 예상치 못한 값이 사용자 정의 구현 함수
[function name]에서 리턴되었습니다.
- BIP4152: cniGetAttribute2 또는 cniGetAttributeName2가
리턴 코드를 CCI_BUFFER_TOO_SMALL로 설정하고 cniGetAttribute2 또는 cniGetAttributeName2가
올바른 크기의 버퍼로 다시 호출되지만 리턴 코드가 계속 CCI_BUFFER_TOO_SMALL로 설정된 경우. 예를 들면 다음과 같습니다.
BIP4152 사용자 정의 확장 구현 함수
[function name]이 두 번째 시도에서 CCI_BUFFER_TOO_SMALL을 리턴했습니다.