Solved

Oracle 64 vs 32 bit

Posted on 2011-03-16
15
636 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:Olaf Berli
  • 6
  • 4
  • 4
  • +1
15 Comments
 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 35152081
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
ID: 35153338
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:Olaf Berli
ID: 35154059
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
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 69

Expert Comment

by:Qlemo
ID: 35154795
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:Olaf Berli
ID: 35154838
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 69

Expert Comment

by:Qlemo
ID: 35155103
No. The "client" is part of the server.
0
 

Author Comment

by:Olaf Berli
ID: 35155138
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
 
LVL 7

Expert Comment

by:CSI-Windows
ID: 35155185
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:Olaf Berli
ID: 35163258
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 69

Expert Comment

by:Qlemo
ID: 35163943
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
ID: 35164637
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 69

Expert Comment

by:Qlemo
ID: 35165008
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:Olaf Berli
ID: 35183707
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
ID: 35183763
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:Olaf Berli
ID: 35184036
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.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Performance issue with case statement in oracle 11G 7 80
Web Service from a stored procdure oracle 10 58
Oracle function to insert records? 15 48
Email query results in HTML 6 31
Truncate is a DDL Command where as Delete is a DML Command. Both will delete data from table, but what is the difference between these below statements truncate table <table_name> ?? delete from <table_name> ?? The first command cannot be …
I remember the day when someone asked me to create a user for an application developement. The user should be able to create views and materialized views and, so, I used the following syntax: (CODE) This way, I guessed, I would ensure that use…
Video by: Steve
Using examples as well as descriptions, step through each of the common simple join types, explaining differences in syntax, differences in expected outputs and showing how the queries run along with the actual outputs based upon a simple set of dem…
Via a live example, show how to restore a database from backup after a simulated disk failure using RMAN.

837 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