Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 编程 » 使用 SQL Anywhere 编程简介 » 三层计算和分布式事务 » 在 SQL Anywhere 中使用 EAServer

 

设置组件事务属性

在 EAServer 中,可实现一个在多个数据库上执行操作的组件。您可为此组件指派事务属性来定义它参与事务的方式。事务属性可具有以下值:

  • 不支持   组件的方法永远不会作为事务的一部分来执行。如果组件是由另一个在事务中执行的组件激活的,则新实例的工作将在现有事务之外执行。这是缺省设置。

  • 支持事务   组件可在事务的上下文中执行,但是在执行该组件的方法时不需要连接。如果组件是直接由基础客户端实例化的,EAServer 不会开始事务。如果组件 A 是由组件 B 实例化的,而组件 B 正在一个事务中执行,则组件 A 会在同一事务中执行。

  • 需要事务   组件总是在事务中执行。当组件由基础客户端直接实例化时,将开始新的事务。如果组件 A 是由组件 B 激活的,而组件 B 正在一个事务中执行,则组件 A 会在同一事务中执行;如果组件 B 不是在事务中执行的,则组件 A 会在一个新事务中执行。

  • 需要新事务   每当组件实例化时,都开始一个新的事务。如果组件 A 是由组件 B 激活的,而组件 B 正在一个事务中执行,则组件 A 将开始一个不受事务 B 的事务结果影响的新事务;如果组件 B 不是在事务中执行的,则组件 A 将在一个新事务中执行。

例如,在 Sybase Virtual University 示例应用程序(EAServer 中附带的 SVU 包)中,SVUEnrollment 组件的 enroll 方法执行两种不同的操作(预定课程座位,向学生收取课程费)。需要将这两种操作视为一个事务。

Microsoft Transaction Server 提供相同的属性值集。

♦  设置组件的事务属性
  1. 在 Jaguar Manager 中找到该组件。

    要找到 Jaguar 示例应用程序中的 SVUEnrollment 组件,请连接到 Jaguar 服务器,打开 [Packages] 文件夹,然后打开 SVU 程序包。该程序包中的组件列于右窗格中。

  2. 设置组件的事务属性。

    右击该组件,然后选择 [Component Properties]。单击 [Transaction] 选项卡,从列表中选择事务属性值。单击 [OK] 完成操作。

    SVUEnrollment 组件已经标上了 [Requires Transaction] 标记。

设置了组件事务特性后,即可从该组件执行 SQL Anywhere 数据库操作,并可确保事务在您指定的级别进行处理。