Iniciando uma sessão SOAP
Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.
Para iniciar uma sessão, uma solicitação de cliente deve incluir o cabeçalho sqlSession e especificar o atributo de iniciação com o valor true. Se uma sessão for estabelecida com êxito, a resposta do servidor conterá o cabeçalho da sessão que especifica um valor gerado pelo servidor para a propriedade sessionID.
As credenciais de segurança do iniciador da sessão estão associadas à sessão, e todas as solicitações subseqüentes durante a sessão devem ser executadas com as mesmas credenciais.
Se o ponto de extremidade HTTP que serve a sessão SOAP tiver especificado uma cláusula DATABASE, esta definição terá efeito somente para a solicitação que estiver iniciando a sessão. Solicitações subseqüentes são executadas no banco de dados atual da sessão.
Observação |
---|
sessões SOAP são independentes da conexão e podem durar mais que as conexões do SQL Server. sessões SOAP não são consideradas na contagem do máximo de conexões para o servidor. |
Exemplo
O seguinte exemplo mostra como iniciar uma sessão SOAP. Quando uma sessão SOAP é iniciada, são usadas as seguintes mensagens:
A solicitação SOAP enviada pelo cliente de serviços Web para solicitar uma sessão
A resposta SOAP retornada pelo servidor para confirmar a solicitação
A seguir é mostrado um exemplo de solicitação SOAP que seria enviada pelo cliente.
<SOAP-ENV:Header
xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
<!-- create a new session, with explicit timeout --><sqloptions:sqlSession initiate="true" timeout="12"/>
</SOAP-ENV:Header>
Observe que o nome de opção faz diferenciação de maiúsculas e minúsculas; então, a cadeia de caracteres exata deve incluir o S maiúsculo, pois sqlSession é codificado previamente.
Para iniciar a sessão, o servidor retornaria, então, a seguinte solicitação.
<SOAP-ENV:Header
xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
<!-- response to creating a new session, or enlisting in an existing session --><sqloptions:sqlSession sessionId="AAAAADreaLE=" timeout="12"/>
</SOAP-ENV:Header>
Neste exemplo, desde que o valor de tempo limite solicitado seja menor ou igual ao tempo limite máximo da sessão definido no servidor no ponto de extremidade HTTP, o servidor obedecerá ao intervalo de tempo limite solicitado pelo cliente e fará o eco do mesmo valor ("12") na resposta. Se o intervalo de tempo limite especificado pelo cliente na solicitação for maior que o tempo limite máximo para o servidor, o tempo limite máximo do servidor será especificado na resposta ao cliente.
Consulte também