quarta-feira, 26 de novembro de 2014

Confuse, installing several versions ODAC - ODP.NET - Oracle.DataAccess for x86 and x64

Instalação do ODAC-ODP.NET



Confuse, installing several versions ODAC - ODP.NET - Oracle.DataAccess  for x86 and x64

Esta pergunta não foi respondida.
kiquenetNewbie
Hi,

I'm confused about ODAC-ODP.NET installations.

I need GOOD PATTERNS about it.

I use Windows 8 x64 and Visual Studio 2012 32bit.
Too, I use Windows Server 2012 x64 and Visual Studio 2012 32bit.
Unit Test in VS 2012 using CLR 4.0 and x86.
Wcf Service hosted in IIS 8.5, with target .NET Framework 4.5, and x64, using CLR 4.0 AppPool.

I want set in installation process, ORACLE_BASE = C:\app\Company

I install this:

64-bit ODAC 11.2 Release 3 (11.2.0.2.1) Xcopy for Windows x64
zip file: ODAC112021Xcopy_x64.zip

Execute command line
install.bat all c:\app\Company odac

Now, I think is the installation path

C:\app\Company
(C:\app\Company\odp.net\bin\4)


ODAC 11.2 Release 3 (11.2.0.2.1)
zi file: ODAC112021.zip

Execute setup.exe

C:\app\Company\product\11.2.0\client_2


64-bit ODAC 12c Release 2 (12.1.0.1.2) for Windows x64
zip file: ODAC121012_x64.zip

Execute setup.exe

C:\app\Company\product\12.1.0\client_1


ODAC 12c Release 2 (12.1.0.1.2) and Oracle Developer Tools for Visual Studio
zip file: ODTwithODAC121012.zip

Execute setup.exe

C:\app\Company\product\12.1.0\client_2


TNSNames in this paths:
C:\app\Company\Network\Admin
C:\app\Company\product\11.2.0\client_2\Network\Admin

C:\app\Company\product\12.1.0\client_1\Network\Admin
C:\app\Company\product\12.1.0\client_2\Network\Admin


In GAC, I have all these references:


Oracle.DataAccess.dll Public Key: 89b483f429c


Oracle.DataAccess 32bit - 2.112.2.0 - CLR 2.0
Oracle.DataAccess 32bit - 2.121.1.0 - CLR 2.0

Oracle.DataAccess 64bit - 2.112.2.0 - CLR 2.0
Oracle.DataAccess 64bit - 2.121.1.0 - CLR 2.0

Oracle.DataAccess 32bit - 4.112.2.0 - CLR 4.0
Oracle.DataAccess 32bit - 4.121.1.0 - CLR 4.0

Oracle.DataAccess 64bit - 4.112.2.0 - CLR 4.0
Oracle.DataAccess 64bit - 4.121.1.0 - CLR 4.0

Oracle.ManagedDataAccess    MSIL  - 4.212.1.0 - CLR 4.0
Oracle.ManagedDataAccessDTC 32bit - 4.212.1.0 - CLR 4.0
Oracle.ManagedDataAccessDTC 64bit - 4.212.1.0 - CLR 4.0


I think it's very important ProcessorArchitecture in Oracle.DataAccess assembly

ProcessorArchitecture for ODAC 32 bit: "Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342,processorArchitecture=x86"
ProcessorArchitecture for ODAC 64 bit: "Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342,processorArchitecture=Amd64"

64-bit ODAC 11.2 Release 3 (11.2.0.2.1) Xcopy for Windows x64
C:\app\Company

Location: C:\app\Company\odp.net\bin\2.x\Oracle.DataAccess.dll
ProcessorArchitecture: Amd64
Location: C:\app\Company\odp.net\bin\4\Oracle.DataAccess.dll
ProcessorArchitecture: Amd64




ODAC 11.2 Release 3 (11.2.0.2.1)
C:\app\Company\product\11.2.0\client_1 ===> failed or older installation - I dont know ??


Location: C:\app\Company\product\11.2.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll
ProcessorArchitecture: X86
Location: C:\app\Company\product\11.2.0\client_1\odp.net\bin\4\Oracle.DataAccess.dll
ProcessorArchitecture: X86


ODAC 11.2 Release 3 (11.2.0.2.1)
C:\app\Company\product\11.2.0\client_2


Location: C:\app\Company\product\11.2.0\client_2\odp.net\bin\2.x\Oracle.DataAccess.dll
ProcessorArchitecture: X86
Location: C:\app\Company\product\11.2.0\client_2\odp.net\bin\4\Oracle.DataAccess.dll
ProcessorArchitecture: X86


