Solved

Oracle 64 vs 32 bit

Posted on 2011-03-16
15
623 Views
Last Modified: 2012-09-01
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....)
 
0
Comment
Question by:omberli
  • 6
  • 4
  • 4
  • +1
15 Comments
 
LVL 76

Expert Comment

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

2: never heard of a way to mix them.
0
 
LVL 7

Expert Comment

by:CSI-Windows
Comment Utility
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
 

Author Comment

by:omberli
Comment Utility
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
 
LVL 68

Expert Comment

by:Qlemo
Comment Utility
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
 

Author Comment

by:omberli
Comment Utility
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
 
LVL 68

Expert Comment

by:Qlemo
Comment Utility
No. The "client" is part of the server.
0
 

Author Comment

by:omberli
Comment Utility
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
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
LVL 7

Expert Comment

by:CSI-Windows
Comment Utility
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
 

Author Comment

by:omberli
Comment Utility
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
 
LVL 68

Expert Comment

by:Qlemo
Comment Utility
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
 
LVL 7

Expert Comment

by:CSI-Windows
Comment Utility
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
 
LVL 68

Expert Comment

by:Qlemo
Comment Utility
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
 

Author Comment

by:omberli
Comment Utility
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
 
LVL 7

Accepted Solution

by:
CSI-Windows earned 500 total points
Comment Utility
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
 

Author Comment

by:omberli
Comment Utility
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

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Join & Write a Comment

Suggested Solutions

Subquery in Oracle: Sub queries are one of advance queries in oracle. Types of advance queries: •      Sub Queries •      Hierarchical Queries •      Set Operators Sub queries are know as the query called from another query or another subquery. It can …
Working with Network Access Control Lists in Oracle 11g (part 2) Part 1: http://www.e-e.com/A_8429.html Previously, I introduced the basics of network ACL's including how to create, delete and modify entries to allow and deny access.  For many…
This video shows setup options and the basic steps and syntax for duplicating (cloning) a database from one instance to another. Examples are given for duplicating to the same machine and to different machines
This video shows how to Export data from an Oracle database using the Original Export Utility.  The corresponding Import utility, which works the same way is referenced, but not demonstrated.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now