我发现使用 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 配置有关,但我很确定我没有改变任何东西。我们可以排除防火墙问题,因为连接已正确创建。任何人都可以帮助我,好吗?
谢谢,安德烈亚