在Tomcat上配置SQL Server连接池

问题描述:

我一直在尝试为SQL Server 2012数据库配置连接池。我目前配置并运行了Informix和Oracle池,但只有SQL Server让我头疼。这是我在Context.xml上的资源看起来如此之多:在Tomcat上配置SQL Server连接池

<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

[编辑2]看来问题是,Tomcat的找不到他的lib文件夹中的驱动程序。我们很确定它在那里,但我们不知道这一点。这同时发生在sqljdbc4和jtds-1.3.0上。我们正在遵循我们可以找到的每条指南,但问题依然存在。

接受的答案,我们发现我们的问题。

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

本来应该

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

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

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

如果您无法访问使用松鼠的服务器,也许你没有启用到服务器的TCP/IP连接,在这种情况下,遵循Enable remote connections for SQL Server Express 2012

+0

这肯定有一些影响!不过,我现在收到以下消息:2013年3月19日上午10点五十分57秒org.apache.naming.NamingContext查找 警告:意外的异常解析参考 值java.sql.SQLException 在org.apache .tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:254) – fcm 2013-03-19 13:53:23

+1

我需要更多的线条在堆栈跟踪,你能编辑你的文章,附上你得到的完整例外吗? – 2013-03-19 15:50:28

+0

我已将它添加到原始帖子 – fcm 2013-03-19 16:40:21