다음을 통해 공유


routproc

routproc 함수는 샘플 라우팅 프로시저입니다. 애플리케이션의 일부로 제공해야 합니다. DMOD(동적 액세스 모듈)는 이 애플리케이션에 대해 또는 그렇지 않을 수 있는 메시지와 함께 호출됩니다. DMOD는 메시지를 수락할 때까지 라우팅 프로시저를 차례로 호출합니다.

구문

  
DWORD routproc(   
BUFHDR *msgptr,   
USHORT locl,   
USHORT retstat   
);  

매개 변수

msgptr
DMOD에서 라우팅 프로시저에 전달한 메시지에 대한 포인터입니다.

locl
메시지가 수신된 지역성( retstat 가 반환된 메시지를 나타내는 경우) 또는 경로가 손실된 지역성( retstat 가 경로 오류를 나타내는 경우).

retstat
호출 이유:

CEDINMSG (1)- 메시지가 반환되었습니다.

CEDINLLN (2)- 경로 오류(아래 설명 참조).

반환 값

TRUE
라우팅 프로시저가 메시지를 수락했습니다.

FALSE
메시지는 이 라우팅 프로시저에 대한 것이 아닙니다.

설명

라우팅 프로시저는 먼저 다음과 같이 Open 응답 메시지를 처리하는 sbpurcvx를 호출해야 합니다.

sbpurcvx(&msgptr, locl, retstat)

sbpurcvx의 TRUE 반환 코드는 sbpurcvx가 메시지를 수락했음을 나타냅니다. 이 애플리케이션에 대해 Open 오류 응답이 수신되었으며 리소스 위치가 계속됩니다. 라우팅 프로시저는 메시지를 더 이상 처리하지 않아야 하며 DMOD가 추가 라우팅 프로시저를 호출하지 못하도록 TRUE 를 반환해야 합니다.

sbpurcvxFALSE 반환 코드는 라우팅 프로시저가 다음을 수행해야 했음을 나타냅니다.

  • 메시지가 이 애플리케이션에 대한 경우 메시지에 대한 책임을 지고 TRUE 를 반환하여 DMOD가 추가 라우팅 절차를 호출하지 못하도록 합니다.

  • 이 애플리케이션에 대한 메시지가 아닌 경우 DMOD에서 추가 라우팅 절차를 시도하게 FALSE 를 반환합니다.

    경로 오류가 반환되면 msgptr 은 유효한 메시지를 가리키지 않으며 표시된 지역 값에 대해 더 이상 FMI(함수 관리 인터페이스) 메시지가 반환되지 않습니다. 애플리케이션은 이 지역성을 사용하여 모든 세션을 종료해야 합니다. 라우팅 프로시저는 FALSE를 반환해야 합니다. 이렇게 하면 손실된 지역성이 다른 모든 라우팅 절차에 보고됩니다.

    이 애플리케이션에 대한 메시지인 경우 라우팅 프로시저는 메시지를 즉시 처리하거나 애플리케이션 큐에 메시지를 배치한 다음 세마포를 사용하여 애플리케이션을 게시할 수 있습니다. 자세한 내용은 메시지 수신을 참조하세요.