gpt4 book ai didi

java - 使用 Spring JDBC Template 的连接异常

转载 作者:搜寻专家 更新时间:2023-10-31 20:21:48 27 4
gpt4 key购买 nike

我有一个使用 Spring 开发的简单 Web 应用程序,最近我遇到了一些数据库连接问题。我的数据库在 MS SQL Server 2005 上。

为了检索数据,我使用框架提供的 JDBCTemplate 类实现了几个 DAO。

有时我会得到这个异常:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.DataAccessResourceFailureException: StatementCallback; SQL [SELECT [Campaigns].[CampaignID],[CampaignCode],[CampaignType],[StartDate],[EndDate],[Status],[FirstUpdate],[LastUpdate],[FirstUpdateUserID],[LastUpdateUserID],[CampaignDescriptions].[Description] FROM [Campaigns] INNER JOIN [CampaignDescriptions] ON [Campaigns].[CampaignID] = [CampaignDescriptions].[CampaignID] ORDER BY [StartDate] DESC]; Connection reset by peer: socket write error; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: socket write error
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

似乎只有在执行报告的查询时才会发生异常。

我不明白是什么导致了这个问题。有什么想法吗?

执行查询的方法是:

@Transactional(propagation = Propagation.NEVER)
public Campaign[] getAll() {
List<Campaign> campList = getJdbcTemplate()
.query(BASE_QUERY,
new CampaignMapper());
return campList.toArray(new Campaign[0]);
}

其中 BASE_QUERY 在异常消息中是相同的。

最佳答案

它有点像陈旧的连接问题。如果它很常见或第一个被执行(大多数时候),它可能只出现在这个查询中。

要检查的事情:

  • 服务器端连接超时
  • 连接池最小空闲超时
  • 连接池使用前验证连接

关于java - 使用 Spring JDBC Template 的连接异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13490821/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com