使用共享内存和 jtds 驱动程序连接到 SQL 服务器

Connecting to SQL Server using shared memory and jtds driver

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

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

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

我尝试启用 TCP/IP 协议,如本 link Enabling TCP/IP Through the Server Network Utility 的解决方法部分所述。 SQL 即使在重新启动服务器后,服务器也没有开始侦听 TCP/IP。

要解决这个问题,要么我必须让 SQL 服务器监听 TCP/IP 端口,要么我需要更改我的代码以在服务器未监听 [=58] 时使用共享内存进行连接=]端口。

我正在尝试使用共享内存连接到服务器,如本页所述Creating a Valid Connection String Using Shared Memory Protocol

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

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

我也试过连接字符串:

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

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

如果我能找到其中一个问题的解决方案就太好了

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

提前致谢, 贾扬斯

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

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