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/dbaclass-host/listener_test2/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbaclass-host)(PORT=1524)))
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbaclass-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 = dbaclass-host)(PORT = 1524)) --- >>> 
      (ADDRESS = (PROTOCOL = TCP)(HOST = dbaclass-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 = dbaclass-host)(PORT = 1524))
      (ADDRESS = (PROTOCOL = TCP)(HOST = dbaclass-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 = dbaclass-host)(PORT = 1524))
      (ADDRESS = (PROTOCOL = TCP)(HOST = dbaclass-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/dbaclass-host/listener_test2/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbaclass-host)(PORT=1524)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbaclass-host)(PORT=1525)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbaclass-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/dbaclass-host/listener_test2/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbaclass-host)(PORT=1524)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbaclass-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.