cciRegisterUserExit

이 함수는 bipInitializeUserExits 호출 중 사용자 코드에 의해 호출될 수 있는 유틸리티 함수입니다. 특정 이벤트가 발생할 때마다 호출될 함수를 등록하기를 원하면 사용자 코드에 의해 호출됩니다.

구문

typedef struct cci_UEVft {
    int     reserved;
    char    StrucId[4];
    int     Version;
    cciInputMessageCallback      iFpInputMessageCallback;
    cciTransactionEventCallback  iFpTransactionEventCallback;
    cciPropagatedMessageCallback iFpPropagatedMessageCallback;
    cciNodeCompletionCallback    iFpNodeCompletionCallback;

} CCI_UE_VFT;

void cciRegisterUserExit (
  int*                   returnCode,
    CciChar*    name,
  CciDataContext*                  userContext,
  CCI_UE_VFT*                      functionTable);

매개변수

returnCode(출력)
함수로부터 리턴 코드가 필요합니다. 가능한 값은 다음과 같습니다.
  • CCI_DUP_USER_EXIT_NAME

    지정된 이름과 현재 실행 그룹에 이전에 등록된 사용자 엑시트의 이름이 일치합니다.

  • CCI_INV_USER_EXIT_NAME

    지정된 이름이 올바르지 않습니다. 널(Null) 포인터, 빈 문자열 또는 영숫자가 아닌 문자를 포함하는 문자열을 지정했기 때문일 수 있습니다.

Name(입력)
이 매개변수는 사용자 엑시트의 이름을 지정하는 널(Null) 종료된 CciChars 문자열에 대한 포인터를 포함해야 합니다. 사용자 엑시트의 이름은 동일한 브로커에 설치될 수 있는 모든 사용자 엑시트에 대해 고유해야 합니다. 이 이름은 예를 들면 다음에서 사용자를 식별하는 데 사용됩니다.
  • 사용자 추적 메시지
  • 예외 또는 syslog 메시지
  • 관리 명령(예: mqsichangeflowuserexits)
이름에는 다음의 제한이 있습니다.
  • 영숫자 문자로만 구성해야 합니다.
  • 255자 이하여야 합니다.
  • 사용자 엑시트의 이름은 동일한 브로커에 설치될 수 있는 모든 사용자 엑시트에 대해 고유해야 합니다.
userContext(입력)
호출자는 콜백 함수가 호출될 때 이 함수로 전달되는 컨텍스트 포인터를 제공할 수 있습니다. 이 매개변수는 널(NULL)이 될 수 있습니다.
functionTable(입력)
이 매개변수는 올바른 서명과 일치하는 함수에 대한 포인터 또는 널(Null)을 포함해야만 하는 필드를 가진 struct에 대한 포인터입니다. 이 필드 중 어느 필드에 대해서라도 널값이 있으면 해당 이벤트에 대해서 사용자 엑시트를 호출해서는 안된다는 것을 의미합니다.

리턴 값

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

extern "C"{

void bipInitializeUserExits(){

    int          rc = CCI_SUCCESS;
  CCI_UE_VFT myVft = {CCI_UE_VFT_DEFAULT};
  myVft.iFpInputMessageCallback      = myInputMessageCallback;
  myVft.iFpTransactionEventCallback  = myTransactionEventCallback;
  myVft.iFpPropagatedMessageCallback = myPropagatedMessageCallback;
  myVft.iFpNodeCompletionCallback    = myNodeCompletionCallback;
  
  cciRegisterUserExit(&rc,
                      MyConstants::myUserExitName,
                      0,
                      &myVft);

  /*you should now check the rc for unexpected values*/
  
    return;
}

}/*end of extern "C" */
관련 태스크
사용자 엑시트 개발
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
as35920_