应用程序进程、并行和恢复
所有 SQL 程序都作为 应用程序进程的一部分执行。 在 IBM i 操作系统中,应用程序进程称为作业。 在 ODBC, JDBC, OLE DB , .NET 和 DRDA 的情况下,应用程序进程在连接结束时结束,即使它们正在使用的作业未结束也可以复用。
应用程序进程由一个或多个激活组组成。 每个激活组都涉及一个或多个程序的执行。 程序在非缺省激活组或缺省激活组下运行。 所有程序 (由 ILE 编译器创建的程序除外) 都在缺省激活组下运行。 例如, LANGUAGE JAVA 外部函数在缺省激活组下运行。
有关激活组的更多信息,请参阅 ILE 概念
一书。
使用落实控制的应用程序进程可以使用一个或多个落实定义运行。 落实定义提供了在激活组级别或作业级别对落实控制进行作用域限定的方法。 在任何给定时间,使用落实控制的激活组仅与其中一个落实定义相关联。
可通过 "启动落实控制" (STRCMTCTL) 命令显式启动落实定义。 如果尚未启动,那么当在不同于 COMMIT (*NONE) 的隔离级别下执行第一个 SQL 语句时,将隐式启动落实定义。 多个激活组可以共享作业落实定义。
图 1 显示应用程序进程,该应用程序进程中的激活组以及落实定义的关系。 激活组 A 和 B 在将落实控制作用域限定为激活组的情况下运行。 这些激活组具有自己的落实定义。 激活组 C 未与任何落实控制一起运行,并且没有落实定义。

图 2 显示应用程序进程,该应用程序进程中的激活组以及落实定义。 某些激活组正在使用作业落实定义运行。 激活组 A 和 B 正在作业落实定义下运行。 激活组 A 或 B 中的任何落实或回滚操作都会影响这两者,因为落实控制的作用域是同一落实定义。 此示例中的激活组 C 具有单独的落实定义。 在此激活组中执行的落实和回滚操作仅影响 C 中的操作。

有关落实定义的更多信息,请参阅 落实控制 主题。