我已经在 Red hat 盒子中安装了 DB2 10.1。在安装过程中,我被要求创建几个用户(db2inst1、db2fenc1 等)。我一直在使用 db2inst1 来执行 DB2 的所有操作,它运行得非常好。sqllib 文件位于
/home/db2inst1/sqllib
安装文件位于
/opt/ibm/db2/V10.1/
所有用户都可以访问这两个文件夹。我现在想与另一个用户(即“john”)一起执行 DB2 操作。鉴于 db2 使用主机的底层用户/密码,我将组 dasadm1 和 ds2iadm1 添加到“john”用户(即 db2inst1 中列出的用户)。
uid=500(john) gid=500(john) groups=500(john),101(dasadm1),102(db2iadm1)
我可以使用用户“john”正确输入 db2 cmd
[john@rhel6 java]$ /home/db2inst1/sqllib/bin/db2
但是当我以用户“john”的身份运行我的 Java 应用程序时,出现以下错误:
SQLException: com.ibm.db2.jcc.am.SqlException: [jcc][10389][12245][4.13.127] Failure in loading native library db2jcct2, java.lang.UnsatisfiedLinkError: db2jcct2 (Not found in java.library.path): ERRORCODE=-4472, SQLSTATE=null
如果我与用户 db2inst1 运行相同的 Java 应用程序,则不会出现此错误。两个用户的库路径完全相同。知道出了什么问题吗?
我的直觉是您没有更新用户“john's”配置文件来调用 DB2 配置文件设置。如果您不这样做,那么您将无法“访问”DB2,即使二进制文件在那里。
因此,您想要做的是编写一个脚本来检查您的 DB2 实例“home”配置文件脚本,在您的情况下它将是 /home/db2inst1/sqllib/db2profile ,如果它在那里,则调用它。
if [ -f /home/db2inst1/sqllib/db2profile ] ; then
. /home/db2inst1/sqllib/db2profile
if [ ! $? = 0 ] ; then
echo "Error setting up DB2 instance access"
else
echo "DB2 instance access set up"
fi
fi
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6919 次 |
最近记录: |