cancel
Showing results for 
Search instead for 
Did you mean: 

Listener parameter file path problem

Former Member
0 Kudos

Hi,

I have 2 SAP instances running on same host. Logically I have 2 diferent oracle_homes and 2 diferent listeners in diferents ports.

I start first listener, log off and log in with second user (obviously env variables oracle_home and oracle_sid are differents), and when I try to start the second listener with command lsnrctl start it shows this message:

G:oracleCRQ102BIN>lsnrctl start

LSNRCTL for 64-bit Windows: Version 10.2.0.4.0 - Production on 08-JUL-2010 17:33

:50

Copyright (c) 1991, 2007, Oracle. All rights reserved.

Starting tnslsnr: please wait...

TNSLSNR for 64-bit Windows: Version 10.2.0.4.0 - Production

System parameter file is G:oracleCRD102

etworkadminlistener.ora

Log messages written to G:oracleCRD102

etworkloglistener.log

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=

.pipeCRD.WORLDip

c)))

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=

.pipeCRDipc)))

Error listening on: (ADDRESS=(COMMUNITY=SAP.WORLD)(PROTOCOL=TCP)(HOST=ACDCPDQCRM

101)(PORT=1527))

TNS-12542: TNS:address already in use

TNS-12560: TNS:protocol adapter error

TNS-00512: Address already in use

64-bit Windows Error: 48: Unknown error

Listener failed to start. See the error message(s) above...

The error is clear.The program doesn´t read correctly my ora_home and try to start the listener with the listener.ora of the first listener.

My question is, how can I force lsnrctl to start with the correct listener.ora? Is there any special command or env_variable or config other than oracle_home? And why lsnrctl does not read correctly the default parameter file path?

Thanks & regards.

Pablo.

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi,

The listener port should be distinct for each instance. You cannot have the same listener port for more than one instance running on the same host.

Try to configure the listener for the second instance with different port and then try to start both the listeners. This time you will be able to start both te listeners at the same time.

Also make sure that the system variables doesn't point any of the oracle home/path. If it is so remove those parameters and then set the parameters in the user variable.

Regards,

Varadharajan M

lbreddemann
Active Contributor
0 Kudos

> The listener port should be distinct for each instance. You cannot have the same listener port for more than one instance running on the same host.

Sorry. but why do you believe this?

One single listener can easily serve multiple database instances on one host.

> Try to configure the listener for the second instance with different port and then try to start both the listeners. This time you will be able to start both te listeners at the same time.

Sure, but this wasn't the problem here at all.

> Also make sure that the system variables doesn't point any of the oracle home/path. If it is so remove those parameters and then set the parameters in the user variable.

And that's what I already pointed to...

Former Member
0 Kudos

>

> > The listener port should be distinct for each instance. You cannot have the same listener port for more than one instance running on the same host.

>

> Sorry. but why do you believe this?

> One single listener can easily serve multiple database instances on one host.

>

True, but 2 listeners can not run on one port. So if you want to run 2 listeners you need to run them on two different ports. Change the listener.ora with different port.

And if you want a single listener to serve multiple instances you modify listener.ora to include all the SID's like this.

SID_LIST_LISTENER_DEV

(SID_LIST =

(SID_DESC =

(SID_NAME = DEV)

(ORACLE_HOME = /oracle/DEV/102_64)

Former Member
0 Kudos

Hi ,

we are using 3 instance on 1 server and one listener is control the 3 server .

For example :

ADMIN_RESTRICTIONS_LISTENER = on

LISTENER =

(ADDRESS_LIST =

(ADDRESS =

(PROTOCOL = IPC)

(KEY = DEV.WORLD)

)

(ADDRESS=

(PROTOCOL = IPC)

(KEY = DEV)

)

(ADDRESS =

(PROTOCOL = IPC)

(KEY = QAS.WORLD)

)

(ADDRESS=

(PROTOCOL = IPC)

(KEY = QAS)

)

(ADDRESS =

(PROTOCOL = IPC)

(KEY = BIW.WORLD)

)

(ADDRESS=

(PROTOCOL = IPC)

(KEY = BIW)

)

(ADDRESS =

(COMMUNITY = SAP.WORLD)

(PROTOCOL = TCP)

(HOST = SAPSERVERS)

(PORT = 1527)

)

)

STARTUP_WAIT_TIME_LISTENER = 0

CONNECT_TIMEOUT_LISTENER = 10

TRACE_LEVEL_LISTENER = OFF

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SDU = 32768)

(SID_NAME = DEV)

(ORACLE_HOME = /oracle/DEV/102_64)

(PRESPAWN_MAX = 10)

)

