请帮助我了解正在发生的事情
我有一个客户端,调用ejb方法 - doSomething()
String result = session.doSomething(long p1, int p2)
;
在doSomething方法中,我们创建JMS消息并将其发送到jms队列 这是通过方法doMessageSend(..)完成的,该方法看起来像这样
SomeMessage msg = new SomeMessage();
msg.setBillId(lBillId);
msg.setBaseOutputPath(sBaseOutputPath);
// some more sets fields
//...
msgSender.sendBillOutputMsg(msg);
有一个组件 - 在服务器上运行的java控制台应用程序(运行ejb的OR机器相同)。组件处理来自队列的消息并将一些记录写入数据库。 任务是:
doSomething()
方法返回之前,我必须让它“等待”由读取JMS队列的组件写入的数据库记录。但是,该组件在doSomething()返回之前不会开始处理队列。当doSomething()
返回时,该队列处理组件开始工作。 如何在'doSomething()'返回之前启动队列处理组件? 发送的消息对象不再被引用...