代码之家  ›  专栏  ›  技术社区  ›  Mark

PoolableConnectionFactory无效句柄

  •  0
  • Mark  · 技术社区  · 16 年前

    我正在一个新盒子上部署一个旧的应用程序。当我第一次访问数据库时

    File input error: Cannot create PoolableConnectionFactory (Invalid handle)
    

    我在context.xml中设置了资源,在unixodc中设置了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>
    

    谢谢。

    2 回复  |  直到 16 年前
        1
  •  0
  •   ZZ Coder    16 年前

    首先,您应该从web.xml中删除<resource def>。这只是定义数据源的另一种方法,您已经在context.xml中完成了这项工作。

    这个错误来自于ODBC-JDBC桥驱动程序。所以要么ODBC没有运行,要么 url="jdbc:odbc:DSNName" 无效。

        2
  •  0
  •   Mark    16 年前

    在另一个服务器上获得这个问题之后,我将应用程序从使用UNIXODBC和ODC.JDBC切换到Java 4型驱动程序。 jTDS JTDS.JDBC。性能也有点好!