首页 > 数据库 > Oracle > ora-3136 client认证失败
查看alert日志中出现如下警告:
Fri Aug 3 14:46:26 2012
WARNING: inbound
connection timed out (ORA-3136)
Fri Aug 3 14:46:26 2012
WARNING: inbound
connection timed out (ORA-3136)
oracle@server135
~]$ oerr ora 3136
03136, 00000,
"inbound connection timed out"
// *Cause: Inbound connection was timed out by the
server because
// user authentication was not completed
within the given time
// specified by
SQLNET.INBOUND_CONNECT_TIMEOUT or its default value
// *Action: 1)
Check SQL*NET and RDBMS log for trace of suspicious connections.
// 2) Configure SQL*NET with a proper
inbound connect timeout value
// if necessary.
根据提示来看应该是连接超时导致的,查看sqlnet.log日志文件出现了ora-12170
Fatal NI connect
error 12170.
VERSION INFORMATION:
TNS for Linux: Version 10.2.0.1.0 -
Production
Oracle Bequeath NT Protocol Adapter for
Linux: Version 10.2.0.1.0 - Production
TCP/IP NT Protocol Adapter for Linux:
Version 10.2.0.1.0 - Production
Time: 03-JUN-2011 13:01:21
Tracing not turned on.
Tns error struct:
ns main err code: 12535
TNS-12535: TNS:operation timed out
ns secondary err code: 12560
nt main err code: 505
TNS-00505: Operation timed out
nt secondary err code: 110
nt OS err code: 0
Client address:
(ADDRESS=(PROTOCOL=tcp)(HOST=10.10.10.4)(PORT=60442))
Client address:
(ADDRESS=(PROTOCOL=tcp)(HOST=10.10.10.4)(PORT=60445))
Client address:
(ADDRESS=(PROTOCOL=tcp)(HOST=10.10.10.4)(PORT=60414))
Client address:
(ADDRESS=(PROTOCOL=tcp)(HOST=10.10.10.4)(PORT=60437))
Client address:
(ADDRESS=(PROTOCOL=tcp)(HOST=10.10.10.4)(PORT=56520))
Client address:
(ADDRESS=(PROTOCOL=tcp)(HOST=10.10.10.4)(PORT=60415))
Client address:
(ADDRESS=(PROTOCOL=tcp)(HOST=10.10.10.4)(PORT=60438))
[oracle@server135
~]$ oerr ora 12170
12170, 00000,
"TNS:Connect timeout occurred"
// *Cause: The server shut down because connection
establishment or
// communication
with a client failed to complete within the allotted time
// interval. This
may be a result of network or system delays; or this may
// indicate that a
malicious client is trying to cause a Denial of Service
// attack on the
server.
// *Action: If the
error occurred because of a slow network or system,
// reconfigure one
or all of the parameters SQLNET.INBOUND_CONNECT_TIMEOUT,
//
SQLNET.SEND_TIMEOUT, SQLNET.RECV_TIMEOUT in sqlnet.ora to larger values.
// If a malicious
client is suspected, use the address in sqlnet.log to
// identify the
source and restrict access. Note that logged addresses may
// not be reliable
as they can be forged (e.g. in TCP/IP).
根据网友提供的metalink信息描述:
The "WARNING:
inbound connection timed out (ORA-3136)" in the alert log indicates that
the client was not able to complete it's authentication within the period of
time specified by parameter SQLNET.INBOUND_CONNECT_TIMEOUT.
You may also witness ORA-12170 without timeout error on
the database server sqlnet.log file.
This entry would also have the clinet address which failed to get
authenticated. Some applications or JDBC thin driver applications may not have
these details.
也就是客户端认证超时导致的连接报错。这个错误跟oracle监听的一个参数有关:SQLNET.INBOUND_CONNECT_TIMEOUT参数从9I引入,指定客户端连接服务器并且提供认证信息的超时时间,如果超过这个时间客户端还没有提供正确的认证信息,服务器会自动中止连接请求,同时记录视图连接的IP和ora-12170.
给出的解决方案是:
1 设置listener.ora中的set
INBOUND_CONNECT_TIMEOUT=0
2 set sqlnet.INBOUND_CONNECT_TIMEOUT=0服务器端修改sqlnet.ora文件
3 重新reload
listener和database
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25362835/viewspace-1059082/ ,如需转载,请注明出处,否则将追究法律责任。