Condividi tramite


Polling in SQL Server tramite l'adapter SQL

L'adapter Microsoft BizTalk per SQL Server consente ai client dell'adapter di ricevere messaggi di modifica dei dati dal database 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 SQL Server tabelle o viste. I messaggi non sono fortemente tipizzato.

  • TypedPolling: consente di ricevere messaggi fortemente tipizzato 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 altre informazioni sul polling nell'adapter SQL, vedere Ricezione di messaggi modificati dei dati basati sul polling da SQL Server tramite BizTalk Server.

Polling

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

  1. I client dell'adattatore 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'adattatore 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'adattatore devono specificare un intervallo di polling per la proprietà di associazione PollingIntervalInSeconds per definire l'intervallo in cui viene eseguita l'istruzione nella proprietà di associazione PolledDataAvailableStatement . Alla fine di ogni intervallo di polling, viene eseguita l'istruzione disponibile per i 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 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'adattatore possono utilizzare la proprietà di associazione PollWhileDataFound per ignorare l'intervallo di polling e eseguire continuamente il polling dei dati, come e quando 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.

Nota

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

Nota

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

Strongly-Typed polling

Un'operazione di polling fortemente tipizzata che usa l'adattatore SQL prevede quanto segue:

  1. I client dell'adattatore 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'adattatore 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 sull'adapter BizTalk per le proprietà di associazione dell'adapter SQL Server.

Nota

È possibile restituire più set di risultati in seguito all'esecuzione dell'istruzione di polling. Se i set di risultati non contengono righe, nessun messaggio viene inviato al client dell'adattatore.

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)Polling Workflow (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 dei dati nel database SQL Server, nella tabella seguente sono elencate alcune differenze tra i due. Le differenze seguenti consentono di decidere un'operazione a seconda dei requisiti:

Polling Notifica query
Il polling viene avviato dall'adattatore. L'adapter esegue un'istruzione per verificare se i dati sono disponibili per il polling e quindi avvia il polling eseguendo l'istruzione di polling se alcuni dati sono disponibili per il polling. 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 SQL Server. È possibile usare l'istruzione di notifica della query per leggere solo i dati in una tabella di database 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 Inserisci, Aggiorna ed Elimina.
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. Mancia: Il polling può offrire una velocità effettiva migliore negli scenari in cui le modifiche ai dati vengono apportate continuamente e non si vuole ricevere una notifica di ogni modifica così come e quando si verificano. Specificare invece un intervallo di polling dopo il quale si vuole 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 è possibile eseguire usando l'adapter?