4단원: 대화 시작
이 단원에서는 데이터베이스 엔진의 두 인스턴스를 연결하는 대화를 시작하고 시작자 인스턴스에서 대상 인스턴스로 요청 메시지를 보내는 방법을 배웁니다. 이러한 단계는 시작자 인스턴스와 동일한 컴퓨터에서 실행 중인 Management Studio에서 실행해야 합니다.
절차
InitiatorDB 데이터베이스로 전환
다음 코드를 복사하여 쿼리 편집기 창에 붙여 넣습니다. 그런 다음 실행하여 컨텍스트를 InstInitiatorDB 데이터베이스로 전환합니다. 여기서 대화를 시작합니다.
USE InstInitiatorDB; GO
대화 시작 및 요청 메시지 전송
다음 코드를 복사하여 쿼리 편집기 창에 붙여 넣습니다. 그런 다음 실행하여 대화를 시작하고 요청 메시지를 InstTargetDB의 //TgtDB/2InstSample/TargetService에 보냅니다. 변수를 사용하여 대화 핸들을 BEGIN DIALOG에서 SEND 문으로 전달하기 때문에 블록 하나에서 코드를 실행해야 합니다. 이 일괄 처리는 BEGIN DIALOG 문을 실행하여 대화를 시작하고 요청 메시지를 작성합니다. 그런 다음 SEND 문의 대화 핸들을 사용하여 해당 대화에서 요청 메시지를 보냅니다. 마지막 SELECT 문에는 전송된 메시지의 텍스트가 표시됩니다.
DECLARE @InitDlgHandle UNIQUEIDENTIFIER; DECLARE @RequestMsg NVARCHAR(100); BEGIN TRANSACTION; BEGIN DIALOG @InitDlgHandle FROM SERVICE [//InstDB/2InstSample/InitiatorService] TO SERVICE N'//TgtDB/2InstSample/TargetService' ON CONTRACT [//BothDB/2InstSample/SimpleContract] WITH ENCRYPTION = ON; SELECT @RequestMsg = N'<RequestMsg>Message for Target service.</RequestMsg>'; SEND ON CONVERSATION @InitDlgHandle MESSAGE TYPE [//BothDB/2InstSample/RequestMessage] (@RequestMsg); SELECT @RequestMsg AS SentRequestMsg; COMMIT TRANSACTION; GO
다음 단계
성공적으로 대화를 시작하고 대상 서비스에 요청 메시지를 보냈습니다. 이제 대상 큐의 요청 메시지를 받고 시작자 서비스에 응답 메시지를 보냅니다. 자세한 내용은 5단원: 요청 수신 및 응답 전송을 참조하십시오.