4

We have some legacy code which uses the TDSE to do create some components in Tridion. With the upgrade to Web8 this legacy code was working fine throughout the different environments, except one.

One this env we get the following error when Tridion.ContentManager.Interop.TDS.TDSEClass.Initialize() is called.

<tcm:Error ErrorCode="80040000" Category="18" Source="Kernel" Severity="1" xmlns:tcm="http://www.tridion.com/ContentManager/5.0">
    <tcm:Line ErrorCode="80040000" Cause="false" MessageID="4394">
        <![CDATA[Unable to Initialize TDSE object.]]>
        <tcm:Token>RESID_4537</tcm:Token>
        <tcm:Token>TDSE</tcm:Token>
    </tcm:Line>
    <tcm:Line ErrorCode="80040000" Cause="true">
        <![CDATA[ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA]]>
    </tcm:Line>
    <tcm:Details>
        <tcm:CallStack>
            <tcm:Location>Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32,OracleConnection,IntPtr,OpoSqlValCtx*,Object,String,Boolean)</tcm:Location>
            <tcm:Location>Oracle.DataAccess.Client.OracleException.HandleError(Int32,OracleConnection,IntPtr,Object)</tcm:Location>
            <tcm:Location>Oracle.DataAccess.Client.OracleConnection.Open()</tcm:Location>
            <tcm:Location>Tridion.ContentManager.Data.AdoNet.DatabaseUtilities.GetConnection()</tcm:Location>
            <tcm:Location>Tridion.ContentManager.Data.AdoNet.DatabaseUtilities.ExecuteReader(StoredProcedureInvocation,Nullable`1)</tcm:Location>
            <tcm:Location>Tridion.ContentManager.Data.AdoNet.SystemDataMapper.Tridion.ContentManager.Data.ISystemDataMapper.GetAccessToken(String,IEnumerable`1)</tcm:Location>
            <tcm:Location>Tridion.ContentManager.Security.AuthorizationManager.LoadAccessToken(String,IEnumerable`1,IEnumerable`1)</tcm:Location>
            <tcm:Location>Tridion.ContentManager.Security.AuthorizationManager.LoadAccessToken(String,String)</tcm:Location>
            <tcm:Location>Tridion.ContentManager.Session..ctor(String,String)</tcm:Location>
            <tcm:Location>Tridion.ContentManager.BLFacade.SystemFacade.InitializeUserContext(UserContext,String,String)</tcm:Location>
            <tcm:Location>UtilitiesTDS.GetUserContext</tcm:Location><tcm:Location>TDSE.Initialize</tcm:Location>
        </tcm:CallStack>
    </tcm:Details>

  • The Servicename is correctly set in the tnsnames.ora (We compared them to the other environments).
  • Tridion is working fine, it is just the TDSE that is giving this error.

Kr,

Thomas

  • 3
    I guess the thread to follow here is COM and 32 bit oracle client. The CME and the rest of Tridion do not use COM anymore at all, so the fact that Tridion is working doesn't mean that COM and 32 bit connections to Oracle are. – Nuno Linhares Oct 28 '16 at 11:24
  • @NunoLinhares - If Tridion is not using COM then why do we have COM+ service installed with installation of web 8? – Hiren Kaku Oct 28 '16 at 15:25
  • It's the license check software, and legacy code if you use it. – Nuno Linhares Oct 28 '16 at 16:12
1

I would try to isolate this to being a "plain old ORACLE" problem if possible. Try testing the connection with TNSPING etc., as described in the ORACLE Documentation.

If you can reproduce your problem with these tools, then this is something your local ORACLE specialist can focus on without having to worry about Tridion.

BTW It's very easy to miss problems in the tnsnames.ora, as the format is very sensitive, and there can be problems that are not visible with the naked eye. TNSPING is much a much better test.

Edit: As noted in the comments, this is likely to be a 32/64 bit issue. That means you should test with TNSPING from a 32-bit prompt. If you can get that working, there's a good chance the legacy Tridion code will also work.

| improve this answer | |

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.