OSKI solutions has become Umbraco Registered Partner

Technologies

Technologies
Cutting-edge tech stack for robust software solutions.

Read more

ASP.NET C# .NET React Vue.js Umbraco Node.js

Solutions

Solutions
The solutions we offer are competitive compared to other companies in our niche

Read more

API integration HRM solutions SAAS ETL platform
Progressive Web Apps
Progressive web apps development
Software Development Company
Finance software Mobile software CRM Software

Cooperation

Cooperation
We offer outsourcing, outstaffing for streamlined operations with dedicated professionals.

Read more

Outstaffing Outsourcing Support Plans
Portfolio
Blog
Contact us

  • OSKI digital agency>
  • Blog>
  • Umbraco 8.15 upgrade

Update to Umbraco 8.15

Kyrylo Osadchuk
By Kyrylo Osadchuk
Published: July 23, 2021
2 min read
  • Facebook
  • LinkedIn
  • Twitter
Umbraco 8.15 upgrade

Our client has a CRM system that was built on top of Umbraco 8.

This system has grids on the front end which allows CRUD operation.

Since the system, is used by a lot of users updates to the latest Umbraco version is needed on a daily basis.

We perform update to latest 8.15 version and faced deadlocks when we try to save few records in a same time.

Save method return such message

"Transaction (Process ID 92) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction."

Сlient code use such method to obtain current logged user name: 

MembershipUser user = Membership.GetUser();
var groups = FrontendHelper.GetRoles(user);

 

When we look inside Membership.GetUser method in Umbraco MembershipHelper we found that GetUser always perform last login update, if guieried user is online.

 

if (userIsOnline)
{
// when upgrading from 7.2 to 7.3 trying to save will throw
if (UmbracoVersion.Current >= new Version(7, 3, 0, 0))
{
var now = DateTime.Now;
// update the database data directly instead of a full member save which requires DB locks
MemberService.SetLastLogin(username, now);
member.LastLoginDate = now;
member.UpdateDate = now;
}

}

I didn't analyze code changes that cause deadlocks on 8.15 but not on 8.6 but we just removed expensive Db saves when we need to  obtain a user name, taking it from Identity:

username = System.Web.HttpContext.Current.User.Identity.Name;

So be careful when you use some common methods too often.

And this is a story about QA importance in every minor update.

So if you need some Umbraco support or updates just send us a message.

 

Tags: Umbraco

Don’t forget to share this post!

Our services

  • Umbraco
  • API integration
  • Custom CRM/HRM solutions
  • Modern web - React/Vue/Angular

Contacts

Kaupmehe tn 7-120, Tallinn, Estonia

+380 50 150 71 92 Contact OSKI by email
Logotype

2023 - This site is running Umbraco version 10.4.0.0. Privacy Policy