问题如下:
    1.环境为:Windows 2003下的程序连接Unix下的Oracle 9i数据库(IBM unix服务器/ORACLE数据库).
    2.出现的现象为:
      数据库连接出现timeout的情况,经检查(使用nestat -na)发现打开的1521端口一直处于  established状态,无法释放.而如果连接另一台windows2000数据库服务器(也是oracle 9i,采用默任安装),启动程序时,同样数量1521端口的连接状态也是established,但很快变成wait_time状态,并一会儿就消失了,所以不会出现连接问题.
    3.请教各位高手,该如何解决,因为我们的正式数据库是在第一个环境下的,请不啬赐教,不胜感激!!!

解决方案 »

  1.   

    在Windows系统下使用客户端连接上数据库,修改数据库的监听位置,一般为主机名称,修改为IP地址。重试一下。
      

  2.   

    使用nestat -na出现1521端口一直处于  established状态是正常的,这是因为unix和windows的listener的处理有些不同。
    在unix下listener收到客户端的请求连接后,spawn一个服务器进程,服务器进程继承客户端与listener的连接,因此在客户端上是仍然看到连接服务器的1521端口始终是established。
    而windows的缺省配置下,服务器线程被创建后会通知listener一个新的端口,listener把此端口再通知给客户端,然后客户端断开与listener的连接(1521),用新端口与服务器线程连接。所以客户端1521端口的连接很快变成wait_time。
      

  3.   

    处理方法:在windows下打开E:\oracle\ora92\network\ADMIN(你ORACLE安装的目录)再打开sqlnet.ora文件
    把NAMES.DEFAULT_DOMAIN = china.huawei.com和SQLNET.AUTHENTICATION_SERVICES= (NTS)注释掉。
      

  4.   

    NAMES.DEFAULT_DOMAIN = china.huawei.comhuawei比较牛
      

  5.   

    UNIX???你用的是AIX吧,听起来真别扭。我用过,但是没出现过这样的问题,关注一下
      

  6.   

    有时WINDOWS的域可能有影响,在sqlnet.ora中注释#NAMES.DEFAULT_DOMAIN看看