我试图允许在我的Linux openSUSE系统上运行的php脚本访问运行Z / OS的IBM DB2大型机。我在安装某种必需的许可证时遇到问题。 [Stackoverflow#02484] [1]提供了有关正在进行但没有细节的良好背景信息。
我最初被指示安装ibm_data_server_driver_package的企业版,这很顺利,我的php脚本在db2的本地快速版本上工作正常,但在我尝试访问我们公司的主机时失败了:
[IBM][CLI Driver] SQL1598N An attempt to connect to the database server failed because of a licensing problem. SQLSTATE=42968
这个'企业'数据服务器包似乎不包含安装许可证所需的任何实用程序。然后我被指示下载并安装一个ibm_db2_connect_unlimitedEdition_SystemZ_QuickStart_Activation_11.1,其中包含一个简单的脚本db2connectactivate.sh,它调用了一个java程序,我使用如下:
java -classpath db2jcc.jar:db2connectactivate.jar com.ibm.db2.jcc.DB2ConnectActivate -caller db2connectactivate.sh -host x.y.z.com -port 7777 -database abc123 -user UUUUUU -password XXXXXX -activatorsqlid '$DDDDDD'
失败了:
[license activator][709][13431]Activation failed.
SQLCODE: -552
SQLSTATE: 42502
Message: DB2 SQL Error: SQLCODE=-552, SQLSTATE=42502, SQLERRMC=$DDDDDD;CREATE PROCEDURE, DRIVER=3.71.22
本地DB2支持人员都是基于Microsoft的,对Linux的帮助很小。他们声明我的帐户确实拥有足够的权利,然后试图通过“db2”和“db2”来找到各种各样的事情。命令不存在。我很迷惑。许可证在哪里?它是在主框架上还是在QuickStart_Activation包中? java程序做什么,下载并保存需要保存的任何密钥或令牌?我已经尝试将java程序作为本地root和我自己运行。
有人可以解释发生了什么以及我必须做些什么来授权我的驱动程序?
答案 0 :(得分:1)
有DB2,然后是DB2。根据特定的DB2服务器变体,您可能需要IBM的许可证才能启用驱动程序。根据您与IBM的协议以及如何连接到数据库,似乎有几种不同类型和方式的安装许可证。
这是您用于执行需要DB2服务器上的适当权限的安装的帐户的补充。根据您安装客户端的方式,消息不清楚,并指示帐户没有足够的权限,而不是缺少许可证。根据许可证情况,驱动程序安装似乎有很大不同。
在我们的案例中,IBM的支持特别无益。确实在与IBM支持人员合作两个月后,我们仍然没有工作的驱动程序!
答案 1 :(得分:0)
SQLCODE = -552表示授权标识没有执行操作的特权
您是否可以使用正确的数据库,数据库用户和密码运行如下参数。
./db2connectactivate.sh -host x.y.z.com -port 7777 -database abc123 -user db2admin -password adminpassword