5

我一直在尝试为 SQL Server 2012 数据库配置连接池。我目前已配置并运行 Informix 和 Oracle 池,只有 SQL Server 让我头疼。到目前为止,这是我在 Context.xml 上的资源的样子:

<Resource name="jdbc/sqlserv"
    auth="Container"
    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
    driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"
    type="javax.sql.DataSource"
    maxActive="50"
    maxIdle="10"
    maxWait="15000"
    username="username"
    password="password"
    url="jdbc:sqlserver://127.0.0.1:1433;databaseName=SQLDB;"
    removeAbandoned="true"
    removeAbandonedTimeout="30"
    logAbandoned="true" /> 

当然,那是使用 sqljdbc4 驱动程序。我们已经尝试将 jtds-1.3.0 与 . 一起使用driverClass="net.sourceforge.jtds.jdbc.Driver",但没有成功。所有资源引用也都已正确配置。每当我尝试使用该资源创建新连接时,它都会失败。
为了比较起见,我们的 Informix 和 Oracle 资源如下所示:

<Resource name="jdbc/infmx"
    auth="Container"
    type="javax.sql.DataSource"
    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
    maxActive="50"
    maxIdle="10"
    maxWait="15000"
    username="username"
    password="password"
    driverClassName="com.informix.jdbc.IfxDriver"
    url="jdbc:informix-sqli://localhost:30091/infmx:informixserver=ol_infmx_soc"
    removeAbandoned="true"
    removeAbandonedTimeout="30"
    logAbandoned="true"/>

<Resource name="jdbc/orcl"
    auth="Container"
    type="oracle.jdbc.pool.OracleDataSource"
    driverClassName="oracle.jdbc.driver.OracleDriver"
    factory="oracle.jdbc.pool.OracleDataSourceFactory"
    url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
    user="username"
    password="password"
    maxActive="50"
    maxIdle="10"
    maxWait="15000" /> 

所以我的问题是:如何在我的 tomcat 上下文中正确配置 SQL Server 2012 的连接池?我到处搜索,尝试了我找到的所有东西,但没有任何效果。


提前致谢。

[编辑]这是堆栈跟踪: http: //pastebin.com/w3rZSERs

[edit-2]问题似乎是Tomcat 在他的lib 文件夹中找不到驱动程序。我们很确定它在那里,但我们不知道如何确定。sqljdbc4 和 jtds-1.3.0 都会发生这种情况。我们正在遵循我们能找到的每一个指导方针,但问题仍然存在。

4

2 回答 2

10

我们发现了我们的问题。

driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"

本来应该

driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
于 2013-03-20T16:39:00.070 回答
1

在我看来,java 端配置正确。

您可以使用另一个 JDBC 连接(例如 SquirrelSQL 或类似软件)访问服务器吗?

如果您无法使用 Squirrel 访问服务器,可能是您没有启用对服务器的 TCP/IP 访问,在这种情况下,请遵循Enable remote connections for SQL Server Express 2012的已接受答案

于 2013-03-19T13:32:17.287 回答