Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Can't start lsnrctl

175 views
Skip to first unread message

Can

unread,
Jun 17, 2004, 6:00:12 PM6/17/04
to
Hi,

When I try to start the command line interface of lsnrctl, it says:
"Message 850 not found; No message file for product=network, facility=NL"

It's a Linux (Fedora Core 2) system, and listener control was working as
usual until I added an entry in /etc/ld.so.conf.
I added a /usr/lib/oracle/.... path (not $ORACLE_HOME/lib), because
otherwise apache with php & oracle support wouldn't start. That
/usr/lib/ora... directory has some file copies of the standard
$ORACLE_HOME/lib directory which were created automatically during a php
installation.

Well, now that Apache/PHP starts up, the listener control won't work
anymore.

Any advice would be greatly appreciated.
Thanks in advance,


Can Özdemir


Daniel Morgan

unread,
Jun 18, 2004, 2:15:24 AM6/18/04
to
Can wrote:

Are the environment variables ORACLE_HOME and ORACLE_SID set correctly
in the .profile?

--
Daniel Morgan
http://www.outreach.washington.edu/ext/certificates/oad/oad_crs.asp
http://www.outreach.washington.edu/ext/certificates/aoa/aoa_crs.asp
damo...@x.washington.edu
(replace 'x' with a 'u' to reply)

Can

unread,
Jun 18, 2004, 4:31:59 AM6/18/04
to

"Daniel Morgan" <damo...@x.washington.edu> schrieb im Newsbeitrag
news:1087539344.592663@yasure...

> Can wrote:
>
> > Hi,
> >
> > When I try to start the command line interface of lsnrctl, it says:
> > "Message 850 not found; No message file for product=network,
facility=NL"
> >
> > It's a Linux (Fedora Core 2) system, and listener control was working as
> > usual until I added an entry in /etc/ld.so.conf.
> > I added a /usr/lib/oracle/.... path (not $ORACLE_HOME/lib), because
> > otherwise apache with php & oracle support wouldn't start. That
> > /usr/lib/ora... directory has some file copies of the standard
> > $ORACLE_HOME/lib directory which were created automatically during a php
> > installation.
> >
> > Well, now that Apache/PHP starts up, the listener control won't work
> > anymore.
> >
> > Any advice would be greatly appreciated.
> > Thanks in advance,
> >
> >
> > Can Özdemir
>
> Are the environment variables ORACLE_HOME and ORACLE_SID set correctly
> in the .profile?
>

Yes, the home directory of the linux user being set up for oracle, contains
a .bash_profile file, which has entries for

ORACLE_BASE
ORACLE_HOME
ORACLE_SID
ORACLE_TERM
DISABLE_HUGETLBFS
LD_LIBRARY_PATH
LD_ASSUME_KERNEL


Dusan Bolek

unread,
Jun 18, 2004, 5:05:54 AM6/18/04
to
"Can" <n...@spam.net> wrote in message news:<MvoAc.88802$vP....@news.chello.at>...

Are you sure, you didn't messed up your Oracle enviromnent variables?
Errors like this occur usually when Oracle is not able to find the
placement of error messages.

--
Dusan Bolek
http://www.db-support.com

Email: spa...@seznam.cz
Pls add "Not Guilty" to the subject, otherwise your email will face an
unpleasant end as SPAM.

Can

unread,
Jun 18, 2004, 6:09:05 AM6/18/04
to

"Dusan Bolek" <pages...@usa.net> schrieb im Newsbeitrag
news:1e8276d6.04061...@posting.google.com...

My etc/ld.so.conf looked like this in its original form:

