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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章