实现用户自定义函数的可重入性

可重入用户定义函数是指一个函数可以被两个或多个进程同时使用。

过程

建议将用户自定义函数编译并链接为可重入。 (对于汇编程序,您还必须对用户定义的函数进行编码,使其可重入。)
可重入的用户定义函数具有以下优点:
  • 操作系统无需在每次调用用户自定义函数时将其加载到存储器中。
  • 在WLM建立的存储程序地址空间中,多个任务可以共享用户定义函数的单个副本。 这减少了地址空间中代码所需的虚拟存储量。

如果用户自定义函数由多个程序组成,则必须将包含 SQL 语句的每个程序绑定到一个单独的程序包中。 用户自定义函数的定义者必须拥有执行权限,才能访问用户自定义函数中包含的所有包。

当用户定义的函数的主程序调用另一个程序时, Db2 使用CURRENT PACKAGE PATH特殊寄存器来确定要搜索被调用程序的包的集合列表。 主程序可以通过执行语句SET CURRENT PACKAGE PATH来更改此集合ID。

如果当前包路径的值是空或空字符串, Db2 将使用当前包集特殊寄存器来确定要搜索的已调用程序包的集合。 主程序可以通过执行语句SET CURRENT PACKAGESET来更改该值。

如果特殊寄存器“当前包路径”和“当前包集”都包含空白值,则 Db2 将使用绑定应用程序计划以搜索包中描述的方法。