轨道交通中间件

EJB3.0 MDB中对MQ事务的处理

场景: EJB3.0 从QueueA 中取得消息后,向QueueB放入消息.问题:抛出运行时异常后,QueueA中的消息自动放回,但是QueueB中放入数据了,应该QueueB中也没有数据才对。代码如下: public void onMessage(Message message) { TextMessage text = (TextMessage) message;// From QueueA try ...显示全部
场景: EJB3.0 从QueueA 中取得消息后,向QueueB放入消息.

问题:抛出运行时异常后,QueueA中的消息自动放回,但是QueueB中放入数据了,应该QueueB中也没有数据才对。

代码如下:
public void onMessage(Message message) {
TextMessage text = (TextMessage) message;// From QueueA 
try {
test();
throw new RuntimeException();
} catch (JMSException e) {
e.printStackTrace();
}
}

private static void test() {
MQManager qManager = new MQManager();
try {

qManager.connect("9.123.100.42", "SYSTEM.DEF.SVRCONN", "CLUSQM",
"1415");
qManager.put("QueueB", new String("Hello world!!"));
} catch (Exception e) {
e.printStackTrace();
}
收起
参与4

查看其它 2 个回答le0911的回答

le0911le0911技术经理农信银资金清算中心
你这么写 不是two phase Commit
银行 · 2011-04-21
浏览634

回答者

le0911
技术经理农信银资金清算中心

le0911 最近回答过的问题

回答状态

  • 发布时间:2011-04-21
  • 关注会员:1 人
  • 回答浏览:634
  • X社区推广