Skip to main content

Spring Data JPA - Pessimistic Locking

 When we use Pessimistic Locking?







While Doing this operation it might be this salary component may be get updated by different user then we might get wrong report 

Because there is time leg between 2 queries so might be it get updated by different user. 

Because line no 20 gets executed and data get loaded into memory and mean time another user can update this data and that data will not reflect in the loaded data so our report might not be correct. 

But this 25 line get executed then it might get different result because while executing this record data get updated 



So here we want both the queries get executed in the same transaction and you don't want any of data read in the first query in line 20 modified by any user in the duration of this transaction So we can lock the transaction as follow 




The user can read the data but he can't modify the data because it read lock it will not modify the data until this transaction is executed and this lock gets a release and this lock will be released once this method execution get completed




Take an example we are trying to get the data so we keep the READ lock on this method line 18 but
while reading a another use is trying to update the data in line number 30 so hibernate will check if any lock on this data by another use then hibernate will wait until this lock get realised once the lock get realised it will perform the right operation if suppose in case lock is not released until time out then hibernate will through an exception like PessimisticLockingFailureException 

 














Comments

Popular posts from this blog

Digital Marketing

What actually is Digital Marketing? This post will help you understand the insights of Digital Marketing What is Digital Marketing? Digital Marketing is an integral part of the overall marketing strategies of any business. It basically covers the advertisement of products/services/business/brand via digital channels. The digital channels could be of any type like websites, search engines, social media, emails, SMS, and MMS. In case if you're using all these digital channels for the marketing, make sure to have all the statistics & workflow of your campaigns via marketing automation. What are the types of digital marketing? Well, there are 6 core digital marketing types: Search Engine Optimization (SEO) : Search Engine Optimization is nothing but a long-term process of improving your website rankings on search engine results pages (SERPs), which in turn has a wide range of tactics & strategies to implement. Although there is no specific method or a  spec

Changing the Time Zone on Amazon Linux Ec2 Instance

Amazon Linux instances are set to the UTC (Coordinated Universal Time) time zone by default, but you may wish to change the time on an instance to the local time or to another time zone in your network. Important These procedures are intended for use with Amazon Linux. For more information about other distributions, see their specific documentation. To change the time zone on an instance Identify the time zone to use on the instance. The  /usr/share/zoneinfo  directory contains a hierarchy of time zone data files. Browse the directory structure at that location to find a file for your time zone. [ec2-user ~]$ ls /usr/share/zoneinfo Africa Chile GB Indian Mideast posixrules US America CST6CDT GB-Eire Iran MST PRC UTC Antarctica Cuba GMT iso3166.tab MST7MDT PST8PDT WET Arctic EET GMT0 Israel Navajo right W-SU ... Some of the entries at this location are directo

How do I change the time zone of my Amazon RDS database instance?

As we know bydefault time in the format of UTC in mysql.We can set local time zone to our AWS RDS Instance for our application. or any other time zone prefared Cloud Based Website Hosting Service Provider Steps 1: Go to Services and Select RDS Now to change time zone we have to change "Parameter Group" in left side that is associated with DB instance first we can check default Parameter Group for our instance is Parameter group default.mysql5.7  ( in-sync ) like this. So we have to change the time zone in this Parameter Group.  now open that parameter group (default.mysql5.7)  and click on edit parameter. then search for time_zone (because we want to change it.) then we have to change time_zone only by default it is engine-default (that is utc)  we have to select Asia/Calcutta.  More information we can ref.  https://aws.amazon.com/premiumsupport/knowledge-center/rds-change-time-zone/