j2se程序。
具体如下:
网络环境:内网千兆 A(本机) B(远程) 同在局域网
都装了相同数据库 SQL2005.
写个了test main类,测试从获取conn,到查询数据库,关闭conn连接的时差。
myEclipse下运行都无问题。
打成jar包后:
1。程序放在本机(A),连接本机数据库(A),无问题,整个过程耗时1秒左右
2。程序放在本机(A),连接远程数据库(B),获取conn时耗时20-30秒.
3。程序放在远程(B),连接远程数据库(B),其实是自己连自己了,耗时1秒左右,一切正常。
sqljdbc.jar换了N个都一样。。

解决方案 »

  1.   

    myEclipse下运行都无问题。网络状况都很好。
      

  2.   

    的确奇怪。
    建议在程序中添加打印log,看看到底是哪一步耗时。
      

  3.   

    很正常啊,JDBC 是通过 TCP 协议进行通信的,除了 TCP 的多次握手之外,还需要进行操作认证,如果不在一台服务器上的话,加之再运行 SQL 操作,这种速度是很正常的。解决方案:1:使用数据库连接池,比如 c3p0、proxool
    2:数据库服务器和应用服务器全都放在内网中,使用内网 IP 进行访问;
    3:检查内网的网际速度
      

  4.   

    感觉不可能。再调调,是不是哪没配置好。防火墙或网络也看看 telnet sqlserver端口看看
      

  5.   

    看来只能通过比较MyEclipse和你打包后的环境差异了,看看classpath,调试时的URL,参数什么的是否都是一样的?
      

  6.   


    继续接着昨天的问题说。 有点要阐明,在myEclipse下运行程序,连接远程数据库并不慢。也就是说仅仅是打包之后的程序出现这怪异问题。是不是myEclipse下有连接池机制还是什么的。我把打包好的数据库放另外一台机器上连自己,一样很快。到了这一步,实在无语。
    最后用ODBC方式解决,不知道还会有什么问题。再就是连接池方式我也想过,但只在WEB应用下用过连接池。还请有连接池代码的给一个。谢谢。[email protected]