2012-03-13 93 views
1

我已經安裝了DB2 Express-C V9.7,unixODBC php5-odbc和iSerie-5.4.0-1.6驅動程序的Linux,但是當我嘗試連接到DB2服務器PHP返回此消息:ODBC連接失敗DB2與PHP實例5.3.6-13ubuntu3.6

[unixODBC][IBM][iSeries Access ODBC Driver]Communication link failure. comm rc=10061 - 
CWBCO1049 - The iSeries server application is not started, SQL state 08004 in SQLConnect 

我使用tcpdump是PHP嘗試在端口8741連接50000

netstat的,而不是-anp告訴注意到我的DB2監聽端口50000

這是我的配置文件

/etc/odbcinst.ini:

[DB2] 
Description  = ODBC for DB2 
Driver   = /opt/ibm/iSeriesAccess/lib/libcwbodbc.so 
Setup   = /opt/ibm/iSeriesAccess/lib/libcwbodbcs.so 
FileUsage    = 1 
Threading    = 2 
DontDLClose    = 1 
UsageCount    = 1 

/etc/odbc.ini

[local_db2] 
Driver = DB2 
System = localhost 
User = db2inst1 
Password = MySecretPassword 
Port = 50000 
Database = dbname 
Option = 1 

而且我的PHP腳本:

$dsn = "local_db2"; 
$user = "db2inst1"; 
$passwd = "MySecretPassword"; 
$conn = odbc_connect($dsn,$user,$passwd); 

echo "votre id de connexion est : $conn"; 

if ($conn <= 0) { 
echo "\nErreur\n"; 
} 
    else { echo "\nSuccès\n"; 
} 

odbc_close($conn); 

現在我可以連接到DB2服務器。我在/ etc/services中更改了db2inst1的端口,但服務器不響應我。

我的錯誤消息是(後一段時間): [了unixODBC] [IBM] [System i的訪問ODBC驅動程序]通信鏈接失敗。 COMM RC = 8405 - CWBCO1047 - 在IBM i的服務器應用程序斷開連接,SQL狀態08S01 SQLCONNECT中

結論:

的第一個問題是驅動程序,這是不是我的配置正確的驅動程序的iSeries,所以我已經安裝了包括Linux驅動程序的DB2 ODBC CLI driver

第二個問題是odbc配置。

我的工作/etc/odbc.ini配置:

[DBNAME] 
Driver=DB2 

我的工作/etc/odbcinst.ini配置:

[ODBC] 
Trace  = yes 
Tracefile  = /tmp/odbc.log 

[DB2] 
Description  = DB2 Driver 
Driver  = /opt/ibm/db2/V9.7/lib32/libdb2.so 
FileUsage  = 1 
DontDLClose  = 1 

你可以得到約在/ tmp目錄的ODBC連接的詳細信息/odbc.log。 我也使用了測試odbc連接的isql程序。 此程序是在unixodbc linux軟件包中。

感謝您的信息

Nicolas。

回答

3

這可能是數據庫主機服務器尚未啓動。數據庫主機服務器接受到數據庫的TCP/IP連接。

您可以使用命令WRKACTJOB SBSD(QSERVER) JOB(QZDASRVSD)檢查它當前是否處於活動狀態。

啓動它的命令是:STRHOSTSVR SERVER(*DATABASE)

默認端口是8471。

+0

我是DB2的新手,但我的系統上沒有wrkactjob和strhostsvr實用程序。 我認爲它是OS/400命令,但我在我的ubuntu Linux上運行DB2 – 2012-03-14 09:53:50

+1

如果您在Linux上運行DB2,爲什麼要使用iSeries Access DB2驅動程序?您應該使用標準的DB2驅動程序,例如[DB2 ODBC CLI驅動程序](http://www-01.ibm.com/support/docview.wss?uid=swg21418043)。 iSeries驅動程序僅用於連接到DB2/400。 – jamesallman 2012-03-14 10:47:38

+0

現在沒關係,謝謝你的信息 – 2012-03-14 14:44:28