Re: Run 32-bit and 64-bit listener at the same time on W3K 64-bit

From: Vladimir M. Zakharychev <>
Date: Thu, 21 Jan 2010 05:19:36 -0800 (PST)
Message-ID: <>

On Jan 21, 8:45 am, vsevolod afanassiev
<> 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
> In other words you don't have entry at the higher level
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.


   Vladimir M. Zakharychev
   N-Networks, makers of Dynamic PSP(tm) Received on Thu Jan 21 2010 - 07:19:36 CST

Original text of this message