日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ABAP 锁对象与加锁机制

發布時間:2025/3/20 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ABAP 锁对象与加锁机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

激活鎖定對象時,產生的 FM 的名字是什么?

答案:首先要在 ABAP 字典中創建鎖對象,然后才能在 ABAP 程序中設鎖。創建鎖對象時,系統會自動生成兩個 FM 來進行鎖管理。用于設鎖的 FM 為: ENQUEUE_<鎖對象名>。它用于在鎖表(Lock Table)中生成一個鎖項(Lock Entry)。若設鎖不成功的話,就會在 Return 中反映出來。用于釋放鎖的 FM 為:DEQUEUE_<鎖對象名>。它用于從鎖表中刪除一個鎖項。在 ABAP 程序中,只需使用 "CALL FUNCITION ..." 語句就可以調用它們。這兩個鎖 FM 是在 SAP 系統的一個特殊工作進程中執行的,專門進行鎖管理。它運行在一個單獨的服務器上,而該服務器專門用于維護整個 SAP 系統的主鎖表(Central Locak Table)。

有兩種鎖類型:共享鎖——只讀鎖,一個用戶正在讀數據時,阻止其他用戶更改該數據。

????????????????? 獨占鎖——可寫鎖,一個用戶正在修改數據時,阻止其他用戶更改該數據。

?

SAP鎖機制 一、SAP為什么要設置鎖: ?? 1,保持數據的一致性 ???? 如果幾個用戶要訪問同樣的資源,需要找到一種同步訪問的方法去保持數據的一致性。比如說,在航班預訂系統中,需要檢查還有沒有空座位,當檢查的時候,你不想別人修改重要的數據(空座位的數量)。 ?? 2,僅僅用Database鎖是不夠的 ???? 數據庫管理系統物理鎖定了要修改的行記錄,其他用戶要等到數據庫鎖釋放才能訪問這個記錄。 ???? 在SAP系統中,當一個新屏幕顯示的時候會釋放掉Database鎖,因為屏幕的改變會觸發一個隱式的DB COMMIT。如果數據是從好幾個屏幕收集來的話,而且在這段時間內這些數據會分別被鎖定,僅僅用Database鎖就不夠了。 ???? SAP系統在應用服務器層面有一個全局的LOCK TABLE,可以用來設置邏輯鎖來鎖定相關的表條目,并有ENQUEUE工作進程來管理這些鎖。SAP鎖是一種邏輯意義上的鎖,有可能你鎖定的表條目在DATABASE上根本就不存在。


二、鎖對象和其對應的Function Module ???

在SE11里創建鎖對象,自定義的鎖對象都必須以EZ或者EY開頭來命名。一個鎖對象里只包含一個PRIMARY TABLE,可以包含若干個SECONDARY TABLE,鎖的模式有三種:E,S,X。LOCK PARAMETERS里填寫你要根據哪些字段來鎖定表條目。 ???

模式E:當更改數據的時候設置為此模式。 ???

模式S:本身不需要更改數據,但是希望顯示的數據不被別人更改。 ???

模式X:和E類似,但是不允許累加,完全獨占。 ???

如果你在一個程序里成功對一個鎖對象加鎖之后,如果模式為E,其他用戶不能再對這個鎖對象加E、X、S模式的任意一種鎖; ???

如果你在一個程序里成功對一個鎖對象加鎖之后,如果模式為X,其他用戶不能再對這個鎖對象加E、X、S模式的任意一種鎖; ?

?? 如果你在一個程序里成功對一個鎖對象加鎖之后,

如果模式為S,其他用戶不能再對這個鎖對象加E、X模式的鎖,但是可以加S模式的鎖; ?

?? 如果你在一個程序里成功對一個鎖對象加鎖之后,如果模式為E,在這個程序,你還可以再對這個鎖對象加E、S模式的鎖,X模式的不可以。 ?

?? 如果你在一個程序里成功對一個鎖對象加鎖之后,如果模式為X,在這個程序,你不可以再對這個鎖對象加E、X、S模式的鎖。 ?

?? 如果你在一個程序里成功對一個鎖對象加鎖之后,如果模式為S,在這個程序,你還可以再對這個鎖對象加S模式的鎖,

如果沒有別的用戶對其加S模式的鎖,那么你還可以對其加E模式的鎖。X模式的不可以。 ???

當激活鎖對象的時候,系統會自動創建兩個FM,ENQUEUE_<鎖對象名>和DEQUEUE_<鎖對象名>,分別用來鎖定和解鎖。


三、鎖定和解鎖 ??? 當用邏輯鎖來鎖定表條目的時候,系統會自動向LOCK TABLE中寫入記錄。 當調用設置鎖的FM時,LOCK PARAMETERS如果沒有指明,系統會鎖定整個表。當然,LOCK PARAMETER:

