由于对等错误而重置连接

Zoi*_*erg 5 sql-server hibernate

我收到以下异常

[Microsoft][SQLServer 2000 Driver for JDBC]对等方重置连接:套接字写入错误

当 Web 应用程序尝试通过网络访问位于另一台计算机上的数据库时,它会发生在应用程序服务器上。现在我已经阅读了一些关于此的帖子,并找到了许多不同的答案。com.microsoft.jdbc.sqlserver.SQLServerDriver其中之一是从我们当前使用的驱动程序升级到 jtds 驱动程序。有人说要更改池大小,有人说是网络防火墙关闭了连接。然而,这些帖子中的每个人都表示他们通过重新启动应用程序服务器解决了问题。然而我的问题有所不同,因为错误会偶尔弹出一次,导致一堆错误,然后消失,系统将正常工作。

我与系统管理员交谈,他告诉我没有网络中断,并坚称不是网络问题。

所以我的问题是,对于那些已经解决了这个问题的人来说,哪种解决方案最好?我是否需要升级驱动程序、更改连接池设置、在休眠状态下升级到 C3P0?

下面是配置hibernate数据源的spring xml

<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>
Run Code Online (Sandbox Code Playgroud)

这是该数据源的 Hibernate 会话工厂的 Spring XML

<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>
Run Code Online (Sandbox Code Playgroud)

另请注意:此数据源仅准备就绪,如果这有助于使此问题更容易解决的话。

谢谢!

NT_*_*NT_ 4

确保您掌握了正确的基本信息,例如主机名和端口。另外,请检查两端的防火墙是否不干扰,即允许流量通过所需的端口。

TCP 重置意味着另一端有东西,但连接被从另一端强行关闭,请参见此处,对我来说这似乎是典型的防火墙或 IPS 系统。如果完成了所有这些基本检查,那么最好的方法是升级您的软件,以防出现不明显的错误,然后重试。