(SID_DESC =

(SDU = 32768)

(SID_NAME = QAS)

(ORACLE_HOME = /oracle/QAS/102_64)

(PRESPAWN_MAX = 10)

)

(SID_DESC =

(SDU = 32768)

(SID_NAME = BIW)

(ORACLE_HOME = /oracle/BIW/102_64)

(PRESPAWN_MAX = 10)

)

)

====

DEV ---> Development server.

QAS -


> QA Server .

BIW -


> BIW Server.

HOST name : SAPSERVERS.

Start and stop wil be controlled by DEV server.

su - oradev

lsnrctl start and

lsnrctl start.

As per your wish , u can configure.

Regards

Former Member
0 Kudos

Hi ,

u have to maintain the above configuration on the both the servers.

Regards

volker_borowski2
Active Contributor
0 Kudos

Hi,

I think this is a Windows special. It has to do with the LISTENER name.

In windows, when using two Listeners it is possible to have the same

NAME for both listeners (!). This might be why the commandline tool does not

work. If you have the same on Unix, you need to specify diffrent Listener names

like LISTENER_DEV and LISTENER_QAS and need to specify them in lsnrctl

lsnrctl start LISTENER_DEV

in case you do not, LISTENER is the default name, and if any shared memory exists,

I think it is reading from there, no matter what environment is set.

I only tried once to use diffrent Listener names in Windows, but somehow

I did not manage to get this setup to work an I was in a hurry, so I never found out.

Seems to be dark november evening puzzle stuff

So instead of using lsnrctl, use

"net start ...WindowsServiceNameOfListener..."

has the charme, that you do not need to set any environment.

Works perfectly well.

Volker

Former Member
0 Kudos

Hi Pablo,

take a look at "STEPS AFTER INSTALLING THE NEW INSTANCE" of SAP note 98252. It's an oldie but still very very helpful.

Regards,

Constantina

lbreddemann
Active Contributor
0 Kudos

Hi,

I have 2 SAP instances running on same host. Logically I have 2 diferent oracle_homes and 2 diferent listeners in diferents ports.

I start first listener, log off and log in with second user (obviously env variables oracle_home and oracle_sid are differents), and when I try to start the second listener with command lsnrctl start it shows this message:

G:oracleCRQ102BIN>lsnrctl start

LSNRCTL for 64-bit Windows: Version 10.2.0.4.0 - Production on 08-JUL-2010 17:33

:50

Copyright (c) 1991, 2007, Oracle. All rights reserved.

Starting tnslsnr: please wait...

TNSLSNR for 64-bit Windows: Version 10.2.0.4.0 - Production

System parameter file is G:oracleCRD102

etworkadminlistener.ora

Log messages written to G:oracleCRD102

etworkloglistener.log

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=

.pipeCRD.WORLDip

c)))

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=

.pipeCRDipc)))

Error listening on: (ADDRESS=(COMMUNITY=SAP.WORLD)(PROTOCOL=TCP)(HOST=ACDCPDQCRM

101)(PORT=1527))

TNS-12542: TNS:address already in use

TNS-12560: TNS:protocol adapter error

TNS-00512: Address already in use

64-bit Windows Error: 48: Unknown error

Listener failed to start. See the error message(s) above...

The error is clear.The program doesn´t read correctly my ora_home and try to start the listener with the listener.ora of the first listener.

My question is, how can I force lsnrctl to start with the correct listener.ora? Is there any special command or env_variable or config other than oracle_home? And why lsnrctl does not read correctly the default parameter file path?

Hi there.

First of all there's no need to have two listeners running on that machine - one would perfectly serve both databases.

That's especially true, when you have the QA and the Development instance on one server (which is the case here as I assume).

Anyhow, the reason for the CRQ Listener taking the configuration path of CRD Home is likely that you set the environment variable TNS_ADMIN (maybe even on SYSTEM VARIABLE level).

You can of course force the usage of a specific listener config file (just check the SQLNET docu for that) but I think it'll be easier to just set the environents parameters correclty.

regards,

Lars