CLIENT有點特殊,如果不指定,默認是SY-MANDT;如果指定相應的CLIENT,會鎖定對應CLIENT上的相應的表記錄;如果設置為SPACE,則鎖定涉及所有的CLIENT。 ??? 當邏輯鎖設置失敗后,一般會有兩種例外。一個是EXCEPTION:FOREIGN_LOCK,意思是已經被鎖定了;另一個是EXCEPTION:SYSTEM_FAILURE。 ???

有些情況下,程序中設置成功的邏輯鎖會隱式的自己解鎖。比如說程序結束發生的時候(MESSAGE TYPE為A或者X的時候),使用語句LEAVE PROGRAM,LEAVE TO TRANSACTION,或者在命令行輸入/n回車以后。 ???

在程序的結束可以用DEQUEUE FUNCTION MODULE來解鎖(當然如果你不寫這個,程序結束的時候也會自動的解鎖),這個時候,系統會自動從LOCK TABLE把相應的記錄刪除。使用DEQUEUE FUNCTION MODULE來解鎖的時候,不會產生EXCEPTION。要解開你在程序中創建的所有的邏輯鎖,可以用FM:DEQUEUE_ALL. ?? 四、上鎖的一般步驟 ??? 先上鎖,上鎖成功之后,從數據庫取數據,然后更改數據,接著更新到數據庫,最后解鎖。按照這個步驟,才能保證更改完全運行在鎖的保護機制下。

總結

以上是生活随笔為你收集整理的ABAP 锁对象与加锁机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 先锋影音av资源站 | 91国内精品视频 | 在线看的av| 亚洲午夜剧场 | 狠狠爱夜夜 | 亚洲一区欧美日韩 | 亚洲一区人妻 | 国内精品一区二区三区 | 97国产精品视频人人做人人爱 | 日韩成人av在线播放 | 国产福利精品一区 | 成人网视频| 黄色片xxx | 黑帮大佬和我的365日第二部 | 99er久久| 一区二区三区精品视频在线观看 | 欧美顶级metart裸体全部自慰 | 天天操操操操操 | 免费v片在线观看 | 精品一区二区三区中文字幕 | www.四虎精品 | 亚洲久久久久久 | www.亚洲人| 国产日日干| 日本少妇xxx | 草草视频网站 | 亚洲97| 怡红院成永久免费人全部视频 | 天堂91| 伊人久久大香线蕉综合75 | 日韩不卡在线观看 | 91黄色看片 | 淫视频网站 | 国产美女精品一区二区三区 | 欧美激情 一区 | 天堂一区二区三区四区 | 亚洲精品毛片av | 直接看的av网站 | 九九九九九精品 | 久久公开视频 | 狠狠狠狠狠狠干 | 97视频一区二区三区 | 日韩精品视频在线 | 图片区视频区小说区 | 国产精品第2页 | 男生坤坤放进女生坤坤里 | 国产精品电影在线观看 | 国产永久免费视频 | 九九精品视频在线观看 | 性喷潮久久久久久久久 | 蜜桃视频一区二区三区在线观看 | 国产成人传媒 | 亚洲精品xxxx | 99re久久精品国产 | 捆绑裸体绳奴bdsm亚洲 | 91老女人| 涩涩视频免费看 | 日韩高清黄色 | 高清一区二区三区四区 | 婷婷婷色| 成人片免费视频 | 无码国产精品久久一区免费 | 海角社区id | 国产精品av一区 | 国产一页| 免费成人美女女 | 国产高清在线观看视频 | 无码一区二区三区在线 | 天天色播 | av青青 | 免费在线观看av网址 | 三级免费看 | 日本深夜福利 | 成人a网| 天天射天天操天天干 | 亚洲天堂二区 | 一本之道久久 | 豆花免费跳转入口官网 | 美女搡bbb又爽又猛又黄www | 亚洲中文字幕一区二区在线观看 | 久久精品国产免费看久久精品 | 超碰1997 | 欧洲视频一区二区 | 久久久久久久国产精品视频 | 国产草草浮力影院 | 五月婷婷六月天 | 日韩精品一区二区亚洲av观看 | 亚洲成年人在线观看 | 欧美无马 | 色呦呦在线观看视频 | 97精品超碰一区二区三区 | 一区二区高清在线观看 | 国产成人精品一区二区三区视频 | 99视频网站| 国产精品久久久国产盗摄 | 综合网伊人 | 亚洲一区二区欧美 | 制服下的诱惑暮生 | 美美女高清毛片视频免费观看 |