我发现使用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
我可以看到有一个连接打开但“AWAITING COMMAND”。没有例外处理,它只是在等待某事。
该连接的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配置相关的东西,但我很确定我没有改变任何东西。我们可以排除防火墙问题,因为连接已正确创建。有人可以帮帮我吗?
感谢,安德烈