2016-12-02 110 views
0

我試圖讓我的Linux openSUSE系統上運行的PHP腳本訪問運行Z/OS的IBM DB2大型機。我在安裝某種所需許可證時遇到問題。 [Stackoverflow#02484] [1]提供了很好的背景,但沒有詳細說明。在Linux上安裝IBM DB2許可證openSUSE

我原本奉命安裝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 

此「企業」數據服務器程序包似乎沒有包含安裝許可證所需的任何實用程序。然後我被引導到下載和安裝這個包含一個簡單的腳本db2connectactivate.sh其稱爲Java程序,這是我作爲跟隨ibm_db2_connect_unlimitedEdition_SystemZ_QuickStart_Activation_11.1:

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支持人員都是基於微軟的,在Linux上幫助甚微。他們聲明我的賬戶確實有足夠的權利,然後試圖通過不存在的'db2'命令找到我所有的東西。我很困惑。許可證在哪裏?它是在主框架上還是在QuickStart_Activation包中? java程序做了什麼,下載並保存需要保存的任何密鑰或令牌?我試圖運行Java程序作爲本地根和我自己。

任何人都可以解釋發生了什麼事以及我必須做什麼來授權我的驅動程序?

回答

0

SQLCODE = -552意味着授權-ID不具有的權限才能執行操作操作

了,你能參數,如下面正確的數據庫,數據庫用戶名和密碼運行。

./db2connectactivate.sh -host x.y.z.com -port 7777 -database abc123 -user db2admin -password adminpassword 

看看db2connectactivate - Server license activation utility

+1

謝謝,我最初嘗試過,它給出了同樣的錯誤。 DB2支持人員已經驗證了這些論點是正確的。但我被告知要將-activatorsqlid'$ DDDDDD'添加到命令中。在最後一個參數中有各種各樣的問題,所以我們直接調用java程序。 – ferg

1

有DB2,然後有DB2。根據特定的DB2服務器變體,您可能需要IBM的許可證來啓用驅動程序。根據您與IBM的協議以及您如何連接到數據庫,看起來有幾種不同的安裝許可證的類型和方式。

  1. 服務器可能根本不需要驅動程序的連接許可證。這適用於DB2 Express版本。
  2. 大型機版本可能包含一個特殊的許可證,允許任何驅動程序連接而無需特殊的許可證設置。這可能是無限的變體。
  3. 許可證文件在安裝時可能需要添加到每個驅動程序中。這可能是企業變體。

這是您用於執行安裝需要DB2服務器上相應權限的帳戶的補充。根據您安裝客戶端的方式,郵件不清楚,並指出帳戶權限不足,而不是缺少許可證。根據許可證情況,驅動程序安裝看起來差異很大。

在我們的案例中,IBM支持尤其沒有幫助。事實上,在與IBM支持合作兩個月後,我們仍然沒有工作的驅動程序!