다음을 통해 공유


비동기 송신 어댑터용 인터페이스

한 번에 하나씩 메시지를 보내는 어댑터는 동기적 또는 비동기적으로 메시지를 보낼 수 있습니다. 어댑터에서 전송 프록시 스레드를 차단하지 않고 송신 작업을 수행하는 동안 별도 스레드를 사용하는 경우 비동기적으로 메시지를 보냅니다. 메시지를 비동기적으로 보낼 수 있으려면 어댑터가 다음 인터페이스를 구현해야 합니다.

  • IBTTransport

  • IBaseComponent

  • IBTTransportControl

  • IPersistPropertyBag

  • IBTTransmitter

    다음 단계에서는 송신 어댑터가 메시징 엔진의 요청에 따라 서버에서 메시지를 전송하기 위해 수행하는 작업의 순서에 대해 설명합니다.

  1. 메시징 엔진은 전송 프록시를 사용하여 IBTTransmitter 인터페이스의 TransmitMessage 메서드를 호출하여 송신 어댑터에 보내는 메시지를 전달합니다.

  2. 어댑터는 일부 내부 큐로 보낼 메시지를 저장한 후 TransmitMessage에서 즉시 반환하고 bDeleteMessage에 대해 를 반환 False 합니다. 이렇게 하면 메시지가 비동기적으로 전송됨을 메시징 엔진에서 알 수 있습니다.

  3. 어댑터가 해당 스레드 풀을 사용하여 메시지를 보냅니다.

  4. 송신 작업이 완료된 후 어댑터가 MessageBox 데이터베이스에서 원래 메시지를 삭제합니다. 전송 프록시의 IBTTransportBatch.GetBatch 메서드를 사용하여 메시징 엔진에서 일괄 처리를 가져온 다음 DeleteMessage를 호출합니다.

    다음 그림은 비동기식 송신 어댑터 만들기와 관련된 개체 상호 작용을 보여 줍니다.

    비동기 송신 어댑터를 만드는 데 관련된 개체 상호 작용을 보여 주는 이미지입니다.
    비동기 메시지 송신 워크플로

참고

어댑터에서 현재 처리 중인 메시지 수를 기억해 두는 것이 좋습니다. 어댑터는 메시지 수가 0에 도달할 때까지 Terminate 메서드를 차단해야 합니다. 송신 어댑터의 경우 처리 중인 메시지를 올바르게 다루어야 합니다. 즉, 비동기적으로 전달된 모든 메시지를 어댑터의 개인 응용 프로그램 메시지 큐에서 삭제하여 메시지가 두 번 송신되지 않도록 해야 합니다. 일반적으로 메시징 엔진에서 Terminate 를 호출한 후에는 어댑터에서 새 메시지를 게시하라는 요청을 수락하지 않습니다. 단, 간청-응답 쌍과 관련된 응답 메시지는 예외입니다.

참고 항목

어댑터 변수
송신 어댑터 개발
송신 어댑터 인스턴스화 및 초기화
동기 송신 어댑터용 인터페이스
동기 일괄 처리 지원 송신 어댑터용 인터페이스
비동기 일괄 처리 지원 송신 어댑터용 인터페이스
트랜잭션 비동기 일괄 처리 지원 송신 어댑터용 인터페이스
간청-응답 송신 어댑터용 인터페이스