Condividi tramite


Polling in SQL Server tramite l'adattatore SQL

L'adapter Microsoft BizTalk per SQL Server consente ai client adapter di ricevere messaggi di modifica dei dati dal database di SQL Server. L'adapter SQL supporta la ricezione di messaggi basati sul polling in cui l'adapter esegue un'istruzione SQL specificata (istruzione SELECT o stored procedure), recupera o aggiorna i dati e fornisce il risultato al client dell'adapter a intervalli regolari di tempo.

L'adapter SQL espone le operazioni seguenti per il polling:

  • Polling: consente di ricevere messaggi periodici di modifica dei dati per tabelle o viste di SQL Server. I messaggi non sono fortemente tipizzati.

  • TypedPolling: consente di ricevere messaggi fortemente tipizzati dal database di SQL Server. È necessario utilizzare questa operazione se si intende eseguire il mapping degli elementi nel messaggio di polling a qualsiasi altro schema.

  • XmlPolling. Consente di utilizzare istruzioni SELECT o stored procedure che utilizzano una clausola FOR XML e restituiscono dati come messaggi XML. Questa operazione restituisce il messaggio di polling come messaggio XML.

    Per altre informazioni sulla clausola FOR XML, vedere https://go.microsoft.com/fwlink/?LinkId=131402.

    Per ulteriori informazioni sul polling nell'adapter SQL, vedere Receive Polling-based Data-changed Messages from SQL Server by Using BizTalk Server.

Sondaggio

Un'operazione di polling tipica che usa l'adapter SQL prevede quanto segue:

  1. I client dell'adapter devono specificare Polling come operazione in ingresso nella proprietà di associazione InboundOperationType . Il valore predefinito per questa proprietà di associazione è Polling.

  2. I client dell'adapter devono specificare un'istruzione SQL per la proprietà di associazione PolledDataAvailableStatement che determina se sono disponibili dati per il polling. La prima colonna della prima riga del primo set di risultati restituito durante l'esecuzione di questa istruzione contiene un valore intero. Se non sono disponibili dati per il polling, il valore restituito è 0 (zero). Se sono disponibili dati, il valore restituito è maggiore di zero.

  3. I client dell'adapter devono specificare un intervallo di polling per la proprietà di associazione PollingIntervalInSeconds per definire l'intervallo al quale viene eseguita l'istruzione nella PolledDataAvailableStatement della proprietà di associazione. Alla fine di ogni intervallo di polling, viene eseguita l'istruzione di disponibilità dei dati di polling e viene restituito il set di risultati.

  4. I client dell'adapter devono specificare un'istruzione SQL di polling (istruzione SELECT o stored procedure) per la proprietà di associazione PollingStatement. Se sono disponibili dati per il polling (determinato dalla proprietà di associazione PolledDataAvailableStatement ), l'adapter esegue l'istruzione di polling per ottenere e aggiornare (se applicabile) i dati nel database di SQL Server. Quando l'adapter SQL viene usato con BizTalk Server, viene usata anche la stessa transazione per inviare il messaggio a BizTalk Server.

  5. I client dell'adapter possono utilizzare la proprietà di associazione PollWhileDataFound per ignorare l'intervallo di polling ed effettuare continuamente il polling dei dati, non appena disponibili.

  6. I set di risultati restituiti come risultato dell'esecuzione dell'istruzione di polling vengono inviati al client dell'adapter come messaggio in ingresso.

Annotazioni

Quando UseAmbientTransaction è impostato su False, polledDataAvailableStatement non viene chiamato. L'adapter chiama invece direttamente pollingStatement.

Annotazioni

Un'operazione XmlPolling prevede gli stessi passaggi dell'operazione di polling.

Strongly-Typed sondaggio

Una tipica operazione di polling fortemente tipizzata che usa l'adapter SQL prevede quanto segue:

  1. I client dell'adapter devono specificare TypedPolling come operazione in ingresso nella proprietà di associazione InboundOperationType . Il valore predefinito per questa proprietà di associazione è Polling.

  2. I client dell'adapter devono specificare un ID in ingresso come parte dell'URI di connessione. L'ID in ingresso può essere qualsiasi stringa e viene aggiunto allo spazio dei nomi standard dell'operazione TypedPolling per evitare conflitti di spazio dei nomi.

  3. Il resto dei passaggi è uguale ai passaggi da 2 a 6 elencati nell'operazione di polling descritta nella sezione precedente.

    Per informazioni dettagliate sulle proprietà di associazione correlate al polling e al polling fortemente tipizzato, vedere Informazioni sulle proprietà di associazione dell'adapter BizTalk per SQL Server.

Annotazioni

È possibile restituire più set di risultati in seguito all'esecuzione dell'istruzione di polling. Se i set di risultati non contengono righe, non vengono inviati messaggi al client dell'adapter.

La figura seguente fornisce informazioni sul flusso di lavoro di polling nell'adapter SQL. Vengono illustrati due scenari per il flusso di lavoro di polling:

  1. Quando il valore di PollWhileDataFound è impostato su "False" (impostazione predefinita).

  2. Quando il valore di PollWhileDataFound è impostato su "True".

    Flusso di lavoro di polling (PollWhileDataFound = False) Flusso di lavoro di polling (PollWhileDataFound = True)

Differenze tra il polling e la notifica delle query

Anche se il polling e la notifica delle query sono entrambe operazioni in ingresso e informano i client dell'adapter sulle modifiche ai dati nel database di SQL Server, nella tabella seguente sono elencate alcune differenze tra i due. Le differenze seguenti consentono di decidere un'operazione in base ai requisiti:

Sondaggio Notifica di query
Il polling viene avviato dall'adapter. L'adattatore esegue un'istruzione per verificare se i dati sono disponibili per il polling, quindi avvia il polling eseguendo l'istruzione di polling se vi sono dati disponibili. La notifica delle query viene avviata da SQL Server. L'istruzione di notifica rilasciata dall'adapter indica semplicemente al database di avviare la notifica nel caso in cui si verifichi una modifica nel set di risultati dell'istruzione.
È possibile usare l'istruzione di polling per leggere o aggiornare i dati in una tabella di database di SQL Server. È possibile usare l'istruzione di notifica query per leggere solo i dati in una tabella di database di SQL Server.
Il polling informa l'utente sui dati effettivi modificati. La notifica delle query informa solo il tipo di modifica nei dati, ad esempio Inserimento, Aggiornamento ed Eliminazione.
La notifica di modifica dei dati dipende dall'intervallo di polling e i client dell'adapter vengono informati sulle modifiche dei dati alla fine di ogni intervallo di polling. Suggerimento: Il polling può offrire una velocità effettiva migliore negli scenari in cui le modifiche ai dati vengono effettuate continuamente e non si vuole ricevere una notifica di ogni modifica man mano che avvengono. Specificare invece un intervallo di polling dopo il quale si desidera ricevere una notifica di tutte le modifiche apportate dopo l'ultima notifica di modifica dei dati. La notifica di modifica dei dati è istantanea.

Per altre informazioni sulla notifica delle query nell'adapter Microsoft BizTalk per SQL Server, vedere Ricevere notifiche di query SQL tramite BizTalk Server.

Vedere anche

Quali operazioni possono essere eseguite tramite l'adapter?