新聞中心
以下的文章主要描述的是DB2單個會話的鎖定技巧,假如你在實(shí)際操作中DB2單個會話的鎖定技巧,但是你卻不知道對其如何正確的解決,那么以下的文章對你在此學(xué)習(xí)方面而言一定是良師益友。

10年積累的成都做網(wǎng)站、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有紅塔免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
DB2從版本8.2開始,客戶可以為每一個DB2會話指定鎖定策略。在以前的版本中,只能通過配置數(shù)據(jù)庫配置參數(shù)LOCKTIMEOUT配置一個應(yīng)用程序如果不能獲得鎖,等待多長時間將回滾該事務(wù)。
DB2從版本8.2開始,客戶可以為每一個DB2會話指定鎖定策略。在以前的版本中,只能通過配置數(shù)據(jù)庫配置參數(shù)LOCKTIMEOUT配置一個應(yīng)用程序如果不能獲得鎖,等待多長時間將回滾該事務(wù)。
DB2單個會話現(xiàn)在可以指定鎖定等待方式策略,該策略在會話需要的鎖定不能立即獲取時使用。該策略指示會話是否將采取如下措施:在不能獲取鎖定時返回 SQLCODE 和 SQLSTATE
無限等待鎖定
等待為鎖定指定的時間
等待鎖定時使用 locktimeout 數(shù)據(jù)庫配置參數(shù)的值
鎖定等待方式策略通過新的 SET CURRENT LOCK TIMEOUT 語句指定,此語句更改 CURRENT LOCK TIMEOUT 專用寄存器的值。CURRENT LOCK TIMEOUT 專用寄存器指定在返回指示不能獲取鎖定的錯誤之前等待鎖定的秒數(shù)。
雖然 locktimeout 參數(shù)的值適用于所有鎖定,但是此新功能只影響以下鎖定類型:行、表、索引鍵和多維群集(MDC)塊鎖定。
該語句的語法如下:
- .-CURRENT-. .-=-.
- >>-SET--+---------+--LOCK TIMEOUT--+---+------------>
- >--+-WAIT-----------------------+------------><
- +-NOT WAIT-------------------+
- +-NULL-----------------------+
- | .-WAIT-. |
- +-+------+-- integer-constant -+
- '- host-variable --------------'
關(guān)于該命令的詳細(xì)說明,請參見:http://publib.boulder.ibm.com/infocenter/db2help/topic
- /com.ibm.db2.udb.doc/admin/r0011874.htm?resultof=
- %22%73%65%74%22%20%22%63%75%72%72%65%6e%74%22%2
- 0%22%6c%6f%63%6b%22%20%22%74%69%6d%65%6f%75%74%22%20
下面通過一個例子來講解如何使用這個功能(我們使用SAMPLE數(shù)據(jù)庫):
1、使用"db2 +c"打開兩個DB2會話。(+c 參數(shù)關(guān)閉AUTOCOMMIT)
2、在一個會話中執(zhí)行下面的語句:
- connect to sample
- create table test(id int,name char(10))
- commit
- insert into test values(1,'test')
3、在另一個會話中執(zhí)行下面的語句:
- connect to sample
- select * from test
由于默認(rèn)LOCKTIMEOUT參數(shù)設(shè)置為-1,所以這個會話會一直等著,沒有結(jié)果返回。如下圖所示:
4、下面我們在***歌窗口中重復(fù)一樣的操作,只是在第二個窗口中使用如下語句
- set current lock timeout not wait
- select * from test
我們看到select語句不會等待,而是直接返回錯誤。參見下圖:
您可以自己采取上面的方法測試一下其他的參數(shù)設(shè)置。
該語句可以在程序中和存儲過程中使用。另外這個功能對于CLI程序來講,還可以方便地通過設(shè)置db2cli.ini文件配置關(guān)鍵字使用,關(guān)鍵字為:
- LOCKTIMEOUT = WAIT | NOT WAIT | WAIT seconds | seconds
通過設(shè)置這個參數(shù),DB2 CLI會自動根據(jù)設(shè)置值發(fā)送一條“SET CURRENT LOCK TIMEOUT”語句到DB2服務(wù)器,該參數(shù)值也可以通過在程序中顯示使用
“SET CURRENT LOCK TIMEOUT”重置。
您可以根據(jù)您應(yīng)用程序的需求,靈活運(yùn)用這條語句設(shè)計(jì)合適的DB2會話鎖定策略。以上的相關(guān)內(nèi)容就是對DB2單個會話鎖定技巧的介紹,望你能有所收獲。
分享名稱:對DB2單個會話的鎖定技巧描述
標(biāo)題URL:http://www.5511xx.com/article/cdcgshs.html


咨詢
建站咨詢
