Compartilhar via


srv_getbindtoken (API de Procedimento Armazenado Estendido)

Aplica-se: SQL Server

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Use a integração CLR em vez disso.

Obtém um token de associação da transação na sessão de cliente atual que invoca o procedimento armazenado estendido.

O procedimento armazenado estendido pode então usar sp_bindsession para associar qualquer sessão nova criada por ele no mesmo servidor à transação existente, de modo que a nova sessão possa compartilhar o mesmo espaço para bloqueio de transação com a sessão de cliente que invocou o procedimento armazenado estendido.

Sintaxe

  
int srv_getbindtoken (  
SRV_PROC*  
srvproc  
,  
char*  
bindtoken  
);  

Argumentos

srvproc
É um ponteiro para a estrutura SRV_PROC que atua como identificador de uma conexão de cliente específica. A estrutura contém todas as informações que a biblioteca de APIs de Procedimento Armazenado Estendido usa para gerenciar as comunicações e os dados entre o aplicativo e o cliente.

bindtoken
É um ponteiro para um buffer em que o token de associação será copiado. O token de associação é representado como uma cadeia de caracteres terminada por caractere nulo. O buffer que você especifica deve ter pelo menos 255 bytes.

Devoluções

SUCCEED ou FAIL.

Comentários

Para associar uma sessão de procedimento armazenado estendido à sessão de cliente que a chamou para que compartilhem o mesmo espaço para bloqueio de transação

  1. O procedimento armazenado estendido chama srv_getbindtoken para obter o token de associação para a transação atual na sessão. O token é retornado no parâmetro bindtoken especificado.

  2. O procedimento armazenado estendido abre sessão(ões) nova(s) com relação ao mesmo servidor. Nessa sessão, o procedimento armazenado estendido usa o token de associação com sp_bindsession para associar a nova sessão à mesma transação. O procedimento armazenado estendido pode criar várias sessões e associar todas as sessões à mesma transação.

  3. Uma sessão associada é desassociada quando o procedimento armazenado externo é retornado ou quando sp_bindsession é chamado com uma cadeia de caracteres vazia.

    Observação

    Somente uma sessão associada por vez pode ter acesso a uma conexão compartilhada. Se uma sessão no momento estiver executando uma instrução no servidor ou tiver resultados pendentes no servidor, nenhuma outra sessão que compartilha a mesma conexão associada poderá obter acesso ao servidor enquanto a sessão atual não tiver concluído a execução da instrução atual. Se uma sessão tentar obter acesso à conexão enquanto o servidor está ocupado, será retornado um erro para a sessão conflitante indicando que a conexão está sendo usada e que a sessão deve tentar novamente mais tarde.

Importante

Você deve examinar totalmente o código-fonte de procedimentos armazenados estendidos e deve testar as DLLs compiladas antes de instalá-las em um servidor de produção. Para obter informações sobre revisão e testes de segurança, consulte este site da Microsoft.

Confira também

sp_bindsession (Transact-SQL)
sp_getbindtoken (Transact-SQL)