WINDOWS: Listener Hangs & Lsnrctl Commands Are Slow or Hang (文档 ID 1319797.1) 转到底部转到底部
In this Document
Symptoms
Changes
Cause
Solution
References
APPLIES TO:
Oracle Net Services - Version 11.1.0.7 to 11.2.0.4 [Release 11.1 to 11.2]
Microsoft Windows x64 (64-bit)
Microsoft Windows (32-bit)
This issue is limited to the Windows OS.
***Checked for relevance on 14-OCT-2013***
SYMPTOMS
The listener is hung or is extremely slow to respond.
Tnspings to the listener take a very long time (seconds) to respond or the ping hangs completely.
Lsnrctl utility commands are either hanging or slow to respond.
ADR Diagnostics are enabled in this environment and the flat file TNSListener log file is at or approaching the size of 4 gigabytes.
Check this location: $ORACLE_BASE\diag\tnslsnr\<hostname>\listener\trace\
The listener.log might contain messages similar to the following DBGRL error being repeated throughout:
DBGRL Error: SLERC_OERC, 48180
Also, on Windows 32-bit, you may find the following errors reported when attempting to check services or connect through the listener:
TNS-12571: TNS:packet writer failure
TNS-12560: TNS:protocol adapter error
TNS-00530: Protocol adapter error
32-bit Windows Error: 54: Unknown error
The lsnrctl utility might return the following error stack when checking the status of the listener:
LSNRCTL> status listener
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
64-bit Windows Error: 54: Unknown error
Or the lsnrctl status command might hang altogether. i.e. Returns no response.
CHANGES
No recent changes have taken place on this server. It is likely that this installation has been in place for some time as the listener.log has grown to at or near 4G in size. It is also likely that ADR diagnostic for the listener is enabled on this server. i.e. No DIAG_ADR_<listener_name>=OFF in listener.ora.
CAUSE
The listener.log has reached the file size limit (on Windows) of 4G. This issue is described in published bug:
Bug:9879101 THE CONNECT THROUGH LISTENER WAS SLOW WHEN LISTENER LOG GREW to 4GB
SOLUTION
You can solve this problem by deleting the large listener in $ORACLE_BASE\diag\tnslsnr\<hostname>\listener\trace\<listener_name>.log
1) Stop the listener process using the command line or Control Panel Service.
2) Delete the log file(s) that are at or approaching the 4G size limit at this location:
$ORACLE_BASE\diag\tnslsnr\<hostname>\listener\trace\<listener_name>.log
3) Issue any lsnrctl command and you will see a new listener.log in its place under:
$ORACLE_BASE\diag\tnslsnr\<hostname>\listener\trace\
Since ADR Diagnostics are enabled for this listener these steps cannot be done dynamically using the lsnrctl utility.
e.g.
LSNRCTL>set log_file mylog
Will yield: TNS-01251: Cannot set trace/log directory under ADR.
However, it is possible to disable the flat file listener logging using the following commands:
LSNRCTL>set current_listener <listener_name>
LSNRCTL>set log_status OFF
LSNRCTL>save_config
This will prevent this issue from arising in the future. This also stop the ADR logging
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




