적용 대상:SQL Server
Azure SQL Managed Instance
SQL Server는 서비스 브로커 대화의 진행 상황을 보고하는 이벤트를 Broker:Conversation 생성합니다.
Broker:Conversation 이벤트 클래스 데이터 컬럼
| 데이터 열 | Type | 설명 | 열 번호 | 필터 가능 |
|---|---|---|---|---|
ApplicationName |
nvarchar | SQL Server 인스턴스에 대한 연결을 만든 클라이언트 애플리케이션의 이름입니다. 이 열은 표시된 프로그램 이름 대신 애플리케이션에서 전달한 값으로 채워집니다. | 10 | 예 |
ClientProcessID |
int | 클라이언트 애플리케이션이 실행 중인 프로세스에 호스트 컴퓨터가 할당한 ID입니다. 클라이언트가 클라이언트 프로세스 ID를 제공하면 이 데이터 열이 채워집니다. | 9 | 예 |
DatabaseID |
int | 문장에 의해 USE <database> 지정된 데이터베이스의 ID입니다. 문장이 발행되지 않았다 USE <database> 면, 이 열은 기본 데이터베이스의 ID를 지정합니다. SQL Server Profiler는 ServerName 데이터 열이 추적에 캡처되고 서버를 사용할 수 있는 경우 데이터베이스의 이름을 표시합니다. 함수를 사용하여 DB_ID 데이터베이스의 값을 결정합니다. |
3 | 예 |
EventClass |
int | 캡처된 이벤트 클래스의 형식입니다. 항상 에 대해124.Broker:Conversation |
27 | 아니요 |
EventSequence |
int | 이 이벤트의 시퀀스 번호입니다. | 51 | 아니요 |
EventSubClass |
nvarchar | 이벤트 하위 클래스의 형식입니다. 각 이벤트 클래스에 대한 자세한 정보를 제공합니다. | 21 | 예 |
GUID |
uniqueidentifier | 대화 상자의 대화 ID입니다. 이 식별자는 메시지의 일부로 전송되며 양쪽 대화 상대 간에 공유합니다. | 54 | 아니요 |
HostName |
nvarchar | 클라이언트를 실행 중인 컴퓨터의 이름입니다. 클라이언트가 호스트 이름을 제공할 경우 이 데이터 열이 채워집니다. 호스트 이름을 확인하려면 함수를 HOST_NAME 사용합니다. |
8 | 예 |
IsSystem |
int | 시스템 프로세스 또는 사용자 프로세스에서 이벤트가 발생했는지 여부를 나타냅니다. 0 = user1 = system |
60 | 아니요 |
LoginSid |
image | 로그인한 사용자의 SID(보안 ID)입니다. 각 SID는 서버의 각 로그인에 대해 고유합니다. | 41 | 예 |
MethodName |
nvarchar | 대화가 속한 대화 그룹입니다. | 47 | 아니요 |
NTDomainName |
nvarchar | 사용자가 속한 Windows 도메인입니다. | 7 | 예 |
NTUserName |
nvarchar | 이 이벤트를 생성한 연결을 소유한 사용자의 이름입니다. | 6 | 예 |
ObjectName |
nvarchar | 대화 상자의 대화 핸들입니다. | 34 | 아니요 |
Priority |
int | 대화의 우선 순위 수준 | 5 | 예 |
RoleName |
nvarchar | 대화 핸들의 역할입니다. 이것은 또는 initiator중 하나입니다target. |
38 | 아니요 |
ServerName |
nvarchar | 추적 중인 SQL Server 인스턴스의 이름입니다. | 26 | 아니요 |
Severity |
int | 이 이벤트가 오류를 보고하는 경우 SQL Server 오류 심각도입니다. | 29 | 아니요 |
SPID |
int | SQL Server가 클라이언트와 연관된 프로세스에 할당하는 세션 ID입니다. | 12 | 예 |
StartTime |
날짜/시간 | 이벤트가 시작된 시간(사용 가능한 경우)입니다. | 14 | 예 |
TextData |
ntext | 대화의 현재 상태입니다. 다음 값 중 하나가 될 수 있습니다. | 1 | 예 |
SO; 아웃바운드를 시작했습니다. SQL Server는 이 대화를 위해 a 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; 오류. 이 엔드포인트에서 오류가 발생했습니다.
Error, Severity, 열 State 에는 발생한 특정 오류에 대한 정보가 포함되어 있습니다. |
||||
CD; 종료되었습니다. 대화 엔드포인트가 더 이상 사용되지 않습니다. |
||||
TransactionID |
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 Initiated Error |
SQL Server는 서비스 브로커가 오류 메시지를 생성할 때마다 이벤트를 생성합니다Broker Initiated Error. 예를 들어, 서비스 브로커가 대화 메시지를 성공적으로 라우팅하지 못하면, 해당 대화에 대한 오류 메시지를 생성하고 이 이벤트를 생성합니다. SQL Server는 애플리케이션 프로그램이 대화를 오류 없이 종료할 때 이 이벤트를 생성하지 않습니다. |
| 5 | Terminate Dialog |
Service Broker가 대화 상자를 종료했습니다. 서비스 브로커는 대화가 계속되지 못하는 조건에 대응하여 대화를 종료하지만, 이는 오류나 정상적인 대화 종료는 아닙니다. 예를 들어 서비스를 삭제하면 Service Broker가 해당 서비스에 대한 모든 대화 상자를 종료합니다. |
| 6 | Received Sequenced Message |
SQL Server는 메시지 시퀀스 번호가 포함된 메시지를 SQL Server가 받을 때 이벤트 클래스를 Received Sequenced Message 생성합니다. 모든 사용자 정의 메시지 유형은 시퀀스된 메시지입니다. Service Broker는 다음 두 가지 경우에 순서가 지정되지 않은 메시지를 생성합니다.Service Broker에서 생성된 오류 메시지는 순서가 지정되지 않습니다. 메시지 확인 응답이 순서가 없을 수도 있습니다. 효율성을 위해 서비스 브로커는 시퀀스 메시지의 일부로 사용 가능한 모든 확인 응답을 메시지로 포함시킵니다. 하지만 애플리케이션이 일정 시간 내에 원격 엔드포인트에 순서가 있는 메시지를 보내지 않으면, Service Broker는 메시지 확인을 위해 순서가 없는 메시지를 생성합니다. |
| 7 | Received END CONVERSATION |
SQL Server는 대화 상대편으로부터 대화 종료 메시지를 받으면 SQL Server가 이벤트를 생성합니다Received END CONVERSATION. |
| 8 | Received END CONVERSATION WITH ERROR |
SQL Server 대화 상대방으로부터 사용자 정의 오류를 받으면 이벤트SQL Server Received END CONVERSATION WITH ERROR 생성됩니다. SQL Server가 브로커 정의 오류를 받으면 SQL Server는 이 이벤트를 생성하지 않습니다. |
| 9 | Received Broker Error Message |
SQL Server는 서비스 브로커가 대화 상대편으로부터 브로커가 정의한 오류 메시지를 수신하면 이벤트를 Received Broker Error Message 생성합니다. SQL Server는 애플리케이션 생성 오류 메시지를 받으면 이 이벤트를 생성하지 않습니다.예를 들어 현재 데이터베이스에 전달 데이터베이스에 대한 기본 경로가 포함된 경우 Service Broker는 알 수 없는 서비스 이름을 가진 메시지를 전달 데이터베이스로 라우팅합니다. 만약 그 데이터베이스가 메시지를 라우팅할 수 없으면, 그 데이터베이스 내 브로커가 오류 메시지를 생성하고 그 오류 메시지를 현재 데이터베이스로 반환합니다. 현재 데이터베이스가 전달 데이터베이스로부터 브로커가 생성한 오류를 받으면, 현재 데이터베이스는 이벤트를 Received Broker Error Message 생성합니다. |
| 10 | Received END CONVERSATION Ack |
SQL Server는 대화의 상대방이 이 쪽에서 보낸 메시지를 Error 확인 End Dialog 했을 때 이벤트 클래스를 Received END CONVERSATION Ack 생성합니다. |
| 11 | BEGIN DIALOG |
SQL Server는 데이터베이스 엔진이 명령을 실행할 BEGIN DIALOG 때 이벤트를 생성합니다BEGIN DIALOG. |
| 12 | Dialog Created |
SQL Server는 서비스 브로커가 대화 엔드포인트를 생성할 때 이벤트를 생성합니다Dialog Created. Service Broker는 현재 데이터베이스가 시작자인지 아니면 대화의 대상인지에 관계없이 새 대화 상자가 설정될 때마다 엔드포인트를 만듭니다. |
| 13 | END CONVERSATION WITH CLEANUP |
SQL Server는 데이터베이스 엔진이 해당 WITH CLEANUP 절을 포함하는 문장을 실행할 END CONVERSATION 때 이벤트를 생성합니다END CONVERSATION WITH CLEANUP. |