簡體   English   中英

檢測到通信錯誤PHP DB2連接

[英]A communication error has been detected PHP DB2 Connection

我嘗試使用db2cli odbc模塊和odbc_connect連接到DB2 / AS400遠程數據庫,但是返回下一個錯誤:

執行失敗:[unixODBC] [IBM] [CLI驅動程序] SQL30081N已檢測到通信錯誤。 使用的通信協議:“ TCP / IP”。 使用的通信API:“ SOCKETS”。 檢測到錯誤的位置:“ 10.10.100.5”。 通訊功能檢測到錯誤:“ recv”。 協議特定的錯誤代碼:“ ”,“ ”,“ 0”。 SQLSTATE = 08001

這是我的PHP代碼:

<?php

$database = 'xxxx';
$user = 'xxxx';
$password = 'xxxx';
$hostname = '10.10.100.5';
$port = '55000';
$driver = 'DB2';

$conn_string = "DRIVER={$driver};DATABASE=$database;HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;";

if (!$db = odbc_connect ($conn_string, $user, $password)) {
     print("Execution failed:\n");
}

else echo 'Success!';


odbc_close($db);

請幫幫我!!

我不熟悉AS400,但是在Linux / UNIX上,如果未在服務器端正確設置TCP / IP通信,則會發生此錯誤。 我要檢查兩件事(在Linux / UNIX服務器上,不確定AS400等效項):

  1. netstat -na
  2. db2set DB2COMM=TCPIP

第一個命令將返回打開的TCP / IP偵聽器的列表。 您的端口55000應該在列表上。 如果不是,則表示服務器未打開以進行通信。

第二部分啟用DB2中的TCP / IP通信。 注意,存在對/etc/servicesSVCENAME DBM CFG參數的依賴性。 必須重新啟動服務器, DB2COMM才能生效。 正確啟用后,DB2應該開始在配置的端口上偵聽。

如果以上方法均無濟於事,則可能是防火牆阻止了對DB2服務器的訪問。

再次致歉,如果此回復不適用於AS400。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM