6

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.


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.

  • I suggest opening a ticket with Tridion Support and refer them to this question. – Nickoli Roussakov Aug 24 '14 at 13:57
  • possible duplicate of Failed upgrade from SDL Tridion 2011 SP1 HR2 to Tridion 2013 SP1 You have asked the same question in May! – Andrey Marchuk Aug 25 '14 at 7:16
  • @NickoliRoussakov Thanks. I've already contacted SDL Tridion support. – Husain Zahid Aug 25 '14 at 12:39
  • @user978511 I created this new questions to avoid confusion. The other question was related to the same issue on our development environment and this one is focussed on our test environment. I mentioned that the fix suggested in the other post did not help resolve the issue for this one. – Husain Zahid Aug 25 '14 at 12:40
  • Found the answer? – robrtc Nov 26 '14 at 12:44
1

I suggest uninstall all Oracle Client on your server and check if there are any oracle.dataaccess.dll on GAC. (c:\windows\assembly and Microsoft.NET\assembly...)

If you installed Oracle Client before to install .NET Framework 4 the DLL will be on c:\windows\assembly.

I had several problems with Oracle client. For your version, Oracle 11.2.0.4 I use the next version:

-ODAC112030_x64 -ODTwithODAC112012

1

I have experienced the exact same error using Oracle client db and mine was due to a bad Oracle Client version and another time with a bad installation.

Cannot Publish after Data Dump | Error: Could not load file or assembly 'Oracle.DataAccess

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.

I would not install your 32-bit unless you are using tridion legacy mode.

Given all of the above - have you verified the connectivity to your db?

  1. Open command prompt
  2. c:\windows>sqlplus
  3. Enter user-name: sdladmin/password@service
  4. Connected to: … not shown …

SQL> select sysdate from dual;

Ensure you are selecting all components in the installation as shown below.

enter image description here

Otherwise, check your Oracle version.

Here is the link to the Oracle version I was running for 2 years in Dev - Production as well as many poc env's I have spun up with SDL Tridion 2013.

http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

enter image description here

Personally, I would remove everything Oracle and re-install.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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