SOAP 세션 지원 작업 방법
Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오.
모든 SOAP 세션은 옵션 sqlSession 헤더가 포함된 서버와 클라이언트 간의 요청/응답 메시지 쌍을 통해 발생합니다. sqlSession은 SOAP 세션과 관련된 모든 정보를 포함하고 대/소문자를 구분하며 sqloptions 네임스페이스에 속합니다.
서버에서 SOAP 세션을 시작하면 sys.dm_exec_sessions 동적 관리 뷰에 세션이 저장됩니다. 이 뷰는 세션 ID와 각 세션의 시작 시간을 반환합니다. SQL Server Management Studio에서 다음 쿼리를 실행하거나 osql 명령줄 유틸리티를 사용하여 이 테이블을 볼 수 있습니다.
SELECT * FROM [sys].[dm_exec_sessions]
SOAP 세션은 세션 제한 시간 값을 기준으로 만료됩니다. 서버의 기본 또는 최대 세션 제한 시간은 CREATE ENDPOINT 또는 ALTER ENDPOINT DDL 문을 사용하여 설정합니다. 그러나 클라이언트가 기본 간격보다 짧은 제한 시간 값을 요청할 수 있습니다. 클라이언트가 서버의 기본 세션 제한 시간보다 긴 제한 시간을 요청하면 끝점 DDL 문에 지정된 제한 시간이 대신 사용됩니다. 예를 들어 다음 CREATE ENDPOINT를 사용하여 세션 지원에 끝점을 설정했다고 가정합니다.
CREATE ENDPOINT
...
SESSIONS=ENABLED
...
SESSION_TIMEOUT = 60
그런 다음 SOAP 클라이언트가 서버의 최대 세션 제한 시간(60)보다 긴 세션 제한 시간(90)을 요청하면 서버의 최대 세션 제한 시간이 우선하여 실제 제한 시간 간격으로 적용됩니다. 끝점 DDL 문에 SESSION_TIMEOUT을 설정하지 않으면 세션이 만료되지 않습니다.
기본적으로 HTTP 끝점에는 세션이 설정되어 있지 않습니다. 끝점에 세션을 설정하려면 끝점 DDL에 SESSIONS=ENABLED를 지정해야 합니다.
SQL Server 인스턴스가 온라인 상태인 동안에만 세션이 지속됩니다. 서버가 중지되면 모든 세션이 다시 설정된 후 다시 시작됩니다. 또한 끝점을 수정하면 해당 끝점을 사용하는 새 세션이나 열린 세션에 영향을 줄 수 있습니다. 자세한 내용은 SOAP 세션 사용 시 끝점 변경을 참조하십시오.
[!참고]
기존 HTTP SOAP 세션을 조인하는 모든 요청은 인증을 거쳐야 합니다. 자세한 내용은 끝점 인증 유형을 참조하십시오.
세션 상태를 수정하기 위해 세션을 시작하거나 끝낼 수 있지만 일반적으로 세션은 "중지" 상태나 "유휴" 상태입니다. 예를 들어 세션이 시작되어 클라이언트가 사용할 수 있도록 서버에 열려 있는 경우를 "중지" 상태라고 하고 세션이 끝나서 서버에 클라이언트가 사용할 수 있는 세션이 현재 없는 경우를 "유휴" 상태라고 합니다.
[!참고]
WSDL(Web Services Definition Language) 요청은 SOAP 세션에 참여할 수 없습니다. WSDL에 대한 자세한 내용은 WSDL 사용을 참조하십시오.