Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Por motivos de brevedad, en este tema solo se describe cómo recibir notificaciones de forma incremental. En escenarios empresariales, la orquestación debe incluir idealmente la lógica para extraer el tipo de mensaje de notificación recibido y, a continuación, realizar las operaciones posteriores. En otras palabras, la orquestación descrita en este tema debe basarse en la orquestación descrita en Mensajes de notificación de proceso para completar tareas específicas en Oracle Database mediante BizTalk Server.
En este tema se muestra cómo configurar el adaptador de Oracle Database para recibir mensajes de notificación de consultas incrementales de Oracle. Para mostrar las notificaciones incrementales, consideramos una tabla, ACCOUNTACTIVITY, con una columna "Procesada". Cuando se inserta un nuevo registro en esta tabla, el valor de la columna "Procesado" se establece en "n". Puede configurar el adaptador para recibir notificaciones incrementales haciendo lo siguiente:
Regístrese para recibir notificaciones mediante una instrucción SELECT que recupere todos los registros que tienen la columna "Procesado" como "n". Para ello, especifique la instrucción SELECT para la propiedad de enlace NotificationStatement.
Para las filas que han sido notificadas, actualice la columna "Procesado" a "y".
En este tema se muestra cómo crear una orquestación de BizTalk y configurar una aplicación de BizTalk para lograrlo.
Configuración de notificaciones con las propiedades de enlace del adaptador de base de datos de Oracle
En la tabla siguiente se resumen las propiedades de enlace del adaptador de base de datos de Oracle que se usan para configurar la recepción de notificaciones de la base de datos de Oracle. Debe especificar estas propiedades de enlace al configurar el puerto de recepción en la consola de administración de BizTalk Server.
Nota:
Puede especificar estas propiedades de enlace al generar el esquema para la operación de notificación , aunque no sea obligatorio. Si lo hace, el archivo de enlace de puertos que el Complemento de Servicio para Consumir Adaptadores genera como parte de la generación de metadatos también contiene los valores que especifique para las propiedades de enlace. Más adelante puede importar este archivo de enlace en la consola de administración de BizTalk Server para crear el puerto de recepción personalizado de WCF o WCF-OracleDB con las propiedades de enlace ya establecidas. Para obtener más información sobre cómo crear un puerto de recepción mediante el archivo de enlace, consulte Configuración de un enlace de puerto físico mediante un archivo de enlace de puertos en Oracle Database.
| Propiedad de enlace | Descripción |
|---|---|
| InboundOperationType | Especifica la operación de entrada que desea realizar. Para recibir mensajes de notificación, establézcalo en Notificación. |
| NotificationPort | Especifica el número de puerto que ODP.NET debe abrir para escuchar la notificación de cambio de base de datos de Oracle. |
| NotificationStatement | Especifica la instrucción SELECT que se utiliza para registrar las notificaciones de consulta. El adaptador obtiene un mensaje de notificación solo cuando cambia el conjunto de resultados de la instrucción SELECT especificada. |
| NotifyOnListenerStart | Especifica si el adaptador envía una notificación a los clientes del adaptador cuando se inicia el agente de escucha. |
Para obtener una descripción más completa de estas propiedades, vea Trabajar con el adaptador de BizTalk para propiedades de enlace de base de datos de Oracle. Para obtener una descripción completa de cómo usar el adaptador de Oracle Database para recibir notificaciones de la base de datos de Oracle, lea más información.
Cómo muestra este tema la recepción de mensajes de notificación
En este tema, para demostrar cómo el adaptador de base de datos de Oracle admite la recepción de mensajes de notificación de cambios de base de datos incrementales de la base de datos de Oracle, configuraremos el adaptador para recibir notificaciones de cambios en la tabla ACCOUNTACTIVTY. Supongamos que la tabla ACCOUNTACTIVITY tiene columnas "TID", "Account" y "Processed". Cada vez que se agrega un nuevo registro, el valor de la columna "Procesado" se establece en 'n'. Por lo tanto, para obtener notificaciones incrementales, tendrá que realizar las siguientes tareas como parte de la orquestación de BizTalk:
Obtener una notificación para todos los registros donde "Procesado" es 'n'. Para ello, especifique una instrucción SELECT como una instrucción de notificación.
Una vez recibida la notificación para un registro determinado, establezca "Procesado" en "y". Para ello, ejecute un procedimiento almacenado, PROCESS_RECORDS, que actualiza la columna "Procesado".
Para demostrar la recepción de notificaciones incrementales, hacemos lo siguiente:
Genere el esquema para la notificación (operación de entrada) y PROCESS_RECORDS (operación de salida) en la tabla ACCOUNTACTIVITY.
Cree una orquestación que tenga lo siguiente:
Ubicación de recepción para recibir mensajes de notificación. Puede configurar para la notificación especificando la instrucción SELECT como:
SELECT TID,ACCOUNT,PROCESSED FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’Nota:
Debe especificar el nombre de la tabla junto con el nombre del esquema. Por ejemplo:
SCOTT.ACCOUNTACTIVITY.Un puerto de envío para actualizar las filas para las que ya se han enviado notificaciones. Ejecutará el procedimiento almacenado PROCESS_RECORDS en este puerto para establecer el valor de la columna "Procesado" en "y" para los registros para los que se recibe la notificación.
Tenga en cuenta que esta operación debe ejecutarse después de recibir los mensajes de notificación para que se actualicen las filas procesadas. Para evitar la sobrecarga de esperar la respuesta de notificación y, a continuación, enviar manualmente un mensaje de solicitud para ejecutar el procedimiento PROCESS_RECORDS, generará el mensaje de solicitud para el procedimiento PROCESS_RECORDS dentro de la orquestación misma. Puede hacerlo mediante la forma Construir mensaje dentro de una orquestación.
Recepción de mensajes de notificación de la base de datos de Oracle
Realizar una operación en la base de datos de Oracle mediante el adaptador de base de datos de Oracle con BizTalk Server implica las tareas de procedimientos descritas en Bloques de creación para desarrollar aplicaciones de BizTalk con Oracle Database. Para configurar el adaptador para recibir mensajes de notificación, estas tareas son:
Cree un proyecto de BizTalk y, a continuación, genere esquema para la notificación (operación de entrada) y PROCESS_RECORDS procedimiento (operación de salida) en la tabla ACCOUNTACTIVITY. Opcionalmente, puede especificar valores para las propiedades de enlace InboundOperationType, NotificationPort y NotificationStatement .
Cree un mensaje en el proyecto de BizTalk para recibir notificaciones de la base de datos de Oracle.
Cree mensajes en el proyecto de BizTalk para ejecutar el procedimiento almacenado PROCESS_RECORDS y recibir mensajes de respuesta.
Cree una orquestación que haga lo siguiente:
Recibe el mensaje de notificación de la base de datos de Oracle.
Crea un mensaje para ejecutar el procedimiento PROCESS_RECORDS.
Envía este mensaje a la base de datos de Oracle para seleccionar y actualizar los registros y recibir una respuesta.
Compile e implemente el proyecto de BizTalk.
Configure la aplicación de BizTalk mediante la creación de puertos de envío y recepción físicos.
Nota:
Para las operaciones entrantes, como la recepción de mensajes de notificación, solo debe configurar un puerto de recepción unidireccional WCF-Custom o WCF-OracleDB. Los puertos de recepción bidireccionales no se admiten para las operaciones entrantes.
Inicie la aplicación de BizTalk.
En este tema se proporcionan instrucciones para realizar estas tareas.
Generar esquema
Debe generar el esquema para la operación Notification y el procedimiento PROCESS_RECORDS. Consulte Recuperación de metadatos para operaciones de Oracle en Visual Studio para obtener más información sobre cómo generar el esquema. Realice las siguientes tareas al generar el esquema. Omita el primer paso si no desea especificar las propiedades de enlace en tiempo de diseño.
Especifique un valor para las propiedades de enlace InboundOperationType, NotificationPort y NotificationStatement al generar el esquema. Para obtener más información sobre esta propiedad de enlace, vea Trabajar con el adaptador de BizTalk para propiedades de enlace de base de datos de Oracle. Para obtener instrucciones sobre cómo especificar propiedades de enlace, vea Especificar propiedades de enlace.
Seleccione el tipo de contrato como Servicio (operaciones de entrada).
Generar esquema para la operación de notificación .
Seleccione el tipo de contrato como Cliente (operaciones salientes).
Generar esquema para el procedimiento PROCESS_RECORDS . Este procedimiento está disponible en el paquete ACCOUNT_PKG .
Definición de mensajes y tipos de mensajes
El esquema que generó anteriormente describe los "tipos" necesarios para los mensajes de la orquestación. Normalmente, un mensaje es una variable, el tipo para el que se define mediante el esquema correspondiente. Una vez generado el esquema, debe vincularlo a los mensajes de la vista Orquestación del proyecto de BizTalk.
Para este tema, debe crear tres mensajes: uno para recibir notificaciones de la base de datos de Oracle, una para ejecutar el procedimiento PROCESS_RECORDS y otra para recibir la respuesta del procedimiento.
Realice los pasos siguientes para crear mensajes y vincularlos al esquema.
Para crear mensajes y vincular al esquema
Agregue una orquestación al proyecto de BizTalk. En el Explorador de soluciones, haga clic con el botón derecho en el nombre del proyecto de BizTalk, seleccione Agregar y, a continuación, haga clic en Nuevo elemento. Escriba un nombre para la orquestación de BizTalk y, a continuación, haga clic en Agregar.
Abra la ventana de vista de orquestación del proyecto de BizTalk, si aún no está abierta. Haga clic en Ver, seleccione Otras ventanas y, a continuación, haga clic en Vista de orquestación.
En la vista Orquestación, haga clic con el botón derecho en Mensajes y, a continuación, haga clic en Nuevo mensaje.
Haga clic con el botón derecho en el mensaje recién creado y, a continuación, seleccione Ventana Propiedades.
En el panel Propiedades de Message_1, haga lo siguiente:
Usa esto Para Identificador Escriba NotifyReceive.Tipo de mensaje En la lista desplegable, expanda Esquemas y seleccione OracleNotifyIncremental.OracleDBBinding.Notification, donde OracleNotifyIncremental es el nombre del proyecto de BizTalk. OracleDBBinding es el esquema generado para la operación de notificación . Repita el paso 3 para crear dos mensajes nuevos. En el panel Propiedades del nuevo mensaje, haga lo siguiente:
Establece el identificador en Establecer el tipo de mensaje en Procedimiento OracleNotifyIncremental.OracleDBBinding1.PROCESS_RECORDS, donde OracleDBBinding1 es el esquema generado para el procedimiento PROCESS_RECORDS . RespuestaDelProcedimiento OracleNotifyIncremental.OracleDBBinding1.PROCESS_RECORDSResponse
Configuración de la orquestación
Debe crear una orquestación de BizTalk para usar BizTalk Server para recibir mensajes de notificación de la base de datos de Oracle y, a continuación, actualizar las filas para las que se recibió la notificación. En esta orquestación, el adaptador recibe el mensaje de notificación en función de la instrucción SELECT especificada para la propiedad de enlace NotificationStatement. El mensaje de notificación se recibe en una ubicación FILE. Una vez recibida la respuesta, la orquestación construye un mensaje para invocar el procedimiento PROCESS_RECORDS, que actualiza las filas para las que se recibe la notificación. La respuesta de este mensaje también se recibe en la misma ubicación del archivo.
Por lo tanto, la orquestación debe contener lo siguiente:
Un puerto de recepción unidireccional WCF-Custom o WCF-OracleDB para recibir mensajes de notificación.
Un puerto de envío WCF-Custom o WCF-OracleDB bidireccional para transmitir mensajes y ejecutar el procedimiento PROCESS_RECORDS.
Forma Construir Mensaje para construir mensajes y ejecutar el procedimiento PROCESS_RECORDS dentro de la orquestación.
Un puerto de envío FILE para guardar el mensaje de notificación y la respuesta del procedimiento PROCESS_RECORDS.
Recibir y enviar formas.
Una orquestación de ejemplo es similar a la siguiente.
Agregar formas de mensaje
Asegúrese de especificar las siguientes propiedades para cada una de las formas de mensaje. Los nombres enumerados en la columna Shape son los nombres de las formas de mensaje tal como se muestran en la orquestación recién mencionada.
| Forma | Tipo de forma | Propiedades |
|---|---|---|
| RecibirNotificación | Recibir | - Establecer nombre en ReceiveNotification - Establecer Activar en True |
| SaveNotification | Enviar | - Establecer nombre en SaveNotification |
| SendProcMessage | Enviar | - Establecer nombre en SendProcMessage |
| ReceiveProcResponse | Recibir | - Establecer nombre en ReceiveProcResponse |
| SaveProcResponse | Enviar | - Establecer Nombre en SaveProcResponse |
Agregar forma de construcción de mensaje
Puede usar la forma Construir mensaje para generar un mensaje de solicitud dentro de la orquestación para ejecutar el procedimiento PROCESS_RECORDS. Para ello, debe agregar un Elemento Construir Mensaje y, dentro de ese, un Elemento Asignación de Mensaje a su orquestación. En este ejemplo, la forma Asignación de mensajes invoca código que genera un mensaje que se envía a la base de datos de Oracle para ejecutar el procedimiento. La forma Asignación de mensajes también establece la acción para que el mensaje se envíe a la base de datos de Oracle.
Para la forma del mensaje construido, establezca la propiedad Mensaje Construido en Procedure.
El código para generar la respuesta podría formar parte de la misma solución de Visual Studio que el proyecto de BizTalk. Un código de ejemplo para generar un mensaje de respuesta tiene este aspecto.
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;
}
}
}
Para que el fragmento de código anterior pueda generar un mensaje de solicitud, debe tener un mensaje de solicitud XML (para el procedimiento PROCESS_RECORDS) en la ubicación especificada para la XmlFileLocation variable.
Nota:
Después de compilar el proyecto, MessageCreator.dll se creará en el directorio del proyecto. Debe agregar este archivo DLL a la caché global de ensamblados (GAC). Además, debe agregar el MessageCreator.dll como referencia en el proyecto de BizTalk.
Agregue la siguiente expresión para invocar este código desde la forma Asignación de mensajes y para establecer la acción para el mensaje. Para agregar una expresión, haga doble clic en la forma Asignación de mensajes para abrir el Editor de expresiones.
Procedure = SampleMessageCreator.SampleMessageCreator.XMLMessageCreator();
Procedure(WCF.Action) = "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/PROCESS_RECORDS";
Agregar puertos
Asegúrese de especificar las siguientes propiedades para cada uno de los puertos lógicos. Los nombres enumerados en la columna Puerto son los nombres de los puertos tal como aparecen en la orquestación.
| Puerto | Propiedades |
|---|---|
| OracleNotifyPort | - Establecer identificador en OracleNotifyPort - Configura el tipo en OracleNotifyPortType - Establecer el patrón de comunicación en unidireccional - Establecer la dirección de comunicación para recibir |
| SaveMessagePort | - Establecer identificador en SaveMessagePort - Establecer el tipo en SaveMessagePortType - Establecer el patrón de comunicación en unidireccional - Establecer la dirección de comunicación en Enviar - Crear una operación Notify. Esta operación se usa para los mensajes de notificación. - Crear un procedimiento de operación. Esta operación se usa para seleccionar mensajes de respuesta. |
| PuertoDeSalidaDeOracle | - Establecer identificador en OracleOutboundPort - Configurar Tipo en OracleOutboundPortType - Establecer el patrón de comunicación en Request-Response - Establecer la dirección de comunicación en enviar y recibir |
Especificar mensajes para formas de acción y conectarse a puertos
En la tabla siguiente se especifican las propiedades y sus valores que se deben establecer para especificar mensajes para las formas de acción y para vincular los mensajes a los puertos. Los nombres enumerados en la columna Shape son los nombres de las formas de mensaje tal como se muestran en la orquestación mencionada anteriormente.
| Forma | Propiedades |
|---|---|
| RecibirNotificación | - Establecer Mensaje en NotifyReceive - Configurar Operation como OracleNotifyPort.Notify.Request |
| GuardarNotificación | - Establecer Mensaje en NotifyReceive - Establecer Operación en SaveMessagePort.Notify.Request |
| SendProcMessage | - Establecer mensaje en procedimiento - Establecer la operación en OracleOutboundPort.Procedure.Request |
| ReceiveProcResponse | - Establecer mensaje en ProcedureResponse - Establecer Operation en OracleOutboundPort.Procedure.Response |
| SaveProcResponse | - Establecer mensaje en ProedureResponse - Establecer Operation en SaveMessagePort.Procedure.Request |
Una vez que haya especificado estas propiedades, las formas de mensaje y los puertos están conectados y se completa la orquestación.
Ahora debe compilar la solución de BizTalk e implementarla en un servidor de BizTalk Server. Para obtener más información, vea Compilar y ejecutar orquestaciones.
Configuración de la aplicación de BizTalk
Después de implementar el proyecto de BizTalk, la orquestación que creó anteriormente aparece en el panel Orquestaciones de la consola de administración de BizTalk Server. Debe usar la consola de administración de BizTalk Server para configurar la aplicación. Para ver un tutorial, consulte Tutorial: Implementación de una aplicación básica de BizTalk.
La configuración de una aplicación implica:
Selección de un host para la aplicación.
Asignación de los puertos que creó en la orquestación a puertos físicos en la consola de administración de BizTalk Server. Para esta orquestación, debes:
Defina un puerto de recepción unidireccional físico WCF-Custom o WCF-OracleDB. Este puerto escucha las notificaciones procedentes de la base de datos de Oracle. Para obtener información sobre cómo crear puertos de recepción, consulte Configuración manual de un enlace de puerto físico al adaptador de base de datos de Oracle. Asegúrese de especificar las siguientes propiedades de enlace para el puerto de recepción.
Importante
No es necesario realizar este paso si especificó las propiedades de enlace en tiempo de diseño. En tal caso, puede crear un puerto de recepción, con las propiedades de enlace necesarias establecidas, importando el archivo de enlace creado por el complemento Consume Adapter Service Add-in. Para obtener más información, consulte Configuración de un enlace de puerto físico mediante un archivo de enlace de puertos en Oracle Database.
Propiedad de enlace Importancia InboundOperationType Establézcalo en Notificación. NotificationPort Especifica el número de puerto que ODP.NET debe abrir para escuchar la notificación de cambio de base de datos de Oracle. Establézcalo en el mismo número de puerto que debe haber agregado a la lista de excepciones del Firewall de Windows. Para obtener instrucciones sobre cómo agregar puertos a la lista de excepciones de Firewall de Windows, consulte https://go.microsoft.com/fwlink/?LinkID=196959.
Importante: Si estableces esto en el valor predeterminado de -1, tendrás que deshabilitar completamente firewall de Windows para recibir mensajes de notificación.NotificationStatement Establézcalo en:
SELECT TID,ACCOUNT,PROCESSED FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’
Nota: Debe especificar el nombre de la tabla junto con el nombre del esquema. Por ejemplo:SCOTT.ACCOUNTACTIVITY.NotifyOnListenerStart Establézcalo en True. Para obtener más información sobre las distintas propiedades de enlace, vea Trabajar con el adaptador de BizTalk para propiedades de enlace de base de datos de Oracle.
Nota:
Se recomienda configurar el nivel de aislamiento de transacciones y el tiempo de espera de la transacción mientras se realizan operaciones entrantes mediante el adaptador de base de datos de Oracle. Para ello, agregue el comportamiento del servicio al configurar el puerto de recepción WCF-Custom o WCF-OracleDB. Para obtener instrucciones sobre cómo agregar el comportamiento del servicio, consulte Configurar el nivel de aislamiento de transacción y el tiempo de espera de transacción.
Definir un puerto de envío físico WCF-Custom o WCF-OracleDB para enviar mensajes a la base de datos de Oracle y ejecutar el procedimiento PROCESS_RECORDS. También debe especificar la acción en el puerto de envío.
Defina una ubicación en el disco duro y un puerto de archivo correspondiente donde la orquestación de BizTalk quitará los mensajes de la base de datos de Oracle. Estos serán los mensajes de notificación recibidos de la base de datos de Oracle, así como los mensajes del procedimiento PROCESS_RECORDS que ejecute a través del puerto de envío WCF-Custom o WCF-OracleDB.
Iniciar la aplicación
Debe iniciar la aplicación de BizTalk para recibir mensajes de notificación de la base de datos de Oracle y ejecutar el procedimiento PROCESS_RECORDS. Para obtener instrucciones sobre cómo iniciar una aplicación de BizTalk, vea Cómo iniciar una orquestación.
En esta fase, asegúrese de:
El puerto de recepción unidireccional WCF-Custom o WCF-OracleDB, que recibe los mensajes de notificación desde la base de datos Oracle, está en funcionamiento.
El puerto de envío WCF-Custom o WCF-OracleDB está en ejecución para llevar a cabo el procedimiento PROCESS_RECORDS.
El puerto de envío FILE, que recibe mensajes de la base de datos de Oracle, se está ejecutando.
La orquestación de BizTalk para la operación se está ejecutando.
Ejecución de la operación
Supongamos que la tabla ACCOUNTACTIVITY ya tiene algunos registros. Además, asegúrese de que el mensaje XML para ejecutar PROCESS_RECORDS procedimiento está disponible en C:\TestLocation\MessageIn. El archivo XML debe ser similar al siguiente:
<PROCESS_RECORDS xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG"/>
Una vez iniciada la orquestación de BizTalk, se realiza el siguiente conjunto de acciones, en la misma secuencia:
El adaptador recibe un mensaje de notificación similar al siguiente:
\<?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>Este mensaje notifica que se inicia el puerto de recepción para recibir los mensajes de notificación. Tenga en cuenta que el valor del
<Info>elemento es "ListnerStarted".El adaptador ejecuta el procedimiento PROCESS_RECORDS. La siguiente respuesta de la base de datos de Oracle es para el procedimiento.
<?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>Esta es la respuesta de la instrucción SELECT que se ejecuta como parte del procedimiento PROCESS_RECORDS.
El procedimiento PROCESS_RECORDS también actualiza las filas para establecer PROCESSED en "y". Por lo tanto, el adaptador recibe otra notificación para la operación de actualización.
<?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>Tenga en cuenta que el
Infoelemento contiene "Update".Después de la segunda notificación, el adaptador vuelve a ejecutar el procedimiento PROCESS_RECORDS. Sin embargo, ahora, dado que no hay registros en los que la columna PROCESSED está establecida en "n", el procedimiento devuelve una respuesta vacía similar a la siguiente.
<?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>
Procedimientos recomendados
Después de implementar y configurar el proyecto de BizTalk, puede exportar los valores de configuración a un archivo XML denominado archivo de enlace. Una vez que genere un archivo de enlace, puede importar los valores de configuración del archivo, de modo que no sea necesario crear los puertos de envío y recibir puertos para la misma orquestación. Para obtener más información sobre la vinculación de archivos, consulte Reutilizar vinculaciones del adaptador de base de datos de Oracle.
Véase también
Recepción de notificaciones de cambios de base de datos de Oracle mediante BizTalk Server