Take the 2-minute tour ×
Tridion Stack Exchange is a question and answer site for Tridion developers and administrators. It's 100% free, no registration required.

Created a new question for the sake of simplicity:

Failed upgrade from Tridion 2011 SP1 to Tridion 2013 SP1

We had a SDL Tridion 2011 SP1 HR2 setup running with Oracle 11g R2 (11.2.0.2). We followed the below upgrade path:

  1. Updated the DB Server to patchset 11.2.0.4 as required by SDL Tridion 2013 SP1
  2. Upgraded all Tridion DBs to 2013 SP1 using the PowerShell scripts
  3. Installed Oracle 12c (12.1.0.1 x64) client on the CMS box
  4. 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.


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.

share|improve this question

1 Answer 1

I have seen problems like this before. Here's the thing: During installation of Oracle client, installer checks for .Net version installed on the box. It then installs corresponding components.

In your case, most probably you had .Net 3.5 at that time, so Oracle installer installed components for .Net 3.5. Later, Tridion installer updated your .Net version to .Net 4.5, but Oracle components remained for 3.5. After, you installed 32 bit Oracle client, so now you have components for .Net 4.5, but they are 32bit. To fix the issue you need to reinstall 64bit Oracle client.

share|improve this answer
    
thanks @user978511. Reinstalling 64bit Oracle client did the trick. –  hzahid May 6 at 14:51

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.