亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JBPM源碼分析(一)---數據庫表主鍵ID的產生機制

2019-11-18 11:21:30
字體:
來源:轉載
供稿:網友

        JBPM數據庫中每一個表都有一個主鍵-ID(Long類型)。這個ID是可以由用戶自己產生,也可以由JBPM產生。這個數值在所有表的ID中是唯一的。用戶通過設定jbpm.id.generator屬性來設定id產生的類。

    (一)JBPM ID生成基本原理和函數

        JBPM中ID產生的基本原理是:用表JBPM_SEQUENCEBLOCK存儲當前可用的ID值,JBPM需要使用ID時,從數據庫中取得這個ID,然后增加一定的數量作為當前可用ID值,并存儲在數據庫中。JBPM的ID可以用于服務器集群的情況。hibernate中產生ID的函數IncrementGenerator,原理與JBPM產生ID相似,但不能應用到集群的情況。

        JBPM_SEQUENCEBLOCK表有兩個字段ID和NextID,前者為主鍵,表示當前節點在集群中的ID號碼,后者為當前節點可以使用數據段的最小數。表由類org.jbpm.persistence.hibernate.SequenceBolck代表,org.jbpm.persistence.hibernate.SequenceBolckIdGenerator維護。

SequenceBolckIdGenerator主要函數:

        (1)   public SequenceBlockIdGenerator(JbpmConfiguration jbpmConfiguration)

初始化,包括初始化nodeId 和blockSize變量。nodeId指明當前的節點在集群中的Id號(0-65535),用戶可以通過jbpm.id.nodeId設定,缺省值是0。BlockSize指明當前節點使用長整形數段的一個數據塊大小,用戶可以通過jbpm.id.bolckSize設定,缺省值是100。

        (2)  public long getNextId() //得到當前可用ID,JBPM使用它得到ID

                {

                return getNextId(sessionFactory, nodeId, blockSize);

                  }

    (3)public static synchronized long getNextId(SessionFactory sessionFactory,

                                            long nodeId, long blockSize)

    最重要的函數,用于計算當前可用ID。

    (二)ID產生算法

    基本思路:將1-Long.MaxValue范圍內數,按大小blockSize*MaxNodes分段,然后再將每一段按blockSize大小分成MaxNodes塊,各節點按照節點號分塊使用,如節點號為0的只能使用第一塊,節點號為1的使用第二塊,依次類推。MaxNodes為當前集群中的節點總數,為65535。

