2009-10-15 50 views
3

我收到以下異常對方將連接錯誤復位

[微軟] [SQLServer 2000的驅動程序JDBC]連接被對方​​復位:套接字寫錯誤

它發生在應用服務器上當Web應用程序嘗試通過網絡訪問位於另一臺計算機上的數據庫時。現在我已閱讀了一些文章,並找到了許多不同的答案。一個是從我們目前使用的com.microsoft.jdbc.sqlserver.SQLServerDriver驅動升級到jtds驅動。有人說改變池大小,有人說它的網絡防火牆關閉連接。但是,這些帖子中的每個人都表示他們通過重新啓動應用程序服務器來解決問題。然而,我的問題不同,因爲錯誤會在一段時間內彈出,導致一堆錯誤,然後消失,系統將正常工作。

我跟系統管理員談過了,他告訴我沒有網絡中斷,並堅持認爲它不是網絡。

所以我的問題是,對於那些已經解決了這個問題的人,哪種解決方案最好?我是否升級驅動程序,更改連接池設置,在休眠時升級到C3P0?

下面是配置Hibernate數據源

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" /> 
     <property name="url" value="jdbc:microsoft:sqlserver://databasecomp.company.com:1433;databaseName=DBNAME;" /> 
     <property name="username" value="username" /> 
     <property name="password" value="password" /> 
    </bean> 

而這裏的Spring XML的Spring XML爲Hibernate會話工廠這個數據源

<bean id="theSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" > 
     <property name="dataSource" ref="dataSource" /> 
     <property name="useTransactionAwareDataSource" value="true" /> 
     <property name="mappingResources"> 
      <list> 
       <!-- Omitted for clarity --> 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="connection.pool_size">1</prop> 
       <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop> 
       <prop key="hibernate.show_sql">true</prop> 
       <prop key="hibernate.generate_statistics">false</prop> 
       <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop> 
       <prop key="hibernate.cglib.use_reflection_optimizer">false</prop> 
      </props> 
     </property> 

另外一個說明:此數據源已準備就緒只有,如果這有助於使這個問題更容易修復。

謝謝!

回答

3

確保您擁有基本權限,例如主機名和端口。另外,請檢查兩端的防火牆是否存在干擾,即允許流量通過所需的端口。

TCP重置意味着另一端有東西,但連接從另一端強制關閉,請參閱here,這對我來說似乎是防火牆或IPS系統的典型特徵。如果所有這些基本檢查都已完成,那麼最好的方法就是升級您的軟件,以防出現晦澀的錯誤並再次嘗試。

+0

感謝您的回答,我曾嘗試在連接字符串中使用IP地址,而不是服務器的名稱。到目前爲止,我沒有任何錯誤,但錯誤是如此的複雜,我不會滿意,直到服務器已經2或3天沒有錯誤。如果它不起作用,我會嘗試一些驅動程序更新,如你所說,再試一次。 – Zoidberg 2009-10-21 11:34:27

相關問題