大家好:
我现在的环境是wsad4.03,但是为了支持jms服务,必须要安装MQservice,已经支持这些的类,还有was.
下载非常之慢.
谢谢大家的分析.
如果JMS可以提供这种跨平台的分布式服务,那么可以试一试.
我的具体应用就是帐户之间的金融转帐.所以想用一个分布式事务来做.关键是两阶段提交,来保证事务的acid属性.
如果在wsad中启动一个ejb,调100$从oracle中,然后启动wsad上的jms,让这个jms去调用jboss上的消息驱动bean,然后调用jboss上的ejb,存100$到db2中.
这种过程如果可以实现,那么是不是能保证一致性,如果不用二阶段提交,那么可能wsad上的ejb已经调出100$,而这时jboss上操作失败,那么我要保证事务的回滚.
所以这两个平台上的ejb的事务操作必须保证包含到一个全局事务中:
也就是说只要全局事务开始时,调用一个xid,就可以自动的开始事务,回滚,提交.
不知道能不能实现呢?各自的事务服务器如何管理呢?

"启动wsad上的jms,让这个jms去调用jboss上的消息驱动bean"
This is not given, that's why that jboss expert ask you to implemented a hook to was TX manager.

to Jevang
我们的思路是两个方向,都没有问题:
你们之前讨论的是如何自己实现事务机制。
而我一直有个隐含前提是,尽量让容器去做事务,所以我的重点放在分布式方面了。


关于使用JMS实现这个跨机种方案,重要的还是要做一下试验,因为要确认是否是容器完成事务,如果不是,那只能自己去做。

to bang:
我还是不太清楚您的说法.既然jms不能"直接"实现跨机调用,(应该是不能)
能解释一下"容器处理事务"吗?它又是如何操作的?它如何能实现跨机调用?
我胡涂了!:(

各位dx怎么沉默了?我还在线等待呢!:)
希望各位百忙之中能抽空哒哒!谢谢!

"容器处理事务"是J2EE的基本概念,我相信你对J2EE应该是了解的。

谢谢!
那我觉得您的第一个方案比较可行.
就是在wsad中启动一个jms服务,然后分别调用wsad和jboss中的ejb容器.
那么这个调用jboss的ejb如何来实现?websphere中的jms如何激动jboss中的MDB来调用ejb,还是一个关键问题!

下面是动手实现和实践的问题,这又是一个话题,而且涉及东西很多,不是几句能说完。

o!
那我觉得可能第一种方案比较可行,在wsad中启动一个jms服务,然后分别调用两个应用平台上的两个ejb容器.但是关键是jms这个服务如何能够调用jboss上的MDB?继而进行ejb的操作问题呢?
谢谢!

Hi Bluegirl,
I had decided to stay away from this thread as I could not give you any constructive advice: no, impossible, can't be done ... that's all I was telling you.
But today at javaone, actually its JBoss' conference, I had a chat with Dave(CTO) and Mark(Architect on Transaction) from Arjuna, a distributed jms vendor based in UK, they gave me a firm answer that what you want is not supported by current implementation, transaction context would be recoganized by the second app server as it's against the interests of app server! I am not surprise at all, why jboss want to be second to was or vise versa.
On positive side, they told me distributed transaction is in spec of webservice, probably JSRXXX, as a matter of fact, Arjuna is the first vendor to support that but it's still in early access. But they can only do this with two or more jboss servers so far as they have no source code access to others.
I think the information can help you make a conclusion, maybe you can tell your professor to build a DC webservice TP monitor, that would be quite innovative.

Cheers

-Jevang

各位:
如果用第一种方案来解决的话,在wsad里启动一个jms.然后让他去驱动两个ejb,先调用本平台上的ejb,那么它与jboss上的MDB是如何交互,如何调用,关键就是这种跨平台的调用如何来实现??
这就是我最想知道的!
谢谢!

哦,不好意思,前几天机器出点问题,重发了好几条消息,sorry!
如果必要,banq可以删掉

Jevang:
谢谢!那看来用jms来实现跨平台的分布式是不可能的啦?那么与其他的应用服务器互联如何呢?那个jboss的专家好像说可以来实现呀.
还有您能帮我解释一下"DC webservice TP monitor"?不太理解,谢谢!

to Jevang:
多谢多谢!这个问题总算有了conclusion,我也不用自己做实验了。