[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误解决方法总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误解决方法总结相关的知识,希望对你有一定的参考价值。

今天做一个特殊的业务处理,用JDBC连接SQLServer数据库载入驱动的时候,报例如以下错误:

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
	at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
	at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
	at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
	at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
	at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
	at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
	at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
	at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at app.specialSupervise.power.keywork.SendMessageDao.insert(SendMessageDao.java:68)
	at app.specialSupervise.power.keywork.SendMessageCmd.insert(SendMessageCmd.java:15)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.icore.util.CoreDaoFactory.invoke(CoreDaoFactory.java:117)
	at com.icore.util.CoreDaoFactory.invoke(CoreDaoFactory.java:135)
	at com.icore.core.CommandPool.invoker(CommandPool.java:92)
	at com.icore.core.CommandPool.handler(CommandPool.java:122)
	at com.inspur.core.action.c.handler(c.java:213)
	at com.icore.core.CoreAction.handler(CoreAction.java:234)
	at com.icore.http.HttpServerHandler$RestHandler.doHandler(HttpServerHandler.java:267)
	at com.icore.http.HttpServerHandler$RestHandler.handler(HttpServerHandler.java:254)
	at com.icore.core.ThreadPoolBean.run(ThreadPoolBean.java:57)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)


一、配置错误
jdbc配置语句为: jdbc:microsoft:sqlserver://server_name:1433
当中的sqlserver、server_name和port号都要看细致了。

二、1433port问题
能够通过命令“netstat -an”,来查看是否开了1433port,假设列表中没有,要增开port。


要保持jdbc配置语句( jdbc:microsoft:sqlserver://server_name:1433)中的port与数据库传输协议默认的port同样。
MSSQL设置port号过程例如以下:
1. 打开企业管理器。依次在控制台根文件夹 ->Microsoft SQL Servers->SQL Server 组,列出一部分数据库server。


2. 右击我们要连接的数据库server。选择属性。在常规选项卡点击网络配置弹出新窗体。
3. 在启用的协议区域我们选择 TCP/IP ,点击属性button。弹出新窗体。在这个窗体有网络协议默认值设置,一般默认port是:1433。 假设你在url中用的port号与这个不同,就会出现错误。

应保持二者同样。


三、没打补丁
能够用例如以下的方式查看MSSQL的版本号:
打开企业管理器-〉工具-〉SQL查询分析器-〉帮助-〉关于
查看MSSQL的具体版本
假设 是 8.00.194 就是还没打补丁
8.00.760 就是SP3
8.00.2039 就是SP4

1、下载MSSQL 2000 Service Pack 3a并安装,SQL请选用混和安装模式!!!
http://www.microsoft.com/downloads/details.aspx?FamilyId=90DCD52C-0488-4E46-AFBF-ACACE5369FA3&displaylang=zh-cn
解压缩sp3的升级包后,还要点击setup安装.才干成功升级到sp3。


2、下载SQL Server 2000 Driver for JDBC Service Pack 3
http://www.microsoft.com/downloads/details.aspx?

FamilyId=07287B11-0502-461A-B138-2AA54BFDC03A&displaylang=en


四、系统防火墙或者杀毒软件
假设系统开防火墙或者杀毒软件,在有些情况下也能够出现类似的问题。
没有遇见过,有人这么说。

 

五、数据驱动版本号或者写法不正确应

假设port对上之后,还连不上的话,请检查数据驱动的版本号(sql2005,sql2000驱动写法有些细微差异)
纯JAVA驱动:
// 2005 版本号:
驱动:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
连接:”jdbc:sqlserver:// localhost:1433;databaseName=pubs”,”sa”,”sa”
// 2000 版本号:
驱动:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
连接:“jdbc:microsoft:sqlserver:// localhost:1433;databaseName=pubs”,”sa”,”sa”
JDBC-ODBC桥接:
驱动:Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
连接:jdbc:odbc:test

 

 





































以上是关于[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误解决方法总结的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver2005 删除 对于 用户“**” (Microsoft.SqlServer.Smo)

Microsoft.SqlServer.Smo 问题

jmeter --JDBC请求

在 GAC 中安装 Microsoft.SqlServer.Types

无法加载文件或程序集“Microsoft.SqlServer.DTSRuntimeWrap”

指数数组的边界之外。 (Microsoft.SqlServer.smo)