关于客户端报的ORA-12542


      最近用户一个小应用系统总是出故障,windows的系统上跑一个VB写的小客户端程序,出现问题的时候,系统会弹出以下信息:
      [Microsoft] [ODBC driver for oracle] ORA-12542:TNS:address already in use

      查询了oracle的错误代码: oerr ora 12542
      12542,00000,"TNS:address already in use"
       // *Cause: Speified listener address is already being used.
       // *Action: Start your listener with a unique address.

       这个显然是不能说明问题的,这个应该是针对服务器启动listener时的报错的解释

        由于无权查看服务器,只好到metalink上查了一下,看看大家都是什么情况下碰到的,还好查到了一个文章,很适合用来解释我们的这个问题

        Cause
        Problem is caused due to the fact that the free ports in the windows client has been exhausted and it is trying to make use of a port which is in TIME_WAIT state which gives the error TNS-12542: Address already in use.
        Solution
        There are 2 solutions available:
        1.) Increase the free port range:
              ======================
              Start Registry Editor (Regedt32.exe).
               Locate the following key in the registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

        On the Edit menu, click Add Value, and then add the following registry value:
        Value Name: MaxUserPort Data Type: REG_DWORD Value: 65534
        Valid Range: 5000-65534 (decimal) Default: 0x1388 (5000 decimal)

        Description: This parameter controls the maximum port number used when an application requests any  available user port from the system. Normally, ephemeral (that is, short-lived) ports are allocated between the values of 1024 and 5000 inclusive.

        2.) Decrease the value for TIME_WAIT state:
        ================================
       TcpTimedWaitDelay (new in Windows NT versions 3.51 SP5 and later)
       Key: Tcpip\Parameters
       Value Type: REG_DWORD - Time in seconds
       Valid Range: 30-300 (decimal)
       Default: 0xF0 (240 decimal)

       Description: This parameter determines the length of time that a connection will stay in the TIME_WAIT state when being closed. While a connection is in the TIME_WAIT state, the socket pair cannot be re- used. This is also known as the "2MSL" state, as by RFC the value should be twice the maximum segment lifetime on the network. See RFC793 for further details.


        方法提交给了开发人员,看看情况

       下午去看了一下机器,发现大量 time_wait的连接,查了一下listener的日志,应用程序大量开连接,关闭不及时

        看来本次的诊断是对症的,修改的注册表,看看情况

        ps:俩天了,系统还没出过问题,看来对症了

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/3326/viewspace-607363/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/3326/viewspace-607363/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值