Home      Mainframe Forum      Mainfarme Tutorials      IBM Manuals      Mainframe Interview Questions      Mainframe Books      IT News     SiteMap     Downloads


     
 
MAINFRAME - TIP OF THE DAY : Q. If there is a situation, where we need to code more than 255 steps in a JOB? A. We need to split jcl into two jcls , at the end of the first jcl check the condition code and initiate the second jcl.

Google
 
Web mainframegurukul.com

Welcome to the mainframegurukul forums.

You are currently viewing our mainframe forums as a guest which gives you limited access to view most discussions, articles. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload your own photos. Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact contact support at admin@mainframegurukul.com


Various Locking mechanism for cursors and other SQL?

 
Post new topic   Reply to topic    mainframegurukul.com Forum Index -> DB2 SQL - DB2 PROGRAMMING
  View previous topic :: View next topic  
Author Message
Chandra Shekar G R
Member


Joined: 06 Apr 2007
Posts: 14

PostPosted: Wed Apr 18, 2007 11:58 pm    Post subject: Various Locking mechanism for cursors and other SQL? Reply with quote

Can somebody help me understand various locking mechanism that DB2 implements for cursors and other SQLs?

On what basis DB2 decides which lock to use?
Back to top
View user's profile Send private message

Veera
Moderator


Joined: 22 Feb 2006
Posts: 111

PostPosted: Thu Apr 19, 2007 2:52 am    Post subject: Reply with quote

Chandra Shekar,

Its very vast and interesting topic , can't be summarized in a note there will be lots of documents in GOOGLE OR DB2 MATERIAL IN OUR IBMMAINFRAMEGURU SITE you can go thru those for more detailed understanding.

Find below some info @ high level to just give the basic understanding.....

what basis DB2 decides which lock to use?


Code:


 BASED ON THE ISOLATION LEVEL PROVIDED IN COMPILATION  ROCESS.

 ISOLATION LEVEL IS ONE OF THE PARAMETER WE PROVIDE DURING THE

 BIND PROCESS.



Locking mechanism in DB2 is enforced thru ISOLATION LEVELS.

There are 4 isolation levels, based on each level DB2 performs

DB locking differently..

1---> CURSOR STABILITY (CS) -> Is the Default Isolation Level.
2---> READ STABILITY (RS)
3---> UNCOMMITTED READ (UR)
4---> REPEATABLE READ (RR)


V.I.M.P NOTE : Isolation Levels act differently for read-only and updatable cursors.
below info just gives generic understanding ....you can refer other manuals
or doc for complete understanding.

CURSOR STABILITY
++++++++++++++++

If we use CS the row currently under fetch will be locked , particular
row that is current cursor position.When the next row is selected from
the result set the lock on the previous row will be released.

During the duration of the lock held by the CS,no other applications
can do any DB operations apart from JUST SELECT.

The lock is held until changes are DB COMMITTED if any.


READ STABILITY
++++++++++++++

This isolation level locks only those rows which satisfies the
QUERY under execution.

We can assume on set of rows which qualifies the query condition ,
i.e. the entire result set.

Accordingly no DB operations are possible apart from read...
But under few scenarios some DB operations are possible
if the LOCKS are shared ...not if its EXCLUSIVE...

UNCOMMITTED READ
+++++++++++++++

Here no rows are locked , its just a read ..DB operations
are possible by other Applications/pgms.

IF some updates are done by other pgms then the UR read rows also
reflects that even before the DB is COMMITTED.

REPEATABLE READ
+++++++++++++++

We can assume this Isolation level to be LOCK @ TABLE'S accessed in QUERY.

if we execute the same QUERY N times during the lock we will get the same
results for each execution.

Similarly at this Isolation level no DB operations except for read are possible
by other Application /pgms.

Unlike UR level in RR level uncommitted data will not be fetch.

Code:


Better way to study is to look into comparison aspects of each level
and prepare a MATRIX with diff attributes , this info can be found in
any doc in various sites .



Thanks,
Veera.
Back to top
View user's profile Send private message
Chandra Shekar G R
Member


Joined: 06 Apr 2007
Posts: 14

PostPosted: Thu Apr 19, 2007 2:00 pm    Post subject: Reply with quote

I understand the locking mechanism with isolation levels. I know there are various other ways of achieving locks through Tablespace or through overrides (LOCK statement) but what is not clear to me is among these locking mechanisms (isolation level, tablespace, override,...) which one takes precedence?

Also you mentioned Cursor Stability as default but I thought Repeatable Read was default. Which one is correct??
Back to top
View user's profile Send private message
Veera
Moderator


Joined: 22 Feb 2006
Posts: 111

PostPosted: Fri Apr 20, 2007 9:48 pm    Post subject: Reply with quote

LOCK TABLE statement locks all tables in the table space. Highest Priority

This command should be used with utmost caution depending on ur Batch Vs Online trails, Because when the command is used it will also prevent the online users from any Updations.

The Lock is held until COMMIT or DEAL LOCATION is done. And locking the TABLE reduces concurrent access to all tables in the table space.

LOCK TABLE IS @ TABLE SPACE WHICH MEANS ALL THE TABLES IN THAT PARTICULAR TABLE SPACE ARE LOCKED.

LOCKING USING ISOLATION LEVELS DOES LOCKS @ THE PAGE LEVEL.

