Oracle Database 适配器的 WCF 服务模型的概述

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

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

以下各节说明如何使用 WCF 服务模型创建 Oracle Database 适配器的客户端和服务代码。

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

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

在 Oracle Database 适配器上调用操作

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

  2. 通过指定客户端绑定创建 WCF 客户端实例。 指定客户端绑定涉及指定 WCF 客户端将使用的绑定和终结点地址。 您可以在代码中以强制方式或在配置中以声明方式执行此操作。 有关如何指定客户端绑定的详细信息,请参阅 为 Oracle Database 配置客户端绑定。 下面的代码创建一个 WCF 客户端,该客户端可用于在 Oracle 数据库表 (/SCOTT/ACCOUNTACTIVITY) 上执行数据操作语言 (DML) 操作。 它还设置 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 Database 适配器创建和实现 WCF 服务

Oracle Database 适配器可以对 Oracle 数据库表或视图执行轮询。 利用此功能,您可以指定一个 SQL 选择查询,该查询应定期对 Oracle 数据库执行该查询。 此查询的结果将通过一个特殊操作(POLLINGSTMT 操作)返回到应用程序。 若要接收轮询查询的结果,应用程序必须实现 Oracle Database 适配器为 POLLINGSTMT 操作公开的服务协定。

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

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

另请参阅

使用 WCF 服务模型开发 Oracle Database 应用程序