我一直在尝试为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正确配置连接池?我搜索过高低,尝试了我发现的一切,但没有任何效果。
提前致谢。
[edit] 这是堆栈跟踪:http://pastebin.com/w3rZSERs
[edit-2] 似乎问题是Tomcat无法在他的lib文件夹中找到驱动程序。我们很确定它在那里,但我们不知道这一点。 sqljdbc4和jtds-1.3.0都会发生这种情况。我们遵循我们可以找到的每个指南,但问题仍然存在。
答案 0 :(得分:10)
我们发现了问题。
driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"
应该是
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
答案 1 :(得分:1)
在我看来,java端配置正确。
您可以使用其他JDBC连接(例如SquirrelSQL或类似软件)访问服务器吗?
如果您无法使用Squirrel访问服务器,可能您未启用对服务器的TCP / IP访问,在这种情况下,请遵循Enable remote connections for SQL Server Express 2012
的接受答案