But yes LOCK TABLE will override the locks at the page level( ISOLATION LEVEL) and entire TABLES IN TABLE SPACES are locked.

IT IS NOT JUST A STATEMENT THAT ONE CAN MAKE WHAT WUD BE THE HIERARCHY, AND AS SUCH THERE IS NO COMPATIBILITY , BUT YES THERE IS

INTEROPERABILITY OR DEPENDENCY BETWEEN LOCKS WHEN YOU USE WITH COMBINATION OF ISOLATION LEVEL AND LOCK TABLE SPACES.

MOST IMPORTANTLY IT ALL DEPENDS ON HOW YOU WOULD LIKE TO Parameterize LockS.

LIKE TABLE or NORMAL PARAMETER DECIDES THE LOCKING GRANULARITY , I MEAN THE EXTENT TO WHICH THE LOCKS SHOULD BE HELD.

THERE ARE VARIOUS OTHER ATTRIBUTES WHICH ALSO DETERMINES THE LOCKS PERFORMACNE/HIERACHY/PRECEDNCE

A--> HOW EFFICIENTLY THE USER IS COMMITTING
B--> THE VOLUME OF UNIT OF WORK HE IS PERFORMING THRU A PROGRAM OR APPLICATION
C--> THE RESTART LOGICS


Code:


Well lets deal with the same example

Take an example where you have a table in a table space with excluseive

and you have multiple programs accessing the same table with different

Isolation levels.

WHEN THERE ARE MULTIPLE PROGRAMS WITH DIFF ISOLATION LEVELS

THEN THEY COMPETE WITH  EACH OTHER BASED ON EACH ISOLATION

LEVEL PRECEDENCE AS WE HAVE LEARNT IN THE PREVIOUS POST. BUT

IF U  HAVE A HIGHER PRECEDENT LOCKS LIKE ASSUME TABLE LOCK

THAT  PRECEDES ALL THE OTHER PROGRAMS ISOLATING LEVEL LOCKS.



PLEASE NOTE :

SINCE WE CANT POST LINKS TO OTHER SITES INFO I AM NOT SUPPOSED

TO GIVE LINKS , THERE IS WORLD OF INFO REG THIS TOPIC. AS I SAID

EARLIER ALL THESE TOPICS CANT BE BRIEFED OVER THE POSTS ONLY

ONE CAN TRY TO GIVE THE BASIC UNDERSTANDING TOWARDS IT. IT

DEPENDS ON EACH INDIVIDUAL WITH WHAT EXTENT OF INFO OR

EXPLANATION ONE WILL BE SATISFIED OR UNDERSTANDS THE BASIC

INFO.

CS IS THE DEFAULT ISOLATION LEVEL. NORMALLY IF WE SPECIFICALLY

MENTION THE LEVEL FOR SQL THEN ITS OBVIOUS IT EXECUTES WITH

THAT LEVEL.

Thanks,
Veera.


Last edited by Veera on Fri Apr 20, 2007 10:02 pm; edited 1 time in total
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    mainframegurukul.com Forum Index -> DB2 SQL - DB2 PROGRAMMING All times are GMT + 5 Hours
Page 1 of 1



 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Related topics
 Topics   Replies   Author   Views   Last Post 
No new posts IAM BEGINNER IN JCL ...PLZ HELP ME 3 Guest 13745 Wed Jul 07, 2010 8:20 am
anilsani285 View latest post
No new posts Hi plz help me out 5 Guest 5554 Wed Jul 07, 2010 8:18 am
anilsani285 View latest post
No new posts File-Aid Help 1 Nicholas 8862 Thu Apr 13, 2006 2:12 pm
rangab View latest post
No new posts Search Batch file-aid help 6 frenchman 9768 Tue Mar 28, 2006 5:30 pm
Guest View latest post
No new posts executing java program thru JCL 1 Guest 8018 Fri Mar 17, 2006 10:14 am
arrbee View latest post
 



This widget requires Flash Player 9 or better








Go to top of the page
 

Online ABEND Reference ||  JCL References ||  COBOL References ||  VSAM References ||  Tutorials by Drona Series ||  SQL tutorial ||  BOOKS  ||  DB2 INTERVIEW QUESTIONS ||  COBOL INTERVIEW QUESTIONS  ||  JCL INTERVIEW QUESTIONS ||  JCL2 INTERVIEW QUESTIONS ||  VSAM INTERVIEW QUESTIONS ||  CICS INTERVIEW QUESTIONS  ||  Online tutorials ||  Online ABEND Reference ||  JCL References ||  COBOL References ||  VSAM References ||  Tutorials by Drona Series ||  SQL tutorial ||  BOOKS  ||  SiteMap  ||  Expeditor Tutorial  ||  FILE-AID Tutorial  ||  Changeman Tutorial  ||  COBOL   ||  DB2   ||  JCL  ||  CICS  ||  VSAM  ||  DB2 Interview Questions ( 110 )   || Simple JCL Tutorials  || JCL Tutorial from MainframeGurukul.com   || Simple JCL Tutorial - Chapter1 ;|| Mainframe Forum - Tutorials  || Mainframe Tutorials

Drona Educational Forums - Mainframe Cobol DB2 CICS Board
Powered by phpBB