다음을 통해 공유


Broker:Conversation 이벤트 클래스

적용 대상: SQL Server Azure SQL Managed Instance

SQL Server는 Service Broker 대화의 진행률을 보고하는 Broker:Conversation 이벤트를 생성합니다.

Broker:Conversation 이벤트 클래스 데이터 열

데이터 열 Type 설명 Column number 필터 가능
ApplicationName nvarchar SQL Server 인스턴스에 대한 연결을 만든 클라이언트 애플리케이션의 이름입니다. 이 열은 표시된 프로그램 이름 대신 애플리케이션에서 전달한 값으로 채워집니다. 10
ClientProcessID int 클라이언트 애플리케이션이 실행 중인 프로세스에 호스트 컴퓨터에서 할당한 ID입니다. 클라이언트가 클라이언트 프로세스 ID를 제공하면 이 데이터 열이 채워집니다. 9
DatabaseID int USE 데이터베이스 문으로 지정된 데이터베이스 의 ID입니다. USE 데이터베이스문이 실행되지 않은 경우 기본 데이터베이스의 ID입니다. Sql Server Profiler는 ServerName 데이터 열이 추적에 캡처되고 서버를 사용할 수 있는 경우 데이터베이스의 이름을 표시합니다. DB_ID 함수를 사용하여 데이터베이스의 값을 결정합니다. 3
EventClass int 캡처된 이벤트 클래스의 형식입니다. Broker:Conversation 의 경우 항상 124입니다. 27 아니요
EventSequence int 이 이벤트의 시퀀스 번호입니다. 51 아니요
EventSubClass nvarchar 이벤트 하위 클래스의 형식입니다. 각 이벤트 클래스에 대한 자세한 정보를 제공합니다. 21
GUID uniqueidentifier 대화 상자의 대화 ID입니다. 이 식별자는 메시지의 일부로 전송되며 양쪽 대화 상대 간에 공유합니다. 54 아니요
HostName nvarchar 클라이언트를 실행 중인 컴퓨터의 이름입니다. 이 데이터 열은 클라이언트에서 호스트 이름을 제공하는 경우 채워집니다. 호스트 이름을 확인하려면 HOST_NAME 함수를 사용합니다. 8
IsSystem int 시스템 프로세스 또는 사용자 프로세스에서 이벤트가 발생했는지 여부를 나타냅니다.

0 = 사용자

1 = 시스템
60 아니요
LoginSid image 로그인한 사용자의 SID(보안 ID)입니다. 각 SID는 서버의 각 로그인에 대해 고유합니다. 41
MethodName nvarchar 대화가 속한 대화 그룹입니다. 47 아니요
NTDomainName nvarchar 사용자가 속한 Windows 도메인입니다. 7
NTUserName nvarchar 이 이벤트를 생성한 연결을 소유한 사용자의 이름입니다. 6
ObjectName nvarchar 대화 상자의 대화 핸들입니다. 34 아니요
우선 순위 int 대화의 우선 순위 수준 5
RoleName nvarchar 대화 핸들의 역할입니다. 초기자 또는 대상입니다. 38 아니요
데이터 열이 추적에서 캡처되고 서버를 사용할 수 있으면 nvarchar 추적 중인 SQL Server 인스턴스의 이름입니다. 26 아니요
심각도 int 이 이벤트가 오류를 보고하는 경우 SQL Server 오류 심각도입니다. 29 아니요
SPID int SQL Server가 클라이언트와 연결된 프로세스에 할당한 서버 프로세스 ID입니다. 12
StartTime 날짜/시간 이벤트가 시작된 시간(사용 가능한 경우)입니다. 14
TextData ntext 대화의 현재 상태입니다. 다음 값 중 하나가 될 수 있습니다. 1
그래서. 아웃바운드를 시작했습니다. SQL Server는 이 대화에 대해 BEGIN CONVERSATION을 처리했지만 메시지가 전송되지 않았습니다.
SI. 인바운드를 시작했습니다. 데이터베이스 엔진 다른 인스턴스가 현재 인스턴스와 새 대화를 시작했지만 현재 인스턴스가 첫 번째 메시지 수신을 완료하지 않았습니다. 첫 번째 메시지가 조각화되거나 SQL Server가 메시지를 순서대로 수신하는 경우 SQL Server에서 이 상태로 대화를 만들 수 있습니다. 그러나 대화에 대해 수신된 첫 번째 전송에 전체 첫 번째 메시지가 포함된 경우 SQL Server는 CO 상태에서 대화를 만들 수 있습니다.
CO. 대화. 대화가 설정되고 대화의 양쪽에서 메시지를 보낼 수 있습니다. 일반적인 서비스에 대한 대부분의 통신은 대화가 이 상태일 때 발생합니다.
DI. 연결이 끊긴 인바운드입니다. 대화의 원격 쪽에서 END CONVERSATION을 실행했습니다. 대화의 로컬 쪽에서 END CONVERSATION을 발급할 때까지 대화는 이 상태로 유지됩니다. 애플리케이션은 여전히 대화에 대한 메시지를 받을 수 있습니다. 대화의 원격 쪽이 대화를 종료했기 때문에 애플리케이션은 이 대화에서 메시지를 보낼 수 없습니다. 애플리케이션이 END CONVERSATION을 실행하면 대화가 CD(닫힘) 상태로 전환됩니다.
DO. 아웃바운드 연결이 끊어졌습니다. 대화의 로컬 쪽에서 END CONVERSATION을 실행했습니다. 원격 대화 상대가 END CONVERSATION을 승인할 때까지 대화는 이 상태로 유지됩니다. 애플리케이션은 대화에 대한 메시지를 보내거나 받을 수 없습니다. 원격 대화 상대가 END CONVERSATION을 승인하면 대화가 CD(닫힘) 상태로 전환됩니다.
ER. 오류. 이 엔드포인트에서 오류가 발생했습니다. 오류, 심각도 및 상태 열에는 발생한 특정 오류에 대한 정보가 포함됩니다.
CD. 종료되었습니다. 대화 엔드포인트가 더 이상 사용되지 않습니다.
Transaction ID bigint 트랜잭션의 시스템 할당 ID입니다. 4 아니요

