关于连接sqlserver的奇怪问题
我是用hibernate+tomcat数据池JNDI绑定连接sqlserver,程序在一台机子上,数据库在另一台机子上,配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context
docBase="D:/myWorkSpace/ever/WebRoot"
privileged="true"
reloadable="true">
<Resource
name="ever"
type="javax.sql.DataSource"
password=""
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
url="jdbc:microsoft:sqlserver://eg_dbase:1433;DatabaseName=test"
maxActive="4"/>
</Context>
hibernate中的配置文件就不说了,没问题的,但这样报错:
org.hibernate.exception.GenericJDBCException: Cannot open connection
一开始我怀疑是配置出问题,就没用tomcat的自带数据池,直接用hibernate的jdbc连接数据库,还是出一样的问题。
我再改成程序中直接连数据库:
String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
// 创建指定数据库的URL
String url = "jdbc:microsoft:sqlserver://eg_dbase:1433;DatabaseName=test";
// 提供用户名和密码
String user="sa";
String password="";
Connection con;
try {
// 加载驱动程序
Class.forName(driver);
// 创建连接
con = DriverManager.getConnection(url, user, password);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from edept");
rs.close();
con.close();
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
} catch (SQLException e) {
System.out.println(e.getMessage());
}
这样还是出问题:[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
我上面几种方法去连另一台机子的sqlserver就没问题了,所以我在想是不是这台机子的sqlserver或网络配置有什么问题。
请各位高手指点一下。