Java ';无效的对象名称';连接处于活动状态数天后出现SQL错误

Java ';无效的对象名称';连接处于活动状态数天后出现SQL错误,java,sql-server,tomcat,datasource,Java,Sql Server,Tomcat,Datasource,我们在Tomcat8.5上部署了一个JavaSpringWeb项目。当web应用程序启动时,我们构建一个数据源并连接到SQL Server。当需要时,我们从和数据源关联的连接池中获取连接,并执行一些本机查询。连接始终关闭以将其返回池 当web应用程序在最初几天启动时,一切正常。然而,几天后,我们开始出现如下异常: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'dbo.patients'.

我们在Tomcat8.5上部署了一个JavaSpringWeb项目。当web应用程序启动时,我们构建一个数据源并连接到SQL Server。当需要时,我们从和数据源关联的连接池中获取连接,并执行一些本机查询。连接始终关闭以将其返回池

当web应用程序在最初几天启动时,一切正常。然而,几天后,我们开始出现如下异常:

com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'dbo.patients'.
            at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
            at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515)
            at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:404)
            at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)
            at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
            at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
            at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
            at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
            at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:285)
            at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:107)
            at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:107)
上面引用的表“dbo.patients”只是一个例子。该错误可能会随机发生在其他表上

我们检查后端数据库和表是否存在!重新启动Tomcat将在一段时间内解决问题,但问题会不断出现


任何洞察都将不胜感激

你是说,完全相同的函数/查询在重新启动后立即工作?因为您似乎试图对实际上不存在的表执行某些操作。可能是输入错误?函数/查询工作了几天,然后开始随机出现异常。我们打印出表名和查询。我们可以在Sql Server Management Studio中执行查询。可能当前数据库设置不正确,或者连接到其他服务器实例。不管怎样,错误是显而易见的。该表在dbo架构或连接的当前数据库中不存在。您需要更彻底地调试代码。