이 섹션에서는 라우팅과 메시지 배달에 관련된 일반적인 문제를 해결하기 위한 제안 사항을 설명합니다.
Service Broker 메시지 배달이 데이터베이스에서 활성화되었는지 확인합니다. sys.databases의 is_broker_enabled 열은 아래 예제에 있는 것처럼 broker 메시지 배달이 활성화되었는지 여부를 보여 줍니다.
SELECT is_broker_enabled FROM sys.databasesWHERE database_id = DB_ID() ;
메시지가 잘못된 데이터베이스로 배달되는 것을 방지하기 위해 Broker 메시지 배달을 비활성화할 수 있습니다. Service Broker 메시지 배달에 대한 자세한 내용은 Service Broker ID 관리를 참조하십시오. Service Broker 메시지 배달을 활성화하는 방법은 방법: 데이터베이스에서 Service Broker 메시지 배달 활성화(Transact-SQL)를 참조하십시오.
Service Broker 메시지 배달이 활성화되어 있으면 메시지의 transmission_status 열을 확인합니다. 일반적인 오류 메시지는 다음과 같습니다.
메시지 | 설명 |
---|---|
서비스에 대한 경로가 없습니다. |
Service Broker가 지정된 서비스에 대한 경로를 찾을 수 없습니다. |
대상 Service Broker에 연결할 수 없습니다. |
Service Broker가 대상 Service Broker로 메시지를 배달할 수 없습니다. |
전송 계층을 사용할 수 없습니다. |
인스턴스에 Service Broker 끝점이 없거나 Service Broker 끝점이 제대로 시작되지 않았습니다. |
대상 큐가 비활성화되었습니다. |
대상 서비스가 사용하는 큐의 STATUS 옵션이 OFF로 설정되었습니다. Service Broker는 STATUS가 OFF인 큐에 새 메시지를 추가하지 않습니다. |
데이터를 받는 동안 오류가 발생했습니다: '10054(현재 연결은 원격 호스트에 의해 강제로 끊겼습니다.)'. |
대화의 원격측에서 TCP/IP 연결을 수락했지만 메시지 전송을 허용하기 전에 연결을 닫았습니다. |
(없음) |
Service Broker가 아직 메시지 보내기를 시도하지 않았습니다. 이 경우 Service Broker 메시지 배달이 데이터베이스에서 활성화되지 않았음을 의미할 수 있습니다. |
댓글 영역