积木首页 - 学院 - 软件测试 - 技术百科 - 问答 - 黄页 - 手册 - 站长工具 - 社区
登录 | 注册
    
群组 >> MSSQL应用

MSSQL应用

共有1339位成员   人气指数 -   最新排名 -

【话题】服务器本机telnet localhost所有端口失败,但是其他机器telnet 服务器 就成功??

2009-07-20 00:36:45 来自:andy99375 浏览数:11
请各位高手指点
这个问题已经把我要折磨死了!

服务器环境:

Windows 2000 server。Sql server 2000;tomcat 6.0;java应用程序,jdbc连接数据库;

使用snappool.jar 的连接器,和hibernate 3.0的连接池连接的数据库;

DatabaseProfile {

SQLServer {

driverClass = com.microsoft.jdbc.sqlserver.SQLServerDriver

dbUrl = jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=phoenixhr

dbUser = sa

dbPass = sa

connectionPoolSize= 10

statementPoolSize= 100

idleTimeout= 30

shrinkInterval= 30

}

问题描述:

系统运行了一段时间之后,突然一天数据库连接不上,开始是snappool连接不上,错误为:

[com.dao.user.LoginDAO]-[DEBUG] executeQuery: select t.usertype as usertype from hr_user t where t.loginname = 'lvmingyu1997@163.com' and t.password = 'lvmingyu1997' and isvalid ='1' 2009-06-27 17:05:26,406 [com.dao.user.LoginDAO]-[ERROR] 数据库错误 java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]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.(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 net.snapbug.util.dbtool.ConnectionPool.O000oooOo0OoooooOO00O(ConnectionPool.java) at net.snapbug.util.dbtool.ConnectionPool.createStatement(ConnectionPool.java) at com.hr.database.DatabaseManager.executeQuery(DatabaseManager.java:64) at com.dao.util.GeneralDAO.getIntValue(GeneralDAO.java:28) at com.dao.user.LoginDAO.getUserInfo(LoginDAO.java:24) at com.action.user.LoginAction.execute(LoginAction.java:57) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.util.LoginFilter.doFilter(LoginFilter.java:91) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) at java.lang.Thread.run(Unknown Source) 2009-06-27 17:05:26,406



但是此时hibernate能连的上,估计可能是连接池建立的常连接的原因;



此时我在服务器上本地运行 telnet localhost 1433 ,结果失败;telnet不上去;但是问题就在于,我在另外一台机器上,telnet服务器,结果就能成功。

疑惑1:为什么本地telnet localhost 1433失败,然后其他机器就能telnet上去呢???或者服务器禁用掉了telnet?



后来无奈之下,重启了服务器;结果应用正常运行了四天,四天后数据库又连不上了。现象同上;

但是此时我在自己的本子上连接服务器数据库一切正常;而且也能telnet上去;


经过测试,发现telnet localhost 其他端口一样不行。比如80 ;9999,这些都是端口都是在监听的。而且使用:
http://localhost:9999/phhr/admin访问自己建立的服务,结果是:网页无法打开;

 
fly551706回复于20日02点50分 
有以下可能
网络曾经断过(不管是物理的还是因为网络负载压力过大),甚至是瞬断也不行.都会造成rpc服务出错,对localhost解析失败

尽量使用ip或者name连接 避免使用localhost或者127.0.0.1的连接
 
爱在北京回复于20日03点00分 
友情帮顶.
MSSQL应用的其他话题...

网址导航成语大全积木 TinyMCE 服务邮箱: Gimoohr(#)gmail.com
Copyright © 2008 Gimoo.Net  京ICP备05050695号