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

时间:2013-06-27 16:38:50

标签: db2 shared-libraries db2-luw

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

我的共享库取决于boost,我的机器中的/usr/local/lib位于db2

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

如何告诉 # userprofile LIBPATH=/usr/local/lib:LIBPATH #profile.env DB2ENVLIST='LIBPATH ..other stuf' 在哪里找到库路径以及我应该使用哪个环境变量?

我尝试过ife userprofile和profile.env但没有成功。

{{1}}

1 个答案:

答案 0 :(得分:1)

让我看看我是否正确理解你的问题。您有依赖于其他库的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"

必须在实例所有者用户和DB2 fenced用户的环境中设置LD_LIBRARY_PATH变量,因为外部例程在这两者之一下运行。可能最好的方法是设置/ etc / profile。这应该在执行db2set命令之前完成。

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