Home / Digital Learning Strategy

Digital Learning and Assessment Strategy, Consulting, and Research and Development

eCom helps businesses, government, education, and charitable sectors design and realise their digital learning vision. Wherever you are on your digital learning solutions journey, eCom can help you achieve your goals. Our experienced teams are ready to assist you with Learning Technology Solutions Design, L&D Consulting, and Learning Technology Research and Development.

System.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired.  The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement.  This could be because the pre-login handshake failed or the server was unable to respond back in time.  The duration spent while attempting to connect to this server was - [Pre-Login] initialization=9; handshake=15006;  ---> System.ComponentModel.Win32Exception (0x80004005): The wait operation timed out
   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 NPoco.Database.OpenSharedConnectionImp(Boolean isInternal)
   at NPoco.Database.BeginTransaction(IsolationLevel isolationLevel)
   at Umbraco.Core.Scoping.Scope.get_Database() in D:\a\1\s\src\Umbraco.Core\Scoping\Scope.cs:line 330
   at Umbraco.Core.Persistence.Repositories.Implement.DataTypeRepository.PerformGetAll(Int32[] ids) in D:\a\1\s\src\Umbraco.Core\Persistence\Repositories\Implement\DataTypeRepository.cs:line 54
   at Umbraco.Core.Cache.DefaultRepositoryCachePolicy`2.GetAll(TId[] ids, Func`2 performGetAll) in D:\a\1\s\src\Umbraco.Core\Cache\DefaultRepositoryCachePolicy.cs:line 235
   at Umbraco.Core.Persistence.Repositories.Implement.RepositoryBase`2.GetMany(TId[] ids) in D:\a\1\s\src\Umbraco.Core\Persistence\Repositories\Implement\RepositoryBaseOfTIdTEntity.cs:line 192
   at Umbraco.Core.Persistence.Repositories.Implement.DataTypeRepository.PerformGet(Int32 id) in D:\a\1\s\src\Umbraco.Core\Persistence\Repositories\Implement\DataTypeRepository.cs:line 41
   at Umbraco.Core.Cache.DefaultRepositoryCachePolicy`2.Get(TId id, Func`2 performGet, Func`2 performGetAll) in D:\a\1\s\src\Umbraco.Core\Cache\DefaultRepositoryCachePolicy.cs:line 168
   at Umbraco.Core.Persistence.Repositories.Implement.RepositoryBase`2.Get(TId id) in D:\a\1\s\src\Umbraco.Core\Persistence\Repositories\Implement\RepositoryBaseOfTIdTEntity.cs:line 170
   at Umbraco.Core.Services.Implement.DataTypeService.GetDataType(Int32 id) in D:\a\1\s\src\Umbraco.Core\Services\Implement\DataTypeService.cs:line 243
   at Umbraco.Web.PropertyEditors.NestedContentPropertyEditor.NestedContentPropertyValueEditor.FromEditor(ContentPropertyData editorValue, Object currentValue) in D:\a\1\s\src\Umbraco.Web\PropertyEditors\NestedContentPropertyEditor.cs:line 239
   at Our.Umbraco.DocTypeGridEditor.Helpers.DocTypeGridEditorHelper.ConvertValue(String id, String contentTypeAlias, String dataJson)
   at Our.Umbraco.DocTypeGridEditor.Helpers.DocTypeGridEditorHelper.<>c__DisplayClass0_0.<ConvertValueToContent>b__0()
   at Umbraco.Core.Cache.AppCacheExtensions.<>c__DisplayClass5_0`1.<GetCacheItem>b__0() in D:\a\1\s\src\Umbraco.Core\Cache\AppCacheExtensions.cs:line 62
   at Umbraco.Core.Cache.FastDictionaryAppCacheBase.<>c__DisplayClass21_0.<GetSafeLazy>b__0() in D:\a\1\s\src\Umbraco.Core\Cache\FastDictionaryAppCacheBase.cs:line 285
--- End of stack trace from previous location where exception was thrown ---
   at Umbraco.Core.Cache.HttpRequestAppCache.Get(String key, Func`1 factory) in D:\a\1\s\src\Umbraco.Core\Cache\HttpRequestAppCache.cs:line 81
   at Umbraco.Core.Cache.AppCacheExtensions.GetCacheItem[T](IAppCache provider, String cacheKey, Func`1 getCacheItem) in D:\a\1\s\src\Umbraco.Core\Cache\AppCacheExtensions.cs:line 62
   at Our.Umbraco.DocTypeGridEditor.Helpers.DocTypeGridEditorHelper.ConvertValueToContent(String id, String contentTypeAlias, String dataJson)
   at ASP._Page_app_plugins_doctypegrideditor_render_DocTypeGridEditor_cshtml.Execute()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
   at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
   at Umbraco.Web.Mvc.ProfilingView.Render(ViewContext viewContext, TextWriter writer) in D:\a\1\s\src\Umbraco.Web\Mvc\ProfilingView.cs:line 25
   at System.Web.Mvc.HtmlHelper.RenderPartialInternal(String partialViewName, ViewDataDictionary viewData, Object model, TextWriter writer, ViewEngineCollection viewEngineCollection)
   at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
   at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model)
   at ASP._Page_Views_Partials_grid_editors_Base_cshtml.Execute()
ClientConnectionId:1de9e3ae-c18c-4b2b-bb38-06f7384d2ea6
Error Number:-2,State:0,Class:11

Learning Technology Solution Design

eCom has an unparalleled reputation and track record for designing and delivering digital learning and assessment solutions for complex use cases. If you have unique requirements or programme characteristics that can’t be met with off-the-shelf solutions, eCom can help. Our experienced design and development teams can unpack and give clarity to complex requirements to provide creative, attainable, and affordable solutions. With eCom, you can get precisely what you need, and you don’t have to settle for limited feature-sets or implied workforce learning methodologies reflected in fixed system designs. eCom has the systems and tools, the expertise, the flexibility, and the people to make your vision happen.  

Learning and Development Consultancy

Whether you need to design small learning interventions, develop organisation-wide workforce or L&D strategies, or something in between, our experienced team of learning and technology specialists can help. We’ll help you review your current learning capabilities and identify new opportunities. We’ll support you in defining your strategic learning goals and ensuring these are connected to your people and aligned with your business. We can recommend services to address your business issues (short, medium, and long-term) as well as advising on implementation and development of your learning strategy.

Learning Technology Research and Development

At eCom, our commitment to R&D and innovation is part of our DNA. Some examples of recent work R&D work include:

System.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired.  The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement.  This could be because the pre-login handshake failed or the server was unable to respond back in time.  The duration spent while attempting to connect to this server was - [Pre-Login] initialization=9; handshake=15006;  ---> System.ComponentModel.Win32Exception (0x80004005): The wait operation timed out
   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 NPoco.Database.OpenSharedConnectionImp(Boolean isInternal)
   at NPoco.Database.BeginTransaction(IsolationLevel isolationLevel)
   at Umbraco.Core.Scoping.Scope.get_Database() in D:\a\1\s\src\Umbraco.Core\Scoping\Scope.cs:line 330
   at Umbraco.Core.Persistence.Repositories.Implement.DataTypeRepository.PerformGetAll(Int32[] ids) in D:\a\1\s\src\Umbraco.Core\Persistence\Repositories\Implement\DataTypeRepository.cs:line 54
   at Umbraco.Core.Cache.DefaultRepositoryCachePolicy`2.GetAll(TId[] ids, Func`2 performGetAll) in D:\a\1\s\src\Umbraco.Core\Cache\DefaultRepositoryCachePolicy.cs:line 235
   at Umbraco.Core.Persistence.Repositories.Implement.RepositoryBase`2.GetMany(TId[] ids) in D:\a\1\s\src\Umbraco.Core\Persistence\Repositories\Implement\RepositoryBaseOfTIdTEntity.cs:line 192
   at Umbraco.Core.Persistence.Repositories.Implement.DataTypeRepository.PerformGet(Int32 id) in D:\a\1\s\src\Umbraco.Core\Persistence\Repositories\Implement\DataTypeRepository.cs:line 41
   at Umbraco.Core.Cache.DefaultRepositoryCachePolicy`2.Get(TId id, Func`2 performGet, Func`2 performGetAll) in D:\a\1\s\src\Umbraco.Core\Cache\DefaultRepositoryCachePolicy.cs:line 168
   at Umbraco.Core.Persistence.Repositories.Implement.RepositoryBase`2.Get(TId id) in D:\a\1\s\src\Umbraco.Core\Persistence\Repositories\Implement\RepositoryBaseOfTIdTEntity.cs:line 170
   at Umbraco.Core.Services.Implement.DataTypeService.GetDataType(Int32 id) in D:\a\1\s\src\Umbraco.Core\Services\Implement\DataTypeService.cs:line 243
   at Umbraco.Web.PropertyEditors.NestedContentPropertyEditor.NestedContentPropertyValueEditor.FromEditor(ContentPropertyData editorValue, Object currentValue) in D:\a\1\s\src\Umbraco.Web\PropertyEditors\NestedContentPropertyEditor.cs:line 239
   at Our.Umbraco.DocTypeGridEditor.Helpers.DocTypeGridEditorHelper.ConvertValue(String id, String contentTypeAlias, String dataJson)
   at Our.Umbraco.DocTypeGridEditor.Helpers.DocTypeGridEditorHelper.<>c__DisplayClass0_0.<ConvertValueToContent>b__0()
   at Umbraco.Core.Cache.AppCacheExtensions.<>c__DisplayClass5_0`1.<GetCacheItem>b__0() in D:\a\1\s\src\Umbraco.Core\Cache\AppCacheExtensions.cs:line 62
   at Umbraco.Core.Cache.FastDictionaryAppCacheBase.<>c__DisplayClass21_0.<GetSafeLazy>b__0() in D:\a\1\s\src\Umbraco.Core\Cache\FastDictionaryAppCacheBase.cs:line 285
