(i) Parameter description:
(1). Rate_limit parameters are introduced from the 9.2.0.8 and can be used to control connection storms. Rate_limit is followed by the number of parameters are allowed per second, after the configuration is completed, the need for Stop/start listener effective. As follows:
LISTENER =
(Description_list =
(DESCRIPTION =
(address = (PROTOCOL = TCP) (HOST = host.sample.com) (PORT = 1521) (rate_limit=5))
)
(DESCRIPTION =
(address = (PROTOCOL = TCP) (HOST = host.sample.com) (PORT = 1522))
)
)
The above configuration indicates that 1521 ports allow only 5 connections per second, while 1522 ports are unrestricted.
After configuration, in Listener.log, if there are more than the set number of connections, the error tns-1158:
At 11:42:24 this time, you can see up to 5 connections, beyond the error tns-1158.
15-may-2010 11:42:24 * Establish * 1158
Tns-01158:internal connection limit reached, preventing dispatcher from connecting
15-may-2010 11:42:24 * (Connect_data= (server=dedicated) (SERVICE_NAME=S111W6) (Cid= (Program=sqlplus) (HOST= sample.com) (User=grdbms)) * (Address= (PROTOCOL=TCP) (host=sample.com) (port=60340)) * Establish * S111W6 * 0
15-may-2010 11:42:24 * (Connect_data= (server=dedicated) (SERVICE_NAME=S111W6) (Cid= (Program=sqlplus) (HOST= sample.com) (User=grdbms)) * (Address= (PROTOCOL=TCP) (host=sample.com) (port=60341)) * Establish * S111W6 * 0
15-may-2010 11:42:24 * (Connect_data= (server=dedicated) (SERVICE_NAME=S111W6) (Cid= (Program=sqlplus) (HOST= sample.com) (User=grdbms)) * (Address= (PROTOCOL=TCP) (host=sample.com) (port=60342)) * Establish * S111W6 * 0
15-may-2010 11:42:24 * (Connect_data= (server=dedicated) (SERVICE_NAME=S111W6) (Cid= (Program=sqlplus) (HOST= sample.com) (User=grdbms)) * (Address= (PROTOCOL=TCP) (host=sample.com) (port=60344)) * Establish * S111W6 * 0
15-may-2010 11:42:24 * (Connect_data= (server=dedicated) (SERVICE_NAME=S111W6) (Cid= (Program=sqlplus) (HOST= sample.com) (User=grdbms)) * (Address= (PROTOCOL=TCP) (host=sample.com) (port=60343)) * Establish * S111W6 * 0
15-may-2010 11:42:25 * (Connect_data= (server=dedicated) (SERVICE_NAME=S111W6) (Cid= (Program=sqlplus) (HOST= sample.com) (User=grdbms)) * (Address= (PROTOCOL=TCP) (host=sample.com) (port=60345)) * Establish * S111W6 * 0
15-may-2010 11:42:25 * (Connect_data= (server=dedicated) (SERVICE_NAME=S111W6) (Cid= (Program=sqlplus) (HOST= sample.com) (User=grdbms)) * (Address= (PROTOCOL=TCP) (host=sample.com) (port=60346)) * Establish * S111W6 * 0
15-may-2010 11:42:25 * (Connect_data= (server=dedicated) (SERVICE_NAME=S111W6) (Cid= (Program=sqlplus) (HOST= sample.com) (User=grdbms)) * (Address= (PROTOCOL=TCP) (host=sample.com) (port=60347)) * Establish * S111W6 * 0
15-may-2010 11:42:25 * (Connect_data= (server=dedicated) (SERVICE_NAME=S111W6) (Cid= (Program=sqlplus) (HOST= sample.com) (User=grdbms)) * (Address= (PROTOCOL=TCP) (host=sample.com) (port=60349)) * Establish * S111W6 * 0
15-may-2010 11:42:25 * (Connect_data= (server=dedicated) (SERVICE_NAME=S111W6) (Cid= (Program=sqlplus) (HOST= sample.com) (User=grdbms)) * (Address= (PROTOCOL=TCP) (host=sample.com) (port=60348)) * Establish * S111W6 * 0
(2). In addition to this configuration above, there is another way to configure the Connection_rate_listener
LISTENER =
(Description_list =
(DESCRIPTION =
(address = (PROTOCOL = TCP) (HOST = host.sample.com) (PORT = 1521) (Rate_limit=yes))
)
(DESCRIPTION =
(address = (PROTOCOL = TCP) (HOST = host.sample.com) (PORT = 1522) (Rate_limit=yes))
)
)
connection_rate_listener=10
The above configuration represents 1521 and 1522 ports, all subject to the rate_limit limit, with a maximum number of connections per second of 10.
(ii) Known issues
(1). The Bug 8529537:all NEW connections ARE refused by ORA-12547 after TNS-01158 in LISTENER. LOG
Description: When the maximum value of setting Rate_limit is reached, the error tns-1158, but subsequent new connections cannot be connected.
Affected versions: 11.2.0.1, 11.1.0.7, 10.2.0.4
Fix version: 11.2.0.2, 12.1
(2). Bug 16409926:listener MEMORY leak IF Rate_limit is USED and enforced frequently
Description: After setting up the Rate_limit, the connection takes a long time to establish, tnsping response also takes a long time, restart listener can solve the problem, but soon after the problem recurs.
Affected Version: 11.2
Fix version: 11.2.0.4 and 12.1.0.2, or apply patch 16409926.