支持入站呼叫通过轮询

适用于 Oracle E-Business Suite 的 Microsoft BizTalk 适配器使客户端程序能够接收来自 Oracle E-Business Suite 的消息,告知他们对 Oracle E-Business Suite 中数据的更改。 Oracle 电子商务适配器支持接收“基于轮询”的消息,其中适配器在包中执行指定的 SQL 语句、存储过程、函数或过程、检索数据,并定期向客户端提供结果。

注释

还可以在 Oracle 电子商务适配器中设置轮询作的应用程序上下文。 如果在接口表或接口视图上执行轮询操作,必须要设置应用程序的上下文。 有关应用程序上下文以及如何设置它的信息,请参阅 “设置应用程序上下文”。

使用 Oracle 电子商务适配器的典型轮询作涉及以下内容:

  1. 适配器客户端必须在 InboundOperationType 绑定属性中指定Polling为入站作。 此绑定属性的默认值为 Polling

  2. 适配器客户端必须为 PolledDataAvailableStatement 绑定属性指定 SELECT 语句,以确定是否有可用于轮询的数据。 如果执行此语句时返回的第一结果集的第一行的第一列包含正整数值,则有可用的日期可供轮询。

  3. 适配器客户端必须为 PollingInterval 绑定属性指定轮询间隔,以秒为单位定义 执行 PolledDataAvailableStatement 绑定属性中指定的语句的间隔。 在每个轮询间隔结束时,将执行轮询数据可用的声明,并返回结果集。

  4. 适配器客户端必须为 PollingInput 绑定属性指定 SELECT 语句或存储过程。 如果要轮询表或视图,则必须为此绑定属性指定 SELECT 语句。 如果要使用存储过程进行轮询,必须为该绑定属性指定完整的请求消息。

    仅当有可用于轮询的数据(由步骤 2 中的 PolledDataAvailableStatement 绑定属性确定)时,才会执行 PollingInput 绑定属性中的语句。

  5. 适配器客户端必须在PollingAction绑定属性中指定轮询操作。 特定操作的轮询操作通过使用适配器服务附加组件生成的元数据来确定。

  6. 适配器客户端可以使用 PollWhileDataFound 绑定属性忽略轮询间隔,并在可用时连续轮询数据。

    重要

    如果将 PollWhileDataFound 绑定属性的值设置为 True,则适配器客户端会持续轮询 Oracle 中的数据,并在进程中以循环打开和关闭与 Oracle 数据库的连接。 由于 ODP.NET 打开连接的速率大于关闭的连接,因此连接会在一段时间后耗尽,并引发异常。 解决方法是确保 UseOracleConnectionPool 的值设置为 True,IncrPoolSize 绑定属性中提到了适当的值,以控制适配器客户端可以打开的连接数。

  7. 适配器客户端可以为 PostPollStatement 绑定属性指定轮询后语句(Oracle PL/SQL 块)。 执行 PollingInput 绑定属性中指定的语句后,将执行此绑定属性中指定的语句。

    注释

    适配器在事务中执行 PollingInputPostPollStatement 绑定属性中指定的语句。 有关 Oracle 电子商务适配器中的事务的详细信息,请参阅 适配器如何处理事务?

    适配器抑制来自 Oracle 电子商务套件的任何空轮询响应。

    下图提供有关 Oracle 电子商务适配器中的轮询工作流的信息。 演示了轮询工作流的两种方案:

  8. 当 PollWhileDataFound 的值设置为“False”时(默认设置)。

  9. 当 PollWhileDataFound 的值设置为“True” 时。

    轮询方案(PollWhileDataFound=False) 轮询方案(PollWhileDataFound=True)

轮询和通知之间的差异

尽管轮询和通知都是入站操作,并通知适配器客户端有关 Oracle 数据库中的数据更改,但以下表格列出了这两者的一些差异。 以下差异将帮助你根据你的要求决定某项操作:

民意调查 通知
支持轮询适用于所有由 Oracle 电子商务适配器支持的 Oracle 数据库版本。 仅 Oracle 数据库版本 10.2 及更高版本支持通知。
可以配置轮询间隔,以定期检查可用的数据,或者在数据可用时即时进行检查。 提示: 在数据更改持续发生的情况下,使用轮询可以提供更高的吞吐量,而无需在每次更改发生时收到通知。 而是指定轮询间隔,之后,你希望收到自上次更改通知以来发生的所有更改的通知。 数据更改通知始终是即时的。
轮询由适配器启动。 适配器执行 SQL 语句来验证数据是否可用于轮询,如果某些数据可用于轮询,则通过执行轮询语句来启动轮询。 通知由 Oracle 数据库启动。 适配器颁发的通知语句只是指示数据库启动通知,以防语句的结果集发生更改。 通知是 Oracle 数据库的一项功能。
可以使用轮询语句读取或更新 Oracle 数据库中的数据。 可以使用通知语句仅读取 Oracle 数据库中的数据。
轮询会告知你已更改的实际数据。 通知仅通知有关插入、更新和删除等数据中的更改类型。

有关以下内容的详细信息:

另请参阅

可以使用适配器执行哪些作?