Ricevere notifiche di modifica del database Oracle in modo incrementale usando BizTalk Server
Importante
Per motivi di brevità, questo argomento descrive solo come ricevere notifiche in modo incrementale. Negli scenari aziendali, l'orchestrazione deve includere idealmente la logica per estrarre il tipo di messaggio di notifica ricevuto e quindi eseguire tutte le operazioni successive. In altre parole, l'orchestrazione descritta in questo argomento deve essere basata sull'orchestrazione descritta in Messaggi di notifica processo per completare attività specifiche nel database Oracle usando BizTalk Server.
Questo argomento illustra come configurare l'adapter Oracle Database per ricevere messaggi di notifica di query incrementali da Oracle. Per illustrare le notifiche incrementali, si consideri una tabella, ACCOUNTACTIVITY, con una colonna "Elaborato". Quando viene inserito un nuovo record in questa tabella, il valore della colonna "Processed" è impostato su 'n'. È possibile configurare l'adapter per ricevere notifiche incrementali eseguendo le operazioni seguenti:
Registrare le notifiche usando un'istruzione SELECT che recupera tutti i record con colonna "Processed" come 'n'. È possibile farlo specificando l'istruzione SELECT per la proprietà di associazione NotificationStatement .
Per le righe per cui è stata notificata, aggiornare la colonna "Elaborato" a 'y'.
Questo argomento illustra come creare un'orchestrazione BizTalk e configurare un'applicazione BizTalk per ottenere questo risultato.
Configurazione delle notifiche con le proprietà di associazione dell'adapter di database Oracle
Nella tabella seguente vengono riepilogate le proprietà di associazione dell'adapter Oracle Database usate per configurare la ricezione di notifiche dal database Oracle. È necessario specificare queste proprietà di associazione durante la configurazione della porta di ricezione nella console di amministrazione BizTalk Server.
Nota
È possibile scegliere di specificare queste proprietà di associazione quando si genera lo schema per l'operazione di notifica , anche se non è obbligatorio. In tal caso, il file di associazione porta generato dal componente aggiuntivo Del servizio adapter di utilizzo come parte della generazione dei metadati contiene anche i valori specificati per le proprietà di associazione. È possibile importare in seguito questo file di associazione nella console di amministrazione BizTalk Server per creare la porta di ricezione personalizzata o WCF-OracleDB WCF con le proprietà di associazione già impostate. Per altre informazioni sulla creazione di una porta di ricezione usando il file di associazione, vedere Configurare un'associazione di porta fisica usando un file di associazione di porte a Oracle Database.
Binding, proprietà | Descrizione |
---|---|
InboundOperationType | Specifica l'operazione in ingresso da eseguire. Per ricevere messaggi di notifica, impostare questa opzione su Notifica. |
NotificationPort | Specifica il numero di porta che ODP.NET deve essere aperto per ascoltare la notifica di modifica del database dal database Oracle. |
NotificaStatement | Specifica l'istruzione SELECT usata per registrare le notifiche di query. L'adapter ottiene un messaggio di notifica solo quando il set di risultati per l'istruzione SELECT specificato cambia. |
NotifyOnListenerStart | Specifica se l'adapter invia una notifica ai client dell'adapter quando viene avviato il listener. |
Per una descrizione più completa di queste proprietà, vedere Uso dell'adapter BizTalk per le proprietà di associazione di database Oracle. Per una descrizione completa di come usare l'adapter Oracle Database per ricevere notifiche dal database Oracle, leggere altre informazioni.
Come questo argomento illustra la ricezione di messaggi di notifica
In questo argomento viene illustrato come l'adapter Oracle Database supporta la ricezione di messaggi di notifica di modifica incrementale del database dal database Oracle, verrà configurato l'adapter per ricevere notifiche per le modifiche apportate alla tabella ACCOUNTACTIVTY. Si supponga che la tabella ACCOUNTACTIVITY abbia colonne "TID", "Account" e "Processed". Ogni volta che viene aggiunto un nuovo record, il valore della colonna "Elaborato" è impostato su 'n'. Per ottenere notifiche incrementali, è quindi necessario eseguire le attività seguenti come parte dell'orchestrazione BizTalk:
Ottenere la notifica per tutti i record in cui "Elaborato" è 'n'. È possibile eseguire questa operazione specificando un'istruzione SELECT come istruzione di notifica.
Dopo aver ricevuto la notifica per un determinato record, impostare "Elaborato" su 'y'. A tale scopo, è possibile eseguire una stored procedure, PROCESS_RECORDS, che aggiorna la colonna "Elaborato".
Per illustrare la ricezione di notifiche incrementali, eseguire le operazioni seguenti:
Generare lo schema per l'operazione di notifica (operazione in ingresso) e PROCESS_RECORDS (operazione in uscita) nella tabella ACCOUNTACTIVITY.
Creare un'orchestrazione con quanto segue:
Posizione di ricezione per ricevere messaggi di notifica. È possibile configurare per la notifica specificando l'istruzione SELECT come:
SELECT TID,ACCOUNT,PROCESSED FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’
Nota
È necessario specificare il nome della tabella insieme al nome dello schema. Ad esempio:
SCOTT.ACCOUNTACTIVITY
.Porta di invio per aggiornare le righe per cui è già stata inviata la notifica. Si eseguirà la stored procedure PROCESS_RECORDS in questa porta per impostare il valore della colonna "Elaborato" su 'y' per i record per cui viene ricevuta la notifica.
Si noti che questa operazione deve essere eseguita dopo aver ricevuto i messaggi di notifica in modo che le righe elaborate vengano aggiornate. Per eliminare il sovraccarico di attesa per ottenere la risposta di notifica e quindi eliminare manualmente un messaggio di richiesta per eseguire la procedura di PROCESS_RECORDS, verrà generato il messaggio di richiesta per PROCESS_RECORDS procedura all'interno dell'orchestrazione stessa. È possibile farlo usando la forma Costrutto messaggio all'interno di un'orchestrazione.
Come ricevere messaggi di notifica dal database Oracle
L'esecuzione di un'operazione nel database Oracle tramite l'adapter Oracle Database con BizTalk Server comporta le attività procedurali descritte in Blocchi predefiniti per sviluppare applicazioni BizTalk con Oracle Database. Per configurare l'adapter per ricevere messaggi di notifica, queste attività sono:
Creare un progetto BizTalk e quindi generare lo schema per la notifica (operazione in ingresso) e la procedura di PROCESS_RECORDS (operazione in uscita) nella tabella ACCOUNTACTIVITY. Facoltativamente, è possibile specificare i valori per le proprietà di associazione InboundOperationType, NotificationPort e NotificationStatement.
Creare un messaggio nel progetto BizTalk per ricevere una notifica dal database Oracle.
Creare messaggi nel progetto BizTalk per eseguire la stored procedure PROCESS_RECORDS e ricevere messaggi di risposta.
Creare un'orchestrazione che esegue le operazioni seguenti:
Riceve il messaggio di notifica dal database Oracle.
Crea un messaggio per eseguire la procedura di PROCESS_RECORDS.
Invia questo messaggio al database Oracle per selezionare e aggiornare i record e ricevere una risposta.
Compilare e distribuire il progetto BizTalk.
Configurare l'applicazione BizTalk creando porte di invio e ricezione fisiche.
Nota
Per le operazioni in ingresso, ad esempio la ricezione di messaggi di notifica, è necessario configurare solo una porta di ricezione WCF-Custom o WCF-OracleDB unidirezionale. Le porte di ricezione bidirezionale non sono supportate per le operazioni in ingresso.
Avviare l'applicazione BizTalk.
In questo argomento vengono fornite istruzioni per eseguire queste attività.
Generazione dello schema
È necessario generare lo schema per l'operazione di notifica e la procedura di PROCESS_RECORDS . Per altre informazioni su come generare lo schema , vedere Recuperare i metadati per le operazioni Oracle in Visual Studio . Eseguire le attività seguenti durante la generazione dello schema. Ignorare il primo passaggio se non si desidera specificare le proprietà di associazione in fase di progettazione.
Specificare un valore per le proprietà di associazione InboundOperationType, NotificationPort e NotificationStatement durante la generazione dello schema. Per altre informazioni su questa proprietà di associazione, vedere Uso dell'adapter BizTalk per le proprietà di associazione di database Oracle. Per istruzioni su come specificare le proprietà di associazione, vedere Specifica delle proprietà di associazione.
Selezionare il tipo di contratto come servizio (operazioni in ingresso).
Generare lo schema per l'operazione di notifica .
Selezionare il tipo di contratto come client (operazioni in uscita).
Generare lo schema per la procedura di PROCESS_RECORDS . Questa procedura è disponibile nel pacchetto ACCOUNT_PKG .
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 cui è definito dallo schema corrispondente. Dopo aver generato lo schema, è necessario collegarlo ai messaggi dalla visualizzazione Orchestrazione del progetto BizTalk.
Per questo argomento è necessario creare tre messaggi, uno per ricevere notifiche dal database Oracle, una per eseguire la procedura di PROCESS_RECORDS e una per ricevere la risposta per la procedura.
Seguire questa procedura per creare messaggi e collegarli allo schema.
Per creare messaggi e collegare allo schema
Aggiungere un'orchestrazione al progetto BizTalk. Nella 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 della 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, quindi scegliere Nuovo messaggio.
Fare clic con il pulsante destro del mouse sul messaggio appena creato e quindi selezionare Finestra proprietà.
Nel riquadro Proprietà per Message_1 eseguire le operazioni seguenti:
Usare Per Identificatore Digitare NotifyReceive
.Tipo di messaggio Nell'elenco a discesa espandere Schemi e selezionare OracleNotifyIncremental.OracleDBBinding.Notification, dove OracleNotifyIncremental è il nome del progetto BizTalk. OracleDBBinding è lo schema generato per l'operazione di notifica . Ripetere il passaggio 3 per creare due nuovi messaggi. Nel riquadro Proprietà per il nuovo messaggio eseguire le operazioni seguenti:
Impostare identificatore su Impostare tipo di messaggio su Procedura OracleNotifyIncremental.OracleDBBinding1.PROCESS_RECORDS, dove OracleDBBinding1 è lo schema generato per la procedura di PROCESS_RECORDS . ProcedureResponse OracleNotifyIncremental.OracleDBBinding1.PROCESS_RECORDSResponse
Configurazione dell'orchestrazione
È necessario creare un'orchestrazione BizTalk per usare BizTalk Server per ricevere messaggi di notifica dal database Oracle e quindi aggiornare le righe per cui è stata ricevuta la notifica. In questa orchestrazione l'adapter riceve il messaggio di notifica in base all'istruzione SELECT specificata per la proprietà di associazione NotificationStatement . Il messaggio di notifica viene ricevuto in un percorso FILE. Una volta ricevuta la risposta, l'orchestrazione costruisce un messaggio per richiamare la procedura di PROCESS_RECORDS, che aggiorna le righe per cui viene ricevuta la notifica. La risposta per questo messaggio viene ricevuta anche nella stessa posizione FILE.
Quindi, l'orchestrazione deve contenere quanto segue:
Una porta di ricezione di WCF-Custom o WCF-OracleDB unidirezionale per ricevere messaggi di notifica.
Un WCF-Custom bidirezionale o WCF-OracleDB porta di invio per inviare messaggi per eseguire la procedura di PROCESS_RECORDS.
Forma Costrutto messaggio per costruire messaggi, per eseguire PROCESS_RECORDS routine, all'interno dell'orchestrazione.
Porta di invio FILE per salvare il messaggio di notifica e la risposta per la procedura di PROCESS_RECORDS.
Ricevere e inviare forme.
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à |
---|---|---|
ReceiveNotification | Ricevere | - Impostare nome su ReceiveNotification - Impostare Attiva su True |
SaveNotification | Send | - Impostare nome su SaveNotification |
SendProcMessage | Send | - Impostare nome su SendProcMessage |
ReceiveProcResponse | Ricevere | - Impostare nome su ReceiveProcResponse |
SaveProcResponse | Send | - Impostare nome su SaveProcResponse |
Aggiunta della forma del messaggio di costrutto
È possibile usare la forma Costrutto messaggio per generare un messaggio di richiesta all'interno dell'orchestrazione per eseguire la procedura di PROCESS_RECORDS. A tale scopo, è necessario aggiungere una forma Costrutto messaggio e all'interno di tale forma di assegnazione di messaggi all'orchestrazione. Per questo esempio, la forma Assegnazione messaggi richiama il codice che genera un messaggio inviato al database Oracle per eseguire la procedura. La forma Assegnazione messaggi imposta anche l'azione per l'invio del messaggio al database Oracle.
Per la forma del messaggio di costruzione, impostare la proprietà Message Constructed su Procedure.
Il codice per generare la risposta potrebbe far parte della stessa soluzione di Visual Studio del progetto BizTalk. Un codice di esempio per la generazione di un messaggio di risposta è simile al seguente.
namespace SampleMessageCreator
{
public class SampleMessageCreator
{
private static XmlDocument Message;
private static string XmlFileLocation;
private static string ResponseDoc;
public static XmlDocument XMLMessageCreator()
{
XmlFileLocation = "C:\\TestLocation\\MessageIn";
try
{
ResponseDoc = (Directory.GetFiles(XmlFileLocation, "*.xml", SearchOption.TopDirectoryOnly))[0];
}
catch (Exception ex)
{
Console.WriteLine("Trying to get XML from: " + XmlFileLocation);
Console.WriteLine("EXCEPTION: " + ex.ToString());
throw ex;
}
//Create Message From XML
Message = new XmlDocument();
Message.PreserveWhitespace = true;
Message.Load(ResponseDoc);
return Message;
}
}
}
Per poter generare un messaggio di richiesta, è necessario disporre di un messaggio di richiesta XML (per la procedura di PROCESS_RECORDS) nel percorso specificato per la XmlFileLocation
variabile.
Nota
Dopo aver compilato il progetto, MessageCreator.dll verrà creato nella directory del progetto. È necessario aggiungere questa DLL alla global assembly cache (GAC). È inoltre necessario aggiungere il MessageCreator.dll come riferimento nel progetto BizTalk.
Aggiungere l'espressione seguente per richiamare questo codice dalla forma Assegnazione messaggi e impostare l'azione per il messaggio. Per aggiungere un'espressione, fare doppio clic sulla forma Assegnazione messaggi per aprire l'editor di espressioni.
Procedure = SampleMessageCreator.SampleMessageCreator.XMLMessageCreator();
Procedure(WCF.Action) = "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/PROCESS_RECORDS";
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.
Porta | Proprietà |
---|---|
OracleNotifyPort | - Impostare identificatore su OracleNotifyPort - Impostare tipo su OracleNotifyPortType - Impostare il modello di comunicazionesu unidirezionale - Impostare la direzione di comunicazione su Ricezione |
SaveMessagePort | - Impostare identificatore su SaveMessagePort - Impostare tipo su SaveMessagePortType - Impostare il modello di comunicazionesu unidirezionale - Impostare la direzione di comunicazione su Invia - Creare un'operazione Notifica. Questa operazione viene usata per i messaggi di notifica. - Creare una procedura di operazione. Questa operazione viene usata per selezionare i messaggi di risposta. |
OracleOutboundPort | - Impostare identificatore su OracleOutboundPort - Impostare tipo su OracleOutboundPortType - Impostare il modello di comunicazione su Request-Response - Impostare la direzione di comunicazione su Send-Receive |
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 del messaggio visualizzate nella orchestrazione menzionata in precedenza.
Forma | Proprietà |
---|---|
ReceiveNotification | - Impostare messaggio su NotifyReceive - Impostare l'operazione su OracleNotifyPort.Notify.Request |
SaveNotification | - Impostare messaggio su NotifyReceive - Impostare l'operazione su SaveMessagePort.Notify.Request |
SendProcMessage | - Impostare messaggio su routine - Impostare l'operazione su OracleOutboundPort.Procedure.Request |
ReceiveProcResponse | - Impostare messaggio su ProcedureResponse - Impostare l'operazione su OracleOutboundPort.Procedure.Response |
SaveProcResponse | - Impostare messaggio su ProedureResponse - Impostare l'operazione su SaveMessagePort.Procedure.Request |
Dopo aver specificato queste proprietà, le forme e le porte del messaggio sono connesse e la orchestrazione è stata completata.
È ora necessario compilare la soluzione BizTalk e distribuirla in un BizTalk Server. Per altre informazioni, vedere Creazione e 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. È necessario usare la console di amministrazione BizTalk Server per configurare l'applicazione. 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.
Mapping delle porte create nell'orchestrazione alle porte fisiche nella console di amministrazione di BizTalk Server. Per questa orchestrazione è necessario:
Definire un WCF-Custom fisico o WCF-OracleDB porta di ricezione unidirezionale. Questa porta è in ascolto delle notifiche provenienti dal database Oracle. Per informazioni su come creare porte di ricezione, vedere Configurare manualmente un'associazione di porte fisiche all'adapter di database Oracle. 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 tal caso, è possibile creare una porta di ricezione, con le proprietà di associazione necessarie impostate, importando il file di associazione creato dal componente aggiuntivo Del servizio adapter di utilizzo. Per altre informazioni, vedere Configurare un'associazione di porte fisiche usando un file di associazione di porte a Oracle Database.
Binding, proprietà Valore InboundOperationType Impostare questa opzione su Notifica. NotificationPort Specifica il numero di porta che ODP.NET deve essere aperto per ascoltare la notifica di modifica del database dal database Oracle. Impostare questo valore sullo stesso numero di porta che è necessario aggiungere all'elenco eccezioni di Windows Firewall. Per istruzioni su come aggiungere porte all'elenco eccezioni di Windows Firewall, vedere https://go.microsoft.com/fwlink/?LinkID=196959.
Importante: Se si imposta questo valore sul valore predefinito di -1, sarà necessario disabilitare completamente Windows Firewall per ricevere messaggi di notifica.NotificaStatement Impostare questa opzione su:
SELECT TID,ACCOUNT,PROCESSED FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’
Nota: È necessario specificare il nome della tabella insieme al nome dello schema. Ad esempio:SCOTT.ACCOUNTACTIVITY
.NotifyOnListenerStart Impostare questa opzione su True. Per altre informazioni sulle diverse proprietà di associazione, vedere Uso dell'adapter BizTalk per le proprietà di associazione di database Oracle.
Nota
È consigliabile configurare il livello di isolamento delle transazioni e il timeout delle transazioni durante l'esecuzione di operazioni in ingresso usando l'adapter Oracle Database. È possibile farlo aggiungendo il comportamento del servizio durante la configurazione della porta di ricezione WCF-Custom o WCF-OracleDB. Per istruzioni su come aggiungere il comportamento del servizio, vedere Configurare il livello di isolamento delle transazioni e il timeout delle transazioni.
Definire un WCF-Custom fisico o WCF-OracleDB porta di invio per inviare messaggi al database Oracle per eseguire la procedura di PROCESS_REOCRDS. È anche necessario specificare l'azione nella porta di invio.
Definire un percorso sul disco rigido e una porta file corrispondente in cui l'orchestrazione BizTalk rilascia i messaggi dal database Oracle. Questi saranno i messaggi di notifica ricevuti dal database Oracle e i messaggi per la procedura di PROCESS_RECORDS eseguita tramite la porta di trasmissione WCF-Custom o WCF-OracleDB.
Avvio dell'applicazione
È necessario avviare l'applicazione BizTalk per ricevere messaggi di notifica dal database Oracle e per eseguire la procedura di PROCESS_RECORDS. Per istruzioni sull'avvio di un'applicazione BizTalk, vedere Come avviare un'orchestrazione.
In questa fase assicurarsi di:
Il WCF-Custom o WCF-OracleDB porta di ricezione unidirezionale, che riceve i messaggi di notifica dal database Oracle.
La porta di trasmissione WCF-Custom o WCF-OracleDB per eseguire la procedura di PROCESS_RECORDS è in esecuzione.
La porta di invio FILE, che riceve messaggi dal database Oracle, è in esecuzione.
L'orchestrazione BizTalk per l'operazione è in esecuzione.
Esecuzione dell'operazione
Si supponga che la tabella ACCOUNTACTIVITY abbia già alcuni record. Assicurarsi inoltre che il messaggio XML da eseguire PROCESS_RECORDS procedura sia disponibile in C:\TestLocation\MessageIn. Il file XML dovrebbe essere simile al seguente:
<PROCESS_RECORDS xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG"/>
Dopo l'avvio dell'orchestrazione BizTalk, il set di azioni seguente viene eseguito nella stessa sequenza:
L'adattatore riceve un messaggio di notifica simile al seguente:
\<?xml version="1.0" encoding="utf-8" ?\> <Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification/"> <Info>ListenerStarted</Info> <Source>OracleDBBinding</Source> <Type>Startup</Type> </Notification>
Questo messaggio notifica che viene avviata la porta di ricezione per la ricezione dei messaggi di notifica. Si noti che il valore dell'elemento
<Info>
è "ListnerStarted".L'adapter esegue la procedura di PROCESS_RECORDS. La risposta successiva dal database Oracle è per la procedura.
<?xml version="1.0" encoding="utf-8" ?> <PROCESS_RECORDSResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG"> <TABLE_DATA> <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element msdata:IsDataSet="true" name="NewDataSet"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="NewTable"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="TID" type="xs:decimal" /> <xs:element minOccurs="0" name="ACCOUNT" type="xs:decimal" /> <xs:element minOccurs="0" name="PROCESSED" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <NewDataSet xmlns=""> <NewTable> <TID>1</TID> <ACCOUNT>100001</ACCOUNT> <PROCESSED>n</PROCESSED> </NewTable> <NewTable> ...... ...... </NewTable> ...... ...... </NewDataSet> </diffgr:diffgram> </TABLE_DATA> </PROCESS_RECORDSResponse>
Questa è la risposta per l'istruzione SELECT eseguita come parte della procedura di PROCESS_RECORDS.
La procedura PROCESS_RECORDS aggiorna anche le righe per impostare PROCESSED su 'y'. Di conseguenza, l'adapter riceve un'altra notifica per l'operazione Di aggiornamento.
<?xml version="1.0" encoding="utf-8" ?> <Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification/"> <Details> <NotificationDetails> <ResourceName>SCOTT.ACCOUNTACTIVITY</ResourceName> <Info>32</Info> <QueryId>0</QueryId> </NotificationDetails> </Details> <Info>Update</Info> <ResourceNames> <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">SCOTT.ACCOUNTACTIVITY</string> </ResourceNames> <Source>Data</Source> <Type>Change</Type> </Notification>
Si noti che l'elemento
Info
contiene "Update".Dopo la seconda notifica, l'adapter esegue nuovamente la procedura di PROCESS_RECORDS. Tuttavia, poiché non sono presenti record in cui la colonna PROCESSED è impostata su 'n', la procedura restituisce una risposta vuota simile alla seguente.
<?xml version="1.0" encoding="utf-8" ?> <PROCESS_RECORDSResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG"> <TABLE_DATA> <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element msdata:IsDataSet="true" name="NewDataSet"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="NewTable"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="TID" type="xs:decimal" /> <xs:element minOccurs="0" name="ACCOUNT" type="xs:decimal" /> <xs:element minOccurs="0" name="PROCESSED" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <NewDataSet xmlns="" /> </diffgr:diffgram> </TABLE_DATA> </PROCESS_RECORDSResponse>
Procedure consigliate
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 invio e ricevere le porte per la stessa orchestrazione. Per altre informazioni sui file di associazione, vedere Riutilizzare le associazioni dell'adapter di database Oracle.
Vedere anche
Ricezione di notifiche di modifica del database Oracle tramite BizTalk Server