Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Oracle Client compatibility

Posted on 2010-11-29
11
Medium Priority
?
881 Views
Last Modified: 2012-05-10
I have two databases  on two different machines, lets call them A and B both of which are Oracle 11g.  I am running a vb.net app from  machine B.  This application must connect to both A and B databases.  My question  is about the client software install.  I know that the oracle server install includes all the necessary dlls to act as a client as well however, I cannot get my application to communicate with the databases. I am using the Oracle.DataAccess.dll which is in the same folder as my exe but I also did a search and found it in the oracle folder of both machines. I thought as long as the client dlls were on the same machine as my app that I could communicate with any database. How come my application cannot communicate with the local database?  Any help would be appreciated, I am in a bit of a time crunch.

Forgot to mention:  I am getting a TypeInitializationException.  The provider is not compatible with the version of Oracle Client

Thanks
0
Comment
Question by:merianom
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 5
11 Comments
 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 34233191
You need the same version of Oracle.DataAccess.dll that your app was compiled with.  Right click and select properties the nversion.

You will need to install that version of the Oracle client on the app server or recompile your app to use the Oracle ODP.Net version installed on the app server.
0
 

Author Comment

by:merianom
ID: 34238056
I compiled my app with the instant client version of the DataAccess.dll ( 2.112.1.2) and the version on the server is 2.112.1.0.  I thought the versions were all compatible? Shouldnt it still work since the version I compiled my app with is in the same folder as my app executable?

Thanks for responding so quickly
0
 
LVL 77

Accepted Solution

by:
slightwv (䄆 Netminder) earned 2000 total points
ID: 34238605
I've had weird things happen with the Oracle ODAC and .Net.  It's always best to keep the versions exactly the same.  Even though the DataAccess.dll is there wit hthe app, it calls other Oracle dlls.  Oracle loves changing their APIs across versions (even minor releases).

I just know enough about .Net to be dangerous but doesn't the DLLs belong in the BIN folder not in the folder with the .exe?
0
Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

 

Author Comment

by:merianom
ID: 34240930
I am in the same boat with .NET.  I know just enough.....
The .exe and the dll are in the bin folder however, I use a setup project to deploy the app which places the dlls and the .exe in a folder of my choosing.  

My issue with the versions is that I am not sure which version of the Oracle.DataAccess.dll they are going to have on the target machine.
0
 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 34240994
I've never really gotten ODP and .Net to play nice unless I'm using the same versions.  You will likely need to specify the Oracle client version.

Any reason you just don't use SQL*Loader to load flat files and do away with the app all together?  For the most part SQL*Loader control files work across different versions of Oracle (unless there are new or deprecated features).
0
 

Author Comment

by:merianom
ID: 34241217
My application does many things, one of which is to extract data from Oracle on demand. So basically even though I am using running my application on the same machine as an Oracle server, I have to install oracle client so that I can dictate  (or in other words make sure) that the end user is using the correct dll versions?
0
 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 34241245
If you cannot match the end users version, installing a separate client is what I'm thinking.

Unless another Expert stops by and has any other information that might work.  I'll add a few more Zones.
0
 

Author Comment

by:merianom
ID: 34241260
Thank you.  I appreciate all your info.  I will try to do the client install on the target machine and see what happens.  I will update when I know more

0
 

Author Comment

by:merianom
ID: 34242109
instead of doing the client install on the target machine.  I copied the Oracle.DataAccess.dll from the target machine to the development machine and rebuilt my application.  As i suspected it worked without any issues.  I guess my next step would be to figure out if I can control which version of the server is installed on the client.  

The other direction would be to install the correct client with my application.  Does anyone know if this is possible?  

Thanks again for all your help
0
 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 34242206
If you can figure out a way to have the MSoft installer call another program, Oracle has a silent install option.  This allows you to install Oracle products form a command line without a GUI.

I've never used the silent installer nor do I know if the Instant Client will install silently but you can read up on the options and see.

http://download.oracle.com/docs/cd/E11882_01/install.112/e10844/advance.htm#CHDICDJA
0

Featured Post

Get free NFR key for Veeam Availability Suite 9.5

Veeam is happy to provide a free NFR license (1 year, 2 sockets) to all certified IT Pros. The license allows for the non-production use of Veeam Availability Suite v9.5 in your home lab, without any feature limitations. It works for both VMware and Hyper-V environments

Question has a verified solution.

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

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…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
This video explains what a user managed backup is and shows how to take one, providing a couple of simple example scripts.
This video shows how to copy an entire tablespace from one database to another database using Transportable Tablespace functionality.
Suggested Courses

610 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