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,
ApiChange, https://apichange.codeplex.com/
or PE reader http://stackoverflow.com/a/9767750/206730
References: http://stackoverflow.com/questions/270531/how-to-determine-if-a-net-assembly-was-built-for-x86-or-x64
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