2009年10月12日

Tomcat: Cannot create PoolableConnectionFactory

因為在修改某系統的部署方式而遇到這個問題,特此記之!

錯誤訊息:
12:15:11,605 ERROR jsp:228 - Cannot create PoolableConnectionFactory (IO 異常: The Network Adapter could not establish the connection)
據說這個例外的成因還不少,但在使用 Oracle 資料庫的情形時有個比較特殊的原因:連線設定參數與資料庫設定不符。最直接的驗證方式是將資料庫連線設定改用 tnsnames.ora 檔案內的寫法取代即可。Ex:
<Resource 
    name="jdbc/oracle" auth="Container"
    type="javax.sql.DataSource"
    driverClassName="oracle.jdbc.OracleDriver"
    url="(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP))(HOST=192.168.1.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=MY_DB)))"
    username="賣哀滴"
    password="賣怕死我"
    maxActive="8"
    maxIdle="4"
    maxWait="30"/>