From: Terry Dykstra on
I have Oracle 10.2.0.4-64 bit running on W3K-64-bit.
Now I need to run a 32-bit 9.2.0.5 (yes I know, ouch) on this box. I cannot
get the listener to work. I use batch file to specifically point to the 9.2
environment, but for some reason it points to the 64-bit version.
Any clues?


E:\dbscripts>rem set oracle 9.2 environment
E:\dbscripts>set ORACLE_HOME=C:\oracle\ora92
E:\dbscripts>set
path=C:\oracle\ora92\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;\\CFOLDC1\fopublic\
E:\dbscripts>set TNS_ADMIN=C:\oracle\ora92\network\admin
E:\dbscripts>c:
C:\>C:\oracle\ora92\bin\lsnrctl.exe

LSNRCTL for 32-bit Windows: Version 9.2.0.5.0 - Production on 20-JAN-2010
17:03:
59

Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> version
Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
TNSLSNR for 64-bit Windows: Version 10.2.0.4.0 - Production
TNS for 64-bit Windows: Version 10.2.0.4.0 - Production
Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version
10.2.0.4
..0 - Production
Windows NT Named Pipes NT Protocol Adapter for 64-bit Windows:
Version 1
0.2.0.4.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version
10.2.0
..4.0 - Production,,
The command completed successfully
LSNRCTL>



--
Terry Dykstra


From: vsevolod afanassiev on
I think on Windows Oracle works differently from UNIX.
Environment variables get ignored (most of them). Instead Oracle
excutable reads file oracle.key located in the same directory as
executable itself,
i.e. ORACLE_HOME\bin. This is plain text file, you can view it with
Notepad.
This file contains pointer to the Registry section
for this particular ORACLE_HOME. Then executable reads Registry to
get such information as ORACLE_HOME, etc.

Please check that:
- c:\oracle\ora92 is indeed 32-bit ORACLE_HOME
- It contains file oracle.key
- This file points to Registry entries for 32-bit ORACLE_HOME

Also please check that Registry entries for different ORACLE_HOME are
at the same level in the Registry, something like

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME1
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME2

In other words you don't have entry at the higher level

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE


From: Arne Ortlinghaus on
Hi Terry,

I believe that only one listener is necessary independing of mixing 32Bit
and 64Bit.

Arne Ortlinghaus

From: Vladimir M. Zakharychev on
On Jan 21, 8:45 am, vsevolod afanassiev
<vsevolod.afanass...(a)gmail.com> wrote:
> I think on Windows Oracle works differently from UNIX.
> Environment variables get ignored (most of them). Instead Oracle
> excutable reads file oracle.key located in the same directory as
> executable itself,
> i.e. ORACLE_HOME\bin. This is plain text file, you can view it with
> Notepad.
> This file contains pointer to the Registry section
> for this particular ORACLE_HOME. Then executable reads Registry to
> get such information as ORACLE_HOME, etc.
>
> Please check that:
> - c:\oracle\ora92 is indeed 32-bit ORACLE_HOME
> - It contains file oracle.key
> - This file points to Registry entries for 32-bit ORACLE_HOME
>
> Also please check that Registry entries for different ORACLE_HOME are
> at the same level in the Registry, something like
>
> HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
> HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME1
> HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME2
>
> In other words you don't have entry at the higher level
>
> HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE

In addition to the above, currently active (default) Oracle Home is
determined from the PATH variable: whichever comes first is default.
This simple. But might cause service startup issues if two different
Oracle versions are sharing the same Windows host, both registered
services and both services start under LocalSystem account: one of
them will use wrong home because they both will use system PATH for
determining default home.

As of OP's issue: you surely noticed that though you used lsnrctl v9
it connected to the currently running 64-bit 10.2 listener and had no
problems communicating with it. That's the beauty of Oracle Net in
action. lsnrctl communicates with the listener via TCP - you can
control remote listeners with this utility the same way you control
local one. Better than that: you don't have to install 32-bit listener
alongside the 64-bit one. Bitness of the listener is irrelevant as it
communicates with Oracle instances in platform-independent manner. You
can even have several listeners running on different machines
(possibly all on different platforms) presenting the same Oracle
service (for example, for load-balancing or connect-time failover/
TAF.) To make sure your 32-bit 9i instance correctly registered its
services with the 64-bit 10g listener (which PMON attempts
automatically on instance startup via TCP at localhost:1521, unless
you overridden LOCAL_LISTENER server parameter) issue STATUS command
in lsnrctl and check if all expected services are listed.

More information can be found in Oracle Net Administrator's Guide for
your release.

And why don't you consider running this 32-bit 9i instance in a VM?
Indeed, will require another Windows license, but you'll get isolated,
independent environment without the need to invest into additional
hardware. And Sun's VirtualBox is free and pretty stable.

Hth,
Vladimir M. Zakharychev
N-Networks, makers of Dynamic PSP(tm)
http://www.dynamicpsp.com

From: bdbafh on
On Jan 20, 7:07 pm, "Terry Dykstra" <tddyks...(a)forestoil.ca> wrote:
> I have Oracle 10.2.0.4-64 bit running on W3K-64-bit.
> Now I need to run a 32-bit 9.2.0.5 (yes I know, ouch) on this box.  I cannot
> get the listener to work.  I use batch file to specifically point to the 9.2
> environment, but for some reason it points to the 64-bit version.
> Any clues?
>

Regarding the database server software, running 32 bit Oracle database
server software on a 64 bit OS is not supported.
That's a good enough stopping condition for me.
You need to run the 32 bit software on a 32 bit OS, be it on a
physical or virtual server.

-bdbafh



> E:\dbscripts>rem set oracle 9.2 environment
> E:\dbscripts>set ORACLE_HOME=C:\oracle\ora92
> E:\dbscripts>set
> path=C:\oracle\ora92\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;\\CFOLDC1\fopublic\
> E:\dbscripts>set TNS_ADMIN=C:\oracle\ora92\network\admin
> E:\dbscripts>c:
> C:\>C:\oracle\ora92\bin\lsnrctl.exe
>
> LSNRCTL for 32-bit Windows: Version 9.2.0.5.0 - Production on 20-JAN-2010
> 17:03:
> 59
>
> Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.
>
> Welcome to LSNRCTL, type "help" for information.
>
> LSNRCTL> version
> Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
> TNSLSNR for 64-bit Windows: Version 10.2.0.4.0 - Production
>         TNS for 64-bit Windows: Version 10.2.0.4.0 - Production
>         Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version
> 10.2.0.4
> .0 - Production
>         Windows NT Named Pipes NT Protocol Adapter for 64-bit Windows:
> Version 1
> 0.2.0.4.0 - Production
>         Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version
> 10.2.0
> .4.0 - Production,,
> The command completed successfully
> LSNRCTL>
>
> --
> Terry Dykstra