Options

Three tier SQL error with RTC

dtisdalldtisdall Member Posts: 4
edited 2009-04-29 in NAV Three Tier
I am having a little trouble using the RTC on a machine not the nav server. To answer the obvious questions I followed the walkthrough and I have set up kerbrose delegation.

When I try to run the RTC I get a message stating that "The login failed when connecting to SQL server SQL02"
RTC runs fine on the navserver box.

My environment consists of a terminal server where the RTC is installed, a nav server running the navserver service (under an AD account called navservice) and an SQL cluster that serves the entire organisation. The only stray from the setup guide is that my SQL engine is running under an AD account called sqlengine.

Anyone seen this?

I get the following error in the event log:

Type: Microsoft.Dynamics.Nav.Types.Exceptions.NavSCOpenConnectionException
SuppressMessage: False
FatalityScope: None
Message: The login failed when connecting to SQL Server sql02.
StackTrace:
at Microsoft.Dynamics.Nav.Client.ServiceConnection.OpenConnection()
at Microsoft.Dynamics.Nav.Client.Forms.ChangeServiceTierForm.ConnectToUrl(String url)
Source: Microsoft.Dynamics.Nav.Client.ServiceConnection
Type: Microsoft.Dynamics.Nav.Types.NavDatabasePasswordException
SuppressMessage: False
FatalityScope: None
Message: The login failed when connecting to SQL Server sql02.
StackTrace:
at Microsoft.Dynamics.Nav.Client.ServiceConnection.OpenConnectionInternal(ConnectFailedEventArgs connectFailedArg)
at Microsoft.Dynamics.Nav.Client.ServiceConnection.OpenConnection()
Source: Microsoft.Dynamics.Nav.Client.ServiceConnection
Type: Microsoft.Dynamics.Nav.Types.NavDatabasePasswordException
SuppressMessage: False
FatalityScope: None
Message: The login failed when connecting to SQL Server sql02.
StackTrace:
at Microsoft.Dynamics.Nav.Runtime.NavRuntimeAdapter.ErrorHandler(Int32 errorCode, Int32 errorNumber, Int32 moduleNumber, String errorText)
at Microsoft.Dynamics.Nav.Runtime.NativeMethods.AdapterOpenConnection(IntPtr databaseHandle, String serverName, NetProtocolType netType, String databaseName, Int32 clientConnectionType, DeadConnectionHandler deadConnectionHandler)
at Microsoft.Dynamics.Nav.Runtime.NavConnection.Open()
at Microsoft.Dynamics.Nav.Service.NSService.CreateConnection(NavEnvironment parent, Guid connectionId, ConnectionType connectionType)
at Microsoft.Dynamics.Nav.Service.NSService.<>c__DisplayClass4.<OpenConnection>b__3(Connection connection)
at Microsoft.Dynamics.Nav.Service.NSService.ExecuteOperation[T](String operationName, ServiceOperation`1 operation, Connection connection, WindowsIdentity impersonationIdentity)
Source: Microsoft.Dynamics.Nav.Ncl
Additional Exception
Type: Microsoft.Dynamics.Nav.Types.NavCloseConnectionException
Message: The connection to the server has been lost. The application will close.
StackTrace:
at Microsoft.Dynamics.Nav.Client.ServiceConnection.CloseConnection()
at Microsoft.Dynamics.Nav.Client.ServiceConnection.CleanupConnection(Exception originatingException)
Source: Microsoft.Dynamics.Nav.Client.ServiceConnection
Type: Microsoft.Dynamics.Nav.Types.NavConnectionLostException
Message: The connection to the server has been lost. The application will close.
StackTrace:
at Microsoft.Dynamics.Nav.Client.ConnectionStateManager.HandleCommunicationFailure[T](CallServerMethod`1 callServerMethod, Exception e, Int32 messageNumber)
at Microsoft.Dynamics.Nav.Client.ConnectionStateManager.CallServer[T](CallServerMethod`1 callServerMethod)
at Microsoft.Dynamics.Nav.Client.ServerInvocationHandler.CallServer[T](CallServerMethod`1 callServerMethod)
at Microsoft.Dynamics.Nav.Client.ServiceConnectionBase.CallServer[T](CallServerMethod`1 callServerMethod)
at Microsoft.Dynamics.Nav.Client.ServiceConnectionBase.CallServer(CallServerMethod callServerMethod)
at Microsoft.Dynamics.Nav.Client.ServiceConnection.CloseConnection()
Source: Microsoft.Dynamics.Nav.Client.ServiceConnection
Type: System.ServiceModel.FaultException
Action: http://schemas.microsoft.com/net/2005/1 ... cher/fault
Message: The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs.
StackTrace:

Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Microsoft.Dynamics.Nav.Types.INavService.CloseConnection()
at Microsoft.Dynamics.Nav.Client.ServiceConnection.<CloseConnection>b__3()
at Microsoft.Dynamics.Nav.Client.ServiceConnectionBase.<>c__DisplayClass1.<CallServer>b__0()
at Microsoft.Dynamics.Nav.Client.ServerCallContext`1.InvokeCall(Object instance)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)

