Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile configurare l'adapter SQL per ricevere messaggi periodici di modifica dei dati per tabelle o viste di SQL Server usando istruzioni SELECT o stored procedure che includono una clausola FOR XML. È possibile specificare queste istruzioni come istruzione di polling eseguita dall'adapter per eseguire il polling del database. L'istruzione di polling può essere un'istruzione SELECT o una stored procedure che restituisce un insieme di risultati.
Per altre informazioni su come l'adapter supporta il polling, vedere Supporto per il polling. Per informazioni sulla struttura del messaggio SOAP per le operazioni di polling, vedere Schemi messaggio per le operazioni di polling e TypedPolling. La clausola SQL FOR XML fornisce altri dettagli.
Annotazioni
In questo argomento viene illustrato come utilizzare l'operazione in ingresso XmlPolling per ricevere messaggi di polling. L'operazione XmlPolling viene utilizzata per eseguire il polling di un database di SQL Server usando istruzioni SELECT o stored procedure che includono una clausola FOR XML. Il messaggio per l'operazione XmlPolling include il messaggio xml ricevuto eseguendo l'istruzione SELECT o la stored procedure in SQL Server Management Studio.
È anche possibile utilizzare l'adapter per ricevere tipi diversi di messaggi di polling.
- Se si desidera ottenere un messaggio di polling di tipo debole, è necessario utilizzare l'operazione di polling. Per ulteriori informazioni, vedere Ricevere messaggi di modifica dei dati basati su polling da SQL Server utilizzando BizTalk Server.
- Se si desidera ottenere un messaggio di polling fortemente tipizzato, è necessario utilizzare l'operazione TypedPolling . È inoltre necessario usare l'operazione TypedPolling per avere più operazioni di polling in una singola applicazione BizTalk. Per istruzioni per eseguire l'operazione TypedPolling, vedere Ricevere messaggi di modifica dei dati basati su polling fortemente tipizzato da SQL Server tramite BizTalk Server.
Importante
Se si desidera disporre di più operazioni di polling in una singola applicazione BizTalk, è necessario specificare una proprietà di connessione InboundID come parte dell'URI di connessione per renderla univoca. Con un URI di connessione univoco, è possibile creare più porte di ricezione che eseguono il polling dello stesso database o anche la stessa tabella in un database. Per altre informazioni, vedere Ricezione di messaggi di polling tra più porte di ricezione da SQL tramite BizTalk Server.
Come questo argomento dimostra il polling
In questo argomento, per illustrare come l'adapter SQL supporta la ricezione di messaggi di modifica dei dati, viene usata un'istruzione SELECT con la clausola FOR XML per eseguire il polling del database di SQL Server. Quando si richiama tale istruzione in SQL Server Management Studio, l'output è sotto forma di messaggio xml. Per usare tali istruzioni per eseguire il polling di un database di SQL Server, è necessario disporre dello schema del messaggio xml della risposta. L'adapter SQL richiede che questo schema riceva un messaggio di polling dopo l'esecuzione di un'istruzione SELECT con la clausola FOR XML. Pertanto, per usare un'istruzione SELECT con la clausola FOR XML per eseguire il polling del database di SQL Server, è necessario eseguire il set di attività seguente.
Generare lo schema per il messaggio di risposta XML per l'istruzione SELECT con la clausola FOR XML.
Creare un progetto BizTalk e aggiungere lo schema generato al progetto.
Creare un messaggio nel progetto BizTalk per ricevere messaggi di risposta XML dal database di SQL Server.
Creare un'orchestrazione per ricevere messaggi dal database di SQL Server e salvarli in una cartella.
Compilare e distribuire il progetto BizTalk.
Configurare l'applicazione BizTalk creando porte di invio e ricezione fisiche.
Importante
Per gli scenari di polling in ingresso è necessario configurare sempre una porta di ricezione WCF-Custom unidirezionale o WCF-SQL. Le porte di ricezione bidirezionali WCF-Custom o WCF-SQL non sono supportate per le operazioni di ingresso.
Avviare l'applicazione BizTalk.
Generazione dello schema per il messaggio di risposta per l'istruzione SELECT
È possibile generare lo schema per il messaggio di risposta per l'istruzione SELECT includendo la xmlschema clausola con la for xml clausola . In questo argomento utilizziamo un'istruzione SELECT per recuperare i dettagli del dipendente per uno specifico ID dipendente. Per recuperare lo schema eseguendo un'istruzione SELECT, l'istruzione SELECT deve essere scritta nel modo seguente:
SELECT Employee_ID ,Name ,Designation FROM Employee for xml auto, xmlschema
Eseguire questa istruzione SELECT per ottenere lo schema per il messaggio di risposta. Salvare lo schema. È ora necessario creare un progetto BizTalk in Visual Studio e aggiungere questo schema al progetto. Per questo esempio, è possibile denominare questo schema come PollingResponse.xsd.
Importante
Assicurarsi di rimuovere la xmlschema clausola dopo aver eseguito l'istruzione SELECT per generare lo schema. Se non si esegue questa operazione, quando si esegue finalmente l'istruzione SELECT tramite BizTalk come parte dell'operazione XmlPolling, verrà generato nuovamente lo schema nel messaggio di risposta. Per ottenere quindi il messaggio di risposta come xml, è necessario rimuovere la xmlschema clausola .
Per aggiungere lo schema a un progetto BizTalk
Creare un progetto BizTalk in Visual Studio.
Aggiungere lo schema di risposta generato per la stored procedure al progetto BizTalk. Fare clic con il pulsante destro del mouse sul progetto BizTalk in Esplora soluzioni, scegliere Aggiungi e quindi fare clic su Elemento esistente. Nella finestra di dialogo Aggiungi elemento esistente passare al percorso in cui è stato salvato lo schema e fare clic su Aggiungi.
Aprire lo schema in Visual Studio e apportare le modifiche seguenti.
Aggiungere un nodo allo schema e spostare il nodo radice esistente in questo nodo appena aggiunto. Assegnare un nome al nodo radice. Per questo argomento, rinominare il nodo radice in Root.
Lo schema di risposta generato per l'istruzione SELECT fa riferimento a sqltypes.xsd. È possibile ottenere lo schema sqltypes.xsd da https://go.microsoft.com/fwlink/?linkid=31850. Aggiungere lo schema sqltypes.xsd al progetto BizTalk. Per altre informazioni su questo schema, vedere:
Nello schema generato per l'istruzione SELECT modificare il valore di
import schemaLocationin quanto segue.import schemaLocation=”sqltypes.xsd”Fai questo perché hai già aggiunto lo schema sqltypes.xsd al tuo progetto BizTalk.
Specificare uno spazio dei nomi di destinazione per lo schema. Fare clic sul <nodo Schema> e nel riquadro delle proprietà specificare uno spazio dei nomi nella proprietà Spazio dei nomi di destinazione. Per questo argomento, assegnare lo spazio dei nomi come
http://ForXmlPolling/namespace.
Definizione di messaggi e tipi di messaggio
Lo schema generato in precedenza descrive i "tipi" necessari per i messaggi nell'orchestrazione. Un messaggio è in genere una variabile, il tipo per il quale è definito dallo schema corrispondente. Dopo aver generato lo schema, è necessario collegarlo ai messaggi dalla visualizzazione Orchestrazione del progetto BizTalk.
Per questo argomento, è necessario creare un messaggio per ricevere messaggi dal database di SQL Server.
Seguire questa procedura per creare messaggi e collegarli allo schema.
Per creare messaggi e collegarsi allo schema
Aggiungere un'orchestrazione al progetto BizTalk. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del progetto BizTalk, scegliere Aggiungi e quindi fare clic su Nuovo elemento. Digitare un nome per l'orchestrazione BizTalk e quindi fare clic su Aggiungi.
Aprire la finestra di visualizzazione orchestrazione del progetto BizTalk, se non è già aperta. Fare clic su Visualizza, scegliere Altre finestre e quindi fare clic su Visualizzazione orchestrazione.
Nella visualizzazione orchestrazione fare clic con il pulsante destro del mouse su Messaggi e quindi scegliere Nuovo messaggio.
Fare clic con il pulsante destro del mouse sul messaggio appena creato e quindi scegliere Finestra Proprietà.
Nel riquadro Proprietà per Message_1 eseguire le operazioni seguenti:
Usare questo Per farlo Identificatore Digitare PollingMessage. Tipo di messaggio Nell'elenco a discesa espandere Schemi e selezionare ForXMLPolling.PollingResponse, dove ForXMLPolling è il nome del progetto BizTalk. PollingResponse è il nome dello schema di risposta generato eseguendo l'istruzione SELECT come descritto in Ricevere messaggi di polling usando istruzioni SELECT con clausola FOR XML da SQL tramite BizTalk Server.
Configurazione dell'orchestrazione
È necessario creare un'orchestrazione BizTalk per usare BizTalk Server per ricevere messaggi di modifica dei dati basati sul polling dal database di SQL Server. In questa orchestrazione, l'adattatore riceve la risposta dell'istruzione select specificata per la proprietà di associazione PollingStatement. La risposta per l'istruzione SELECT viene salvata in una posizione FILE. Un'orchestrazione tipica per il polling di un database di SQL Server conterrà:
Ricevere e inviare forme per ricevere messaggi da SQL Server e inviare rispettivamente a una porta FILE.
Porta di ricezione unidirezionale per ricevere messaggi da SQL Server.
Importante
Per gli scenari di polling in ingresso è necessario configurare sempre una porta di ricezione unidirezionale. Le porte di ricezione bidirezionali non sono supportate per le operazioni in ingresso.
Porta di trasmissione unidirezionale per inviare risposte di polling da un database di SQL Server a una cartella.
Un'orchestrazione di esempio è simile alla seguente.
Aggiunta di forme di messaggio
Assicurarsi di specificare le proprietà seguenti per ognuna delle forme del messaggio. I nomi elencati nella colonna Shape sono i nomi delle forme del messaggio visualizzate nell'orchestrazione appena menzionata.
| Forma | Tipo di forma | Proprietà |
|---|---|---|
| RiceviMessaggio | Ricevere | - Impostare Nome su ReceiveMessage - Impostare Attiva su Vero |
| SalvaMessaggio | Invia | - Impostare Name su SaveMessage |
Aggiunta di porte
Assicurarsi di specificare le proprietà seguenti per ognuna delle porte logiche. I nomi elencati nella colonna Porta sono i nomi delle porte visualizzate nell'orchestrazione.
| Porto | Proprietà |
|---|---|
| SQLReceivePort | - Impostare l'identificatore su SQLReceivePort - Impostare il tipo su SQLReceivePortType - Impostare il modello di comunicazione su unidirezionale - Impostare la direzione di comunicazione su Ricevi |
| SaveMessagePort | - Impostare l'identificatore su SaveMessagePort - Impostare Tipo su SaveMessagePortType - Impostare il modello di comunicazione su unidirezionale - Impostare la direzione di comunicazione su Send |
Specificare i messaggi per le forme di azione e connettersi alle porte
La tabella seguente specifica le proprietà e i relativi valori che è necessario impostare per specificare i messaggi per le forme di azione e collegare i messaggi alle porte. I nomi elencati nella colonna Shape sono i nomi delle forme messaggio visualizzate nell'orchestrazione indicata in precedenza.
| Forma | Proprietà |
|---|---|
| RiceviMessaggio | - Impostare Messaggio su Ricevi - Impostare l'operazione su SQLReceivePort.XmlPolling.Request |
| SalvaMessaggio | - Impostare Messaggio su Ricevi - Impostare l'operazione su SaveMessagePort.XmlPolling.Request |
Dopo aver specificato queste proprietà, le forme e le porte del messaggio sono connesse e l'orchestrazione è stata completata.
È ora necessario compilare la soluzione BizTalk e distribuirla in bizTalk Server. Per altre informazioni, vedere Compilazione ed esecuzione di orchestrazioni.
Configurazione dell'applicazione BizTalk
Dopo aver distribuito il progetto BizTalk, l'orchestrazione creata in precedenza è elencata nel riquadro Orchestrazioni nella console di amministrazione di BizTalk Server. Per configurare l'applicazione, è necessario usare la console di amministrazione di BizTalk Server. Per una procedura dettagliata, vedere Procedura dettagliata: Distribuzione di un'applicazione BizTalk di base.
La configurazione di un'applicazione comporta:
Selezione di un host per l'applicazione.
Mappatura delle porte create nell'orchestrazione alle porte fisiche nella console di amministrazione di BizTalk Server. Per questa orchestrazione è necessario:
Definire un percorso sul disco rigido e una porta file corrispondente in cui l'orchestrazione BizTalk rilascia i messaggi dal database di SQL Server. Questi messaggi saranno in risposta all'istruzione di polling specificata per la porta di ricezione.
Definire un WCF-Custom fisico o WCF-SQL porta di ricezione unidirezionale. Questa porta di polling interroga il database di SQL Server utilizzando l'istruzione di polling specificata per essa. Per informazioni su come creare porte, vedere Configurare manualmente un'associazione di porte fisiche all'adapter SQL. Assicurarsi di specificare le proprietà di associazione seguenti per la porta di ricezione.
Importante
Non è necessario eseguire questo passaggio se sono state specificate le proprietà di associazione in fase di progettazione. In questo caso, è possibile creare una porta di ricezione personalizzata o WCF-SQL WCF, con le proprietà di associazione necessarie impostate, importando il file di associazione creato dal componente aggiuntivo Consume Adapter Service. Per altre informazioni, vedere Configurare un'associazione di porte fisiche usando un file di associazione di porte per l'uso dell'adapter SQL.
Proprietà di associazione Valore InboundOperationType Assicurarsi di impostare questa proprietà su XmlPolling. PolledDataAvailableStatement Assicurarsi di specificare un'istruzione SQL. Per questo argomento specificare:
SELECT COUNT(*) FROM EmployeePollingStatement Assicurati di presentare la stessa istruzione, senza la clausola xmlschema, quella specificata durante la generazione dello schema come descritto in Ricevere messaggi di polling usando istruzioni SELECT con clausola FOR XML da SQL tramite BizTalk Server.
SELECT Employee_ID ,Name ,Designation FROM Employee for xml auto
Nota: Si noti che l'istruzione SELECT non contiene laxmlschemaclausola .XmlStoredProcedureRootNodeName Specificare il nome del nodo radice aggiunto allo schema di risposta generato per l'istruzione SELECT, come descritto in Generazione dello schema per l'istruzione SELECT. Per questo argomento impostare questa opzione su Radice. XmlStoredProcedureRootNodeNamespace Specificare lo spazio dei nomi di destinazione per lo schema di risposta generato per l'istruzione SELECT, come descritto in Generazione dello schema per il messaggio di risposta per l'istruzione SELECT. Per questo argomento impostare su http://ForXmlPolling/namespace.Per altre informazioni sulle diverse proprietà di associazione, vedere Informazioni sulle proprietà di associazione dell'adapter BizTalk per SQL Server.
Annotazioni
È consigliabile configurare il livello di isolamento delle transazioni e il timeout della transazione durante l'esecuzione di operazioni in ingresso tramite l'adapter SQL. A tale scopo, è possibile aggiungere il comportamento del servizio durante la configurazione della porta di ricezione WCF-Custom o WCF-SQL. Per istruzioni su come aggiungere il comportamento del servizio, vedere Configurare il livello di isolamento delle transazioni e il timeout delle transazioni con SQL.
Avvio dell'applicazione
È necessario avviare l'applicazione BizTalk per la ricezione di messaggi dal database di SQL Server. Per istruzioni sull'avvio di un'applicazione BizTalk, vedere Come avviare un'orchestrazione.
In questa fase assicurarsi di:
La porta di ricezione unidirezionale WCF-Custom o WCF-SQL, che esegue il polling del database di SQL Server usando le istruzioni specificate per la proprietà di associazione PollingStatement, è in esecuzione.
La porta di trasmissione FILE, che riceve messaggi da SQL Server, è in esecuzione.
L'orchestrazione BizTalk per l'operazione è in esecuzione.
Esecuzione dell'operazione
Dopo aver eseguito l'applicazione, viene eseguito il set di azioni seguente, nella stessa sequenza:
L'adapter esegue polledDataAvailableStatement nella tabella Employee e determina che la tabella contiene record per il polling.
L'adapter esegue l'istruzione di polling e riceve un messaggio di polling dal database di SQL Server. Poiché l'istruzione di polling è costituita da un'istruzione SELECT con una clausola FOR XML, il messaggio di polling ricevuto dall'adapter è simile al seguente:
<?xml version="1.0" encoding="utf-8" ?> <Root xmlns="http://ForXmlPolling/namespace"> <Employee Employee_ID="10765" Name="John" Designation="Tester" xmlns="" /> <Employee Employee_ID="10766" Name="Sam" Designation="Manager" xmlns="" /> ..... ..... </Root>Si noti che il messaggio di polling viene ricevuto nello stesso schema generato eseguendo l'istruzione SELECT con la clausola xmlschema . Si noti anche che il nodo radice e lo spazio dei nomi sono gli stessi che hai specificato come valori delle proprietà di associazione XmlStoredProcedureRootNodeName e XmlStoredProcedureRootNodeNamespace.
Annotazioni
L'adapter SQL continuerà a eseguire il polling fino a quando non si disabilita in modo esplicito la porta di ricezione dalla console di amministrazione di BizTalk Server.
Migliori pratiche
Dopo aver distribuito e configurato il progetto BizTalk, è possibile esportare le impostazioni di configurazione in un file XML denominato file di associazione. Dopo aver generato un file di associazione, è possibile importare le impostazioni di configurazione dal file, in modo che non sia necessario creare le porte di trasmissione e ricevere le porte per la stessa orchestrazione. Per altre informazioni sui file di associazione, vedere Riutilizzare le associazioni degli adattatori.
Vedere anche
Eseguire il polling di SQL Server usando l'adapter SQL con BizTalk Server