【问题标题】:Connecting to SQL Server using shared memory and jtds driver使用共享内存和 jtds 驱动程序连接到 SQL Server
【发布时间】:2015-10-05 07:00:35
【问题描述】:

我有一个使用 jtds 驱动程序连接到 SQL Server 2000 的 java 应用程序。它在 Windows Server 2003 上运行良好。我这里使用的连接字符串如下

con = java.sql.DriverManager.getConnection("jdbc:jtds:sqlserver://127.0.0.1:1433/DBName", info);

现在我试图在 Windows server 2012 上运行相同的应用程序。 但这里的问题是,SQL server 2000 没有监听 TCP 端口 1433,但它正在监听共享内存。因此连接失败。

我尝试启用此链接Enabling TCP/IP Through the Server Network Utility 的解决方法部分中提到的 TCP/IP 协议。 SQL server 重启后也没有开始监听 TCP/IP。

要解决这个问题,我必须让 SQL 服务器监听 TCP/IP 端口,或者如果服务器没有监听 TCP/IP 端口,我需要更改我的代码以使用共享内存进行连接。

我正在尝试使用具有以下连接字符串的共享内存连接到服务器,如本页中提到的Creating a Valid Connection String Using Shared Memory Protocol

con = java.sql.DriverManager.getConnection("jdbc:jtds:sqlserver://localhost\SQLEXPRESS:1433/DBName", info);

这会导致异常 java.sql.SQLException: 未知的服务器主机名 'localhost\SQLEXPRESS'。

我也试过连接字符串:

con = java.sql.DriverManager.getConnection("jdbc:jtds:sqlserver://localhost\SQLEXPRESS/DBName", info);

产生异常: java.sql.SQLException: 未知的服务器主机名 'localhost\SQLEXPRESS'。

如果我能找到任何一个问题的解决方案,那就太好了

  1. 在 Windows server 2012 上为 SQL server 2000 启用 TCP/IP 端口
  2. 在 jtds 驱动程序中使用共享内存协议连接到 SQL Server 2000。

提前致谢, 贾扬特

【问题讨论】:

  • 现在已经过了考虑升级 SQL Server 的时间了。除了 SQL Server 2000 很久以前就停止支持这一事实之外,最后支持它的 Windows 操作系统是 Windows Server 2003,它也已经停止支持。

标签: sql-server-2000 shared-memory windows-server-2012 tcp-ip jtds


【解决方案1】:

我得到了解决这两个问题之一的解决方案 - 在 Windows server 2012 上为 SQL server 2000 启用 TCP/IP 端口。

  1. 在路径“C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn”中启动 SVRNETCN.exe
  2. 从禁用协议列表中选择 TCP/IP 并单击启用
  3. 点击属性按钮,确保 TCP/IP 协议的默认端口设置为 1433

【讨论】:

    猜你喜欢
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多