다음 표에서는 이 이벤트 클래스의 하위 클래스 값을 나열합니다.

ID Subclass 설명
1 SEND Message SQL Server는 데이터베이스 엔진 SEND 문을 실행할 때 SEND Message 이벤트를 생성합니다.
2 END CONVERSATION SQL Server는 데이터베이스 엔진 WITH ERROR 절을 포함하지 않는 END CONVERSATION 문을 실행할 때 END CONVERSATION 이벤트를 생성합니다.
3 END CONVERSATION WITH ERROR SQL Server는 데이터베이스 엔진 WITH ERROR 절을 포함하는 END CONVERSATION 문을 실행할 때 END CONVERSATION WITH ERROR 이벤트를 생성합니다.
4 Broker 시작 오류 SQL Server는 Service Broker에서 오류 메시지를 만들 때마다 Broker 시작 오류 이벤트를 생성합니다. 예를 들어 Service Broker가 대화 상자에 대한 메시지를 성공적으로 라우팅할 수 없는 경우 broker는 대화 상자에 대한 오류 메시지를 만들고 이 이벤트를 생성합니다. SQL Server는 애플리케이션 프로그램이 오류와 대화를 종료할 때 이 이벤트를 생성하지 않습니다.
5 종료 대화 상자 Service Broker가 대화 상자를 종료했습니다. Service Broker는 대화가 계속되지 않지만 오류 또는 대화의 정상적인 종료가 아닌 조건에 따라 대화 상자를 종료합니다. 예를 들어 서비스를 삭제하면 Service Broker가 해당 서비스에 대한 모든 대화 상자를 종료합니다.
6 받은 시퀀스 메시지 SQL Server는 SQL Server에서 메시지 시퀀스 번호가 포함된 메시지를 받을 때 Received Sequenced Message 이벤트 클래스를 생성합니다. 모든 사용자 정의 메시지 유형은 시퀀스된 메시지입니다. Service Broker는 다음 두 가지 경우에 순서가 지정되지 않은 메시지를 생성합니다.

Service Broker에서 생성된 오류 메시지는 순서가 지정되지 않습니다.

메시지 승인이 순차화되지 않을 수 있습니다. 효율성을 위해 Service Broker에는 시퀀스된 메시지의 일부로 사용 가능한 승인 메시지가 포함됩니다. 그러나 애플리케이션이 특정 기간 내에 원격 엔드포인트에 시퀀스된 메시지를 보내지 않는 경우 Service Broker는 메시지 승인에 대한 순서가 지정되지 않은 메시지를 만듭니다.
7 Received END CONVERSATION SQL Server는 SQL Server가 대화의 다른 쪽에서 종료 대화 메시지를 받을 때 Received END CONVERSATION 이벤트를 생성합니다.
8 오류로 종료 대화 수신됨 SQL Server는 SQL Server가 대화의 다른 쪽에서 사용자 정의 오류를 수신할 때 RECEIVed END CONVERSATION WITH ERROR 이벤트를 생성합니다. SQL Server가 broker 정의 오류를 수신할 때 SQL Server는 이 이벤트를 생성하지 않습니다.
9 수신된 Broker 오류 메시지 SQL Server는 Service Broker대화의 다른 쪽에서 broker 정의 오류 메시지를 수신할 때 Received Broker 오류 메시지 이벤트를 생성합니다. Service Broker가 애플리케이션에서 생성한 오류 메시지를 받을 때 SQL Server는 이 이벤트를 생성하지 않습니다.

예를 들어 현재 데이터베이스에 전달 데이터베이스에 대한 기본 경로가 포함된 경우 Service Broker는 알 수 없는 서비스 이름을 가진 메시지를 전달 데이터베이스로 라우팅합니다. 해당 데이터베이스가 메시지를 라우팅할 수 없는 경우 해당 데이터베이스의 broker는 오류 메시지를 만들고 해당 오류 메시지를 현재 데이터베이스에 반환합니다. 현재 데이터베이스가 전달 데이터베이스에서 broker 생성 오류를 받으면 현재 데이터베이스는 Received Broker 오류 메시지 이벤트를 생성합니다.
10 수신된 END CONVERSATION Ack SQL Server는 대화의 다른 쪽에서 대화의 이 쪽에서 보낸 종료 대화 또는 오류 메시지를 승인할 때 Received END CONVERSATION Ack 이벤트 클래스를 생성합니다.
11 BEGIN DIALOG SQL Server는 데이터베이스 엔진 BEGIN DIALOG 명령을 실행할 때 BEGIN DIALOG 이벤트를 생성합니다.
12 Dialog Created Service Broker가 대화 상자의 엔드포인트를 만들 때 SQL Server에서 Dialog Created 이벤트를 생성합니다. Service Broker는 현재 데이터베이스가 시작자인지 아니면 대화의 대상인지에 관계없이 새 대화 상자가 설정될 때마다 엔드포인트를 만듭니다.
13 정리를 사용하여 대화 종료 SQL Server는 데이터베이스 엔진 WITH CLEANUP 절을 포함하는 END CONVERSATION 문을 실행할 때 END CONVERSATION WITH CLEANUP 이벤트를 생성합니다.

참고 항목

SQL Server Service Broker