.-CURRENT-. .-=-.
>>-SET--+---------+--LOCK TIMEOUT--+---+------------>
>--+-WAIT-----------------------+------------><
+-NOT WAIT-------------------+
+-NULL-----------------------+
| .-WAIT-. |
+-+------+-- integer-constant -+
'- host-variable --------------' 關于該命令的具體說明,請參見: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數據庫): 1、使用"db2 +c"打開兩個DB2會話。(+c 參數關閉AUTOCOMMIT) 2、在一個會話中執行下面的語句: connect to sample create table test(id int,name char(10)) commit insert into test values(1,'test') 3、在另一個會話中執行下面的語句: connect to sample select * from test 由于默認LOCKTIMEOUT參數設置為-1,所以這個會話會一直等著,沒有結果返回。如下圖所示:
4、下面我們在第一歌窗口中重復一樣的操作,只是在第二個窗口中使用如下語句 set current lock timeout not wait select * from test 我們看到select語句不會等待,而是直接返回錯誤。參見下圖:
您可以自己采取上面的方法測試一下其他的參數設置。 該語句可以在程序中和存儲過程中使用。另外這個功能對于CLI程序來講,還可以方便地通過設置db2cli.ini文件配置要害字使用,要害字為: LOCKTIMEOUT = WAIT | NOT WAIT | WAIT seconds | seconds 通過設置這個參數,DB2 CLI會自動根據設置值發送一條“SET CURRENT LOCK TIMEOUT”語句到DB2服務器,該參數值也可以通過在程序中顯示使用 “SET CURRENT LOCK TIMEOUT”重置。 您可以根據您應用程序的需求,靈活運用這條語句設計合適的DB2會話鎖定策略。 新聞熱點
疑難解答