--- End of stack trace from previous location where exception was thrown ---
   at Umbraco.Core.Cache.HttpRequestAppCache.Get(String key, Func`1 factory) in D:\a\1\s\src\Umbraco.Core\Cache\HttpRequestAppCache.cs:line 81
   at Umbraco.Core.Cache.AppCacheExtensions.GetCacheItem[T](IAppCache provider, String cacheKey, Func`1 getCacheItem) in D:\a\1\s\src\Umbraco.Core\Cache\AppCacheExtensions.cs:line 62
   at Our.Umbraco.DocTypeGridEditor.Helpers.DocTypeGridEditorHelper.ConvertValueToContent(String id, String contentTypeAlias, String dataJson)
   at ASP._Page_app_plugins_doctypegrideditor_render_DocTypeGridEditor_cshtml.Execute()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
   at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
   at Umbraco.Web.Mvc.ProfilingView.Render(ViewContext viewContext, TextWriter writer) in D:\a\1\s\src\Umbraco.Web\Mvc\ProfilingView.cs:line 25
   at System.Web.Mvc.HtmlHelper.RenderPartialInternal(String partialViewName, ViewDataDictionary viewData, Object model, TextWriter writer, ViewEngineCollection viewEngineCollection)
   at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
   at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model)
   at ASP._Page_Views_Partials_grid_editors_Base_cshtml.Execute()
ClientConnectionId:1de9e3ae-c18c-4b2b-bb38-06f7384d2ea6
Error Number:-2,State:0,Class:11

Our Digital Learning Strategy solutions address a wide range of business challenges

