Obtenga información sobre las propiedades de enlace del adaptador de BizTalk para SQL Server adaptador.
El adaptador de Microsoft BizTalk para SQL Server muestra varias propiedades de enlace. Al establecer estas propiedades, puede controlar parte del comportamiento del adaptador. En esta sección se describen las propiedades de enlace expuestas por el adaptador de SQL. También muestra cómo puede acceder a ellos mediante la programación de .NET o estableciendo propiedades en un enlace de puerto físico de BizTalk Server.
Propiedades de enlace del adaptador
En la tabla siguiente se muestran las propiedades de enlace del adaptador de SQL agrupadas por categoría. La categoría hace referencia al nodo en el que cada propiedad de enlace aparece en los cuadros de diálogo que presentan diferentes aplicaciones para configurar el adaptador (o enlace).
XmlStoredProcedureRootNodeName
Categoría: FOR XML
Descripción: especifica el nombre del nodo raíz para el esquema de respuesta para los procedimientos almacenados que tienen una cláusula FOR XML en la instrucción SELECT. Este nodo raíz encapsula la respuesta XML recibida de SQL Server después de ejecutar estos procedimientos almacenados. Debe agregar este nodo raíz al esquema de respuesta como se describe en el tema Ejecutar procedimientos almacenados que tienen una cláusula FOR XML en SQL Server mediante BizTalk Server.
Importante
Debe establecer esta propiedad de enlace al ejecutar procedimientos almacenados con la cláusula FOR XML.
Tipo de .NET: cadena
XmlStoredProcedureRootNodeNamespace
Categoría: FOR XML
Descripción: especifica el espacio de nombres de destino del nodo raíz para el esquema de respuesta para los procedimientos almacenados que tienen una cláusula FOR XML en la instrucción SELECT.
Tipo de .NET: cadena
CloseTimeout
Categoría: General
Descripción: tiempo de espera de cierre de la conexión WCF. El valor predeterminado es 1 minuto.
Tipo de .NET: System.TimeSpan
Nombre
Categoría: General
Descripción: valor de solo lectura que devuelve el nombre del archivo generado por el complemento Agregar referencia del servicio adaptador de Visual Studio para contener la clase de cliente WCF. El complemento Agregar referencia del servicio adaptador forma el nombre de archivo anexando "Client" al valor de la propiedad Name . El valor predeterminado de esta propiedad es "SqlAdapterBinding"; para este valor, el archivo generado se denominará "SqlAdapterBindingClient".
Tipo de .NET: cadena
OpenTimeout
Categoría: General
Descripción: especifica el tiempo de espera de apertura de la conexión WCF. El valor predeterminado es 1 minuto.
Importante
El adaptador de SQL siempre usa OpenTimeout para establecer el tiempo de espera de apertura de la conexión cuando se abre una conexión a SQL Server. El adaptador omite los parámetros de tiempo de espera (System.TimeSpan) pasados al abrir un objeto de comunicación. Por ejemplo, el adaptador omite los parámetros de tiempo de espera pasados al abrir un canal.
Tipo de .NET: System.TimeSpan
ReceiveTimeout
Categoría: General
Descripción: especifica el tiempo de espera de recepción del mensaje WCF. Básicamente, esto significa la cantidad máxima de tiempo que el adaptador espera para un mensaje entrante. El valor predeterminado es 10 minutos.
Importante
Para las operaciones entrantes, como el sondeo, se recomienda establecer el tiempo de espera en el valor máximo posible, que es 24.20:31:23.6470000 (24 días). Al usar el adaptador con BizTalk Server, establecer el tiempo de espera en un valor grande no afecta a la funcionalidad del adaptador.
Tipo de .NET: System.TimeSpan
SendTimeout
Categoría: General
Descripción: especifica el tiempo de espera de envío del mensaje WCF. El valor predeterminado es 1 minuto.
Tipo de .NET: System.TimeSpan
EnableBizTalkCompatibilityMode
Categoría: BizTalk
Descripción: indica si el adaptador se usa con BizTalk Server o una aplicación .NET.
- Al usar los adaptadores de BizTalk Server (o generar metadatos para las operaciones en SQL Server mediante el adaptador en un proyecto de BizTalk), siempre debe establecer la propiedad en True. Esto garantiza que el esquema generado para System.Data.DataSet esté en un formato compatible con BizTalk Server. De lo contrario, el proyecto de BizTalk no se compilará.
- Al usar los adaptadores de Visual Studio en una aplicación .NET, debe establecer la propiedad en False si desea usar la respuesta como dataSet. Esto garantiza que el esquema generado para System.Data.DataSet tiene un formato compatible con DataContractSerializer de WCF.
Tipo de .NET: bool (System.Boolean)
BatchSize
Categoría: almacenamiento en búfer
Descripción: especifica el tamaño del lote para varias operaciones de inserción, actualización y eliminación de registros en una tabla o vista en una base de datos de SQL Server. El valor predeterminado es 20. En el caso de los valores de BatchSize mayor que uno, el adaptador de SQL agrupa por lotes el número especificado de registros en una sola llamada. Un valor mayor puede mejorar el rendimiento, pero afecta al consumo de memoria.
Tipo de .NET: int (System.Int32)
ChunkSize
Categoría: almacenamiento en búfer
Descripción: especifica el tamaño del búfer usado para las operaciones set<column_name> . El valor predeterminado es 4194304 bytes. Un valor mayor puede mejorar el rendimiento, pero afecta al consumo de memoria.
Nota
Para obtener más información sobre el conjunto<de operaciones de column_name> , vea Operaciones en tablas y vistas que contienen tipos de datos grandes mediante el adaptador de SQL.
Tipo de .NET: int (System.Int32)
Cifrado
Categoría: Conexión
Descripción: especifica si SQL Server (con un certificado válido instalado) usa el cifrado SSL para todas las transferencias de datos entre SQL Server y el cliente. El valor predeterminado es false.
Tipo de .NET: bool (System.Boolean)
MaxConnectionPoolSize
Categoría: Descripción de la conexión: especifica el número máximo de conexiones permitidas en un grupo de conexiones para un cadena de conexión específico. El valor predeterminado es 100. Esta propiedad se usa para la optimización del rendimiento.
Importante
Debe establecer MaxConnectionPoolSize con criterio. Es posible agotar el número de conexiones disponibles, si este valor es demasiado grande.
Tipo de .NET: int (System.Int32)
WorkstationId
Categoría: Conexión
Descripción: especifica un identificador único para la estación de trabajo (equipo cliente) que se conecta a la base de datos de SQL Server mediante el adaptador de SQL. El valor de esta propiedad de enlace, si se especifica, se usa para la palabra clave Id. de estación de trabajo de la propiedad SqlConnection.ConnectionString. Para obtener más información, vea Propiedad SqlConnection.ConnectionString.
Tipo de .NET: cadena
EnablePerformanceCounters
Categoría: Diagnósticos
Descripción: especifica si se habilitan los contadores de rendimiento del SDK del adaptador de LOB de WCF y el contador de rendimiento de latencia de LOB del adaptador de SQL. El valor predeterminado es False; los contadores de rendimiento están deshabilitados. El contador de rendimiento de latencia de LOB mide el tiempo total empleado por el adaptador de SQL en realizar llamadas a la base de datos SQL Server.
Para obtener más información sobre los contadores de rendimiento para el adaptador de SQL, consulte Uso de contadores de rendimiento con el adaptador de SQL.
Tipo de .NET: int (System.Int32)
InboundOperationType
Categoría: entrante
Descripción: especifica si desea realizar la operación de entrada Polling, TypedPolling, XmlPolling o Notification . El valor predeterminado es Sondeo.
Para obtener más información sobre polling, TypedPolling y XmlPolling , vea Support for Polling. Para obtener más información sobre la notificación, vea Consideraciones para recibir notificaciones de consulta mediante el adaptador de SQL.
Tipo de .NET: enumeración
UseDatabaseNameInXsdNamespace
Categoría: Metadatos
Descripción: especifica si el XSD generado para un artefacto determinado contiene el nombre de la base de datos. Establezca esta opción en True para incluir el nombre de la base de datos. De lo contrario, establézcalo en False. El valor predeterminado es false.
Esto es útil en escenarios en los que una sola aplicación quiere ejecutar operaciones en artefactos con nombre idéntico con metadatos diferentes en bases de datos diferentes. Si no hay ningún nombre de base de datos en el espacio de nombres, los metadatos generados entrarán en conflicto. Al establecer esta propiedad de enlace, puede incluir el nombre de la base de datos en el espacio de nombres, lo que los convierte en únicos. Este es un ejemplo que resalta el cambio en el espacio de nombres.
UseDatabaseNameInXsdNamespace = False
http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Employee
UseDatabaseNameInXsdNamespace = True
http://schemas.microsoft.com/Sql/2008/05/TableOp/MyDatabase/dbo/Employee
Observe que el nombre de la base de datos se incluye en el espacio de nombres cuando la propiedad de enlace está establecida en True.
Tipo de .NET: enumeración
AllowIdentityInsert
Categoría: Varios
Descripción: especifica si el adaptador puede insertar valores para las columnas de identidad durante las operaciones de inserción y actualización. Establezca esta propiedad en True para insertar o actualizar los valores de las columnas de identidad. De lo contrario, establézcalo en False (valor predeterminado).
Nota
Establecer esta propiedad en True se traduce en el adaptador mediante SET IDENTITY_INSERT <table_name> ON
. Para obtener más información, vea SET IDENTITY_INSERT (Transact-SQL).
Al usar esta propiedad de enlace, debe tener en cuenta los siguientes puntos:
- El adaptador no valida el valor que está pasando para la columna de identidad. Por ejemplo, si una tabla tiene una columna de identidad que tiene "Inicialización de identidad" establecida en 100 e "Incremento de identidad" establecida en 1, y el cliente del adaptador pasa un valor, por ejemplo, 95, para la columna de identidad, el adaptador simplemente pasa este valor a SQL Server.
- Incluso si establece AllowIdentityInsert en True, no es obligatorio que un cliente de adaptador especifique un valor para la columna de identidad en el mensaje de solicitud. Si hay un valor presente para la columna de identidad, el adaptador lo pasa a SQL Server. Si un valor no está presente, SQL Server insertará un valor en función de la especificación de la columna de identidad.
Tipo de .NET: bool (System.Boolean)
NotificationStatement
Categoría: Notificación (entrante)
Descripción: especifica la instrucción SQL (procedimiento> almacenado SELECT o EXEC<) que se usa para registrarse para SQL Server notificaciones. Debe especificar específicamente los nombres de columna en la instrucción , como se muestra en la siguiente instrucción SELECT:
SELECT Employee_ID,Designation FROM dbo.Employee WHERE Status=0
Nota
Debe especificar el nombre del objeto de base de datos junto con el nombre del esquema. Por ejemplo, dbo.Employee
.
El adaptador obtiene un mensaje de notificación de SQL Server solo cuando cambia el conjunto de resultados de la instrucción SQL especificada.
Tipo de .NET: cadena
NotifyOnListenerStart
Categoría: Notificación (entrante)
Descripción: especifica si el adaptador envía un mensaje de notificación a los clientes del adaptador, informando de que la ubicación de recepción se está ejecutando cuando se inicia el agente de escucha. El valor predeterminado es true.
El mensaje de notificación que recibe es similar al siguiente:
<?xml version="1.0" encoding="utf-8" ?>
<Notification xmlns="http://schemas.microsoft.com/Sql/2008/05/Notification/">
<Info>ListenerStarted</Info>
<Source>SqlBinding</Source>
<Type>Startup</Type>
</Notification>
Tipo de .NET: bool (System.Boolean)
PolledDataAvailableStatement
Categoría: Sondeo (entrante)
Descripción: especifica la instrucción SQL ejecutada para determinar si hay datos disponibles para sondear una tabla específica en una base de datos de SQL Server. La instrucción especificada debe devolver un conjunto de resultados que consta de filas y columnas. El valor de la primera celda del conjunto de resultados indica si el adaptador ejecuta la instrucción SQL especificada para la propiedad de enlace PollingStatement . Si la primera celda del resultado contiene un valor positivo, el adaptador ejecutó la instrucción de sondeo.
A continuación se muestran ejemplos de algunas instrucciones válidas que puede especificar para esta propiedad de enlace:
Si va a especificar una instrucción SELECT:
SELECT COUNT(*) from <table_name>
Si especifica un procedimiento almacenado, es posible que el procedimiento almacenado se defina como:
CREATE PROCEDURE <procedure_name> AS BEGIN SELECT COUNT(*) FROM <table_name> END GO
o
CREATE PROCEDURE <procedure_name> AS BEGIN DECLARE @count int SELECT @count = SELECT(*) FROM <table_name> SELECT @count END GO
Si usa un procedimiento almacenado, especificaría PolledDataAvailableStatement como EXEC <procedure_name>
.
Importante
La instrucción especificada para esta propiedad de enlace no se ejecuta dentro de una transacción iniciada por el adaptador y se puede llamar varias veces antes de que se ejecute la instrucción de sondeo real (incluso si la ejecución de la instrucción indica que hay filas disponibles para el sondeo).
Tipo de .NET: cadena
PollingIntervalInSeconds
Categoría: Sondeo (entrante)
Descripción: especifica el intervalo, en segundos, en el que el adaptador de SQL ejecuta la instrucción especificada para la propiedad de enlace PolledDataAvailableStatement . El valor predeterminado es 30 segundos. El intervalo de sondeo determina el intervalo de tiempo entre sondeos sucesivos. Si la instrucción se ejecuta dentro del intervalo especificado, el adaptador estará inactivo durante el tiempo restante del intervalo.
Tipo de .NET: int (System.Int32)
PollingStatement
Categoría: Sondeo (entrante)
Descripción: especifica la instrucción SQL que se va a sondear una tabla de base de datos SQL Server. Puede especificar una instrucción SELECT simple o procedimientos almacenados para la instrucción de sondeo. El valor predeterminado es NULL. Debe especificar un valor para PollingStatement para habilitar el sondeo. La instrucción de sondeo solo se ejecuta si hay datos disponibles para el sondeo, que viene determinado por la propiedad de enlace PolledDataAvailableStatement .
Puede especificar cualquier número de instrucciones SQL separadas por un punto y coma. Puede usar la instrucción de sondeo para leer o actualizar datos en una tabla de base de datos de SQL Server. El adaptador de SQL ejecuta las instrucciones de sondeo dentro de una transacción. Cuando el adaptador se usa con BizTalk Server, se usa la misma transacción para enviar mensajes de SQL Server al cuadro de mensaje de BizTalk.
Tipo de .NET: cadena
PollWhileDataFound
Categoría: Sondeo (entrante)
Descripción: especifica si el adaptador de SQL omite el intervalo de sondeo y ejecuta continuamente la instrucción SQL especificada para la propiedad de enlace PolledDataAvailableStatement , si los datos están disponibles en la tabla que se está sondeando. Si no hay datos disponibles en la tabla, el adaptador revierte para ejecutar la instrucción SQL en el intervalo de sondeo especificado. El valor predeterminado es false.
Considere un escenario en el que el intervalo de sondeo se establece en 60 segundos y la instrucción especificada para PolledDataAvailableStatement devuelve que los datos están disponibles para el sondeo. A continuación, el adaptador ejecuta la instrucción especificada para la propiedad de enlace PollingStatement . Suponiendo que el adaptador tarda solo 10 segundos en ejecutar la instrucción de sondeo, ahora tendrá que esperar 50 segundos antes de volver a ejecutar PolledDataAvailableStatement y, después, ejecutar la instrucción de sondeo. En su lugar, para optimizar el rendimiento, puede establecer la propiedad de enlace PollWhileDataFound en true para que el adaptador pueda empezar a ejecutar el siguiente ciclo de sondeo tan pronto como finalice el ciclo de sondeo anterior.
Tipo de .NET: bool (System.Boolean)
UseAmbientTransaction
Categoría: Transacción
Descripción: especifica si el adaptador de SQL realiza las operaciones mediante el contexto transaccional proporcionado por el autor de la llamada. El valor predeterminado es true, lo que significa que el adaptador siempre realiza las operaciones en un contexto transaccional. Si hay otros recursos que participan en la transacción y SQL Server también se une a la transacción, la transacción se eleva a una transacción MSDTC.
Sin embargo, puede haber escenarios en los que no desee que el adaptador realice operaciones en un contexto transaccional. Por ejemplo:
- Al realizar una operación Select simple en una base de datos de SQL Server
- Al especificar una instrucción de sondeo que realiza una operación Select y no implica ningún cambio en la tabla a través de una instrucción Delete o mediante la invocación de un procedimiento almacenado.
Ambas operaciones no realizan ninguna actualización de la tabla de base de datos y, por lo tanto, elevar estas operaciones para usar una transacción MSDTC puede ser una sobrecarga de rendimiento. En estos escenarios, puede establecer la propiedad de enlace en false para que el adaptador de SQL no realice las operaciones en un contexto transaccional.
Nota
- Cuando UseAmbientTransaction se establece en False, no se llama a PolledDataAvailableStatement . En su lugar, el adaptador llama directamente a PollingStatement.
- No realizar operaciones en un contexto transaccional solo es aconsejable para las operaciones que no realizan cambios en la base de datos. Para las operaciones que actualizan los datos de la base de datos, se recomienda establecer la propiedad de enlace en true. De lo contrario, podría experimentar pérdida de mensajes o mensajes duplicados, en función de si está realizando operaciones entrantes o salientes.
Tipo de .NET: bool (System.Boolean)
¿Cómo se establecen SQL Server propiedades de enlace?
Puede establecer las propiedades de enlace de SQL Server al especificar una conexión a SQL Server. Para obtener información sobre cómo establecer propiedades de enlace al:
Use el complemento de proyecto de BizTalk Para consumir el servicio adaptador o el complemento Agregar referencia de servicio de adaptador de Visual Studio, vea Conectarse a SQL Server usar la autenticación de Windows con el adaptador de SQL.
Importante
Al usar el complemento de servicio consumir adaptador o el complemento Agregar referencia del servicio adaptador, si no especifica un valor para una propiedad de enlace de tipo cadena y cuyo valor predeterminado es NULL, esa propiedad de enlace no estará disponible en el archivo de enlace (un archivo XML) o el archivo app.config respectivamente. Debe agregar manualmente la propiedad de enlace y su valor en el archivo de enlace o el archivo app.config, si es necesario.
Configure un puerto de envío o un puerto de recepción (ubicación) en una solución de BizTalk Server, consulte Configuración manual de un enlace de puerto físico al adaptador de SQL.
Use el modelo de canal WCF en una solución de programación; consulte Creación de un canal mediante el adaptador de SQL.
Use el modelo de servicio WCF en una solución de programación; vea Configurar un enlace de cliente para el adaptador de SQL.