Compartir a través de


srv_getbindtoken (API de procedimiento almacenado extendido)

Nota importanteImportante

Esta característica se quitará en una versión futura de Microsoft SQL Server. No utilice esta característica en nuevos trabajos de desarrollo y modifique lo antes posible las aplicaciones que actualmente la utilizan. En su lugar, utilice la integración CLR.

Obtiene un token de enlace de la transacción en la sesión del cliente actual que invoca el procedimiento almacenado extendido.

A continuación, el procedimiento almacenado extendido puede usar sp_bindsession para enlazar cualquier sesión nueva que crea con el mismo servidor a la transacción existente de manera que la nueva sesión pueda compartir el mismo espacio de bloqueo de transacción con la sesión del cliente que invocó el procedimiento almacenado extendido.

Sintaxis


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

Argumentos

  • srvproc
    Es un puntero a la estructura SRV_PROC que es el identificador de una conexión cliente determinada. La estructura contiene toda la información que la biblioteca de API Procedimiento almacenado extendido usa para administrar las comunicaciones y los datos entre la aplicación y el cliente.

  • bindtoken
    Es un puntero a un búfer donde se copiará el token de enlace. El token de enlace se representa como una cadena terminada en NULL. El búfer que especifica debería tener por lo menos 255 bytes de longitud.

Devuelve

SUCCEED o FAIL.

Notas

Para enlazar una sesión de procedimiento almacenado extendido a la sesión del cliente que lo llamó de modo que compartan el mismo espacio de bloqueo de transacción

  1. El procedimiento almacenado extendido llama a svr_getbindtoken para obtener el token de enlace para la transacción actual de la sesión. El token se devuelve en el parámetro bindtoken determinado.

  2. El procedimiento almacenado extendido abre nuevas sesiones con el mismo servidor. Dentro de dicha sesión, el procedimiento almacenado extendido usa el token de enlace con sp_bindsession para enlazar la nueva sesión a la misma transacción. El procedimiento almacenado extendido puede crear varias sesiones y enlazar todas las sesiones a la misma transacción.

  3. Una sesión enlazada se desenlaza cuando el procedimiento almacenado externo devuelve o cuando se llama a sp_bindsession con una cadena vacía.

    [!NOTA]

    Sólo una sesión enlazada puede tener cada vez acceso a una conexión compartida. Si una sesión está ejecutando actualmente una instrucción en el servidor o tiene resultados pendientes del servidor, ninguna otra sesión que comparta la misma conexión de enlace puede obtener acceso al servidor hasta que la sesión actual haya finalizado de ejecutar la instrucción actual. Si una sesión intenta obtener acceso a la conexión mientras el servidor no está disponible, se devolverá un error a la sesión en conflicto que indique que la conexión se está usando y que se debería reintentar la sesión más tarde.

Nota de seguridadNota de seguridad

Debe revisar cuidadosamente el código fuente de los procedimientos almacenados extendidos y debe probar las DLL compiladas antes de instalarlas en el servidor de producción. Para obtener información acerca de la revisión y pruebas de seguridad, vea este sitio web de Microsoft.