Condividi tramite


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:

Vedere anche

Sviluppare applicazioni SQL personali