Windows Server 2003 (Windows xp sp2) 下用JSP访问SQLServer 2000 数据库 (Error establish socket)
默认安装SQLSERVER 2000企业版后,用JSP调用JDBC驱动程序访问数据库,会得出“Error establish socket”的出错提示,即驱动程序找不到SQLServer的端口,通过查看“事件查看器”的应用程序事件,有以下出错信息:
“您运行的 Microsoft SQL Server 2000 版本或 Microsoft SQL Server 2000 Desktop Engine (也称为 MSDE) 和 Microsoft Windows Server 2003 家族使用时存在已知的 安全弱点。为了减少计算机被某些病毒的攻击,Microsoft SQL Server 2000,MSDE 或 两者的 TCP/IP 和 UDP 网络端口被禁用。要启用这些端口,您必须从 http://www.microsoft.com/sql/downloads/default.asp 或 http://www.microsoft.com/china/sql/downloads/default.asp 安装一个修补程序, 或 Microsoft SQL Server 2000 或 MSDE 的最新服务包。有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持”,可以看出,Windows Server 2003已经禁用的SQL Server的TCP/IP和UDP端口,所以造成了数据库的无法连接。
按照上面信息提示,从微软下载最新的SQLServer 2000 SP3a升级包,若只安装了数据库服务器,则下载数据库组件升级包即可(我测试通过)。
下载后解包到指定文件夹。在这里,我犯了一个很低级的错误,因为解包后,弹出提示“已经成功传递该包”,我还以为升级成功了呢,谁知道还是不能访问,我就想是否还有其它的补丁没有下载,又一气下载了好多补丁,可还是不行,最后我想看看SP3中到底有些什么东西,没想到里面居然有“setup.bat”,真是使我哭笑不行,我只好乖乖的执行它,升级完以后,什么问题也没有了,在Windows 2000 下开发的JSP又可以使用了。
在这里,建议无论什么平台下的SQL Server 2000都升级到最新版本,可以提高安全性,避免不兼容问题的发生。
这个问题给我的最大感受就是:微软的东西得天天升级,密切注意微软主页的动态,而且他的系统每升级一次,其它的都得升级,要不就“不安全”或“不兼容”。
给我的启发是:这样确实可以提高网站访问量,我想我是否也开发一个软件,大家都用,然后天天升级,还是别的宣传么?我的主页是“http://javalet.com”建站两年半了,由于时间关系,一直没做完,等待以后慢慢完善吧。