Share via


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çãoObservaçã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.