使用 Oracle 数据库适配器的 WCF 服务模型概述

使用适用于 Oracle 数据库的 Microsoft BizTalk 适配器的操作时,代码将充当客户端或适配器的服务。 对于 Oracle 数据库适配器显示的几乎所有操作,代码都是客户端。 也就是说,应用程序在适配器上调用 操作;例如,将记录插入 Oracle 表。 代码充当 Oracle 数据库适配器服务的唯一操作是 POLLINGSMT 操作。 在这种情况下,适配器会将轮询查询操作的结果发送到应用程序。

在 Windows Communication Foundation (WCF) 服务模型中,客户端和服务之间的服务协定表示为 .NET 接口,操作表示为此接口的方法。 Oracle 数据库适配器和 WCF 提供的工具使你能够根据适配器公开的元数据生成此接口的目标操作。 这些工具还会创建一个 WCF 客户端类,该类可用于调用服务接口中公开的操作。 客户端应用程序可以调用 WCF 客户端类的方法,以调用适配器上的操作。 若要实现服务以从 Oracle 数据库适配器接收 POLLINGSTMT 操作,请实现为 POLLINGSTMT 操作生成的接口。

以下部分介绍如何使用 WCF 服务模型为 Oracle 数据库适配器创建客户端和服务代码。

使用 Oracle 数据库适配器在 WCF 客户端上创建和调用操作

若要使用 WCF 服务模型调用 Oracle 数据库适配器上的操作,必须先为目标操作生成 WCF 客户端类。 然后,可以创建此类的实例、WCF 客户端,并调用其方法来对 Oracle 数据库执行操作。

调用 Oracle 数据库适配器上的操作

  1. 生成 WCF 客户端类和帮助程序代码。 使用“添加适配器服务参考 Visual Studio 插件”或 ServiceModel 元数据实用工具 (svcutil.exe) 生成一个 WCF 客户端类,该类面向要使用的 Oracle 数据库项目。 有关如何生成 WCF 客户端的详细信息,请参阅 为 Oracle 数据库项目生成 WCF 客户端或 WCF 服务协定

  2. 通过指定客户端绑定创建 WCF 客户端实例。 指定客户端绑定涉及指定 WCF 客户端将使用的绑定和终结点地址。 可以在代码中强制执行此操作,也可以在配置中以声明方式执行此操作。 有关如何指定客户端绑定的详细信息,请参阅 为 Oracle 数据库配置客户端绑定。 以下代码创建一个 WCF 客户端,该客户端可用于对 Oracle 数据库表执行数据操作语言 (DML) 操作, (/SCOTT/ACCOUNTACTIVITY) 。 它还设置 Oracle 数据库的凭据。 WCF 客户端是从配置初始化的。

    SCOTTTableACCOUNTACTIVITYClient aaTableClient =   
        new SCOTTTableACCOUNTACTIVITYClient("OracleDBBinding_SCOTT.Table.ACCOUNTACTIVITY");  
    
    aaTableClient.ClientCredentials.UserName.UserName = "SCOTT";  
    aaTableClient.ClientCredentials.UserName.Password = "TIGER";  
    
  3. 打开 WCF 客户端。

    aaTableClient.Open();  
    
  4. 在步骤 2 中创建的 WCF 客户端上调用方法,对 Oracle 数据库执行操作。 以下代码调用 WCF 客户端的 Select 方法,对 ACCOUNTACTIVITY 表执行以下 SQL SELECT 查询: 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. 关闭 WCF 客户端。

    aaTableClient.Close();  
    

    有关对表和视图执行 DML 操作(包括上面使用的选择操作)的详细信息,请参阅 使用 WCF 服务模型执行基本插入、更新、删除和选择操作

使用 Oracle 数据库适配器创建和实现 WCF 服务

Oracle 数据库适配器可以对 Oracle 数据库表或视图执行轮询。 此功能允许指定适配器应针对 Oracle 数据库定期执行的 SQL SELECT 查询。 此查询的结果通过特殊操作 POLLINGSTMT 操作返回到应用程序。 若要接收轮询查询的结果,应用程序必须实现 Oracle 数据库适配器为 POLLINGSTMT 操作公开的服务协定。

若要实现服务以接收 POLLINGSTMT 操作,必须先生成 .NET 接口 (也称为 WCF 服务协定) ,该协定表示由 Oracle 数据库适配器为 POLLINGSTMT 操作公开的服务协定。 有关如何执行此操作的详细信息,请参阅 为 Oracle 数据库项目生成 WCF 客户端或 WCF 服务协定

然后,通过实现生成的接口来实现 WCF 服务。 此类包含用于处理 POLLINGSTMT 消息并返回对适配器的响应的业务逻辑。 然后使用服务主机 (System.ServiceModel.ServiceHost) 来托管此服务的实例。 有关详细信息,请参阅 使用 WCF 服务模型接收基于轮询的数据更改消息

另请参阅

使用 WCF 服务模型开发 Oracle 数据库应用程序