PROBLEM:
While starting the listener, getting an error like TNS-12542: TNS:address already in use
# lsnrctl start LISTENER_TEST2
LSNRCTL for Solaris: Version 12.1.0.2.0 - Production on 03-SEP-2018 11:06:57
Copyright (c) 1991, 2017, Oracle. All rights reserved.
Starting /oracle/app/oracle/product/12.1.0.2/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Solaris: Version 12.1.0.2.0 - Production
System parameter file is /oracle/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora
Log messages written to /oracle/app/oracle/diag/tnslsnr/exatree-host/listener_test2/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=exatree-host)(PORT=1524)))
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=exatree-host)(PORT=1524)))
TNS-12542: TNS:address already in use ---- >>>
TNS-12560: TNS:protocol adapter error
TNS-00512: Address already in use
Solaris Error: 125: Address already in use
Listener failed to start. See the error message(s) above...
SOLUTION:
To find out the issue, Let-s check the content of the listener in listener.ora file.
LISTENER_TEST2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = exatree-host)(PORT = 1524)) --- >>>
(ADDRESS = (PROTOCOL = TCP)(HOST = exatree-host)(PORT = 1524)) --- >>>
)
)
SID_LIST_LISTENER_TEST2 =
(SID_LIST =
(SID_DESC =
(SID_NAME = BSSLYDEV)
(ORACLE_HOME = /oracle/app/oracle/product/12.1.0.2/dbhome_1)
)
)
Inside the listener entry, we have 2 ADDRESS entries with same host and same port number(1524) . So starting the listener is failing with conflict.
(ADDRESS = (PROTOCOL = TCP)(HOST = exatree-host)(PORT = 1524))
(ADDRESS = (PROTOCOL = TCP)(HOST = exatree-host)(PORT = 1524))
To fix the issue, give different ports for both the ADDRESS entries.
the listener will look as below:( 1524 and 1525)
LISTENER_TEST2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = exatree-host)(PORT = 1524))
(ADDRESS = (PROTOCOL = TCP)(HOST = exatree-host)(PORT = 1525))
)
)
SID_LIST_LISTENER_TEST2 =
(SID_LIST =
(SID_DESC =
(SID_NAME = BSSLYDEV)
(ORACLE_HOME = /oracle/app/oracle/product/12.1.0.2/dbhome_1)
)
)
Now start the listener.
# lsnrctl start LISTENER_TEST2
LSNRCTL for Solaris: Version 12.1.0.2.0 - Production on 03-SEP-2018 11:08:09
Copyright (c) 1991, 2017, Oracle. All rights reserved.
Starting /oracle/app/oracle/product/12.1.0.2/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Solaris: Version 12.1.0.2.0 - Production
System parameter file is /oracle/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora
Log messages written to /oracle/app/oracle/diag/tnslsnr/exatree-host/listener_test2/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=exatree-host)(PORT=1524)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=exatree-host)(PORT=1525)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=exatree-host)(PORT=1524)))
STATUS of the LISTENER
------------------------
Alias LISTENER_TEST2
Version TNSLSNR for Solaris: Version 12.1.0.2.0 - Production
Start Date 03-SEP-2018 11:08:09
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /oracle/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora
Listener Log File /oracle/app/oracle/diag/tnslsnr/exatree-host/listener_test2/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=exatree-host)(PORT=1524)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=exatree-host)(PORT=1525)))
Services Summary...
Service "BSSLYDEV" has 1 instance(s).
Instance "BSSLYDEV", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
Listener started successfully.
Listener started successfully and listening on both 1524 and 1525 port. So in simple words, port should be unique for each ADDRESS entry of the listener.
LISTENER TROUBLESHOOTING