include ld.so.conf.d/*.conf
/usr/lib/mysql
/usr/X11R6/lib

All I did, was adding a path (/usr/lib/oracle/10.1.0.2/client/lib). This
path has been created by a php installation script.
Then I deleted /etc/ld.so.cache and executed ldconfig.

After this step, apache would start (with the warning: [warn] module
php4_module is already loaded, skipping) - before this step it didn't start
at all.

But the lsnrctl utility doesn't work anymore. If I undo my changes (delete
last line in ld.so.conf, delete ld.so.cache and execute ldconfig), lsnrctl
utility is working again. But then apache won't start - "Syntax error on
line 198 of ...../httpd.conf:
Cannot load /usr/lib/httpd/modules/libphp4.so into server:
libclntsh.so.10.1: cannot open shared object file: No such file or
directory"

Alas I don't have deep insight into this ld stuff, but obviously it has
something to do with that...


FM

unread,
Jun 18, 2004, 1:48:41 PM6/18/04
to
Libraries of your listener are in $ORACLE_HOME/lib.
Specifying /usr/lib/oracle/10.1.0.2/client/lib in your ld.so.conf makes
ldconfig generate a ld.so.cache which is read before LD_LIBRARY_PATH.
So you are forcing your listener to work with libraries in
/usr/lib/oracle/10.1.0.2/client/lib instead of the ones in $ORACLE_HOME/lib.

A solution could be to have two different users, one which starts the
listnere and the other for apache. In this case keep ld.so.config
without the line you added and have two different LD_LIBRARY_PATH for user.

Another way is to modify listener.ora adding something like:

(ENVS="LD_LIBRARY_PATH=/u01/app/oracle/product/9.2/lib:/u01/app/oracle/product/9.2/ctx/lib"))

but in this case you could have problems with others oracle binaries who
have been compiled dynamically.
(By the way: what's the PATH for your oracle user? Which bynary are you
using as lsnrctl? Try with the command "which lsnrctl").

Hopying it will help you

Fabrizio Magni

--

Fabrizio Magni

fabrizi...@mycontinent.com

replace mycontinent with europe

Can

unread,
Jun 18, 2004, 2:33:23 PM6/18/04
to

"FM" <fabrizi...@mycontinent.com> schrieb im Newsbeitrag
news:ZVFAc.493326$rM4.20...@news4.tin.it...

> Libraries of your listener are in $ORACLE_HOME/lib.
> Specifying /usr/lib/oracle/10.1.0.2/client/lib in your ld.so.conf makes
> ldconfig generate a ld.so.cache which is read before LD_LIBRARY_PATH.
> So you are forcing your listener to work with libraries in
> /usr/lib/oracle/10.1.0.2/client/lib instead of the ones in
$ORACLE_HOME/lib.
>
> A solution could be to have two different users, one which starts the
> listnere and the other for apache. In this case keep ld.so.config
> without the line you added and have two different LD_LIBRARY_PATH for
user.
>

If I keep ld.so.config without the additional line, and write path names in
the LD_LIBRARY_PATH env variable, apache refuses to start. The only way
until now, to get apache to start was the ld.so.config file.
I just tried it as root: I set the env variable with the command:

LD_LIBRARY_PATH=/usr/lib/oracle/10.1.0.2/client/lib; export LD_LIBRARY_PATH

but still apache wouldn't start.
Only if I write the same path in ld.so.config...


> Another way is to modify listener.ora adding something like:
>
>
(ENVS="LD_LIBRARY_PATH=/u01/app/oracle/product/9.2/lib:/u01/app/oracle/produ
ct/9.2/ctx/lib"))
>
> but in this case you could have problems with others oracle binaries who
> have been compiled dynamically.

I've tried this right now. Embedded in the SID_DESC entries, I added the
right library path, but oracle lsnrctl gave the same error message. These
env. variables are only taken into consideration if the listener control
utilty tries to start a specific listener. If it just tries to start the
binary, they don't seem to influence anything. :-(


> (By the way: what's the PATH for your oracle user? Which bynary are you
> using as lsnrctl? Try with the command "which lsnrctl").

which lsnrctl says:
/usr/local/oracle/product/10.1.0/bin/lsnrctl
(It's an Oracle 10g Database)

The PATH env. variable for the oracle user is set to:

PATH=/usr/local/oracle/product/10.1.0/bin:/usr/sbin:/usr/kerberos/bin:/usr/l
ocal/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/oracle/bin

Thanks for your suggestions ;)

kind regards,
Can Oezdemir


FM

unread,
Jun 18, 2004, 3:40:54 PM6/18/04
to
More complex than I thought ;)

Ok... from your answers I have a couple of doubts.
What's the user who starts apache? the command? Once the process is
running what's is owned user?
A ls -l of the executable and a ps whould be useful.
If you run it as oracle but then it is a root process than the command
has the suitid bit set so LD_LIBRARY_PATH is useless.

May you post the value of the following variables
LD_LIBRARY_PATH
PATH
ORACLE_HOME

of all the users involved?

Can wrote:
> "FM" <fabrizi...@mycontinent.com> schrieb im Newsbeitrag
> news:ZVFAc.493326$rM4.20...@news4.tin.it...
>

>

> If I keep ld.so.config without the additional line, and write path names in
> the LD_LIBRARY_PATH env variable, apache refuses to start. The only way
> until now, to get apache to start was the ld.so.config file.
> I just tried it as root: I set the env variable with the command:
>
> LD_LIBRARY_PATH=/usr/lib/oracle/10.1.0.2/client/lib; export LD_LIBRARY_PATH
>
> but still apache wouldn't start.
> Only if I write the same path in ld.so.config...
>

LD_LIBRARY_PATH has to be set for the oracle user (if it has to be
evaluated by the listener).

>
>
>>Another way is to modify listener.ora adding something like:
>>
>>
>
> (ENVS="LD_LIBRARY_PATH=/u01/app/oracle/product/9.2/lib:/u01/app/oracle/produ
> ct/9.2/ctx/lib"))
>
>>but in this case you could have problems with others oracle binaries who
>>have been compiled dynamically.
>
>
> I've tried this right now. Embedded in the SID_DESC entries, I added the
> right library path, but oracle lsnrctl gave the same error message. These
> env. variables are only taken into consideration if the listener control
> utilty tries to start a specific listener. If it just tries to start the
> binary, they don't seem to influence anything. :-(
>
>

This was a stupi suggest from me. That parameters works only for child
processes.


>
>>(By the way: what's the PATH for your oracle user? Which bynary are you
>>using as lsnrctl? Try with the command "which lsnrctl").
>
>
> which lsnrctl says:
> /usr/local/oracle/product/10.1.0/bin/lsnrctl
> (It's an Oracle 10g Database)
>
> The PATH env. variable for the oracle user is set to:
>
> PATH=/usr/local/oracle/product/10.1.0/bin:/usr/sbin:/usr/kerberos/bin:/usr/l
> ocal/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/oracle/bin
>
>

It seems your ORACLE_HOME _is_ /usr/local/oracle/product/10.1.0
Are you sure you are not confusing users or variables?

>
> Thanks for your suggestions ;)
>
> kind regards,
> Can Oezdemir
>
>

I have some time to spare before my friends are taking me at some
elektro-house party...
(if you are still online)

Fabrizio

FM

unread,
Jun 18, 2004, 4:05:39 PM6/18/04
to

FM wrote:


>
> It seems your ORACLE_HOME _is_ /usr/local/oracle/product/10.1.0
> Are you sure you are not confusing users or variables?
>

Forget about this.
From a poster on OTN I found somebody who messed with php and two
installation of oracle. He compiled PHP with the OCI header but it could
be useful for your issue as well.
He copied libclntsh.so.10.1, libnnz10.so and libociei.so form the second
installation to the first one (so from your client installation to
$ORACLE_HOME/lib).
Set LD_LIBRARY_PATH of the oracle user to $ORACLE_HOME/lib and delete
the usual entry in ld.so.conf (and run ldconfig).
Then try again.
Instead of a copy I believe you can simply create three soft links.
Unfortunately I can't test anything from here. I'll have to connect to
the office... I'll try everything tomorrow.

And here another quotation:

"For PHP you only need libociei.so, libnnz10.so and libclnts.so.10.1
from the Instant Client package. If re-compiling won't be needed, you
can copy these libs to a directory of your choice and deinstall Oracle
to save disk space."
Bet libclnts.so.10.1 was libclntsh.so.10.1

Let me know if it helps...

Can

unread,
Jun 18, 2004, 5:44:39 PM6/18/04
to

> From a poster on OTN I found somebody who messed with php and two
> installation of oracle. He compiled PHP with the OCI header but it could
> be useful for your issue as well.
> He copied libclntsh.so.10.1, libnnz10.so and libociei.so form the second
> installation to the first one (so from your client installation to
> $ORACLE_HOME/lib).
> Set LD_LIBRARY_PATH of the oracle user to $ORACLE_HOME/lib and delete
> the usual entry in ld.so.conf (and run ldconfig).
> Then try again.

If I untertake these steps, neither apache nor lsnrctl works. The
interesting thing is:
Even if I *only* copy libociei.so to the $ORACLE_HOME/lib directory, lsnrctl
can't start. Initially there was no libociei.so in the $ORACLE_HOME/lib
directory. So I didn't even overwrite anything. I just copied one file, and
lsnrctl stopped to work.
If I copy all of the 3 files, it still doesn't work. (2 files have been
overwritten during this process).

I just restored the 2 files from a backup, and deleted libociei.so from
$ORACLE_HOME/lib - now lsnrctl is able to start again. (But apache still
isn't *gg* because of ld.so.conf)


> And here another quotation:
>
> "For PHP you only need libociei.so, libnnz10.so and libclnts.so.10.1
> from the Instant Client package. If re-compiling won't be needed, you
> can copy these libs to a directory of your choice and deinstall Oracle
> to save disk space."
> Bet libclnts.so.10.1 was libclntsh.so.10.1
>

Yeah, I read that too...and I believe it's true. But the problem is how to
tell apache where to find those files. ;)

kind regards,

Can


Can

unread,
Jun 18, 2004, 6:08:47 PM6/18/04
to

> More complex than I thought ;)
>
> Ok... from your answers I have a couple of doubts.
> What's the user who starts apache? the command? Once the process is
> running what's is owned user?
> A ls -l of the executable and a ps whould be useful.

I'm starting apache2, logged in as root, by typing:
service httpd start

ls -l /usr/sbin/httpd gave me, after starting apache2:

.... 1 root root 263640 6. Mai 13:17 /usr/sbin/httpd


ps -A printed, after a bunch of other stuff:

3560 ? 00:00:00 httpd
3563 ? 00:00:00 httpd
3564 ? 00:00:00 httpd
3565 ? 00:00:00 httpd
3566 ? 00:00:00 httpd
3567 ? 00:00:00 httpd
3568 ? 00:00:00 httpd
3569 ? 00:00:00 httpd
3570 ? 00:00:00 httpd

> If you run it as oracle but then it is a root process than the command
> has the suitid bit set so LD_LIBRARY_PATH is useless.
>

I only run oracle processes as user oracle (listener, emca, database,
sqlplus...)

> May you post the value of the following variables
> LD_LIBRARY_PATH
> PATH
> ORACLE_HOME
>
> of all the users involved?
>

user root:
LD_LIBRARY_PATH=/usr/lib/oracle/10.1.0.2/client/lib
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sb
in:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
no ORACLE_HOME (but even if I set it, apache doesn't start)

user oracle:
LD_LIBRARY_PATH=/usr/local/oracle/product/10.1.0/lib:/lib:/usr/lib


PATH=/usr/local/oracle/product/10.1.0/bin:/usr/sbin:/usr/kerberos/bin:/usr/l
ocal/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/oracle/bin

ORACLE_HOME=/usr/local/oracle/product/10.1.0

ld.so.conf does right now not contain /usr/lib/oracle/10.1.0.2/client/lib,
so apache does not start. If I change it, lsnrctl (run as user oracle)
doesn't start, although all variables are always set.

I even tried to set LD_CONFIG_PATH for user root...with no success. But I
don't know the difference between LD_CONFIG_PATH an ...library_path
anyway...


>
> I have some time to spare before my friends are taking me at some
> elektro-house party...
> (if you are still online)
>

Your name sounds italian...so you did not watch the football game? *g*


greetings from Vienna,

Can


Can

unread,
Jun 19, 2004, 3:55:41 AM6/19/04
to

Hi again,

I posted the apache-specific part of the problem in an apache newsgroup and
the problem is solved now ;o)))

Solution:

"Davide Bianchi" <davidey...@onlyforfun.net> schrieb im Newsbeitrag
news:2jhl2fF...@uni-berlin.de...
> Can <n...@spam.net> wrote:
> > I tried setting the path with "LD_LIBRARY_PATH=...." but that couldn't
get
> > apache to start...
>
> You have to set that into the script that start Apache itself
> (apachectl).


And it really works: I just added the library path in apachectl, and in
/etc/rc.d/init.d/httpd. Now I don't need the line in ld.so.conf anymore, and
both oracle's listener and apache2 are working.

Thank you for your help and your time, too!

kind regards,
Can Oezdemir


FM

unread,
Jun 19, 2004, 4:25:48 AM6/19/04
to
*sigh*
I just finished to recompile php...
I'm using oracle apache server and the opmn to start and stop it. Now I
have the php support... but I can't reproduce your error.

I think this is because you are using your own apache (the one in the
fedora distribution).
Yesterday I got the CDs. Maybe today I'll have fun installing it and
trying what you did.

By the way: Davide Bianchi? Probably he was watching the football match,
as well, from NL...

Fabrizio

--

Can

unread,
Jun 20, 2004, 7:40:34 AM6/20/04
to

"FM" <fabrizi...@mycontinent.com> schrieb im Newsbeitrag
news:gMSAc.495048$rM4.20...@news4.tin.it...

> *sigh*
> I just finished to recompile php...
> I'm using oracle apache server and the opmn to start and stop it. Now I
> have the php support... but I can't reproduce your error.
>
> I think this is because you are using your own apache (the one in the
> fedora distribution).

Right, I'm using the apache distribution (2.0.49) supplied with Fedora.
By the way: I couldn't even find where the Oracle 10g apache server is
located *g*.


greets,
Can Oezdemir


0 new messages