1 Reply Latest reply: Apr 27, 2013 7:48 AM by Tridus RSS

    Complex Multi Environment. Which Oracle Client do Install?

    1005828
      Hi all,

      I have to admit to being very confused as to which Oracle Client Install I need.

      First of all, here is a description of our environments.

      [Production Environment]
      Servers OS: Windows 2008 R2 (x64)
      Clients OS’s: Windows 7 64bit. Or Windows 2008 R2 Terminal Server Or Windows 2012 Terminal Server.
      Oracle Version: 11g 11.2 running on same windows server (or not) as .NET server components.
      Code Base:
      Server Code: 64bit C# Microsoft .Net 4.5 using Entity Framework.
      Server Technologies used: .Net Remoteing, Web Services, ASP.NET, Hosted via IIS and/or Windows Services, all of which access data via a Data Access layer using Entity Framework where by the Provider is soft coded in a config file and can access different database platforms, one of which is Oracle 11g via ODAC.
      Client Code: Mixed (Win32 C++ MFC ATL COM , 64bit C# Microsoft using CSLA)
      Note on C# client stuff. We are using CSLA to call to Sever Code for Data Access so I don’t believe that the oracle client is needed for this code.
      For all the C# .net code (Server Side) we want to use the ODAC 64bit. All the (unmanaged) Win32 C++ MFC & ATL COM is using ADO (Client Side).
      1.     Of the installers listed below, which do I use for this Environment for Server?
      2.     Of the installers listed below, which do I use for this Environment for Client?

      [Development Environment] (Debug)
      Servers: Windows 7 (x64)
      Oracle Version: 11g 11.2 running on same windows server.
      Code Base:
      Server Code: 64bit C# Microsoft .Net 4.5 using Entity Framework.
      Client Code: Mixed (Win32 C++ MFC ATL COM , 64bit C# Microsoft using CSLA)
      IDE: Visual Studio 2012 SP2.
      In this environment, all code server and client is debugged on same Win 7 machine. I.e. 64bit .NET Server components and 32bit Win32 C++ client components.
      Questions:
      3.     In this case do we need to install Multiple Oracle Homes to run 32 bit ADO & 64 bit?
      4.     If yes, of the installer listed below, which ones do I use for this Environment?
      5.     If using multiple homes, how do is specify the DLLPath in the App.Config file for .NET 4.5 server code or do I need to at all since Client is unmanaged vs Server is managed?

      There seems to be a variety of client installers and no explication as to what they are or which one to use under what circumstances.

      1.     Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft Windows (x64) win64_11gR2_client.zip and a 32 bit version as well.
      2.     Instant Client Package - Basic: All files required to run OCI, OCCI, and JDBC-OCI applications instantclient-basic-windows.x64-11.2.0.3.0.zip or 32bit.
      3.     64-bit ODAC 11.2 Release 5 (11.2.0.3.20) Xcopy for Windows x64 [Released September 12, 2012] ODAC1120320Xcopy_x64.zip or 32bit.
      4.     64-bit ODAC 11.2 Release 5 (11.2.0.3.20) for Windows x64, ODAC1120320_x64.zip or 32bit.

      Let me know if you need more Info on my Environments?
      Thanks,
      JT
        • 1. Re: Complex Multi Environment. Which Oracle Client do Install?
          Tridus
          user7780308 wrote:
          [Production Environment]
          Servers OS: Windows 2008 R2 (x64)
          Clients OS’s: Windows 7 64bit. Or Windows 2008 R2 Terminal Server Or Windows 2012 Terminal Server.
          Oracle Version: 11g 11.2 running on same windows server (or not) as .NET server components.
          Code Base:
          Server Code: 64bit C# Microsoft .Net 4.5 using Entity Framework.
          Server Technologies used: .Net Remoteing, Web Services, ASP.NET, Hosted via IIS and/or Windows Services, all of which access data via a Data Access layer using Entity Framework where by the Provider is soft coded in a config file and can access different database platforms, one of which is Oracle 11g via ODAC.
          Client Code: Mixed (Win32 C++ MFC ATL COM , 64bit C# Microsoft using CSLA)
          Note on C# client stuff. We are using CSLA to call to Sever Code for Data Access so I don’t believe that the oracle client is needed for this code.
          For all the C# .net code (Server Side) we want to use the ODAC 64bit. All the (unmanaged) Win32 C++ MFC & ATL COM is using ADO (Client Side).
          1.     Of the installers listed below, which do I use for this Environment for Server?
          You should try to be consistent and use the same version that you're using in your testing, if you can. That said...

          Assuming your .net application on the server is running in 64 bit, you need client #3 or 4 (64 bit). The difference between those two is just in how you install them (one comes with an installer program, the other uses a set of scripts you need to run). If you don't know, I recommend #4 as people have fewer problems with the installer in my experience.

          Client #1 won't work because it doesn't support Entity Framework. I don't think the basic instant client has the .net components, so #2 won't work either.
          2.     Of the installers listed below, which do I use for this Environment for Client?
          That depends. Does your client ever connect to Oracle directly? If you're getting data through web services, remoting, or anything else that goes through your server code, the client shouldn't need an Oracle client at all.

          If the client is connecting to Oracle directly, you can use the same clients (3 or 4) that you're using on the server, only in the 32 bit flavor (assuming the client app is compiled for 32 bit). For a client #3 may be better, as the xcopy version is easier to deploy as part of an application installation.

          [Development Environment] (Debug)
          Servers: Windows 7 (x64)
          Oracle Version: 11g 11.2 running on same windows server.
          Code Base:
          Server Code: 64bit C# Microsoft .Net 4.5 using Entity Framework.
          Client Code: Mixed (Win32 C++ MFC ATL COM , 64bit C# Microsoft using CSLA)
          IDE: Visual Studio 2012 SP2.
          In this environment, all code server and client is debugged on same Win 7 machine. I.e. 64bit .NET Server components and 32bit Win32 C++ client components.
          Questions:
          3.     In this case do we need to install Multiple Oracle Homes to run 32 bit ADO & 64 bit?
          Yes.
          4.     If yes, of the installer listed below, which ones do I use for this Environment?
          Same as above, either client 3 or 4. They're the same Oracle client, the only difference between them is the installation method.
          5.     If using multiple homes, how do is specify the DLLPath in the App.Config file for .NET 4.5 server code or do I need to at all since Client is unmanaged vs Server is managed?
          You may not need to, given the bit-ness differences. If you do, here is the documentation on that configuration file property: http://docs.oracle.com/cd/E11882_01/win.112/e23174/featConfig.htm#CJABCACG

          (Note: In this case you're using the "unmanaged" client in both cases, even in managed .net code. I say that just to be clear, as Oracle has a beta of a "managed" client that is 100% managed. The clients you're using here are unmanaged code.)


          Hopefully that clears it up a bit. :)