Exception rethrown at [1]:
at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
at System.Threading.WaitCallback.EndInvoke(IAsyncResult result)
at Microsoft.Dynamics.Nav.Client.ServerInvocationManager.CallServer[T](CallServerMethod`1 callServerMethod)
at Microsoft.Dynamics.Nav.Client.ServerInvocationHandler.CallServer[T](CallServerMethod`1 callServerMethod)
at Microsoft.Dynamics.Nav.Client.ConnectionStateManager.CallServer[T](CallServerMethod`1 callServerMethod)
Source: mscorlib

Comments

  • Options
    kinekine Member Posts: 12,562
    What about possible firewalls?
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • Options
    JoeKJoeK Member Posts: 53
    On which account is your Service Tier running?
  • Options
    dtisdalldtisdall Member Posts: 4
    Service tier is running under navservice, SQL is running under SQLEngine.

    It's all server 2008 so the Window firewall exceptions are created automatically.
  • Options
    kinekine Member Posts: 12,562
    dtisdall wrote:
    Service tier is running under navservice, SQL is running under SQLEngine.

    It's all server 2008 so the Window firewall exceptions are created automatically.

    Have you checked that they really were created?
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • Options
    dtisdalldtisdall Member Posts: 4
    Yes, I wouldn't be getting messages from SQL if RTC wasn't able to reach the nav server.

    They are there.
  • Options
    kinekine Member Posts: 12,562
    which permissions have the account navservice on the MS SQL?
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • Options
    ara3nara3n Member Posts: 9,256
    I'm getting the same error on one of my installation.

    no firewall. The AD user is Sysadmin on sql server and Admin on both account.s
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • Options
    mattshahmattshah Member Posts: 2
    Not sure if you were able to resolve this or not. But the MSDN http://msdn.microsoft.com/en-us/library/dd301254.aspx or the NAV Install docs are not to clear on how the delegation should be setup. I ran into this issue at a client site and was able to resolve after calling MBS for support. Main key was instead of making the NAV Server delegate make the actaul domain user the delegate since you are setting up the SPN using the domain\user and if NAV Server Service is using domain login. Also when setting your SPN for SQL Server IntanceName leave the ServerName part out, so for NAVSQL_MSSQLSvc should be just MSSQLSvc.

    Let me know if this helps.
  • Options
    ara3nara3n Member Posts: 9,256
    Are you sure it should be just MSSQLSvc instead of just NAVSQL?

    Could list all the setspn you have to run?
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • Options
    mattshahmattshah Member Posts: 2
    Here are the spn's I setup. First one is using FQDN and next one just the NetBios Name. Third is for SQL Server.

    setspn -A NAVAPP_DynamicsNAV/NAVAPP.natlgolf.local:7046 natlgolf\navacct
    setspn -A NAVAPP_DynamicsNAV/NAVAPP:7046 natlgolf\navacct
    setspn -A MSSQLSvc/NAVSQL.yourDomain.yourCompany.com:1433 natlgolf\navacct

    Yes I have my SQL Server running with the NAVAcct because it is dedicated. Other wise I guess you would just use the proper one. But don't forget to turn on delegation for that account as well.
Sign In or Register to comment.