Confuse, installing several versions ODAC - ODP.NET - Oracle.DataAccess for x86 and x64
Esta pergunta não foi respondida.
kiquenet 26/03/2014 04:52
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
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_Manager 25/03/2014 14:46 (em resposta a kiquenet)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
kiquenet 26/03/2014 09:32 (em resposta a Alex_Keh - Oracle_Product_Manager)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 entriesHKEY_LOCAL_MACHINE\SOFTWARE\ORACLEI have discover now this:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLEHomes : 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_Manager 26/03/2014 12:55 (em resposta a kiquenet)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:
Postar um comentário