64-bit ODAC 12c Release 2 (12.1.0.1.2) for Windows x64
C:\app\Company\product\12.1.0\client_1


Location: C:\app\Company\product\12.1.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll
ProcessorArchitecture: Amd64
Location: C:\app\Company\product\12.1.0\client_1\odp.net\bin\4\Oracle.DataAccess.dll
ProcessorArchitecture: Amd64



ODAC 12c Release 2 (12.1.0.1.2) and Oracle Developer Tools for Visual Studio
C:\app\Company\product\12.1.0\client_2


Location: C:\app\Company\product\12.1.0\client_2\odp.net\bin\2.x\Oracle.DataAccess.dll
ProcessorArchitecture: X86
Location: C:\app\Company\product\12.1.0\client_2\odp.net\bin\4\Oracle.DataAccess.dll
ProcessorArchitecture: X86



Which is the better best good practices about:

- ODAC installations (ODP.NET , Oracle.DataAcccess)
- Configuration for x86 and x64

Thanks in advanced.


Added about ProcessorArchitecture in Oracle.DataAccess assembly

AssemblyName.ProcessorArchitecture,
CorFlags,


Added . Registry HKLM -> SOFTWARE ->ORACLE

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET]


[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET\2.112.2.0]
"DllPath"="c:\\app\\Company\\bin"
"PromotableTransaction"="promotable"
"StatementCacheWithUdts"="1"
"TraceFileName"="c:\\odpnet2.trc"
"TraceLevel"="0"
"TraceOption"="0"
"PerformanceCounters"="0"
"UdtCacheSize"="4096"
"DemandOraclePermission"="0"
"SelfTuning"="1"
"MaxStatementCacheSize"="100"


[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET\2.121.1.0]
"DllPath"="C:\\app\\Company\\product\\12.1.0\\client_1\\bin"
"TraceFileName"="C:\\odpnet2.trc"
"TraceLevel"="0"
"TraceOption"="0"
"PromotableTransaction"="promotable"
"SelfTuning"="1"
"StatementCacheWithUdts"="1"
"UdtCacheSize"="4096"
"PerformanceCounters"="0"
"MaxStatementCacheSize"="100"
"DemandOraclePermission"="0"


[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET\4.112.2.0]
"DllPath"="c:\\app\\Company\\bin"
"PromotableTransaction"="promotable"
"StatementCacheWithUdts"="1"
"TraceFileName"="c:\\odpnet4.trc"
"TraceLevel"="0"
"TraceOption"="0"
"PerformanceCounters"="0"
"UdtCacheSize"="4096"
"DemandOraclePermission"="0"
"SelfTuning"="1"
"MaxStatementCacheSize"="100"


[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET\4.121.1.0]
"DllPath"="C:\\app\\Company\\product\\12.1.0\\client_1\\bin"
"TraceFileName"="C:\\odpnet4.trc"
"TraceLevel"="0"
"TraceOption"="0"
"SelfTuning"="1"
"MaxStatementCacheSize"="100"
"DemandOraclePermission"="0"
"PerformanceCounters"="0"
"PromotableTransaction"="promotable"
"StatementCacheWithUdts"="1"
"UdtCacheSize"="4096"



And

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_odac]
"ORACLE_HOME"="c:\\app\\Company\\"
"ORACLE_HOME_NAME"="odac"
"ORACLE_GROUP_NAME"="Oracle - odac"
"NLS_LANG"="SPANISH_SPAIN.WE8MSWIN1252"
"OLEDB"="c:\\app\\Company\\oledb\\mesg"
"ORAMTS_CP_TRACE_DIR"="c:\\app\\Company\\\\oramts\\trace"
"ORAMTS_CP_TRACE_LEVEL"="0"
"ORAMTS_CONN_POOL_TIMEOUT"="120"
"ORAMTS_SESS_TXNTIMETOLIVE"="120"
"ORAMTS_NET_CACHE_MAXFREE"="5"
"ORAMTS_NET_CACHE_TIMEOUT"="120000"
"ORAMTS_OSCREDS_MATCH_LEVEL"="OS_AUTH_LOGIN"
"TNS_ADMIN"="C:\\\\app\\\\Company\\\\Network\\\\Admin\\\\"


