We have installed the 32bit odp.net driver for Oracle. Our server currently hosts applications that are using the deprecated Microsoft Oracle driver.
To use the new odp.net driver on the server will there be any conflicts with the older deprecated driver from microsoft?
What needs to be installed on the server? (how to avoid conflicts with existing web applications?)
System.Data.OracleClient relies on the unmanaged Oracle client software in the same way that odp.net does:
http://msdn.microsoft.com/en-us/library/2d7h4ycx.aspx
When the Oracle client is installed it establishes a “oracle_home” (multiple oracle homes are alowed) and uses various methods to find related dependencies including the registry (HKLM/Software/Oracle), .config options, and the path statement. I’m not exactly sure which method System.Data.OracleClient uses, but I would guess it relies on the path environment variable as do older versions of the client.
Installing a new client will likely put itself first in the path statement. For example consider the following snip from the command line “set” command with my 4 clients installed:
At that point it’s possible, and likely, that existing client users will begin to use your newly installed client instead. So you may want to check your system before and after install for these kind of changes.
Running under the new client will probably be fine, but if you’re looking to avoid touching existing systems. Consider using the xcopy install instead. Below are some links for information on installing it:
http://www.oracle.com/technetwork/issue-archive/2008/08-nov/o68odpnet-101744.html
http://www.brothersincode.com/post/Oracle-ODPnet-xcopy-deployment-for-aspnet.aspx
The xcopy install doesn’t add itself to the path statement so it shouldn’t affect your other installations. New versions of odp.net are supposed to resolve unmanaged binaries thru the registry, so your new app may find it without issue. However, I find dllPath config more reliable – the following would go in your config file: