2009-08-14 91 views
0

我在新框中部署舊應用程序。當擊中首次數據庫,我得到PoolableConnectionFactory無效句柄

File input error: Cannot create PoolableConnectionFactory (Invalid handle) 

我建立了我的context.xml中的資源,我用了unixODBC DSN,並在web.xml我的資源引用。我還有什麼遺漏?

from content.xml --> 

<Resource name="jdbc/MoleComp" auth="Container" 
type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="-1" 
removeAbandoned="false" removeAbandonedTimeout="60" 
username="userName" password="passWord" 
driverClassName="sun.jdbc.odbc.JdbcOdbcDriver" 
url="jdbc:odbc:DSNName"/> 

from app/WEB-INF/web.xml --> 

<resource-ref> 
    <description>DB connection</description> 
    <res-ref-name>jdbc/MoleComp</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 

謝謝。

回答

0

另一個服務器上得到這個問題之後,我使用了unixODBC和odbc.jdbc到Java類型4驅動jTDS jtds.jdbc切換應用程序。性能也好一點!

0

首先,您應該從web.xml中刪除< resource-def>。這只是定義數據源的另一種方法,您已經在context.xml中完成了這一工作。

該錯誤來自ODBC-JDBC橋驅動程序。因此,ODBC不在運行或者url="jdbc:odbc:DSNName"無效。

+0

謝謝志鴻。這是一個有效的DSN,我可以使用isql從shell中連接到它(與unixODB一起提供)。如果我給它一個無效的DSN,我會得到「無法創建PoolableConnectionFactory([unixODBC] [驅動程序管理器]未找到數據源名稱,並且沒有指定默認驅動程序)」 – Mark 2009-08-14 18:45:07

+0

哦,我從web上刪除。 XML,仍然得到相同的錯誤。 – Mark 2009-08-14 18:46:05

+0

我沒有unixODB的經驗。它必須是某種環境差異,導致它在isql中工作,而不是在Java中。 – 2009-08-14 23:30:03