¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

CREATE SERVICE (Transact-SQL)

Crea un nuevo servicio. Un servicio de Service Broker es un nombre para una tarea o un conjunto de tareas específicos. Service Broker utiliza el nombre del servicio para enrutar mensajes, entregar mensajes a la cola correcta en una base de datos y forzar el contrato para una conversación.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL


CREATE SERVICE service_name
   [ AUTHORIZATION owner_name ]
   ON QUEUE [ schema_name. ]queue_name
   [ ( contract_name | [DEFAULT] [ ,...n ] ) ]
[ ; ]

service_name

Es el nombre del servicio que se va a crear. El servicio nuevo se crea en la base de datos actual, la cual pertenece a la entidad de seguridad especificada en la cláusula AUTHORIZATION. No se pueden especificar nombres de servidor, base de datos o esquema. service_name debe ser un tipo sysname válido.

AUTHORIZATION owner_name

Establece el propietario del servicio en el usuario o función de base de datos especificado. Si el usuario actual es dbo o sa, owner_name puede ser el nombre de cualquier usuario o función válidos. En caso contrario, owner_name debe ser el nombre del usuario actual, el nombre de un usuario para el que el usuario actual tiene permiso IMPERSONATE o el nombre de una función a la que pertenece el usuario actual.

ON QUEUE [ schema_name . ] queue_name

Especifica la cola que recibe mensajes para el servicio. La cola debe existir en la misma base de datos que el servicio. Si no se proporciona schema_name, el valor es el esquema predeterminado del usuario que ejecuta la instrucción.

contract_name

Especifica un contrato para el que este servicio puede ser un destino. Los programas de servicio inician conversaciones con este servicio utilizando los contratos especificados. Si no se especifica ningún contrato, el servicio sólo puede iniciar conversaciones.

[DEFAULT]

Especifica que el servicio puede ser un destino para conversaciones que sigan el contrato DEFAULT. En el contexto de esta cláusula, DEFAULT no es una palabra clave y debe delimitarse como un identificador. El contrato DEFAULT permite que los dos extremos de la conversación envíen mensajes del tipo DEFAULT. El tipo de mensajes DEFAULT utiliza la validación NONE.

Un servicio muestra la funcionalidad proporcionada por los contratos a los que está asociado, de modo que puedan usarlos otros servicios. Este servicio es destino de los contratos que se especifican en la instrucción CREATE SERVICE. Un servicio sólo puede ser destino de conversaciones que utilizan los contratos especificados por el servicio. Un servicio que no especifica ningún contrato no muestra ninguna funcionalidad para otros servicios.

Las conversaciones iniciadas desde este servicio pueden utilizar cualquier contrato. Puede crear un servicio sin especificar contratos sólo si el servicio inicia conversaciones.

Cuando Service Broker acepta una nueva conversación de un servicio remoto, el nombre del servicio de destino determina la cola en la que el broker colocará los mensajes de la conversación.

De forma predeterminada, tienen permiso para crear un servicio los miembros de las funciones fijas de base de datos db_ddladmin o db_owner y la función fija de servidor sysadmin. El usuario que ejecuta la instrucción CREATE SERVICE debe tener permisos REFERENCES en la cola y en todos los contratos especificados.

De forma predeterminada, el permiso REFERENCES para un servicio corresponde al propietario del servicio, a los miembros de las funciones fijas de base de datos db_ddladmin y db_owner y a los miembros de la función fija de servidor sysadmin. De forma predeterminada, tienen permiso SEND de un servicio el propietario del servicio, los miembros de la función fija de base de datos db_owner y los miembros de la función fija de servidor sysadmin.

Un servicio no puede ser un objeto temporal. Los servicios que empiezan por # están permitidos, pero son objetos permanentes.

A. Crear un servicio con un contrato

En el ejemplo siguiente se crea el servicio //Adventure-Works.com/Expenses en la cola ExpenseQueue del esquema dbo. Los diálogos destinados a este servicio deben seguir el contrato //Adventure-Works.com/Expenses/ExpenseSubmission.

CREATE SERVICE [//Adventure-Works.com/Expenses]
    ON QUEUE [dbo].[ExpenseQueue]
    ([//Adventure-Works.com/Expenses/ExpenseSubmission]) ;

B. Crear un servicio con varios contratos

En el ejemplo siguiente se crea el servicio //Adventure-Works.com/Expenses en la cola ExpenseQueue. Los diálogos destinados a este servicio deben seguir el contrato //Adventure-Works.com/Expenses/ExpenseSubmission o el contrato //Adventure-Works.com/Expenses/ExpenseProcessing.

CREATE SERVICE [//Adventure-Works.com/Expenses] ON QUEUE ExpenseQueue
    ([//Adventure-Works.com/Expenses/ExpenseSubmission],
     [//Adventure-Works.com/Expenses/ExpenseProcessing]) ;

C. Crear un servicio sin contratos

En el ejemplo siguiente se crea la cola del servicio //Adventure-Works.com/Expenses on the ExpenseQueue . Este servicio no tiene información de contrato. Por lo tanto, el servicio sólo puede ser el iniciador de un diálogo.

CREATE SERVICE [//Adventure-Works.com/Expenses] ON QUEUE ExpenseQueue ;

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft