数据保证(COMMIT)方法设定对话框

更新SQL DB连接源信息视表设置数据保证(COMMIT)方法。 该设定提供一种更新字符的事务。
在各种视表过滤器I/O用视表标签的输出用视表中设置更新SQL DB连接源信息视表时,点击数据保证(COMMIT)方法按钮可打开数据保证(COMMIT)方法设定对话框。
当在输出用视表中设置了除更新SQL DB连接源信息外的视表时,数据保证(COMMIT)方法区域将变成输出模式。 要获得输出用视表的详细信息,参照视表输出模式

功能描述
视表 显示更新SQL DB连接源信息视表的视表名,该视表名是数据保证(COMMIT)方法设置的目标。
发送数据保证(COMMIT) 数据保证(commit)未发送时,选择"无",如果发送了,选择"有"。
必须设置一个合适的操作。要获得每种设置的说明,参照 发送数据保证(COMMIT)
选择"有"后,可以指定 数据保证(COMMIT)后记录数隔离级别
数据保证(COMMIT)后记录数 指定数据保证(commit)发送时序。
必须设置一个合适的操作。 要获得每种设置的说明,参照 发送数据保证(COMMIT)。 在发送数据保证(COMMIT)选中"有"后可执行规范。
视表过滤器完成时发送数据保证(COMMIT)
视表过滤器退出过程中只发送一次。
该规范在同步组作业属性对话框同步设定标签用作指定的视表过滤器。
每n条记录后发送数据保证(COMMIT)
每隔指定的记录数进行发送数据保证(COMMIT)。
更新SQL DB视表过滤器属性对话框, 当删除标签中设置了删除,和 更新标签中设置了更新。 即使未达到记录数,数据保证(COMMIT)结束时仍将发送。
隔离级别 选择用其它事务同时执行并调整好的隔离级别。 一般设为默认值,但如果需要,则有必要正确设置。 要获得每种设定的说明,参照 隔离级别
发送数据保证(COMMIT)选择"有"时可以设置。
同步超时 以秒为单位设定更新事务的最大时间限制。 如果设为0,则没有时间限制。
在同步组中指定的更新SQL DB视表过滤器从SQLDB事务到指定的超时时间,则产生 "C3704 超过了设定的同步超时时间。"错误,并异常结束。
要获得"同步组"的说明,参照 作业属性对话框同步设定标签
当数据保证(COMMIT)方法设定的目标是 更新SQL DB视表过滤器属性对话框的输出用视表,则在这里选择"有", 可通过在发送数据保证(COMMIT)中选择 "有"和在数据保证(COMMIT)后记录数中选择视表过滤器完成时发送数据保证(COMMIT)进行输入。 对更新SQL DB视表过滤器,不属于"同步组"的输入值将被忽略,尽管如上述显示了。
确定 保存设置后关闭对话框。
取消 不保存设置信息,并关闭对话框。


补充说明
发送数据保证(COMMIT)
这说明并没有使用事务来进行更新。换言之,更新目标SQL数据库时并未使用互斥机制。 当作业异常结束,则更新操作不能自动回滚。 可在晚上对数据库作批处理。
这说明更新是使用了更新事务进行处理的。换言之,在更新SQL数据库,对数据库内容的一致性作了保存。当作业异常结束时将自动回滚,所有的更新事务被取消。

根据数据库类型,必须为发送数据保证(COMMIT)选择 "有"或"无"。 要获得详细信息,参照
使用SQL DB连接源信息视表过滤器输出用视表的留意事项

数据保证(COMMIT)后记录数
视表过滤器完成时发送数据保证(COMMIT)
视表过滤器的所有执行过程是作为一个事务的。
当作业异常结束,并且设置了所有的视表过滤器,则所有更新的数据库回滚到执行前的状态。 作业异常结束后,排除问题原因后可择时再次执行。
不建议在一个事务设定中执行大量更新操作。
每n条记录后发送数据保证(COMMIT)
对每次数据保证(commit)发送,事务都都是会完成的。 也就是说, 如果视表过滤器有多个更新需要执行,则将分成多个事务来进行。
当作业异常结束并且作了设置,事务结束后的更新操作暂且搁置,先在数据保证(commit)后返回。
需要注意异常结束后的恢复。
通常,如果执行了记录追加,尽管更新已经结束,但还是可以从标头记录中删除相关关键值记录后马上追加记录,然后再执行。
最后发送的数据保证(commit)的位置被记录在日志文件(VT_Log.log)中, (更新日志时不仅输出每个更新命令的发送,还记录数据保证COMMIT的发送), 并可作为源文件以便指定再次插入的记录,但用这种方法与准备数据并重新执行作业的方法不同。 记录在日志文件中的数据保证(commit)位置是输出用视表的记录号。 当输入和输出记录与视表过滤器中的排序顺序不一致时,从日志中一下子看不出哪条记录应该重新打开。
隔离级别
不同的数据库支持的隔离级别也不同。 如果指定了不支持的隔离级别并在执行时发生了错误,请咨询数据库管理员。
数据保证(Commit)前读出
数据保证(Commit)前读出操作的事务,在其它事务的数据保证(commit)尚未执行时,可以读取更新结果。
因此,如果回滚了,那最后基本上就没有其它事务了。
这可以称为"隔离级别 1"。 在该隔离级别,可能出现以下 "脏读"或 "不可反复读出"或 "虚读"状态。
数据保证(Commit)后读出
数据保证(Commit)后读出操作的事务,在其它事务的数据保证(commit)执行过程中,可以读取更新结果。 数据保证(commit)前,如果访问了更新后的记录,则读取了更新前的数据。
因此,事务结束后应该参照旧数据。
这称为"隔离级别 2"。 在该隔离级别,"脏读"不会出现,但可能出现以下 "不可反复读出"或 "虚读"状态。
这默认用于更新普通的数据库。
可反复读出
可反复读出操作的事务在其它事务数据保证(commit)更新结果后可同时被读取。
在读取已有记录过程中可读取正确的值。
这称为"隔离级别 3"。 在该隔离级别, "脏读"和 "不可反复读出"不会出现,但会发生"虚读"。
可直列化
可直列化操作的事务在其它事务数据保证(commit)更新结果后可同时读取已有记录以外的记录。
因此,尽管更新时包含新记录的追加,但始终可以读取正确的值。
在该隔离级别,以下 "脏读"、 "不可反复读出"和 "虚读"状态不会出现。