We had a SDL Tridion 2011 SP1 HR2 setup running with Oracle 11g R2 (11.2.0.2). We followed the below upgrade path:
- Updated the DB Server to patchset 11.2.0.4 as required by SDL Tridion 2013 SP1
- Upgraded all Tridion DBs to 2013 SP1 using the PowerShell scripts
- Installed Oracle 12c (12.1.0.1 x64) client on the CMS box
- Upgraded the CMS sotware using the installer
After the upgrade we were getting some Oracle version mismatch errors (see below).
Could not load file or assembly 'Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.
So we also installed the 32 bit client of Oracle 12c on the CMS box. Now we are getting the following errors in the Event Logs on the CMS
The type initializer for 'Oracle.DataAccess.Client.OracleConnectionStringBuilder' threw an exception. The provider is not compatible with the version of Oracle client
We have also installed 64 bit an 32 bit versions of ODAC 12.1.0.1 on the CMS. Please advice on how to proceed.
Thank you.
Today's Update
The above upgrade was on the development environment and now we are doing the same on the test environment before we roll-out the upgrade on the production setup. We have encountered the same error and tried re-installing the Oracle client, but it didn't help. Please see the detailed error message that is showing up in the GUI.
Could not load file or assembly 'Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.
The error detail shows:
> at Tridion.AudienceManagement.DomainModel.Dal.OracleDataSession.OpenConnection(Boolean useTransaction)
> at Tridion.AudienceManagement.DomainModel.Dal.OracleDataSession..ctor(UserContext userContext, Boolean openConnection, Boolean useTransaction)
> at Tridion.AudienceManagement.DomainModel.Dal.DataSession.GetDataSession(UserContext userContext, Boolean openConnection, Boolean useTransaction)
> at Tridion.AudienceManagement.DomainModel.Dal.Oracle.ExtendedDetailsDalOracle.ExtendedDetails()
> at Tridion.AudienceManagement.DomainModel.ExtendedDetailCollection..ctor(UserContext userContext)
> at Tridion.AudienceManagement.DomainModel.UserContext..ctor(String trusteeName)
> at Tridion.AudienceManagement.UI.DataExtenders.TreeExtender.ProcessListSystemAdminResponse(XmlTextReader reader)
> at Tridion.AudienceManagement.UI.DataExtenders.TreeExtender.ProcessResponse(XmlTextReader reader, PipelineContext context)
> at Tridion.Web.UI.Core.Extensibility.Pipeline.<>c__DisplayClass4.<ProcessResponse>b__3(DataExtender extender)
> at System.Collections.Generic.List`1.ForEach(Action`1 action)
> at Tridion.Web.UI.Core.Extensibility.Pipeline.ProcessResponse(XmlTextReader reader, PipelineContext context)
> at Tridion.Web.UI.Core.Extensibility.Pipeline.ProcessResponse(XmlTextReader input, Object[] methodParameterValues)
> at Tridion.Web.UI.Models.CME.General.GetListSystemAdministration()
> at SyncInvokeGetListSystemAdministration(Object , Object[] , Object[] )
> at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
> at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc)
> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)
> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)
> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)
> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)
> at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
It appears as if some of the Audience Management components are looking for Oracle.DataAccess components for 11.2.3.0 which we never installed. We have the Oracle 12c client installed on the CMS (which is listed as supported), so all SDL Tridion components should be referring to the same Oracle client version.
Please help.