用户定义函数的db2共享库位置

用户定义函数的db2共享库位置,db2,shared-libraries,db2-luw,Db2,Shared Libraries,Db2 Luw,我想使用由db2查询生成的共享库 我的共享库依赖于我的机器中位于/usr/local/lib中的boost 当我尝试使用我的函数运行查询时,我遇到了错误:它们无法工作,因为db2无法找到boost库,即无法解析库的位置 如何告诉db2在哪里找到库路径以及应该使用哪个环境变量 我尝试ise userprofile和profile.env,但没有成功 # userprofile LIBPATH=/usr/local/lib:LIBPATH #profile.env DB2ENVLIST='

我想使用由db2查询生成的共享库

我的共享库依赖于我的机器中位于
/usr/local/lib
中的
boost

当我尝试使用我的函数运行查询时,我遇到了错误:它们无法工作,因为db2无法找到boost库,即无法解析库的位置

如何告诉db2在哪里找到库路径以及应该使用哪个环境变量

我尝试ise userprofile和profile.env,但没有成功

 # userprofile
 LIBPATH=/usr/local/lib:LIBPATH

 #profile.env
 DB2ENVLIST='LIBPATH ..other stuf'

让我看看我是否正确理解你的问题。您有依赖于其他库的C或C++外部UDF。如果是这样,我认为应该设置DB2注册表变量,而不是环境变量:

export LD_LIBRARY_PATH=/usr/local/lib:$LIBPATH  # this must be in the global profile
db2set DB2LIBPATH=$LD_LIBRARY_PATH
db2set DB2ENVLIST="LD_LIBRARY_PATH otherstuff"
必须在环境中为实例所有者用户和DB2Fenced用户设置LD_LIBRARY_PATH变量,因为外部例程在这两个变量之一下运行。最好的方法可能是设置/etc/profile。这应该在执行
db2set
命令之前完成


使用
db2set
设置注册表变量后,必须重新启动DB2实例(
db2stop force
然后
db2start
)。

好,让我重述一遍。我应该为一个普通用户(在.bashrc中)设置LD_LIBRARY_PATH set,然后我需要设置thos注册表变量。正确的?我不明白你说什么。1.必须在全局配置文件中:您是指在/etc/profile或任何其他文件中?2.当您说“受保护用户和实例拥有的环境”时,您是指他们的.bashrc文件还是db2概要文件文件夹中的其他文件?