🔎TIBCO Spotfire 連線資料庫錯誤排查:ORA-12505 與 No more data available to read 全面解析
前言
在安裝與設定 TIBCO Spotfire Server 時,我們必須先正確連線到後端的 Repository 資料庫(通常是 Oracle 或 SQL Server)。但在實務中,許多人會遇到兩大常見錯誤:
-
ORA-12505: Connection refused, the specified SID was not recognized by the Oracle server
-
No more data available to read
這篇文章將以軟體工程師的角度,詳細解析這兩種錯誤發生的原因與解決方法,並且教你如何正確設定 Spotfire 與資料庫的連線參數。
常見錯誤 1:ORA-12505
錯誤訊息:
原因解析:
-
你的 JDBC 連線字串中指定的 SID(例:spotfire)在 Oracle 伺服器中不存在
-
可能是搞混了 SID 與 Service Name
-
Oracle Listener 沒有註冊該 SID / Service Name
-
連線到的 IP 與 Port 對應的不是該資料庫實例
排查方法:
-
在 Oracle 主機上執行:
查看目前 listener 註冊的 SID 與 Service Name
-
用 sqlplus 測試連線:
如果 Service Name 正確,就能成功登入。
-
修改 JDBC URL
-
用 Service Name:
-
用 SID:
-
常見錯誤 2:No more data available to read
錯誤訊息:
原因解析:
-
你選擇的驅動程式與實際資料庫類型不符
-
例如:
-
Driver template 選了 Oracle DataDirect
-
但 Port 使用的是 1433(SQL Server 預設埠)
-
帳號是 SQL Server 的 sa,這在 Oracle 中不存在
-
-
導致 JDBC 在資料交換時讀到無法解析的資料,直接中斷
排查方法:
-
先確認資料庫類型(Oracle 還是 SQL Server)
-
如果是 Oracle → 改回 Port 1521,使用 Oracle 帳號與正確 SID/Service Name
-
如果是 SQL Server → Driver template 改成 SQL Server DataDirect,Port 用 1433,並指定 Database Name:
密碼星號顯示多寡與實際長度無關
很多人會疑惑:「我輸入密碼只有 8 位,為什麼顯示超多星號?」
事實上,這只是 GUI
固定顯示的遮罩符號長度,與實際密碼字數無關,也不會影響連線。
總結
-
ORA-12505 → 檢查 Oracle SID / Service Name 與 listener 註冊狀況
-
No more data available to read → 驅動程式與資料庫類型不符,或 Port 錯誤
-
密碼顯示星號數量不影響登入
-
設定前一定要先確認資料庫類型、IP、Port、SID/Service Name 是否正確
💡 如果你想要一次設定好 Spotfire 與資料庫連線,可以先跟 DBA 確認以下資訊:
-
資料庫類型(Oracle / SQL Server)
-
Host / Port
-
Oracle:SID 還是 Service Name
-
SQL Server:Database Name
-
使用者帳號與密碼
有了正確資訊,再依據本文設定,基本上就能一次連線成功。
留言
張貼留言