簡體   English   中英

使用Spring JDBC Template的連接異常

[英]Connection exception using Spring JDBC Template

我有一個使用Spring開發的簡單Web應用程序,最近我遇到了一些DB連接問題。 我的數據庫在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在異常消息中是相同的。

它有點像陳舊的連接問題。 它可能只出現在此查詢中,如果它很常見或者是第一個要執行的(大多數時候)。

要檢查的事項:

  • 服務器端連接超時
  • 連接池minium空閑超時
  • 連接池在使用前驗證連接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM