ccPBM中的Transaction

理解ccBPM中Transaction的含義不僅有助於提高系統性能,而且能夠幫助正確的分析BPM中遇到的錯誤。
一個transaction就是一個序列的處理步驟,要不所有的處理步驟全部執行,要不都不執行。如果系統不能夠完全執行一個transaction,則它將回滾這個transaction中所有的處理步驟,也就是說系統將要恢復到transaction執行前的狀態。
Integration processes中的transaction control mechanism並不是整個系統架構的中心transaction mananger,它不能管理Integration Server以外的transaction。
在block類型的節點中有兩個屬性"start block"和"end block"。在"start block"中可以定義啓動一個新的transaction;在"end block"中定義結束當前的transaction,也就是執行一次Commit Work。
可以設置transaction的處理步驟類型有Send, Transformation和Receiver Determination。
在運行事,系統通常會爲每個處理步驟創建一個transaction,但是上述三種類型的處理步驟可以設置執行該步驟時是否創建一個新的transaction,相應的設置參數爲"Create New Transaction",如果設置爲false,則將在當前的transaction中執行該處理步驟,於是執行時在後臺不會生成一個相應的work item,也不會數據庫進行訪問,使用這種方式,可以提高系統性能。

優化系統性能:
擴展transactions和執行處理步驟時不生成新的transaction,將會增加系統的主內存符合,但是會提高BPM的執行性能。
workflow log中的troubleshooting:
如果一個處理步驟執行時,沒有生成work item,則workflow log的technical view中不會顯示任何關於它的log信息,如果該步驟在執行發生了錯誤,則錯誤信息將顯示在它的上一執行步驟中。(不明白這一點的人,碰到這樣的問題後,在查看log時,會百思不得其解)
如receive step(接收消息)後面緊跟着一個transformation step(message mapping),transformation step執行時是不生產work item的,當該步驟執行報錯時,查看log(SXMB_MONI_BPE),發現錯誤發生在receive step上,而receive step又確確實實已經成功的接收了消息,讓人感覺很矛盾,但明白了上述的知識點就很容易理解了。
文章出處:飛諾網(www.diybl.com):http://www.diybl.com/course/6_system/linux/linuxjq/20100111/188579.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章