使用工作流引擎wfmopen中的陷井
hoogw 發(fā)表于2004-09-03 作者:胡國文 評價(jià):0/0 評論數:0 點(diǎn)擊數:1359 [
收藏]
運行WFMOPEN中的陷井
wfmopen 是open-source的以J2EE 為基礎的工作流引擎,是被Workflow Management Coalition (WfMC) and the Object Management Group (OMG)提出來(lái)的項目.
有興趣的朋友可在:
https://sourceforge.net/forum/forum.php?thread_id=1138720&forum_id=259990
下載.
按照WFMOPEN的用戶(hù)手冊上的說(shuō)明, 短短的幾句話(huà),似乎可以在二十來(lái)分鐘就讓W(xué)FMOPEN運行起來(lái).但是實(shí)際上,我從昨天下午到今天上午9:20,一共用了6個(gè)小時(shí)才把WFMOPEN的例子運行起來(lái).整個(gè)過(guò)程中有很多陷井.
PITFALL ONE
準備數據庫的時(shí)候要注意,如果你用JBOSS自帶的HYPERSONIC數據庫的話(huà),要知道HYPERSONIC有兩種連接方式,一是通過(guò)TCP,另外一種是IN-MEMORY.
在TCP方式下, 啟動(dòng)JBOSS以后才能執行初始化數據庫的操作.而且在JDBC.PROPERTY ($DIST\wfmopen-1.1-bin\lib\wfdemo)要使用的是
database=jdbc:hsqldb:hsql://localhost:1701(不需要改動(dòng))
因為JBOSS 3.2.0以后默認的是IN-MEMORY方式,所以要用TCP方式,必須要告訴JBOSS,我要用TCP方式,具體方法是:
UNZIP JBOSS 以后
1. 在$JBOSS_HOME/server/default/deploy/hsqldb-ds.xml中,
UNCOMMENT
<connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>
并且把其它的<connection-url>-tags都給COMMENT掉.
2. 在$JBOSS_HOME/server/default/conf/jboss-service.xml
"Monitoring and Management"-statements 后面加一句:
<mbean code="org.jboss.jdbc.HypersonicDatabase"
name="jboss.jdbc:name=HypersonicDatabase"/>
這是根據JBOSS 的要求來(lái)加的,在JBOSS的文檔里有說(shuō)這個(gè).
完成了這兩步以后再按照用戶(hù)手冊上說(shuō)的去做.
在IN-MEMORY連接方式下,數據不會(huì )寫(xiě)到硬盤(pán)上,JBOSS一停,數據庫中的數據就會(huì )消失,所以每次啟動(dòng)JBOSS前或后都要執行一次初始化數據庫的操作,由于是IN MEMORY可以在JBOSS 啟動(dòng)前初始化數據庫. 但是要注意的一點(diǎn)是: 在JDBC.PROPERTY ($DIST\wfmopen-1.1-bin\lib\wfdemo)要使用的是
database=jdbc:hsqldb:hsql:.(要增加的)
NOTE: 我用的是TCP,我不能保證IN-MEMORY也可行.
PITFALL TWO
為什么不能用MYSQL, 因為WFMOPEN 要求用支持DISTRIBUTE TRANSACTION的數據庫,MYSQL顯然是不支持DISTRIBUTE TRANSACTION的. 當然你可以在MYSQL.COM中找到MAXDB來(lái)用.
PITFALL THREE
JBOSS 用哪個(gè)版本? 雖然用戶(hù)手冊上說(shuō)的是JBOSS3.2.5版本可以用,但是周志軍發(fā)現JBOSS3.2.5版上關(guān)于MQ SERVICE(JMS) 中有漏洞, WFMOPEN 明確用到JMS,所以JBOSS3.2.5版很可能引起WFMOPEN不能運行,表現就是當用”ML” LOGIN的時(shí)候無(wú)法LOGIN, 同時(shí)JBOSS上不斷拋出錯誤信息.為了安全,請使用JBOSS3.2.3版,我用過(guò)了,沒(méi)問(wèn)題.
PTIFALL FOUR
在把$DIST/lib/wfdemo/login-config.xml.insert添加到
$JBOSS_HOME/server/default/conf/login-config.xml 的時(shí)候要注意,要在最后一個(gè)</policy>tag前添加那些內容,手冊中寫(xiě)的是在最后,容易產(chǎn)生誤會(huì ).如果LOGIN 的時(shí)候用”ML”無(wú)法LOGIN,那么錯誤可能在兩個(gè)地方:一是login-config.xml文件沒(méi)設置好,另一個(gè)就是數據庫沒(méi)有正確初始化.應仔細在這兩個(gè)地方找錯誤.
HOW TO GET WFMOPEN SAMPLE UP
I follow user manual C.2 Sample application,6 hours to get up wfmopen 1.1 sample application , you got problem using “ML” to login? Just follow these steps:
WARNING:
First, I use Jboss 3.2.5 with wfmopen 1.2. I can’t login using “ML”, meanwhile, Jboss throw lots of exceptions continuely. I found that Jboss 3.2.5 itself has a bug when using MQ serviece(JMS). Wfmopen need MQ service support, so this bug could cause the problem. Otherwise, unproperly set login-config.xml file and uninitial database could also cause the problem as Michael said previously.
So Jboss 3.2.5 don’t work, try Jboss 3.2.3.
Step 1: unzip Jboss 3.2.3
Step 2: uncomment
<connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>
in $JBOSS_HOME/server/default/deploy/hsqldb-ds.xml
and comment all other <connection-url>-tags
Step 3:add <mbean code="org.jboss.jdbc.HypersonicDatabase"
name="jboss.jdbc:name=HypersonicDatabase"/>
to $JBOSS_HOME/server/default/conf/jboss-service.xml
Step 4: prepare the database as user manual said.
Step 5: make sure you insert the fragment $DIST/lib/wfdemo/login-config.xml.insert before the last </policy> tag of $JBOSS_HOME/server/default/conf/login-config.xml( I got wrong when I simply append everything after
$JBOSS_HOME/server/default/conf/login-config.xml )
Step 6: try wfmopen 1.1 in case of wfmopen 1.2 don’t work.