TCP/IP 錯誤

偵測到 TCP/IP 特定通訊錯誤時,軟體會傳回 SQL30081N 訊息 (-30081)。通訊子系統所發生的 TCP/IP 錯誤,會傳回到 SQL30081N 訊息的錯誤記號清單中。

TCP/IP

下表列出 Linux 及 UNIX 作業系統上的一般 TCP/IP 錯誤符號 (errnos)。在 /usr/include/sys/errno.h 檔案中,可以找到 UNIX 作業系統中的完整 TCP/IP 錯誤清單。 在 Linux 作業系統上,可於 /usr/include/asm/errno.h 檔案中找到完整 TCP/IP 錯誤清單。

表 1. UNIX TCP/IP 錯誤碼
errnos AIX® 錯誤碼 HP-UX 錯誤碼 Solaris 錯誤碼 Linux 錯誤碼 說明
EINTR 4 4 4 4 指定的函數已被信號岔斷。
EBADF 9 9 9 9 Socket 不正確。Socket 可能已毀損。
EAGAIN 11 11 11 11 資源暫時無法使用。
EFAULT 14 14 14 14 位址不正確。

連接時的位址不正確。

接收時,將要接收的資料引導至程序位址空間中不存在或受保護的部分。 緩衝區無效。

EBUSY 16 16 16 16 資源忙碌中。
EINVAL 22 22 22 22 已關閉傳遞至所指定函數或 Socket 的無效引數。如果發生記憶體覆寫或緩衝區溢位問題,則可能會傳回 EINVAL 錯誤。
ENFILE 23 23 23 23 在系統中開啟了太多檔案。
EMFILE 24 24 24 24 逐步處理檔案描述子表格已滿。 已超出程序的檔案描述子/Socket 數目。
ENOSPC 28 28 28 28 裝置或系統表格上沒有空間。
EPIPE 32 32 32 32 中斷的管道。
EWOULDBLOCK 54 246 11 11 在連接函數上,已耗盡針對 TCP/UDP 暫時埠所配置的範圍(部分作業系統會傳回與 EAGAIN 相同的錯誤)。
ENOTSOCK 57 216 95 88 非 Socket 上的 Socket 作業。
ENOPROTOOPT 61 220 99 92 選項不明。
EADDRINUSE 67 226 125 98 所指定的位址已在使用中。也許是前一個建立連線的程序已異常終止,或未適當地清除。
EADDRNOTAVAIL 68 227 126 99 無法從本端系統取得指定的主機名稱或 IP 位址。
ENETDOWN 69 228 127 100 網路已關閉。
ENETUNREACH 70 229 128 101 沒有可用的路徑連到該網路或主機。
ENETRESET 71 230 129 102 網路已在重設時捨棄連線。
ECONNRESET 73 232 131 104 友機已重設連線。
ENOBUFS 74 233 132 105 系統沒有足夠的記憶體或資源來完成呼叫。
EISCONN 75 234 133 106 此 Socket 已連接。
ENOTCONN 76 235 134 107 未連接此 Socket。
ETIMEDOUT 78 238 145 110 連線逾時。
ECONNREFUSED 79 239 146 111 連線遭拒。如果您嘗試連接至資料庫,請確認已順利地啟動伺服器上的資料庫管理程式及 TCP/IP 通訊協定支援。

如果您已指定 SOCKS 通訊協定支援,則也必須確定已順利地啟動 SOCKS 伺服器上的 TCP/IP 通訊協定支援。

EHOSTDOWN 80 241 147 112 主機已關閉。
EHOSTUNREACH 81 242 148 113 沒有可用的路徑到該主機。

winsock2.h 檔案中,可以找到 Windows 作業系統中的完整 TCP/IP 錯誤清單。如果您未安裝開發環境,則不會在系統上安裝 winsock2.h 檔案。如需 Windows TCP/IP 錯誤清單,請在 http://msdn.microsoft.com/ 搜尋 Windows Sockets 錯誤碼。