取值算法:

        (1)       取出節點當前可以使用數塊的首數(塊的最小數);

        (2)       首數+blockSize×NodeId(節點號碼,0-65535)為當前可以使用的Id(nextId);

        (3)       nextId+blockSize-1為當前可以使用的最后一個Id(lastId)

        (4)       調用getNextId()函數時,假如nextId<=lastId,則返回nextId,然后將nextId++;否則取出下一數據塊進行1-3的計算。

    說明:

        (1)       讀取一次數據庫,可以使用blockSize個Id,不用每次使用ID都讀取一次數據庫。

        (2)       表的NextID字段存儲的是當前可使用塊而不是使用過塊的首數。每個節點使用塊的首數按節點號碼分別存儲。

        (3)       對于每一個數塊,每個節點只使用其中一部分,范圍是(首數+blockSize×NodeId)-(首數+blockSize×(NodeId+1)-1),從而保證了每個節點使用的ID值在數據庫中是唯一的。

    (三)數據庫連接Session

    為了保證產生ID的唯一性,JBPM要求對表JBPM_SEQUENCEBLOCK進行操作的數據庫Session必須是獨立的,不能用于其它的數據庫操作。假如JBPM使用數據庫連接池,則必須要設定jbpm.id.generator.configuration屬性,提供進行數據庫直接連接的hibernate配置文件。默認情況下,JBPM使用一個全局靜態Session進行除JBPM_SEQUENCEBLOCK以外表的操作,而對JBPM_SEQUENCEBLOCK表進行操作的Session是在類SequenceBolckIdGenerator初始化時臨時建立的。.



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91黑丝高跟在线| 欧美伦理91i| 久久国产精品免费视频| 亚洲精品福利资源站| 国产精品午夜一区二区欲梦| 欧美日韩裸体免费视频| 在线观看中文字幕亚洲| 91香蕉国产在线观看| 国产视频精品va久久久久久| 欧美黑人巨大xxx极品| 综合欧美国产视频二区| 亚洲精品videossex少妇| 日韩av中文字幕在线免费观看| 国产精品久久久久久久久久久久久| 欧美中文在线字幕| 精品久久久久久久中文字幕| 国产亚洲美女精品久久久| 亚洲a级在线播放观看| 国产精品96久久久久久又黄又硬| 久久人人爽人人爽人人片亚洲| 久久夜色精品国产亚洲aⅴ| 国产精品久久婷婷六月丁香| 欧美在线国产精品| 国产精品免费视频xxxx| 亚洲专区国产精品| 在线观看日韩欧美| 日韩欧美a级成人黄色| 国产精品午夜一区二区欲梦| 亚洲va欧美va在线观看| 国产精品久久久久久av| 成人黄色av网站| 亚洲国产成人久久综合一区| 日本中文字幕久久看| 狠狠久久五月精品中文字幕| 成人日韩av在线| 中文字幕在线看视频国产欧美在线看完整| 国产一区二区三区免费视频| 亚洲成人精品久久久| 亚洲一区二区三区sesese| 91精品久久久久久久久中文字幕| 欧美成人免费视频| 亚洲丝袜在线视频| 97国产精品免费视频| 国产日产久久高清欧美一区| 欧美国产日韩一区二区在线观看| 综合国产在线视频| 欧美激情精品久久久久久大尺度| 日韩国产高清污视频在线观看| 国模视频一区二区三区| 国产精品吊钟奶在线| 亚洲最大在线视频| 欧美在线一级va免费观看| 97国产真实伦对白精彩视频8| 欧美性xxxxxxxxx| 日韩免费在线电影| 青草青草久热精品视频在线网站| 欧美日韩不卡合集视频| 国产精品久久久久久久av电影| 91亚洲午夜在线| 亚洲缚视频在线观看| 少妇精69xxtheporn| 欧洲精品在线视频| 久久久久久亚洲精品中文字幕| 欧美色视频日本版| 国产精品免费视频xxxx| 国产精品第8页| 国产成人精品久久二区二区91| 成人午夜在线观看| 久久影视电视剧凤归四时歌| 成人写真视频福利网| 久久久久在线观看| 国产精品最新在线观看| 国产精品男人爽免费视频1| 日韩一区二区精品视频| 都市激情亚洲色图| 亚洲视频日韩精品| 国产一级揄自揄精品视频| 欧美极品少妇与黑人| 久久亚洲综合国产精品99麻豆精品福利| 国语对白做受69| 这里只有视频精品| 精品视频www| 亚洲 日韩 国产第一| 国产欧美精品一区二区三区介绍| 激情av一区二区| 日韩在线精品视频| 久久久亚洲网站| 亚洲人成网在线播放| 一本色道久久综合狠狠躁篇怎么玩| 国产亚洲人成网站在线观看| 欧美精品九九久久| 九九精品视频在线观看| 亚洲欧美福利视频| 亚洲香蕉av在线一区二区三区| 国产性猛交xxxx免费看久久| 欧美精品久久久久| 免费91在线视频| 精品国产精品三级精品av网址| 久久亚洲精品一区二区| 热久久免费视频精品| 久久久久久国产免费| 国产在线视频不卡| 久久亚洲综合国产精品99麻豆精品福利| 欧美日韩中国免费专区在线看| 欧美性猛交xxxxx免费看| 欧美影院久久久| 欧美多人乱p欧美4p久久| 久久噜噜噜精品国产亚洲综合| 久久久精品影院| 欧美激情18p| 高清欧美性猛交xxxx黑人猛交| 久久九九精品99国产精品| 国产成人a亚洲精品| 国产日本欧美一区二区三区| 97碰碰碰免费色视频| 国产视频久久网| 久久久久久久久久久久av| 欧美国产日韩视频| 国产精品久久77777| 欧美日韩国产在线看| 成人黄色av播放免费| 国产成人精彩在线视频九色| 欧美制服第一页| 久久久久久久激情视频| 欧美视频国产精品| 久久视频国产精品免费视频在线| 亚洲缚视频在线观看| 国产精品偷伦免费视频观看的| 亚洲精品www久久久久久广东| 国产999精品久久久| 日本乱人伦a精品| 国产美女直播视频一区| 久久久久久久亚洲精品| 日韩欧美在线字幕| 亚洲乱码一区二区| 在线播放精品一区二区三区| 久久免费成人精品视频| 欧美黑人一区二区三区| 国内精品久久久久久中文字幕| 97国产真实伦对白精彩视频8| 国产欧美精品在线播放| 久久中文字幕国产| 亚洲免费中文字幕| 久久精品久久精品亚洲人| 欧美精品videos性欧美| 精品久久久久久中文字幕一区奶水| 亚洲欧美在线x视频| 啊v视频在线一区二区三区| 粗暴蹂躏中文一区二区三区| 97在线观看视频国产| 91免费精品国偷自产在线| 高跟丝袜欧美一区| 日韩精品亚洲精品| 色播久久人人爽人人爽人人片视av| 国产精品三级美女白浆呻吟| 国产69精品久久久久9| 国产精品毛片a∨一区二区三区|国| 日本乱人伦a精品| 成人观看高清在线观看免费| 91高清视频免费| 欧美视频在线观看免费网址| 日韩大陆毛片av| 亚洲欧美福利视频| 国产精品毛片a∨一区二区三区|国|