Skip to content


Updating SmartConnect Database User account

Levi asked 5 years ago
We have a practice to update service account passwords. We have SmartConnect configured to use a service account when connecting to the database. When we update the password on the database, the SmartConnect application breaks and is non-functional. We change the password back to what it was and the application works again. Poking around the application and the installed directory, this is what I’ve found.
Logged into the application (my account has admin rights), I click Setup, I click the Setup Gear icon, I double click the SmartConnect Dynamics GP Connector. The next window that comes up has specific SQL user credentials entered in. As is, without making any changes, I can click the Default Company and see all of our companies – indicating it currently works. I’ve tried resetting the password, clicked Save, clicked Re-Register Maps. After doing so I do not see any companies. I have our DBA make the password change on the database for the same service account SQL user and the application breaks (I’ll include the error message below) rendering the application non-functioning. I have to kill the task to close it. We then changed the DB password back to what it was and the application works again.
I found a config file in this location: [Drive Letter]:\Program Files (x86)\eOne Solutions\SmartConnect\eOne.SmartConnect.Setup.config. That file contains entries for a server name, database name, user name, and password. I ran the eOne.SmartConnect.Config.exe and found that I can enter in the server name, database name, user name and password. After copying the original config file to another location, I ran the EXE and entered in the server name, database name, user name and password, clicked Test connection and verified that connected. After filling in the Prod and Test tabs with our current information and clicked save, I compared the two config files. Even though the same information was used, the config files are different.
So what I’m looking for: Where do I update the SQL User password for the application to a new password; and have that new password entered in the SQL Database user?
Here’s the error message I receive when the Database User password is changed while the application is open. Note: The application runs on a different server than the database. I’ve also added in ‘UserID’ in place of our actual user ID.
************** Exception Text **************
NHibernate.TransactionException: Begin failed with SQL exception —> System.Data.SqlClient.SqlException: Login failed for user ‘UserID’.
   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, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
   at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   at System.Data.SqlClient.SqlConnection.Open()
   at NHibernate.Connection.DriverConnectionProvider.GetConnection()
   at NHibernate.AdoNet.ConnectionManager.GetConnection()
   at NHibernate.Impl.SessionImpl.get_Connection()
   at NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel isolationLevel)
   — End of inner exception stack trace —
   at NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel isolationLevel)
   at NHibernate.Transaction.AdoTransaction.Begin()
   at NHibernate.Impl.SessionImpl.BeginTransaction()
   at eOne.SmartConnect.Engine.EntityBase.Save()
   at eOne.SmartConnect.Connectors.Microsoft.Dynamics.Gp.MsGpConnector.Save()
   at eOne.SmartConnect.Connectors.Microsoft.Dynamics.Gp.FormMsGpConnector.HandleSave()
   at eOne.SmartConnect.Connectors.Microsoft.Dynamics.Gp.FormMsGpConnector.btnSave_ItemClick(Object sender, ItemClickEventArgs e)
   at DevExpress.XtraBars.BarItem.OnClick(BarItemLink link)
   at DevExpress.XtraBars.BarButtonItem.OnClick(BarItemLink link)
   at DevExpress.XtraBars.BarItemLink.OnLinkClick()
   at DevExpress.XtraBars.BarButtonItemLink.OnLinkClick()
   at DevExpress.XtraBars.BarItemLink.OnLinkAction(BarLinkAction action, Object actionArgs)
   at DevExpress.XtraBars.BarButtonItemLink.OnLinkAction(BarLinkAction action, Object actionArgs)
   at DevExpress.XtraBars.BarItemLink.OnLinkActionCore(BarLinkAction action, Object actionArgs)
   at DevExpress.XtraBars.ViewInfo.BarSelectionInfo.ClickLink(BarItemLink link)
   at DevExpress.XtraBars.ViewInfo.BarSelectionInfo.UnPressLink(BarItemLink link)
   at DevExpress.XtraBars.Controls.CustomLinksControl.OnMouseUp(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at DevExpress.XtraBars.Controls.DockedBarControl.WndProc(Message& msg)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Levi replied 5 years ago

Update: When using the config.exe, I’ve been using DYNAMICS as the database name. When I created a new config using our current server, sql user ID and password with database name SmartConnect, it worked – all maps and user IDs showed up in the application. We updated the password on the DB side, I ran the config.exe again using the new password, and everything looks normal. My issue is resolved.

If you would like to submit an answer or comment, please sign in to the eOne portal.