Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server JAVA/MSSQL:com.microsoft.sqlserver.jdbc.SQLServerException:连接已关闭_Sql Server_Jdbc_Groovy - Fatal编程技术网

Sql server JAVA/MSSQL:com.microsoft.sqlserver.jdbc.SQLServerException:连接已关闭

Sql server JAVA/MSSQL:com.microsoft.sqlserver.jdbc.SQLServerException:连接已关闭,sql-server,jdbc,groovy,Sql Server,Jdbc,Groovy,当我试图从groovy脚本运行数据库查询时,我遇到了一个问题。有时候,但很多时候,我会犯一个错误: com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190) at com.microsoft.

当我试图从groovy脚本运行数据库查询时,我遇到了一个问题。有时候,但很多时候,我会犯一个错误:

com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.checkClosed(SQLServerConnection.java:388)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.createStatement(SQLServerConnection.java:2156)
我用于连接数据库的模块是:

import com.microsoft.sqlserver.jdbc.*;
def dbUser = "username"
def dbPassword = 'password'
def dbDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
def dbUrl = "jdbc:sqlserver://mssql-server"
def sql = Sql.newInstance(dbUrl, dbUser, dbPassword, dbDriver)

windows Server 2012上的windows计划程序每2分钟启动一次脚本。我使用的是开发人员机器,我在那里编写代码,并运行这个大小的脚本。当我使用MySQL数据库时,没有问题,但在MSSQL上迁移数据库后,我看到了这个错误。

这可能是由以下几个原因造成的:

  • 脚本中有一个bug。连接在某个地方被关闭(可能是因为您没有正确处理异常),然后您尝试再次使用它。检查异常和资源处理

  • 你保持连接的时间太长了。在某个超时之后,数据库将关闭其一侧的连接

  • 有人重新启动了数据库服务器


  • 这很可能不是防火墙问题;防火墙只是在连接超时时丢弃数据包,因此应用程序显示为“挂起”,而不是给出正确的错误消息。

    这可能是由以下几个原因造成的:

  • 脚本中有一个bug。连接在某个地方被关闭(可能是因为您没有正确处理异常),然后您尝试再次使用它。检查异常和资源处理

  • 你保持连接的时间太长了。在某个超时之后,数据库将关闭其一侧的连接

  • 有人重新启动了数据库服务器


  • 这很可能不是防火墙问题;防火墙只是在连接超时时丢弃数据包,因此应用程序显示为“挂起”,而不是给出正确的错误消息。

    1。jdbc驱动程序在查询后自动关闭连接。我还在脚本末尾关闭了连接<代码>sql.close().2。在运行脚本期间没有任何明显的超时错误。我知道这是怎么回事。这就像启动脚本时,在运行过程中暂停,然后出现错误,如连接关闭。,因为超时。这不是我的例子。我马上就犯了这个错误。服务器工作正常。数据库也没有问题。问题是否可能是脚本同时从两个工作站运行?有时我会遇到一个错误:
    PM com.microsoft.sqlserver.jdbc.TDSChannel enableSSL信息:java.security路径:c:\Program Files(x86)\java\jdk1.8.0\u 51\jre\lib\security安全提供程序:[SUN 1.8版,SunRsaSign v,…bla bla bla
    能否发布一个显示该行为的最简单示例脚本?1.jdbc驱动程序在查询后自动关闭连接。另外,我在脚本末尾关闭连接。
    sql.close()
    .2.在运行脚本期间没有任何明显的超时错误。我知道这个错误是什么样子。就像启动脚本时,它在运行期间暂停了一段时间,然后出现了一个错误,如连接被关闭。因为超时。这不是我的示例。我一次就遇到了这个错误。3.服务器工作正常。并且数据库没有问题。可能是脚本同时从两个工作站运行吗?有时我会出现错误:
    PM com.microsoft.sqlserver.jdbc.TDSChannel enableSSL信息:java.security路径:c:\Program Files(x86)\java\jdk1.8.0\u 51\jre\lib\security安全提供程序:[SUN version 1.8,SunRsaSign v,…bla bla bla
    能否发布一个显示行为的最简单示例脚本?请显示完整脚本,尤其是查询执行。@Mark Rottveel查询很简单:
    full_debug_query=“INSERT INTO log.dbo.debug(date,number1,number2,action,details,query)值(GETDATE(),“+number1+”,”+number2+“,“+action+”,“+comment+”,“+query+”),“尝试{sql.execute(full_debug_query);}catch(e){ex=e}
    请显示完整脚本,尤其是查询执行。@Mark Rottevel查询很简单:
    full_debug_query=“插入log.dbo.debug(date,number1,number2,action,details,query)值(GETDATE(),“+number1+”,“+number2+“,“+action+”,“+comment+”,“+query+”),“尝试{sql.execute(full_debug_query);}catch(e){ex=e}