cniRun

이 함수는 노드를 입력 노드로 선언합니다. 메시지 처리 또는 출력 노드에 사용되지 않으므로 cniEvaluate를 호출할 필요가 없습니다. WebSphere Message Broker는 스레드를 할당하고 해당 스레드에서 이 함수를 호출합니다.

정의 대상 유형 구성원
CNI_VFT 조건부 iFpRun

구문

int cniRun(
  CCiContext*  context,
  CCiMessage*  destinationList,
    CciMessage* exceptionList,
    CciMessage* message
);

매개변수

context
노드가 작성하고 cniCreateNodeContext 함수가 리턴한 노드 인스턴스의 컨텍스트 주소(입력)
destinationList
입력 목적지 목록 오브젝트의 주소(입력).
exceptionList
메시지 예외 목록 주소(입력).
message
접속할 메시지 오브젝트의 주소(입력).

사용자 정의 노드는 cniSetInputBuffer를 호출하여 비트 스트림을 이 메시지와 연관시킬 수 있습니다. 이 메시지의 트리 채우기가 지원되지 않으므로 cniAddAsLastChild 또는 cniCreateElementAsLastChildFromBitstream과 같은 함수 호출은 유효하지 않습니다. 전체 메시지로 구문 분석될 버퍼를 제공하는 대신 트리의 파트를 빌드하려면 cniCreateMessage를 사용하여 새 메시지를 작성해야 합니다.

예를 들면, 메시지의 페이로드(payload) 부분으로 사용될 비트 스트림이 있고 헤더도 추가하려는 경우에는 다음 단계를 완료해야 합니다.
  1. cniCreateMessage를 사용하여 새 메시지를 작성하십시오.
  2. 구문 요소 액세스 유틸리티 함수(예: cniCreateElementAsLastChildUsingParser)를 사용하고 이 새 메시지의 루트 요소를 전달하여 이 새 메시지에 헤더 부분을 작성하십시오.
  3. cniCreateElementAsLastChild와 같은 함수를 사용하여 헤더에 필드를 추가하십시오.
  4. cniCreateElementAsLastChildFromBitstream을 호출하여 비트 스트림을 구문 분석하고 이 새 메시지의 루트 요소를 전달하여 메시지의 본문을 작성하십시오.

리턴 값

브로커는 루프의 일부로서 이 함수를 호출합니다. 리턴 값의 의미는 다음과 같습니다.

CCI_TIMEOUT
입력 노드는 해당 입력 데이터를 수신하지 않았으며, 메시지 플로우 재구성이 요청되는 경우에 대비하여 제어를 WebSphere Message Broker로 돌려보내야 합니다. 사용자 정의 입력 노드는 WebSphere Message Broker로 제어를 돌려보내기 위해 자주 리턴됩니다.
CCI_SUCCESS_CONTINUE
메시지가 정상적으로 처리되었습니다. 디폴트 트랜잭션 확약 처리는 WebSphere Message Broker에 의해 수행됩니다. 노드가 처리를 계속할 수 있도록 입력 노드의 cniRun 구현 함수가 즉시 호출됩니다.
CCI_SUCCESS_RETURN
메시지가 정상적으로 처리되었습니다. 디폴트 트랜잭션 확약 처리는 WebSphere Message Broker에 의해 수행됩니다. 입력 노드는 스레드가 필요하지 않으며 스레드가 메시지 플로우 스레드 풀로 리턴되었다고 판별했습니다. 이 작업이 유일한 스레드 또는 마지막 활성 스레드에서 수행된 경우, WebSphere Message Broker는 이 마지막 스레드가 풀로 리턴되지 않도록 합니다. 이 경우 WebSphere Message Broker는 CCI_SUCCESS_CONTINUE가 리턴된 것처럼 cniRun 구현 함수를 즉시 호출합니다.
CCI_FAILURE_CONTINUE
메시지 처리 중 오류가 감지되었으며 노드가 트랜잭션 롤백 처리 수행을 요청합니다. 입력 노드의 cniRun 구현 함수가 즉시 호출됩니다.
CCI_FAILURE_RETURN
메시지 처리 중 오류가 감지되었으며 노드가 트랜잭션 롤백 처리 수행을 요청합니다. 그러나, 입력 노드는 스레드가 필요하지 않으며 스레드가 메시지 플로우 스레드 풀에 리턴될 수 있다고 판별했습니다. 이 작업이 마지막 활성 스레드에서 수행된 경우, WebSphere Message Broker는 이 마지막 스레드가 풀로 리턴되지 않도록 합니다. 이 경우 WebSphere Message Broker는 CCI_FAILURE_CONTINUE가 리턴된 것처럼 cniRun 구현 함수를 즉시 호출합니다.
관련 태스크
C로 입력 노드 작성
관련 참조
C 노드 구현 함수
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
as07480_