新聞中心
DB2從版本8.2開始,客戶可以為每一個(gè)DB2會(huì)話指定鎖定策略。在以前的版本中,只能通過配置數(shù)據(jù)庫配置參數(shù)LOCKTIMEOUT配置一個(gè)應(yīng)用程序如果不能獲得鎖,等待多長時(shí)間將回滾該事務(wù)。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、成都做網(wǎng)站、新余網(wǎng)絡(luò)推廣、微信小程序開發(fā)、新余網(wǎng)絡(luò)營銷、新余企業(yè)策劃、新余品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供新余建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
單個(gè)會(huì)話現(xiàn)在可以指定鎖定等待方式策略,該策略在會(huì)話需要的鎖定不能立即獲取時(shí)使用。該策略指示會(huì)話是否將采取如下措施:在不能獲取鎖定時(shí)返回 SQLCODE 和 SQLSTATE
◆無限等待鎖定
◆等待為鎖定指定的時(shí)間
◆等待鎖定時(shí)使用 locktimeout 數(shù)據(jù)庫配置參數(shù)的值
鎖定等待方式策略通過新的 SET CURRENT LOCK TIMEOUT 語句指定,此語句更改 CURRENT LOCK TIMEOUT 專用寄存器的值。CURRENT LOCK TIMEOUT 專用寄存器指定在返回指示不能獲取鎖定的錯(cuò)誤之前等待鎖定的秒數(shù)。
雖然 locktimeout 參數(shù)的值適用于所有鎖定,但是此新功能只影響以下鎖定類型:行、表、索引鍵和多維群集(MDC)塊鎖定。
該語句的語法如下:
下面通過一個(gè)例子來講解如何使用這個(gè)功能(我們使用SAMPLE數(shù)據(jù)庫):
1、使用"db2 +c"打開兩個(gè)DB2會(huì)話。(+c 參數(shù)關(guān)閉AUTOCOMMIT)
2、在一個(gè)會(huì)話中執(zhí)行下面的語句:
3、在另一個(gè)會(huì)話中執(zhí)行下面的語句:
由于LOCKTIMEOUT默認(rèn)參數(shù)為-1,所以這個(gè)會(huì)話會(huì)一直等著,沒有結(jié)果返回。如下圖所示:
4、下面我們在第一歌窗口中重復(fù)一樣的操作,只是在第二個(gè)窗口中使用如下語句
我們看到select語句不會(huì)等待,而是直接返回錯(cuò)誤。參見下圖:
您可以自己采取上面的方法測試一下其他的參數(shù)設(shè)置。
該語句可以在程序中和存儲過程中使用。另外這個(gè)功能對于CLI程序來講,還可以方便地通過設(shè)置db2cli.ini文件配置關(guān)鍵字使用,關(guān)鍵字為:
LOCKTIMEOUT = WAIT | NOT WAIT | WAIT seconds | seconds
通過設(shè)置這個(gè)參數(shù),DB2 CLI會(huì)自動(dòng)根據(jù)設(shè)置值發(fā)送一條“SET CURRENT LOCK TIMEOUT”語句到DB2服務(wù)器,該參數(shù)值也可以通過在程序中顯示使用
“SET CURRENT LOCK TIMEOUT”重置。
您可以根據(jù)您應(yīng)用程序的需求,靈活運(yùn)用這條語句設(shè)計(jì)合適的DB2會(huì)話鎖定策略。
【編輯推薦】
- DB2故障處理的思路及一般問題的解決辦法
- 深入DB2代理的工作原理與連接過程
- 利用函數(shù)解決DB2中日期時(shí)間問題
- DBase:DB2必須了解的常用命令及技巧
- 如何在DB2中提高IMPORT性能
當(dāng)前標(biāo)題:DB2數(shù)據(jù)庫為單個(gè)會(huì)話鎖定的技巧
鏈接地址:http://www.fisionsoft.com.cn/article/cocgpsd.html


咨詢
建站咨詢
