2009-08-14 4 views
0

새 상자에 이전 응용 프로그램을 배포하고 있습니다. 처음으로 데이터베이스를 타격 할 때 내가 context.xml에 내 자원 인 unixODBC 내 DSN 및 web.xml에 내 자원 심판을 설정 한PoolableConnectionFactory 잘못된 핸들

File input error: Cannot create PoolableConnectionFactory (Invalid handle) 

를 얻을. 내가 뭘 놓치고 있니?

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 (unixODB와 함께 제공)을 사용하여 셸에서 연결할 수 있습니다. 잘못된 DSN을 주면, "PoolableConnectionFactory ([unixODBC] [드라이버 관리자] 데이터 원본 이름을 찾을 수없고 기본 드라이버가 지정되지 않음)를 만들 수 없습니다." – Mark

+0

아, 웹에서 를 제거합니다. xml, 여전히 같은 오류가 발생합니다. – Mark

+0

unixODB에 대한 경험이 없습니다. isql에서 작동하는 환경 차이가 있어야하며 Java에서는 작동하지 않아야합니다. –