Informazioni sull'adapter BizTalk per le proprietà di associazione dell'adapter SQL Server
L'adapter Microsoft BizTalk per SQL Server presenta diverse proprietà di associazione. Impostando queste proprietà, è possibile controllare il comportamento dell'adattatore. In questa sezione vengono descritte le proprietà di associazione esposte dall'adapter SQL. Illustra anche come accedervi usando la programmazione .NET o impostando le proprietà su un'associazione di porte fisiche BizTalk Server.
Proprietà dell'associazione dell'adapter
La tabella seguente illustra le proprietà di associazione dell'adapter SQL raggruppate per categoria. La categoria fa riferimento al nodo in cui ogni proprietà di associazione viene visualizzata nelle finestre di dialogo presentate da applicazioni diverse per configurare l'adattatore (o l'associazione).
XmlStoredProcedureRootNodeName
Categoria: FOR XML
Descrizione: specifica il nome del nodo radice per lo schema di risposta per le stored procedure con una clausola FOR XML nell'istruzione SELECT. Questo nodo radice incapsula la risposta XML ricevuta da SQL Server dopo l'esecuzione di tali stored procedure. È necessario aggiungere questo nodo radice allo schema di risposta come descritto nell'argomento Eseguire stored procedure con una clausola FOR XML in SQL Server usando BizTalk Server.
Importante
È necessario impostare questa proprietà di associazione durante l'esecuzione di stored procedure con la clausola FOR XML.
Tipo .NET: string
XmlStoredProcedureRootNodeNamespace
Categoria: FOR XML
Descrizione: specifica lo spazio dei nomi di destinazione del nodo radice per lo schema di risposta per le stored procedure con una clausola FOR XML nell'istruzione SELECT.
Tipo .NET: string
CloseTimeout
Categoria: Generale
Descrizione: timeout di chiusura della connessione WCF. Il valore predefinito è 1 minuto.
Tipo .NET: System.TimeSpan
Nome
Categoria: Generale
Descrizione: valore di sola lettura che restituisce il nome del file generato dal plug-in Add Adapter Service Reference di Visual Studio per contenere la classe client WCF. Il plug-in Add Adapter Service Reference costituisce il nome del file aggiungendo "Client" al valore della proprietà Name . Il valore predefinito per questa proprietà è "SqlAdapterBinding"; per questo valore, il file generato sarà denominato "SqlAdapterBindingClient".
Tipo .NET: string
OpenTimeout
Categoria: Generale
Descrizione: specifica il timeout di apertura della connessione WCF. Il valore predefinito è 1 minuto.
Importante
L'adapter SQL usa sempre OpenTimeout per impostare il timeout di apertura della connessione quando apre una connessione a SQL Server. L'adattatore ignora i parametri di timeout (System.TimeSpan) passati quando si apre un oggetto di comunicazione. Ad esempio, l'adattatore ignora tutti i parametri di timeout passati all'apertura di un canale.
Tipo .NET: System.TimeSpan
ReceiveTimeout
Categoria: Generale
Descrizione: specifica il timeout di ricezione del messaggio WCF. In pratica, questo significa la quantità massima di tempo in cui l'adapter attende un messaggio in ingresso. Il valore predefinito è 10 minuti.
Importante
Per le operazioni in ingresso, ad esempio il polling, è consigliabile impostare il timeout sul valore massimo possibile, ovvero 24.20:31:23.64700000 (24 giorni). Quando si usa l'adattatore con BizTalk Server, l'impostazione del timeout su un valore elevato non influisce sulla funzionalità dell'adattatore.
Tipo .NET: System.TimeSpan
SendTimeout
Categoria: Generale
Descrizione: specifica il timeout di invio del messaggio WCF. Il valore predefinito è 1 minuto.
Tipo .NET: System.TimeSpan
EnableBizTalkCompatibilityMode
Categoria: BizTalk
Descrizione: indica se l'adattatore viene usato con BizTalk Server o un'applicazione .NET.
- Quando si usano gli adattatori da BizTalk Server (o si generano metadati per le operazioni su SQL Server tramite l'adapter in un progetto BizTalk), è sempre necessario impostare la proprietà su True. Ciò garantisce che lo schema generato per System.Data.DataSet sia compatibile con BizTalk Server. In caso contrario, la compilazione del progetto BizTalk non riuscirà.
- Quando si usano gli adattatori di Visual Studio in un'applicazione .NET, è necessario impostare la proprietà su False se si vuole usare la risposta come oggetto DataSet. Ciò garantisce che lo schema generato per System.Data.DataSet sia in un formato compatibile con WCF DataContractSerializer.
Tipo .NET: bool (System.Boolean)
BatchSize
Categoria: Buffering
Descrizione: specifica le dimensioni del batch per più operazioni di inserimento, aggiornamento ed eliminazione di record in una tabella o vista in un database di SQL Server. Il valore predefinito è 20. Per i valori di BatchSize maggiore di uno, l'adapter SQL esegue il batch del numero specificato di record in una singola chiamata. Un valore superiore può migliorare le prestazioni, ma influisce sul consumo di memoria.
Tipo .NET: int (System.Int32)
ChunkSize
Categoria: Buffering
Descrizione: specifica le dimensioni del buffer utilizzate per le operazioni set<column_name> . Il valore predefinito è 4194304 byte. Un valore superiore può migliorare le prestazioni, ma influisce sul consumo di memoria.
Nota
Per altre informazioni sull'impostazione<delle operazioni di column_name> , vedere Operazioni su tabelle e viste che contengono tipi di dati di grandi dimensioni tramite l'adapter SQL.
Tipo .NET: int (System.Int32)
Encrypt
Categoria: Connessione
Descrizione: specifica se SQL Server (con un certificato valido installato) usa la crittografia SSL per tutti i trasferimenti di dati tra SQL Server e il client. Il valore predefinito è false.
Tipo .NET: bool (System.Boolean)
MaxConnectionPoolSize
Categoria: Descrizione connessione: specifica il numero massimo di connessioni consentite in un pool di connessioni per un stringa di connessione specifico. Il valore predefinito è 100. Questa proprietà viene utilizzata per l'ottimizzazione delle prestazioni.
Importante
È necessario impostare MaxConnectionPoolSize in modo judicious. È possibile esaurire il numero di connessioni disponibili, se questo valore è impostato su dimensioni eccessive.
Tipo .NET: int (System.Int32)
WorkstationId
Categoria: Connessione
Descrizione: specifica un ID univoco per la workstation (computer client) che si connette al database SQL Server tramite l'adapter SQL. Il valore per questa proprietà di associazione, se specificato, viene utilizzato per la parola chiave ID workstation della proprietà SqlConnection.ConnectionString. Per altre informazioni, vedere Proprietà SqlConnection.ConnectionString.
Tipo .NET: string
EnablePerformanceCounters
Categoria: Diagnostica
Descrizione: specifica se abilitare i contatori delle prestazioni di WCF LOB Adapter SDK e il contatore delle prestazioni della latenza LOB dell'adapter SQL. Il valore predefinito è False; I contatori delle prestazioni sono disabilitati. Il contatore delle prestazioni della latenza LOB misura il tempo totale impiegato dall'adattatore SQL per effettuare chiamate al database SQL Server.
Per altre informazioni sui contatori delle prestazioni per l'adapter SQL, vedere Usare i contatori delle prestazioni con l'adapter SQL.
Tipo .NET: int (System.Int32)
InboundOperationType
Categoria: In ingresso
Descrizione: specifica se si desidera eseguire l'operazione polling, TypedPolling, XmlPolling o Notification in ingresso. Il valore predefinito è Polling.
Per altre informazioni su polling, TypedPolling e XmlPolling , vedere Supporto per il polling. Per altre informazioni sulla notifica, vedere Considerazioni sulla ricezione di notifiche di query tramite l'adapter SQL.
Tipo .NET: enumerazione
UseDatabaseNameInXsdNamespace
Categoria: Metadati
Descrizione: specifica se l'XSD generato per un particolare artefatto contiene il nome del database. Impostare su True per includere il nome del database. In caso contrario, impostare su False. L'impostazione predefinita è False.
Ciò è utile negli scenari in cui una singola applicazione vuole eseguire operazioni su artefatti denominati in modo identico con metadati diversi in database diversi. Se nello spazio dei nomi non è presente alcun nome di database, i metadati generati saranno in conflitto. Impostando questa proprietà di associazione è possibile includere il nome del database nello spazio dei nomi, rendendoli quindi univoci. Ecco un esempio che evidenzia la modifica nello spazio dei nomi.
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
Si noti che il nome del database è incluso nello spazio dei nomi quando la proprietà di associazione è impostata su True.
Tipo .NET: enumerazione
AllowIdentityInsert
Categoria: Varie
Descrizione: specifica se l'adattatore può inserire valori per le colonne Identity durante le operazioni di inserimento e aggiornamento. Impostare questa proprietà su True per inserire o aggiornare i valori per le colonne Identity. In caso contrario, impostare su False (impostazione predefinita).
Nota
L'impostazione di questa proprietà su True viene convertita nell'adattatore tramite SET IDENTITY_INSERT <table_name> ON
. Per altre informazioni, vedere SET IDENTITY_INSERT (Transact-SQL).
Quando si usa questa proprietà di associazione, è necessario considerare i punti seguenti:
- L'adapter non convalida il valore passato per la colonna Identity. Ad esempio, se una tabella ha una colonna Identity con valore "Identity Seed" impostato su 100 e "Identity Increment" impostato su 1 e il client dell'adapter passa un valore, ad esempio 95, per la colonna Identity, l'adapter passa semplicemente questo valore a SQL Server.
- Anche se si imposta AllowIdentityInsert su True, non è obbligatorio per un client dell'adapter specificare un valore per la colonna Identity nel messaggio di richiesta. Se è presente un valore per la colonna Identity, l'adattatore lo passa a SQL Server. Se un valore non è presente, SQL Server inserirà un valore in base alla specifica per la colonna Identity.
Tipo .NET: bool (System.Boolean)
NotificationStatement
Categoria: Notifica (in ingresso)
Descrizione: specifica l'istruzione SQL (SELECT o EXEC <stored procedure>) utilizzata per eseguire la registrazione per le notifiche di SQL Server. È necessario immettere in modo specifico i nomi di colonna nell'istruzione , come illustrato nell'istruzione SELECT seguente:
SELECT Employee_ID,Designation FROM dbo.Employee WHERE Status=0
Nota
È necessario specificare il nome dell'oggetto di database insieme al nome dello schema. Ad esempio: dbo.Employee
.
L'adapter ottiene un messaggio di notifica da SQL Server solo quando viene modificato il set di risultati per l'istruzione SQL specificata.
Tipo .NET: string
NotifyOnListenerStart
Categoria: Notifica (in ingresso)
Descrizione: specifica se l'adapter invia un messaggio di notifica ai client dell'adapter, informando che il percorso di ricezione è in esecuzione, all'avvio del listener. L'impostazione predefinita è True.
Il messaggio di notifica visualizzato è simile al seguente:
<?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 .NET: bool (System.Boolean)
PolledDataAvailableStatement
Categoria: polling (in ingresso)
Descrizione: specifica l'istruzione SQL eseguita per determinare se i dati sono disponibili per il polling di una tabella specifica in un database SQL Server. L'istruzione specificata deve restituire un set di risultati costituito da righe e colonne. Il valore nella prima cella del set di risultati indica se l'adapter esegue l'istruzione SQL specificata per la proprietà di associazione PollingStatement . Se la prima cella del risultato contiene un valore positivo, l'adapter ha eseguito l'istruzione di polling.
Di seguito sono riportati alcuni esempi di istruzioni valide che è possibile specificare per questa proprietà di associazione:
Se si specifica un'istruzione SELECT:
SELECT COUNT(*) from <table_name>
Se si specifica una stored procedure, la stored procedure potrebbe essere definita come:
CREATE PROCEDURE <procedure_name> AS BEGIN SELECT COUNT(*) FROM <table_name> END GO
oppure
CREATE PROCEDURE <procedure_name> AS BEGIN DECLARE @count int SELECT @count = SELECT(*) FROM <table_name> SELECT @count END GO
Se si usa una stored procedure, specificare PolledDataAvailableStatement come EXEC <procedure_name>
.
Importante
L'istruzione specificata per questa proprietà di associazione non viene eseguita all'interno di una transazione avviata dall'adapter e potrebbe essere chiamata più volte prima dell'esecuzione dell'istruzione di polling effettiva (anche se l'esecuzione dell'istruzione indica che sono disponibili righe per il polling).
Tipo .NET: string
PollingIntervalInSeconds
Categoria: polling (in ingresso)
Descrizione: specifica l'intervallo, espresso in secondi, in cui l'adapter SQL esegue l'istruzione specificata per la proprietà di associazione PolledDataAvailableStatement . Il valore predefinito è 30 secondi. L'intervallo di polling determina l'intervallo di tempo tra i sondaggi successivi. Se l'istruzione viene eseguita entro l'intervallo specificato, l'adattatore è inattivo per il tempo rimanente nell'intervallo.
Tipo .NET: int (System.Int32)
PollingStatement
Categoria: polling (in ingresso)
Descrizione: specifica l'istruzione SQL per eseguire il polling di una tabella di database SQL Server. È possibile specificare una semplice istruzione SELECT o stored procedure per l'istruzione di polling. Il valore predefinito è Null. È necessario specificare un valore per PollingStatement per abilitare il polling. L'istruzione di polling viene eseguita solo se sono disponibili dati per il polling, determinato dalla proprietà di associazione PolledDataAvailableStatement .
È possibile specificare un numero qualsiasi di istruzioni SQL separate da un punto e virgola. È possibile usare l'istruzione di polling per leggere o aggiornare i dati in una tabella di database SQL Server. L'adapter SQL esegue le istruzioni di polling all'interno di una transazione. Quando l'adapter viene usato con BizTalk Server, la stessa transazione viene usata per inviare messaggi da SQL Server alla finestra di messaggio BizTalk.
Tipo .NET: string
PollWhileDataFound
Categoria: polling (in ingresso)
Descrizione: specifica se l'adattatore SQL ignora l'intervallo di polling ed esegue continuamente l'istruzione SQL specificata per la proprietà di associazione PolledDataAvailableStatement , se i dati sono disponibili nella tabella di cui viene eseguito il polling. Se nella tabella non sono disponibili dati, l'adapter viene ripristinato per eseguire l'istruzione SQL in corrispondenza dell'intervallo di polling specificato. Il valore predefinito è false.
Si consideri uno scenario in cui l'intervallo di polling è impostato su 60 secondi e l'istruzione specificata per PolledDataAvailableStatement restituisce che i dati sono disponibili per il polling. L'adapter esegue quindi l'istruzione specificata per la proprietà di associazione PollingStatement . Supponendo che l'adapter richiede solo 10 secondi per eseguire l'istruzione di polling, ora dovrà attendere 50 secondi prima di eseguire di nuovo PolledDataAvailableStatement e quindi eseguire successivamente l'istruzione di polling. Al contrario, per ottimizzare le prestazioni, è possibile impostare la proprietà di associazione PollWhileDataFoundsu true in modo che l'adattatore possa avviare l'esecuzione del ciclo di polling successivo non appena termina il ciclo di polling precedente.
Tipo .NET: bool (System.Boolean)
UseAmbientTransaction
Categoria: Transazione
Descrizione: specifica se l'adattatore SQL esegue le operazioni utilizzando il contesto transazionale fornito dal chiamante. Il valore predefinito è true, il che significa che l'adattatore esegue sempre le operazioni in un contesto transazionale. Se sono presenti altre risorse che partecipano alla transazione e SQL Server unisce anche la transazione, la transazione viene elevata a una transazione MSDTC.
Tuttavia, possono esserci scenari in cui non si vuole che l'adattatore esegua operazioni in un contesto transazionale. Ad esempio:
- Durante l'esecuzione di una semplice operazione Select in un database di SQL Server
- Durante la specifica di un'istruzione di polling che esegue un'operazione Select e non comporta alcuna modifica alla tabella tramite un'istruzione Delete o richiamando una stored procedure.
Entrambe queste operazioni non apportano aggiornamenti alla tabella di database e, di conseguenza, l'elevazione di queste operazioni per l'uso di una transazione MSDTC può comportare un sovraccarico delle prestazioni. In questi scenari, è possibile impostare la proprietà di associazione su false in modo che l'adapter SQL non esegua le operazioni in un contesto transazionale.
Nota
- Quando UseAmbientTransaction è impostato su False, polledDataAvailableStatement non viene chiamato. L'adapter chiama invece direttamente PollingStatement.
- Non eseguire operazioni in un contesto transazionale è consigliabile solo per le operazioni che non apportano modifiche al database. Per le operazioni che aggiornano i dati nel database, è consigliabile impostare la proprietà di associazione su true. In caso contrario, è possibile che si verifichino perdite di messaggi o messaggi duplicati, a seconda che si eseseguono operazioni in ingresso o in uscita.
Tipo .NET: bool (System.Boolean)
Come si impostano le proprietà di associazione SQL Server?
È possibile impostare le proprietà di associazione SQL Server quando si specifica una connessione a SQL Server. Per informazioni su come impostare le proprietà di associazione quando:
Usare il componente aggiuntivo Consume Adapter Service BizTalk Project o il plug-in Add Adapter Service Reference di Visual Studio. Vedere Connettersi a SQL Server Uso dell'autenticazione di Windows con l'adapter SQL.
Importante
Se si usa il componente aggiuntivo Del servizio adapter di utilizzo o il plug-in Aggiungi riferimento al servizio adapter, se non si specifica un valore per una proprietà di associazione di tipo stringa e il cui valore predefinito è Null, tale proprietà di associazione non sarà disponibile rispettivamente nel file di associazione (un file XML) o nel file di app.config. È necessario aggiungere manualmente la proprietà di associazione e il relativo valore nel file di associazione o nel file di app.config, se necessario.
Configurare una porta di trasmissione o una porta di ricezione (posizione) in una soluzione di BizTalk Server, vedere Configurare manualmente un'associazione di porte fisiche all'adattatore SQL.
Usare il modello di canale WCF in una soluzione di programmazione, vedere Creare un canale usando l'adapter SQL.
Usare il modello di servizio WCF in una soluzione di programmazione, vedere Configurare un'associazione client per l'adapter SQL.