[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient12Home1]
"ORACLE_HOME"="C:\\app\\Company\\product\\12.1.0\\client_1"
"ORACLE_HOME_NAME"="OraClient12Home1"
"ORACLE_GROUP_NAME"="Oracle - OraClient12Home1"
"ORACLE_HOME_TYPE"="2"
"ORACLE_SVCUSER"="NT AUTHORITY\\LOCAL SERVICE"
"ORACLE_SVCUSER_PWDREQ"="0"
"OLEDB"="C:\\app\\Company\\product\\12.1.0\\client_1\\oledb\\mesg"
"OMTSRECO_PORT"=hex(2):32,00,30,00,33,00,31,00,00,00

Classificação de usuário médio: Não há classificações (0 Classificações)
Classificação de usuário médio
Não há classificações
(0 Classificações)


  • 1. Re: Confuse, installing several versions ODAC - ODP.NET - Oracle.DataAccess  for x86 and x64
    Alex_Keh - Oracle_Product_ManagerExpert
    For 32-bit, you should use x86. For 64-bit, use x64. Don't use AnyCpu for unmanaged ODP.NET.

    For ODP.NET installations, set the DllPath setting in your .NET config file so that each ODP.NET version can find it's correct version of dependent Oracle Client DLLs.

    That's the two main best practices I would recommend for deployment with unmanaged.

    Long term, look into using the managed ODP.NET version.


  • 2. Re: Confuse, installing several versions ODAC - ODP.NET - Oracle.DataAccess  for x86 and x64
    kiquenetNewbie
    Now, in Company all projects (IIS Web Application, or Windows Forms applicaation, or unit test) has AnyCPU value for Platform Target.

    Warning about it:
    There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86", "x86". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project.

    If Platform Target for a project has AnyCPU value, which is the Oracle.DataAccess: x86 or x64?

    Oracle.DataAccess.dll assemblies are in GAC for 32bit and 64bit driver.


    Another confuse, about Windows Registry entries

    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE

    I have discover now this:
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE

    Homes           : OraClient11g_home1  (C:\app\Company\product\11.2.0\client_1)
                            OraClient11g_home2  (C:\app\Company\product\11.2.0\client_2)
                            OraClient12Home1  (C:\app\Company\product\12.1.0\client_1)
                            OraClient12Home2  (C:\app\Company\product\12.1.0\client_2)

    but not references C:\app\Company (HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE node)

    [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_odac]
    "ORACLE_HOME"="c:\\app\\Company\\"

    [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient12Home1]
    "ORACLE_HOME"="C:\\app\\Company\\product\\12.1.0\\client_1"


    For HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE node:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraClient11g_home1]
    "ORACLE_HOME"="C:\\app\\Company\\product\\11.2.0\\client_1"
    "ORACLE_HOME_NAME"="OraClient11g_home1"
    "ORACLE_GROUP_NAME"="Oracle - OraClient11g_home1"
    "NLS_LANG"="SPANISH_SPAIN.WE8MSWIN1252"
    "ORAMTS_CP_TRACE_LEVEL"="0"
    "ORAMTS_CP_TRACE_DIR"="C:\\app\\Company\\product\\11.2.0\\client_1\\oramts\\Trace"
    "ORAMTS_CONN_POOL_TIMEOUT"="120"
    "ORAMTS_SESS_TXNTIMETOLIVE"="120"
    "ORAMTS_NET_CACHE_MAXFREE"="5"
    "ORAMTS_NET_CACHE_TIMEOUT"="120000"
    "ORAMTS_OSCREDS_MATCH_LEVEL"="OS_AUTH_LOGIN"
    "OLEDB"="C:\\app\\Company\\product\\11.2.0\\client_1\\oledb\\mesg"
    "OO4O"="C:\\app\\Company\\product\\11.2.0\\client_1\\oo4o\\mesg"




    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraClient11g_home2]
    "ORACLE_HOME"="C:\\app\\Company\\product\\11.2.0\\client_2"
    "ORACLE_HOME_NAME"="OraClient11g_home2"
    "ORACLE_GROUP_NAME"="Oracle - OraClient11g_home2"
    "NLS_LANG"="SPANISH_SPAIN.WE8MSWIN1252"
    "ORAMTS_CP_TRACE_LEVEL"="0"
    "ORAMTS_CP_TRACE_DIR"="C:\\app\\Company\\product\\11.2.0\\client_2\\oramts\\Trace"
    "ORAMTS_CONN_POOL_TIMEOUT"="120"
    "ORAMTS_SESS_TXNTIMETOLIVE"="120"
    "ORAMTS_NET_CACHE_MAXFREE"="5"
    "ORAMTS_NET_CACHE_TIMEOUT"="120000"
    "ORAMTS_OSCREDS_MATCH_LEVEL"="OS_AUTH_LOGIN"
    "OLEDB"="C:\\app\\Company\\product\\11.2.0\\client_2\\oledb\\mesg"
    "OO4O"="C:\\app\\Company\\product\\11.2.0\\client_2\\oo4o\\mesg"




    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraClient12Home1]
    "ORACLE_HOME"="C:\\app\\Company\\product\\12.1.0\\client_1"
    "ORACLE_HOME_NAME"="OraClient12Home1"
    "ORACLE_GROUP_NAME"="Oracle - OraClient12Home1"


    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraClient12Home2]
    "ORACLE_HOME"="C:\\app\\Company\\product\\12.1.0\\client_2"
    "ORACLE_HOME_NAME"="OraClient12Home2"
    "ORACLE_GROUP_NAME"="Oracle - OraClient12Home2"
    "ORACLE_HOME_TYPE"="2"
    "ORACLE_SVCUSER"="NT AUTHORITY\\LOCAL SERVICE"
    "ORACLE_SVCUSER_PWDREQ"="0"
    "OLEDB"="C:\\app\\Company\\product\\12.1.0\\client_2\\oledb\\mesg"
    "OMTSRECO_PORT"=hex(2):32,00,30,00,33,00,32,00,00,00




    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\ODP.NET]


    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\ODP.NET\2.112.2.0]
    "DllPath"="C:\\app\\Company\\product\\11.2.0\\client_2\\bin"
    "TraceFileName"="C:\\odpnet2.trc"
    "TraceLevel"="0"
    "TraceOption"="0"
    "SelfTuning"="1"
    "MaxStatementCacheSize"="100"
    "DemandOraclePermission"="0"
    "PerformanceCounters"="0"
    "PromotableTransaction"="promotable"
    "StatementCacheWithUdts"="1"
    "UdtCacheSize"="4096"


    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\ODP.NET\2.121.1.0]
    "DllPath"="C:\\app\\Company\\product\\12.1.0\\client_2\\bin"
    "TraceFileName"="C:\\odpnet2.trc"
    "TraceLevel"="0"
    "TraceOption"="0"
    "PromotableTransaction"="promotable"
    "SelfTuning"="1"
    "StatementCacheWithUdts"="1"
    "UdtCacheSize"="4096"
    "PerformanceCounters"="0"
    "MaxStatementCacheSize"="100"
    "DemandOraclePermission"="0"


    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\ODP.NET\4.112.2.0]
    "DllPath"="C:\\app\\Company\\product\\11.2.0\\client_2\\bin"
    "TraceFileName"="C:\\odpnet4.trc"
    "TraceLevel"="0"
    "TraceOption"="0"
    "SelfTuning"="1"
    "MaxStatementCacheSize"="100"
    "DemandOraclePermission"="0"
    "PerformanceCounters"="0"
    "PromotableTransaction"="promotable"
    "StatementCacheWithUdts"="1"
    "UdtCacheSize"="4096"


    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\ODP.NET\4.121.1.0]
    "DllPath"="C:\\app\\Company\\product\\12.1.0\\client_2\\bin"
    "TraceFileName"="C:\\odpnet4.trc"
    "TraceLevel"="0"
    "TraceOption"="0"
    "SelfTuning"="1"
    "MaxStatementCacheSize"="100"
    "DemandOraclePermission"="0"
    "PerformanceCounters"="0"
    "PromotableTransaction"="promotable"
    "StatementCacheWithUdts"="1"
    "UdtCacheSize"="4096"


  • 3. Re: Confuse, installing several versions ODAC - ODP.NET - Oracle.DataAccess  for x86 and x64
    Alex_Keh - Oracle_Product_ManagerExpert
    If Platform Target for a project has AnyCPU value, which is the Oracle.DataAccess: x86 or x64?

    The AnyCPU platform target is whatever bitness of the .NET Framework your application is running in. If it's 32-bit, then it will try to load 32-bit ODP.NET, If it's x64, it will load 64-bit ODP.NET. The problem is that if the app runs in 32-bit .NET Framework, but only 64-bit ODP.NET is loaded on the machine, you will see an error. That is why it's best to specify bitness the app runs on.



Fonte: Oracle Community Directory
https://community.oracle.com/thread/3538519

Nenhum comentário: