单表入站数据库活动

在运行时期间,单表入站数据库活动轮询是否按指定时间间隔在数据库表的指定列中任何行上进行了数据库操作。

此部分包含配置下列单表入站数据库活动的过程:
  • 获取已插入行 - 在运行时期间,获取已插入行活动对从 INSERT 触发器事件添加到缓冲区表的行进行轮询。然后,“获取已插入行”活动将缓冲区数据映射到一个或多个变量。
  • 获取已更新行 - 在运行时期间,获取已更新行活动对从 UPDATE 触发器事件添加到缓冲区表的行进行轮询。然后,“获取已更新行”活动将缓冲区数据映射到一个或多个变量。
  • 获取已删除行 - 在运行时期间,获取已删除行活动对从 DELETE 触发器事件添加到缓冲区表的行进行轮询。然后,“获取已删除行”活动将缓冲区数据映射到一个或多个变量。
图 1 显示 UPDATE 触发器事件和获取已更新行活动中示例数据的传输:
图 1. UPDATE 触发器示例
将包含入站数据库活动的编排发布到 Integration Appliance 后,必须使用 Web 管理控制台 (WMC) 创建缓冲区表和触发器,然后再部署编排。对于 Oracle 数据库,还必须使用 WMC 创建序列。

“无针对该操作的活动”运行时错误

如果编排访问其中包含编排中当前没有的活动的行的缓冲区表,那么编排将失败,并且在运行时期间会报告以下错误:
The buffer table contains the OperType operation but there is no activity in the orchestration for that operation.
其中 OperType 是操作类型;例如 INSERT。编排的缓冲区表中 IH_OPERATION_NAME 列的值必须与编排中的数据库活动一致。例如,如果缓冲区表中的行包含 IH_OPERATION_NAME 列中的值 INSERT,但是编排不包含获取已插入行活动,那么会报告此错误。各编排必须具有单独的缓冲区表。此外,源表中的触发器必须与缓冲区表中指定的数据库操作一致。例如,如果编排仅包含单个入站获取已更新行活动,那么源数据库表必须仅包含 UPDATE 触发器。

向编排中添加单表入站数据库活动

  1. 创建或打开编排。此时会以图形形式显示编排。
  2. 选择活动选项卡并展开数据库文件夹。
  3. 将所需的单表入站数据库活动(获取已插入行获取已删除行获取已更新行)拖至编排上。
  4. 选择该活动。

创建、选择或编辑数据库端点

  1. 单击核对表中的选取端点任务,然后选择下列操作之一:
    • 选择现有端点:
      1. 选择浏览。这样会显示 Project Explorer。
      2. 选择现有端点并单击确定。 跳至“配置活动”过程。
    • 选择现有端点并编辑该端点:
      1. 选择浏览。这样会显示 Project Explorer。
      2. 选择现有端点并单击确定
      3. 单击编辑。此时会显示“编辑端点”窗格。
    • 创建新端点:选择新建。此时会显示“创建端点”窗格。
  2. 创建或编辑 HTTP 端点,请参阅创建或编辑 HTTP 端点

选择在运行时期间 Integration Appliance 轮询更改所在的源数据库表中的列

  1. 单击核对表中的选取表。 此时会显示“选取表”窗格。
  2. 单击浏览... 以选择要作为入站消息源的数据库表。此时会显示“浏览数据库表”对话框。
  3. 从列表中选择表并单击确定。 此时在“选取表”窗格中会显示所选表的列信息。
  4. 如果此表的字符编码不同于数据库的编码,请使用下列选项之一输入其他编码:
    • 编码列表中选择其中一种缺省编码类型。
    • 通过在编码字段中单击,然后输入编码类型,直接输入编码类型。
    这将为生成的缓冲区表的所有列设置编码。
    注: 一些双字节字符未使用 SHIFT-JIS 编码进行转换。要了解更多的信息,请参阅使用 Shift-JIS 编码
  5. 缺省情况下,会选择源表中的所有列。清除使用复选框将从生成的缓冲区表中除去列。单击全部使用以重新选择所有列。
  6. 在列标题中单击以按列值对行进行排序。例如,要按行的列名称对行进行排序,请单击列的列名称标题。在列标题名称右侧会显示一个箭头。向上箭头指示列按字母顺序(从 az)排序。向下箭头指示列按反向字母顺序(从 za)排序。单击箭头可逆转字母顺序。
  7. 仅对获取已更新行活动 - 如果希望生成的缓冲区表同时包含已更新列的新值和原始值,请遵循下列步骤:
    1. 单击旧值。此时会显示“更新的旧值列”对话框。
    2. 针对要保存原始值的数据库列选中存储复选框。
    3. 您可以更改指定给列(用于存储原始值)的缺省名称。双击相应的用于存储旧值的列的名称单元格。
    4. 单击确定。此时在“映射输出”窗格的自活动中会显示以字符串 old_ 为前缀的所选列。您可以从“映射输出”窗格映射新值和原始值。
    注: 有关更多信息,请参阅为更新中的旧值定义列
  8. 如有必要,请更改数据类型编码可空值的设置。单击字段以进行新选择。
    • 数据类型 - 缺省为源数据库表中列的数据类型。如果缓冲区表中列的所需数据类型不同于源表的数据类型,请选择其他数据类型,方法是在数据类型单元格中单击,然后从列表中选择其他数据类型。 您必须为标记为 UNSUPPORTED 的那些数据类型选择相应的数据类型。
      注: 对于 Oracle 数据库中的 XMLTYPE 数据类型和 SQL Server 数据库中的 MONEY 数据类型,Studio 不会自动关联正确的数据类型,因此必须手动选择相应的数据类型。
      注意: 必须选择与源数据类型兼容的数据类型,以避免运行时期间数据无效。例如,如果源数据类型为 INTEGER,请勿为缓冲区表选择 SMALLINT 数据类型,因为在运行时期间,存储在 INTEGER 列中的大数字将不会正确转换为 SMALLINT 数据类型。
    • 大小 - 表中定义的列大小。此大小是从数据库表中检索到的并且不可配置。
    • 编码 - 缺省为已在数据库级别或表级别设置的当前缺省编码。如果列的所需编码不同于当前缺省编码,请选择其他编码,方法是在编码单元格中单击,然后从列表中选择其他编码。
    • 可空 - 缺省为源数据库表中列的可空设置。对于 nullable=false 的列必须选中使用复选框。 标记为 nullable=false 的列在运行时期间不能包含 null。
  9. 单击重置以将所有列属性重置为其缺省值。这还会对所有列重置使用复选框。
  10. 单击刷新以更新与源数据库最新状态有关的列的列表。对源的最新更改在此窗格中进行更新。
  11. 配置指定数据库活动的交付规则
    注: 如果在交付规则任务中选择仅一次选项,那么必须创建供 Integration Appliance 在运行时期间使用的控制表。从 Studio 将编排发布到 Integration Appliance 后,创建控制表。部署项目之前,使用 Web 管理控制台 (WMC) 创建控制表。
    注: 如果选择仅一次选项,那么必须启用持久性。有关更多信息,请参阅启用持久性
  12. 配置重试选项。有关更多信息,请参阅入站数据库活动的重试选项

映射活动的输出

  1. 核对表中选择映射输出任务。

    此时在“自活动”窗格中的 rows 元素下会显示活动的输出参数。“自活动”窗格中显示的输出参数与在选取表任务中所选的列对应。如果在交付规则中选择了批处理选项,那么在 row 元素旁边会显示多次出现符号。

    注: 仅对获取已更新行活动,如果在“更新的旧值列”对话框中选择了一些列(在选取表任务中),那么这些附加输出参数(缺省情况下以字符串 old_ 为前缀)也显示在 rows 元素下。必须映射在“映射输出”窗格中可视的所有旧值列。
  2. 将所需输出参数映射到一个或多个变量。请参阅创建映射,以获取与映射有关的常规指示信息。您无需映射这些活动的输出参数。
    注: 将包含入站数据库活动的编排发布到 Integration Appliance 后,必须使用 Web 管理控制台 (WMC) 创建缓冲区表,然后再部署编排。