Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Informix
Expertise: Beginner
Apr 24, 2000

Deadlock Timeouts

Question:
I have two questions:

1. How can I determine what the server's lock mode currently is (e.g. WAIT, NO WAIT, etc.), without actually setting it at the same time?

2. How do I change these or any other settings on the server and/or clients so that "deadlock timeout" errors stop occurring?

Answer:
The lock mode is settable by database connection. You can use the SET LOCK MODE TO WAIT statement in SQL to set the mode at almost any time. You can view the lock mode by session by running the following command:

onstat -g sql
I'd do several things in your situation. First, set the lock modes to wait, with no number after it. This makes the modes wait forever. Then, find out what table is getting all of those updates. Try changing that page to row locking instead of page locking. Then, make sure your code is locking at the latest possible time, holding the lock for the minimum amount of time, and then promptly releasing the locks. If you have to go into the code, make sure it can detect an error, wait a short time, and try the code again. That, combined with short locking periods and row locks, should help your contention problems.
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap