【发布时间】:2012-01-25 13:45:15
【问题描述】:
我发现使用 JDBC 或 Spring 将我的 Web 应用程序连接到 SQLServer 数据库(不是 Express)时出现问题。
在我的代码的某个点我调用:
this.conn = DriverManager.getConnection(db_connect_string, db_userid, db_password);
并且应用程序运行正常,但是它正在等待并且不会继续。另一个 Web 应用程序也会发生同样的情况:
getJdbcTemplate().query(...)
如果我使用以下方法查看数据库:
SELECT SPID, STATUS, PROGRAM_NAME, LOGINAME=RTRIM(LOGINAME), HOSTNAME, CMD
FROM MASTER.DBO.SYSPROCESSES
WHERE DB_NAME(DBID) = 'myDB' AND DBID != 0
我可以看到有一个连接打开但“等待命令”。没有处理异常,它只是在等待一些东西。
该连接的 SQL Server Profiler(审核登录)返回:
-- network protocol: TCP/IP
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language us_english
set dateformat mdy
set datefirst 7
set transaction isolation level read committed
它直到几周前才有效。我认为它应该与 SQLServer 配置有关,但我很确定我没有改变任何东西。我们可以排除防火墙问题,因为连接已正确创建。有人可以帮帮我吗?
谢谢,安德里亚
【问题讨论】:
-
如果您使用的是 Java 6 Update 29 或 Java 7 / Java 7 Update 1,请在 stackoverflow.com/a/8988851/466862 中查看我的答案,这可能是同样的问题
-
Tnx,它是 1.6.0_29,我会尝试更新它(如果可用)或尝试使用另一个 JVM
-
你想让我发表我的评论作为答案吗?
标签: java sql-server jdbc spring-jdbc