on 07-08-2010 5:03 PM
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
> 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...
>
> > 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)
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
84 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.