2012-03-13 55 views
1

Linux用のDB2 Express-C V9.7、unixODBC php5-odbc、およびiSerie-5.4.0-1.6ドライバをインストールしましたが、接続しようとしました。 DB2サーバーは、私にこのメッセージを返すPHPに:PHPでDB2インスタンスにODBC接続が失敗しました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 

は、私は私がポート50000

を聞くDB2伝える-anp 50000

netstatコマンドの代わりにポート8741に接続しようとPHPのtcpdumpと気づきましたこれは私の設定ファイルです

/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 Access ODBC Driver]通信リンクの障害です。 COMMのRC = 8405 - CWBCO1047 - SQLConnectの

でのIBM iサーバー・アプリケーションは、接続を切断し、SQL状態08S01

結論:

最初の問題は、私ので、私の構成のための適切なドライバではなかったのiSeries用のドライバでしたlinux用のドライバを含むDB2 ODBC CLI driverがインストールされています。

第2の問題は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でnewbyですが、私のシステムにはwrkactjobとstrhostsvrユーティリティはありません。 私はそれがOS/400のコマ​​ンドだと思っていますが、ubuntu LinuxでDB2を実行しています –

+1

LinuxでDB2を実行している場合、なぜiSeries Access DB2ドライバを使用していますか? [DB2 ODBC CLIドライバー](http://www-01.ibm.com/support/docview.wss?uid=swg21418043)などの標準DB2ドライバーを使用している必要があります。 iSeriesドライバーは、DB2/400に接続するためのものです。 – jamesallman

+0

あなたの情報をお寄せいただきありがとうございます。 –

関連する問題