32位2008 ora-12518 监听无法分发。

本文档提供了解决Oracle数据库连接错误ORA-12518的方法,包括调整参数、增加内存分配及配置MTS等方案,并探讨了可能的原因如资源不足或内存限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


ORA-12518 / TNS-12518 Troubleshooting [ID 556428.1]

 修改时间 30-MAR-2012     类型 PROBLEM     状态 MODERATED 

In this Document
  Symptoms
  Changes
  Cause
  Solution
  References


This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.

Applies to:

Oracle Net Services - Version: 10.2.0.1 to 11.2.0.0 - Release: 10.2 to 11.2
Information in this document applies to any platform.
***Checked for relevance on 20-Sep-2011***

Symptoms

Connexion fails with the error : TNS-12518: TNS:listener could not hand off client connection

One of the following errors could also appears :

ORA-12547 / TNS-12547: lost contact
ORA-12537 / TNS-12537: connection closed
ORA-3135   / TNS-3135  : connection lost contact
ORA-3113   / TNS-3113  : end-of-file on communication channel
ORA-3106   / TNS-3106  : fatal two-task communication protocol error
ORA -3136 / TNS-3136   : WARNING inbound connection timed out
ORA-12535 / TNS-12535: TNS:operation timed out
ORA-12170 / TNS-12170: Connect timeout occurred
ORA-12637 / TNS-12637: Text: Packet receive failed

Changes

memory consumption and/or high load

Cause

In general ORA-12518 occurs if there is a resource problem , may be on the listener side or on the Database server.

It indicates a condition where the process is not able to make any more memory allocations either due to non-availability of resource or the process has reached the 32 bit (VM Size) limit

Solution

1- Timer issues causing abnormal threads :
Set the parameters SQLNET.INBOUND_CONNECT_TIMEOUT and INBOUND_CONNECT_TIMEOUT_listenername to 0 (indefinite) or to an approprate value for the application.
From Oracle base version 10.2.0.1 onwards the default value of INBOUND_CONNECT_TIMEOUT_<listenername> is 60 seconds. For previous releases it is zero by default.

a) Please add following parameter in listener.ora
INBOUND_CONNECT_TIMEOUT_<listener_name> = 0

For example, if the listener name is listenerTest, then:
INBOUND_CONNECT_TIMEOUT_listenerTest = 0

AND

b) Add the following parameter to the sqlnet.ora file on the Database server
side:
SQLNET.INBOUND_CONNECT_TIMEOUT = 0

The listener and database will need to be restarted after these changes.

These parameters are set on the SERVER side:
listener.ora: INBOUND_CONNECT_TIMEOUT_listenername
sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT

Note: This timeout restriction was introduced to combat Denial of Service (DoS) attack whereby malicious clients attempt to flood database servers with connect requests that consumes resources.

Fore more info/setting on inbound connection time out, check the following note :
Note 465043.1 - Troubleshooting ORA - 3136 WARNING Inbound Connection Timed Out

2 - Lack of available memory :
Increase memory and swap in the system

3 - Less of processes in the database,:
Increase processes parameter if using dedicated connexion (init.ora / spfile file)
In unix, adjust resource limits to increase the number of max processes allowed.

4 - Set /3GB option :
Switch in the BOOT.INI file to enable the 4GB feature.
This allows a process to address 3GB and reserving 1GB for the kernel.


5- Tune SGA / shared_pool_size :
Reduce the SGA size to a reasonable figure which allows the user process to have enough memory to run.
Decrease the size of the database SGA by reducing the PGA_AGGREGATE_TARGET or SGA_MAX_SIZE or both.
The amount of memory for a session depends upon PGA_AGGREGATE_TARGET.
If PGA_AGGREGATE_TARGET is set to a very small value ,Oracle session may exceed this value.

6 - Set or Tune MTS :
Configure MTS or increase the number of DISPATCHERS (if Shared Server is being used).

7- If the listener crash with a core dump and the ora-12518 appears in the log, then you are probably hitting Bug 6139856 due to heavy load or out of memory.

For more detail and solutions, see :

Note 549932.1 - TNS Listener Crash with Core dump



根据如上的描述,可能是pae 未打开。


http://msdn.microsoft.com/en-us/library/aa366796%28VS.85%29.aspx

bcdedit /enum {default}

执行如上命令查看 pae的状态

尝试

bcdedit /set [{ID}] pae ForceEnable

bcdeit /set pae ForceEnable



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值