Compartir a través de


Información general sobre el modelo de servicio WCF con el adaptador de base de datos de Oracle

Cuando se consumen operaciones que expone el adaptador de Microsoft BizTalk para oracle Database, el código actúa como un cliente o un servicio para el adaptador. Para casi todas las operaciones que muestra el adaptador de Oracle Database, el código es el cliente. Es decir, la aplicación invoca la operación en el adaptador; por ejemplo, para insertar registros en una tabla de Oracle. La única operación para la que el código actúa como servicio para el adaptador de oracle Database es para la operación POLLINGSMT. En este caso, el adaptador envía los resultados de la operación de consulta de sondeo a la aplicación.

En el modelo de servicio de Windows Communication Foundation (WCF), el contrato de servicio que existe entre un cliente y un servicio se representa como una interfaz .NET y las operaciones se representan como métodos en esta interfaz. El adaptador de base de datos de Oracle y WCF proporcionan herramientas que permiten generar esta interfaz para las operaciones de destino a partir de los metadatos que expone el adaptador. Estas herramientas también crean una clase de cliente WCF que se puede usar para invocar las operaciones expuestas en la interfaz de servicio. Una aplicación cliente puede llamar a los métodos de la clase de cliente WCF para invocar operaciones en el adaptador. Para implementar un servicio para recibir la operación POLLINGSTMT desde el adaptador de oracle Database, implemente la interfaz generada para la operación POLLINGSTMT.

En las secciones siguientes se explica cómo usar el modelo de servicio WCF para crear código de cliente y servicio para el adaptador de oracle Database.

Crear e invocar operaciones en un cliente WCF mediante el adaptador de base de datos de Oracle

Para usar el modelo de servicio WCF para invocar operaciones en el adaptador de Oracle Database, primero debe generar una clase de cliente WCF para las operaciones de destino. A continuación, puede crear una instancia de esta clase, un cliente WCF y llamar a sus métodos para realizar operaciones en la base de datos de Oracle.

Para invocar operaciones en el adaptador de Oracle Database

  1. Genere una clase de cliente WCF y un código auxiliar. Use el complemento Agregar referencia de servicio de adaptador de Visual Studio o la Herramienta de utilidad de metadatos serviceModel (svcutil.exe) para generar una clase de cliente WCF destinada a los artefactos de base de datos de Oracle con los que desea trabajar. Para obtener más información sobre cómo generar un cliente WCF, vea Generar un cliente WCF o un contrato de servicio WCF para artefactos de base de datos de Oracle.

  2. Cree una instancia de cliente WCF especificando un enlace de cliente. Especificar un enlace de cliente implica especificar el enlace y la dirección del punto de conexión que usará el cliente WCF. Puede hacerlo de forma imperativa en el código o mediante declaración en la configuración. Para obtener más información sobre cómo especificar un enlace de cliente, consulte Configuración de un enlace de cliente para oracle Database. El código siguiente crea un cliente WCF que se puede usar para realizar operaciones del lenguaje de manipulación de datos (DML) en una tabla de base de datos de Oracle (/SCOTT/ACCOUNTACTIVITY). También establece las credenciales de la base de datos de Oracle. El cliente WCF se inicializa a partir de la configuración.

    SCOTTTableACCOUNTACTIVITYClient aaTableClient =   
        new SCOTTTableACCOUNTACTIVITYClient("OracleDBBinding_SCOTT.Table.ACCOUNTACTIVITY");  
    
    aaTableClient.ClientCredentials.UserName.UserName = "SCOTT";  
    aaTableClient.ClientCredentials.UserName.Password = "TIGER";  
    
  3. Abra el cliente WCF.

    aaTableClient.Open();  
    
  4. Invoque métodos en el cliente WCF creado en el paso 2 para realizar operaciones en la base de datos de Oracle. El código siguiente invoca el método Select del cliente WCF para realizar la siguiente consulta SQL SELECT en la tabla ACCOUNTACTIVITY: SELECT * FROM ACCOUNTACTIVITY.

    // create a record set parameter to hold the SELECT query result set and invoke the Select operation;  
    microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.ACCOUNTACTIVITYRECORDSELECT[] selectRecords;  
    selectRecords = aaTableClient.Select("*", null);  
    
  5. Cierre del cliente WCF.

    aaTableClient.Close();  
    

    Para obtener más información sobre cómo realizar operaciones DML en tablas y vistas, incluida la operación Select usada anteriormente, vea Performing Basic Insert, Update, Delete, and Select Operations by Using the WCF Service Model.

Crear e implementar un servicio WCF mediante el adaptador de base de datos de Oracle

El adaptador de Oracle Database puede realizar sondeos en una tabla o vista de base de datos de Oracle. Esta funcionalidad le permite especificar una consulta SELECT de SQL que el adaptador debe ejecutar periódicamente en la base de datos de Oracle. Los resultados de esta consulta se devuelven a la aplicación mediante una operación especial, la operación POLLINGSTMT. Para recibir los resultados de la consulta de sondeo, la aplicación debe implementar el contrato de servicio que expone el adaptador de base de datos de Oracle para la operación POLLINGSTMT.

Para implementar un servicio para recibir la operación POLLINGSTMT, primero debe generar la interfaz .NET (también denominada contrato de servicio WCF) que representa el contrato de servicio expuesto por el adaptador de base de datos de Oracle para la operación POLLINGSTMT. Para obtener más información sobre cómo hacerlo, vea Generar un cliente WCF o un contrato de servicio WCF para artefactos de base de datos de Oracle.

Después, implemente un servicio WCF mediante la implementación de la interfaz generada. Esta clase contiene la lógica de negocios para procesar el mensaje POLLINGSTMT y devolver una respuesta al adaptador. A continuación, use un host de servicio (System.ServiceModel.ServiceHost) para hospedar una instancia de este servicio. Para obtener información más detallada, vea Recepción de mensajes modificados por datos basados en sondeo mediante el modelo de servicio WCF.

Consulte también

Desarrollo de aplicaciones de base de datos de Oracle mediante el modelo de servicio WCF