Oracle 64 vs 32 bit

Trying to install an application that is using Oracle database. Platform is Win 2008 Server (64bit) running as a domain controller. Downloaded and installed Oracle 11g (64 bit) and I'm able to connect to the database from a command prompt (sqlplus) as well as from a web browser.

After installing the application, the application will not start. It says "Unable to connect to database server". The application developer has checked into this and found that the oci.dll file in the system is 64 bit and that his application can only handle 32 bit.

Two questions come out of this:

1. Will it work ok to download Oracle 32 bit and install on the 64-bit platform?

2. Is there a way to get this to work on the 64 bit Oracle install (developer mentioned something about a 32-bit client....)
 
Olaf BerliAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

slightwv (䄆 Netminder) Commented:
1: It should work if you use 32bit Oracle with no issues.

2: never heard of a way to mix them.
0
CSI-WindowsCommented:
Answers:

#1 - yes you can install the 32-bit client.  In fact, I would leave the 64-bit client installed - sometimes this solves problems where some software uses both clients.

#2 - you do not want to try to force something to work with 64-bit middleware if it was not designed to do so.  In most cases it is not possible because the middleware interface is done by DLLs loading into the application's process (64-bit DLLs cannot load into a 32-bit process).  In some few cases where out of process COM or IPC is used for middleware, it may work with 32-bit software.
0
Olaf BerliAuthor Commented:
Thanks to both of you.
Since the 64-bit version of Oracle is already installed on the server and I want to have the application run on the server as well (plus on a number of workstations) - what should I do on the server to get the 32-bit client installed and the application up and running?

0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

QlemoBatchelor, Developer and EE Topic AdvisorCommented:
You need to set up the 32bit Oracle client in front of the 64bit Client in your PATH - at least for that application. One way is to copy the main Oracle DLLs into the application folder, including an Oracle.key file telling where in the registry to search for the remaining Oracle files (messages, locale definitions etc.). You can use the fact that the 32bit registry is in e.g. HKLM\Software\SysWoW64 instead of HKLM\Software to keep the different Oracle Homes as default for each 64bit and 32bit.

Another way is to modify the PATH and ORACLE_HOME variables before the application is started via a shortcut or batch file - that will only apply to that application then.
0
Olaf BerliAuthor Commented:
It is very unlikely that there will be other applications using this Oracle install. Seems like running both 64 and 32 bit clients on the server will make the system more difficult to maintain. Is there a way to just remove the 64-bit client and just install 32-bit?
0
QlemoBatchelor, Developer and EE Topic AdvisorCommented:
No. The "client" is part of the server.
0
Olaf BerliAuthor Commented:
So, an uninstall of the 64 bit Oracle and a fresh, new install of 32 bit will give a system that will support the 32-bit application and also be easiest to support and maintain....?

Sorry for all the detailed questions - I've not worked with Oracle before....
0
CSI-WindowsCommented:
Install the 32-bit client, but specify a new ORACLE_HOME during install of the 32-bit client.

I'm not sure that it is possible to remove the 64-bit client, but I would leave the 64-bit client installed on the server  install because you do not know what dependencies there are on it by the server software or utilities that run on the server.

Nothing is really high-maintenance about the setup - If you have to upgrade the server you *might* have to upgrade the 32-bit client - but if that is the case you'd have to do it to all the other clients anyway.

Also, the client computers only need the 32-bit client since the 32-bit clients are connecting to the server via an over the wire protocol (does not try to load 64-bit DLLs into 32-bit processes).
0
Olaf BerliAuthor Commented:
Thanks for the explanation.
A bit outside the initial question, but hope for a comment anyway.... I'm a bit confused with respect to what ORACLE_HOME is. Can't remember setting it during my initial installation on the server.
The initial install was done with default settings all the way. Oracle files seems to be located in C:\app.

When installing the 32-bit client, is there a setting during install whee a different ORACLE_HOME could be defined?

There was also an entity called ORCL created during the initial install. Has this anything to do with ORACLE_HOME?

Again - sorry for these very basic questions.....
 
0
QlemoBatchelor, Developer and EE Topic AdvisorCommented:
ORACLE_HOME comes into play whenever you have more than one Oracle installation on the same machine, e.g. two Oracle DBMS Instances, or a client and a server installed separately from each other.
It provides the folder which acts as base for your specific Oracle files.
On Windows you can see registered Oracle homes in registry at HKCU\Software\Oracle and HKLM\Software\Oracle (and ALL_HOMES subkey).
0
CSI-WindowsCommented:
From what I've read a big problem is that the PATH variable cannot contain parenthesis "()" and the title of the "Program Files (x86)" folder does contain them.

Here is a very creative method for having the correct Oracle client automatically selected by it's bitness: http://realfiction.net/go/153

You may also be missing the 32-bit ODBC entries.  To resolve that make sure you run the 32-bit version of ODBC: c:\windows\syswow64\odbcadm32.exe

0
QlemoBatchelor, Developer and EE Topic AdvisorCommented:
Paren's are no issue in PATH. Only if you try to process that via string functions in a batch there might arise problems with it, if you are not careful.

I have to correct the registry paths I showed in http:#a35154795 - SysWoW64 is the filesystem folder, the registry branch is Wow6432Node.
0
Olaf BerliAuthor Commented:
Started to get a clear picture of the install, but the article in http://realfiction.net/go/153 made me hesitant again. There will probably be more than one admin person in this setup and doing anything outside of plain installs will most likely create support issues. Need another clarification before going ahead with this:

The Oracle server will not be used for any other applications - only the 32-bit stuff mentioned before. Is it a correct understanding that the hacks in the mentioned article won't apply in my setup (get the impression from the article that there is a need to support 32 and 64-bit om the same server.

So - still may have two choices:
1. Install the 32-bit client in addition to the 64-bit client that came with the server install, and define a different ORACLE_HOME.

2. Remove the entire 64-bit Oracle (server and client) and install a 32-bit server with 32 bit client.

Tempted to try #1.....?

0
CSI-WindowsCommented:
I would try #1 first.

If it works, I would be hesitant to try #2 because the oracle server tools may be using it.


If it does not work to only do #1, I would be curious about this - you said:

"The application developer has checked into this and found that the oci.dll file in the system is 64 bit and that his application can only handle 32 bit."

Does the developer's software access the Oracle client in a non-standard way (loading DLLs manually or other), or is this just his method of verifying the bitness of the client?
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Olaf BerliAuthor Commented:
Not sure...  When his application didn't start, he connected remotely to the server and did some checking. Seems like the application is connecting to the server via the Oracle client and that the link between app and client is the oci.dll (oracle client interface). Not sure...
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Oracle Database

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.