Oracle 9i 在建立資料庫時預設會啟用 XDB 功能。一旦資料庫與監聽器啟動,XDB 的 HTTP 服務便會佔用 8080 端口,這與 JBoss、Tomcat 等常見應用伺服器的預設端口衝突。由於 XDB 的端口設定儲存在資料庫內部而非配置檔案中,修改方式略有不同。
以 SYS 權限登入 SQL*Plus,執行以下 PL/SQL 區塊即可分別修改 HTTP 與 FTP 端口:
-- 將 HTTP/WEBDAV 端口從 8080 改為 8081
CALL dbms_xdb.cfg_update(
updateXML(
dbms_xdb.cfg_get(),
'/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',
8081
)
);
/
COMMIT;
-- 將 FTP 端口從 2100 改為 2111
CALL dbms_xdb.cfg_update(
updateXML(
dbms_xdb.cfg_get(),
'/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()',
2111
)
);
/
COMMIT;
-- 重新載入配置使其生效
EXEC dbms_xdb.cfg_refresh;
在 Oracle Enterprise Manager Console 中依序選擇:目標資料庫 → XML Database → Configuration,即可視覺化調整 XDB 相關設定。
若不需要 XDB 功能,可直接停用其 Dispatcher:
$ORACLE_HOME/dbs/init.ora (Linux)或 oracle\admin\SID\pfile\init.ora(Windows)dispatchers='(PROTOCOL=TCP) (SERVICE=XDB)'CREATE SPFILE FROM PFILE;STARTUP;作者在 Windows 2000 環境安裝 MapXtreme for Java 4.7 時,Tomcat 啟動失敗,發現 8080 端口被佔用。瀏覽器訪問 https://192.168.0.5:8080 提示「領域:XDB」,確認為 Oracle XDB 服務。因 SYS 密碼遺失,無法使用方法一;方法二、三嘗試失敗。最終使用 PL/SQL Developer 以 DBA 身分登入,成功執行方法一的 SQL 指令,Tomcat 即恢復正常啟動。
建議:若不使用 XML DB 功能,方法三最徹底;需保留 XDB 時,方法一最靈活且無需重啟資料庫即可生效(執行 cfg_refresh 後)。