2

We are upgrading from Tridion 2013 SP1 to Tridion 8.5 using Legacy. After that, we will rewrite the templates from VB to .Net and migrate to 9.1 and sure we could go for 9.1 at once. But the cost and project needs are the key reason to go for 8.5 first. That said we don't want to use topology manager for publishing but when installing 8.5 it needs the Topology database. so we have the database and the install using legacy option worked fine. everything is working and we can publish it. But when we do properties on a publication and go to the publishing tab, we get an error: UNABLE TO LOAD PUBLICATION MAPPINGS / could not connect to topology manager. In the event log, we end up with the following errors:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) The network path was not found Component: Tridion.TopologyManager.Service Errorcode: 0 User: NT AUTHORITY\NETWORK SERVICE StackTrace Information Details: at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry) at System.Data.SqlClient.SqlConnection.Open() at Tridion.TopologyManager.Data.Storage.RdbmsDataSession.GetConnection() at Tridion.TopologyManager.Data.MsSql.MsSqlDataSession.BuilDbCommand(String comandName) at Tridion.TopologyManager.Data.Storage.RdbmsDataSession.Get[T](String entityName, Int64 version) at Tridion.TopologyManager.Data.Storage.CachedEntitySet1.EnsureUpToDate() at Tridion.TopologyManager.Data.Storage.CachedEntitySet1.GetAll() at Tridion.TopologyManager.Data.Storage.StorageManager.GetEntitySet[T]() at Tridion.TopologyManager.TopologyItem1.GetList() at Tridion.TopologyManager.Service.Controllers.TopologyItemController1.Get() at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary2 arguments, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoveNext()

| improve this question | | | | |
  • Welcome to Tridionstackexchange Roel!, The error messages look like SQL connection issue, Is that Topology database running in the same database server as CMS DB? could you double-check that topology manager database accessible on CMS server. – Velmurugan Dec 4 '19 at 9:08
  • Refer to this link to solve the connection issue stackoverflow.com/questions/18060667/… – Velmurugan Dec 4 '19 at 9:09
1

It turns out that in the web.config of the topology manager the old domain name was still used for the user credentials after encrypting the config and changing the setting things work like a charm. the documentation is a bit confusing on doing this encryption, so for those who want to know the below lines work:

aspnet_regiis.exe -pdf "database" "C:\Program Files (x86)\SDL Web\TopologyManager\web"

aspnet_regiis.exe -pef "database" "C:\Program Files (x86)\SDL Web\TopologyManager\web" -prov TridionRsaProtectedConfigurationProvider

| improve this answer | | | | |
  • Glad that you have figured it out. Please accept the answer so the question becomes closed. – Atila Sos Dec 4 '19 at 23:03
0

This error message is indeed an SQL connection problem.

To solve the SQL connection problem:

  1. Make sure SQL Server Service is running
  2. If a named instance, make sure SQL Server browser service is running
  3. Make sure SQL Server is configured to allowed remote connections
  4. Test port connectivity using TELNET or PowerShell to the server and port (from step from the client CMS machine.
    For example
    • Telnet sql-server-name 1433
    • or PowerShell:

1433 | % { echo ((new-object Net.Sockets.TcpClient).Connect("YourServerName",$)) "server listening on TCP port $" }

  1. Check firewall settings if step 4 or 5 connectivity test fails

I hope it helps.

| improve this answer | | | | |
  • Tried all off that, and it all seems to be okay. – Roel Dec 4 '19 at 12:23

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.