SSH整合jBPM4 3要注意的幾個問題

2021-08-24 23:59:31 字數 3041 閱讀 4435

你要用jbpm4.3,首先至少你要了解

1.uml2.0的活**(因為jbpm是activity diagram模型)

2.hibernate(因為jbpm整合了hibernate作為引擎的持久框架)

當然最重要的是你對工作流的系統結構有初步的了解。

具體指引請參考 使用者手冊和開發手冊,這裡只是一些簡單補充。

[url]

[url]

[b]二、搭建環境(gdp在eclipse上的安裝)[/b]

當你無法在eclipse安裝jbpm4.3 gdp外掛程式,把你的eclipse sdk版本公升級到3.42就ok了。

[b]三、jbpm4.3+ssh[/b]

1.在jbpm-4.3\install\src\db\create下選擇你使用的資料庫指令碼(總共有18張表)

2.使用jbpm-4.3\install\src\demo下的sql指令碼生成測試用的資料

對jbpm4.3資料庫的幾張表簡單介紹

[quote]

jbpm4_deployment表多了一條記錄

jbpm4_deployprop表多了四條記錄,對應langid,pdid,pdkey,pdversion

jbpm4_lob 表多了二條記錄,儲存流程圖png和jpdl.xml

(4)jbpm4_hist_procinst與(5)jbpm4_hist_actinst分別存放的是process instance、activity instance的歷史記錄。

(6)jbpm4_execution主要是存放jbpm4的執行資訊,execution機制代替了jbpm3的token機制(詳細參閱jbpm4的pvm機制)。

(7)jbpm4_task存放需要人來完成的activities,需要人來參與完成的activity被稱為task。

(8)jbpm4_participation存放participation的資訊,participation的種類有candidate、client、owner、replaced assignee和viewer。而具體的participation既可以是單一使用者,也可以是使用者組。

(9)jbpm4_swimlane。swim lane是一種runtime process role。通過swim lane,多個task可以一次分配到同一actor身上。

(10)jbpm4_variable 存的是進行時的臨時變數。

(11)jbpm4_hist_detail儲存variable的變更記錄。

(12)jbpm4_hist_var儲存歷史的變數。

(13)jbpm4_hist_tasktask的歷史資訊。

(14)jbpm4_id_group(15)jbpm_id_membership(16)jbpm4_id_user 這三張表很常見了,基本的許可權控制,關於使用者認證方面建議還是自己開發一套,jbpm4的功能太簡單了,使用中有很多需要難以滿足。

(17)jbpm4_job 存放的是timer的定義。

(18)jbpm4_property

[/quote]

資料來源配置參考jbpm-4.3\install\src\cfg\hibernate\spring\mysql.hibernate.cfg.xml

...classpath:jbpm.repository.hbm.xml

classpath:jbpm.execution.hbm.xml

classpath:jbpm.history.hbm.xml

classpath:jbpm.task.hbm.xml

classpath:jbpm.identity.hbm.xml

...

[b]問題1:[/b]

caused by: org.hibernate.exception.constraintviolationexception: could not delete:

[org.jbpm.pvm.internal.model.executionimpl#7]

連線mysql5時,jbpm4執行到 end結點時的錯誤,把org.hibernate.dialect.mysqldialect改為 org.hibernate.dialect.mysqlinnodbdialect

[quote]

mysqlinnodbdialect繼承自mysqldialect

支援事務處理等高階處理,提供事務支援以及外部鍵等高階資料庫功能。

innodb 給 mysql 提供了具有事務(commit)、回滾(rollback)和崩潰修復能力(crash recovery capabilities)、多版本併發控制(multi-versioned concurrency control)的事務安全(transaction-safe (acid compliant))型表。innodb 提供了行級鎖(locking on row level),提供與 oracle 類似的不加鎖讀取(non-locking read in selects)。innodb鎖定在行級並且也在select語句提供乙個oracle風格一致的非鎖定讀。另外innodb是為處理巨大資料量時的最大效能設計。它的cpu效率可能是任何其它基於磁碟的關聯式資料庫引擎所不能匹敵的。mysqlinnodbdialect基於上也就有innodb相同的功能.

innodb儲存引擎被完全與mysql伺服器整合,innodb儲存引擎為在主記憶體中快取資料和索引而維持它自己的緩衝池。 innodb儲存它的表&索引在乙個表空間中,表空間可以包含數個檔案(或原始磁碟分割槽)。這與myisam表不同,比如在myisam表中每個表被存在分離的檔案中。innodb 表可以是任何尺寸,即使在檔案尺寸被限制為2gb的作業系統上。

innodb是事務安全的.它與bdb型別具有相同的特性,它們還支援外來鍵.innodb**速度很快.具有比bdb還豐富的特性,因此如果需要乙個事務安全的儲存引擎,建議使用它.如果你的資料執行大量的insert或update,出於效能方面的考慮,應該使用innodb表。

在 [url] [/url]上可以找到 innodb 最新的資訊。innodb 手冊的最新版本總是被放置在那裡,並且在那裡可以得到 innodb 的商業許可(order commercial licenses)以及支援。

[/quote]

jbpm4 3與ssh框架進行整合

3 建立web專案,匯入ssh框架所需要的包,以及jbpm包.如果你說你不會,那就甭幹程式設計師了,哈哈 spring.xml檔案中建立連線資料庫的環境.如下 web.xml中配上struts.xml檔案,這不用教吧,作為乙個用框架熟練的程式設計師,這都不會.那還敢幹程式嗎。下面再是action中的...

jBPM4 3與Spring3 0的整合

第一種配置 src下提供jbpm.cfg.xml jbpm.hibernate.cfg.xml bean.xml jbpm.cfg.xml ort resource jbpm.tx.spring.cfg.xml spring.cfg value beans.xml jbpm.hibernate.cf...

jbpm4 3工作流整合(3)工作流編輯刪除

由於一些不可抗拒因素,寫好的jbpm專案 丟失了,只能按著目錄寫一些思路了。工作流編輯和刪除功能是jbpm引擎底層就有的,只是工作流和業務關聯後需要在系統管理頁面管理工作流,利用jbpm原生介面編輯工作流後,原來的工作流不會丟失,會重新生成乙個工作流,只是版本號增加了。如果有業務流程走到一半然後修改...