System.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired.  The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement.  This could be because the pre-login handshake failed or the server was unable to respond back in time.  The duration spent while attempting to connect to this server was - [Pre-Login] initialization=9; handshake=15006;  ---> System.ComponentModel.Win32Exception (0x80004005): The wait operation timed out
   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 NPoco.Database.OpenSharedConnectionImp(Boolean isInternal)
   at NPoco.Database.BeginTransaction(IsolationLevel isolationLevel)
   at Umbraco.Core.Scoping.Scope.get_Database() in D:\a\1\s\src\Umbraco.Core\Scoping\Scope.cs:line 330
   at Umbraco.Core.Persistence.Repositories.Implement.DataTypeRepository.PerformGetAll(Int32[] ids) in D:\a\1\s\src\Umbraco.Core\Persistence\Repositories\Implement\DataTypeRepository.cs:line 54
   at Umbraco.Core.Cache.DefaultRepositoryCachePolicy`2.GetAll(TId[] ids, Func`2 performGetAll) in D:\a\1\s\src\Umbraco.Core\Cache\DefaultRepositoryCachePolicy.cs:line 235
   at Umbraco.Core.Persistence.Repositories.Implement.RepositoryBase`2.GetMany(TId[] ids) in D:\a\1\s\src\Umbraco.Core\Persistence\Repositories\Implement\RepositoryBaseOfTIdTEntity.cs:line 192
   at Umbraco.Core.Persistence.Repositories.Implement.DataTypeRepository.PerformGet(Int32 id) in D:\a\1\s\src\Umbraco.Core\Persistence\Repositories\Implement\DataTypeRepository.cs:line 41
   at Umbraco.Core.Cache.DefaultRepositoryCachePolicy`2.Get(TId id, Func`2 performGet, Func`2 performGetAll) in D:\a\1\s\src\Umbraco.Core\Cache\DefaultRepositoryCachePolicy.cs:line 168
   at Umbraco.Core.Persistence.Repositories.Implement.RepositoryBase`2.Get(TId id) in D:\a\1\s\src\Umbraco.Core\Persistence\Repositories\Implement\RepositoryBaseOfTIdTEntity.cs:line 170
   at Umbraco.Core.Services.Implement.DataTypeService.GetDataType(Int32 id) in D:\a\1\s\src\Umbraco.Core\Services\Implement\DataTypeService.cs:line 243
   at Umbraco.Web.PropertyEditors.NestedContentPropertyEditor.NestedContentPropertyValueEditor.FromEditor(ContentPropertyData editorValue, Object currentValue) in D:\a\1\s\src\Umbraco.Web\PropertyEditors\NestedContentPropertyEditor.cs:line 239
   at Our.Umbraco.DocTypeGridEditor.Helpers.DocTypeGridEditorHelper.ConvertValue(String id, String contentTypeAlias, String dataJson)
   at Our.Umbraco.DocTypeGridEditor.Helpers.DocTypeGridEditorHelper.<>c__DisplayClass0_0.<ConvertValueToContent>b__0()
   at Umbraco.Core.Cache.AppCacheExtensions.<>c__DisplayClass5_0`1.<GetCacheItem>b__0() in D:\a\1\s\src\Umbraco.Core\Cache\AppCacheExtensions.cs:line 62
   at Umbraco.Core.Cache.FastDictionaryAppCacheBase.<>c__DisplayClass21_0.<GetSafeLazy>b__0() in D:\a\1\s\src\Umbraco.Core\Cache\FastDictionaryAppCacheBase.cs:line 285
--- End of stack trace from previous location where exception was thrown ---
   at Umbraco.Core.Cache.HttpRequestAppCache.Get(String key, Func`1 factory) in D:\a\1\s\src\Umbraco.Core\Cache\HttpRequestAppCache.cs:line 81
   at Umbraco.Core.Cache.AppCacheExtensions.GetCacheItem[T](IAppCache provider, String cacheKey, Func`1 getCacheItem) in D:\a\1\s\src\Umbraco.Core\Cache\AppCacheExtensions.cs:line 62
   at Our.Umbraco.DocTypeGridEditor.Helpers.DocTypeGridEditorHelper.ConvertValueToContent(String id, String contentTypeAlias, String dataJson)
   at ASP._Page_app_plugins_doctypegrideditor_render_DocTypeGridEditor_cshtml.Execute()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
   at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
   at Umbraco.Web.Mvc.ProfilingView.Render(ViewContext viewContext, TextWriter writer) in D:\a\1\s\src\Umbraco.Web\Mvc\ProfilingView.cs:line 25
   at System.Web.Mvc.HtmlHelper.RenderPartialInternal(String partialViewName, ViewDataDictionary viewData, Object model, TextWriter writer, ViewEngineCollection viewEngineCollection)
   at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
   at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model)
   at ASP._Page_Views_Partials_grid_editors_Base_cshtml.Execute()
ClientConnectionId:1de9e3ae-c18c-4b2b-bb38-06f7384d2ea6
Error Number:-2,State:0,Class:11

Why choose eCom?

  • Flexibility to address simple to complex digital learning and assessment scenarios
  • Service delivery options designed for your specific needs
  • Long-term customer care and performance mindset
  • Breadth and depth of digital learning experience and expertise
  • Corporate and personal responsibility and social values
  • Trusted and reliable partner with strong company culture