业务逻辑很简单,有一JMS队列,多个消息生产者会向其发消息(包含一对象信息,其中包含主键),MDB监听此队列,当消息到达时调用一实体Bean(本地接口):A的Create方法,将对象插入到数据库表中,如果发现该对象已经存在,则调用另一实体Bean :B的Create方法插入到另一表中。
我的实现 OnMessage 中
try { if(alarmstatusHome.findByPrimaryK**(new AlarmstatusPK(obj.getOid(), obj.getAlarmCause())) != null){ logger.debug("Duplicated AlarmReport Found :" + obj.getID()); return; } } catch (FinderException ex) { logger.debug("EntityBean FinderExcption :" + obj.getID()); return; } 这样好像不起作用,无论有无都报Duplicated AlarmReport Found 请问如何实现?
还有,当向实体bean中Create一已有的对象时(即插入同样的记录)Weblogic会不停的反复插入,显示对象已存在事务回滚,如何让它只提示一次。 还有Jbuilder 中如何对EJB-jar.xml中的trans-attribute设置属性,好像他的DD Editor不能改这个选项,只能在JB 外手动改,太麻烦了。 请各位指教!
|
|